모던 자바 인 액션

 

모던 자바 인 액션 - 10점
라울-게이브리얼 우르마 외 지음, 우정은 옮김/한빛미디어


왜?

자바 5 버전을 넘기면서 해자가 생기는 가 싶었다. 8 버전을 넘어가니 어느 새 올려다 보는 존재가 되어 있었다. 친숙하지만, 어려운 상대가 자바다. 그 간극을 스프링 프레임워크 덕분에 어찌 어찌 버텨올 수 있었던 것 같다. 하지만 뒤쳐지고 있다는 불안감이 늘 신경쓰였다. 

이전에 자바 8 서적을 2권 정도 봤던 것 같다. 람다식? 스트림 API? 정도가 기억나는데, 직접 쓸 일이 없어서 그런지 가물가물하다. '별 수 있나? 자주 보다 보면 또 익숙해지겠지.'하는 마음으로 읽었다. 


꾸역꾸역

아, 어렵다. 자바란 언어의 진입장벽이 이전보다 더 높아진 것 같다. 그나마 자바에 익숙하고, 이전에 다른 책을 봤었고, 이것 저것 찾아봤던 경험 덕분에 조금이나마 이해할 수 있었던 것 같다. 그래도 끝까지 읽는건 쉽지 않았다. '이렇게 눈동냥 이라도 해둬야 먹고 산다'라는 생각으로 억지로 읽었다. 


우물 안 개구리

책을 읽으며 난이도가 중상은 되겠다는 생각을 했다. 다 읽고 정리를 하면서 생각해 보니, 지금 내 수준이 낮아서 그런 건 아닐까 하는 의문이 든다. 지금 환경에 너무 익숙해져서 우물한 개구리가 되었구나.

메모

  • 자바 8의 특징: 간결한 코드, 멀티코어 프로세서의 쉬운 활용
  • 함수형 프로그래밍
  • 동작 파라미터화 -> 메서드를 다른 메서드의 인수로 넘겨주는 기능: 람다 표현식
  • 함수형 인터페이스
  • 디폴트 메서드
  • 컬렉션은 외부 반복, 병렬성을 스스로 관리
  • 스트림은 내부 반복, 병렬성 구현을 자동으로 선택
  • DSL의 주요 기능: 도메인 전문가가 로직을 읽고 검증할 수 있는 역할은 할 수 있다.
  • 자바 9: 자바 모듈 시스템
  • 스트림 병렬화는 I/O가 없는 계산 중심, CompletableFuture 병렬화는 I/O가 포함된 작업을 실행
  • 여러 스레드에서 갱신: LongAdder, LongAccumulator, DoubleAdder, DoubleAccumulator를 사용


토이 프로젝트 

쓸 일이 없다는 핑계로 안주하지 말고, 직접 쓸 일을 만들자. 그렇지 않으면 아는 것이 안다고 생각하는 것이 되고 말거야.


댓글 쓰기

0 댓글