허원철의 개발 블로그

Oracle Code Seoul - 2017 본문

conference

Oracle Code Seoul - 2017

허원철 2017. 8. 30. 18:14

서울 여의도 콘래드 호텔에서 진행되었던 'Oracle Code Seoul' 컨퍼런스를 참여한 후기 글입니다. 




이번 'Oracle Code Seoul'은 사전 등록 시간을 포함해 아침 7시 30분부터 18시까지 진행 되는데, 7시 40분쯤 도착했는데도 많은 개발자분들이 계셨습니다. 그럼에도 불구하고 선착순 100분 안에 들어서 데스크패드 득했습니다. ( ㅎㅎㅎ )


항상 컨퍼런스를 가게 되면 느끼는 것이 있습니다. 평일임에도 불구하고 컨퍼런스를 참여하는 열정이 있는 개발자 분들이 정말 많다는 것 입니다. (회사에서 강제로 보내서 가시는 분들도 있겠지만요...?)



이번 컨퍼런스를 다녀와서 몸소 느낀점


아직 컨퍼런스를 찾아다닌지 얼마 안되기도 했고, 국외 컨퍼런스를 다녀온 적도 없었기 때문에 호텔에서 컨퍼런스가 진행된다는 것이 생소하기도 하고 신기한 일이 아닐 수 없었습니다. (다과 공간과 호텔 식사 제공...)


외국 스피커분들이 강연하는 곳은 처음이라 긴장하고 갔었습니다. 그런데 동시 번역 기계를 주더랍니다. (다들 주저하지 말고 외국 컨퍼런스를 다녀옵시다!!!)


한 세션당 짧은 시간이여서 조금 아쉬웠습니다. 실제 오라클에서 근무하시는 개발자분께서 자바, Oracle Cloud에 대해 소개를 해주셨지만, 시간이 촉박했기 때문에 보다 많은 내용을 들을 수 없었습니다.


자바는 아직 죽지 않았다 !



무엇을 듣고 왔는가?


제가 들은 세션은 점심시간까지 진행되었던

Sebastian Dashner님의 'CQRS를 언제, 왜, 그리고 어떻게 사용할 것인가'

Kevin Walsh님의 'API, 마이크로서비스, 챗봇을 사용한 모던 애플리케이션 개발'

이일민님의 'Java 9과 Spring 5로 바라보는 Java의 변화와 도전'

David Buck님의 'Java 8의 멋진 기능과 Java 9의 신기능 알아보기'

입니다.



요약 내용(?)


- 미흡하지만, 초간략하게 세션 내용을 정리해보았습니다..


Sebastian Dashner님의 'CQRS를 언제, 왜, 그리고 어떻게 사용할 것인가'


중요 개념은 이벤트 소싱과 이벤트 드리븐 아키텍처이다.

CQRS는 쓰기(void)와 읽기(get)를 분리한다.

로직을 이벤트로 묶어서 사용한다. (EventStore)

CQRS의 장점은 확장성이 좋고, 비동기 통신에 탁월한 효과를 볼 수 있다.

CQRS의 단점은 분산 시스템이 아니면 오버헤드가 있다.


참고 : https://github.com/sdaschner/scalable-coffee-shop



Kevin Walsh님의 'API, 마이크로서비스, 챗봇을 사용한 모던 애플리케이션 개발'


MicroService는 API 결합과 재사용이 가능해졌다.

서비스별 구성이 아닌 API별 구성 형태로 변화되어야 한다.

모놀리식 아키텍처에서 작은 컴포넌트들(마이크로서비스)로 변화되어야 한다.


apiary : API 생명주기 관리

  - API 검증, 테스트, 모니터링, 문서화(api-blueprint), 등등

oracle cloud : 마이크로서비스 플랫폼 제공

  - git, build. deploy, ci(hudson), 다양한 프로그래밍 언어 지원, AI, 등등



이일민님의 'Java 9과 Spring 5로 바라보는 Java의 변화와 도전'


9월 21일에 자바 9와 스프링 5가 릴리즈된다.

자바는 죽지 않았다. 다른 언어 또한 동일한 얘기가 오고 간다.

자바는 여러 위기를 극복하고 변화해왔다.

  - 과도한 기술로 인한 오버엔지니어링(EJB) → 자바의 기본으로 돌아가자(POJO 개념 등장)

  - 경쟁 언어의 등장(C#) → 하위 버전 호환성 가능

  - 간결한 코드와 생산성(루비→ 애노테이선의 등장(Java EE, Spring, Lombok) + Spring Boot

  - 함수형 프로그래밍과 비동기, 논블로킹(스칼라, 노드) → Java SE 8, Servlet 3.0 +

새로운 위기(?)와 변화

  - 위기 : 관례의 범람 → 함수형 프로그래밍 언어로 업그레이드된 자바의 기본으로 돌아가자

    1. 애노테이션의 한계 및 부작용

    2. 리플렉션과 바이트 코드 조작

  - 변화

    1. Spring 5

      - 서블릿에 대한 의존성 제거

      - 새로운 HTTP : ServerResponse, ServerRequest

      - 독립형 애플리케이션

      - Handler Function, Router Function

    2. Java 9

      - Spring 5에서의 Mono(단일 오브젝트), Flux(스트림 오브젝트)를 Java 9의 Flow API와 호환가능(RxJava 도)



David Buck님의 'Java 8의 멋진 기능과 Java 9의 신기능 알아보기'


Java 8의 기능

  - 람다 표현식(functional interface)

  - 디폴트 메소드(기존 자바의 호환성을 위해 디폴트 메소드를 정의 가능한 새로운 인터페이스 제공)

  - 메소드 레퍼런스( s -> s.toUpperCase() == String::toUpperCase )

  - Date Time APIs - JSR 310(Joda Time API를 자바 플랫폼으로 가져온 것)


Java 9의 기능

  - 보다 빠른 JDK

    1. JEP 250 : Store Interned Strings in CDS Archives

        - 다른 JVM 프로세스간에 String객체 및 기본 char배열 객체 를 공유하여 메모리 소비를 줄 입니다.

    2. JEP 254 : Compact Strings

        - String클래스 의 내부 표현을 UTF-16 char배열에서 byte배열과 인코딩 플래그 필드로 변경

    3. Javadoc Search

       ...


  - 새로운 기능과 함수형

    - Project Jigsaw : 자바 모듈화

        - Java Custom Runtime

    - Enhanced Deprecation

    - Java Shell

    - Multi-Release Jar

    - Unicode 8.0

    - UTF-8 Property Files

    - OCSP Stapling for TLS

    - SHA 3

    - HTML5 docs

    - HTTP/2 Client

    - Default G1 GC

      ...

'conference' 카테고리의 다른 글

Java And Spring forward! 2017 세미나 - 후기  (399) 2017.11.26
Naver Hack Day 2017  (418) 2017.05.26
Spring Camp 2017 - 후기  (397) 2017.04.23
GDG WebTech - AMP, PWA  (394) 2017.02.27
GDG DevFest Seoul 2016  (432) 2016.12.05
Comments