Tag Archives: 리뷰

카프카 기술서 두권 비교

아파치 카프카로 데이터 스트리밍 애플리케이션 제작 – 에이콘

카프카에 대해서 개괄적으로 나와 있기는 한데 정리가 깔끔하지는 않다

훑어보기는 괜찮다

그런데… 이 책이 더 좋은 것 같다

~~~

기술만 훑어보려고 하는거면 1~2단원만 보면 될 것 같고 자세히 보려면 좀 오래걸릴 것 같다.
코드랑 기술이 상세하게 설명 돼 있어서 더 그런것같은데..

메시지 전송 기술에서 카프카가 거의 표준으로 자리잡아서 다른걸 생각하기가 힘들 정도다
복잡한 라우팅을 하는 경우에 AMQP를 쓴다고는 하지만… AMQP에서 지원되는 케이스를 생각 해 봐도 카프카에서도 다 할 수가 있을 것 같다

예전에 금융사 SMS처리하는 프로젝트에서 사람들 mysql가지고 개삽푸는거 본 적이 있는데
내가 들어갔으면 메시지 서비스로 하지 않았을까 싶은데…
그 때는 rabbitmq를 선택하지 않았을까?? 카프카의 특성을 제대로 모르고 있어서..
당시에는 문서도 잘 안나와있어서 좀 골치아프기도 했다.
요새는 번역서도 나와있어서 사용하기 좋은 것 같다

끝으로 최근.. 아파치에서 카프카의 경쟁 시스템이 출현했다는 슬픈소식

Apache Pulsar

[도서] RxJava를 활용한 리액티브 프로그래밍

왜?

보통은 개발을 하다가 필요하다고 생각되는 기능을 검색하거나
기술블로그를 보면서 재밌어 보이거나 필요해 보이는 것들을 찾아서 공부하는데
RxJava는 별로 필요성이 안 느껴져서 관심을 갖지 않았다.

그냥 Reactive 프로그래밍을 가능하게 해주는 프레임워크?로
GUI프로그래밍 할 때나 사용하겠지 … 하고 말았었다.
개인적으로는 웹개발을 하면서는 쓰레드나 Callback 지옥을 경험해본 일이 없어서..
여러 시스템에 연동하는 복잡한 서비스를 만드는 경우에는 사용하면 좋으려나

— 좀 다른 얘기지만 저번에 어느 회사 면접볼 때 Observer Pattern 얘기가 나왔을 때 눈똥그래져서 물어보시던데.. RxJava를 아는지 체크 해 본려고 했던건가

키워드 및 요약정보

자바와 안드로이드를 위한 리액티브 프로그래밍 구현체
함수형 프로그래밍의 영향
비동기 이벤트 기반 프로그램 – 스트림 방식
서버에도 적용

Rx(ReactiveExtension) 함수형프로그래밍에 영향을 받았지만 FRP(Functinoal Reactive Programming)은 아니다.
Observable/Observer<T>
Producer
Subscription/Subscriber<T>


포기.. 무슨 클래스 메서드 하나하나 다 설명을 해놨는데
안그래도 텍스트로 소스보면 몇배나 더 걸리는데 하나하나 보려면 한달은 걸리겠다.
그래서
1~2단원 앞쪽 개념설명과 인덱스만 훑어보고 넘어간다.
중요한 부분만 뽑아서 보고싶은데 편집이 불친절해서 골라먹기도 힘들게 돼 있다.
아예 필요없는 책이라고는 못하겠는데 좀 어려운 것 같다.
RxJava Getting Started같은 문서나 보고 그냥 쓰다가
필요성이 느껴질 때 다시 봐야겠다.

자바9 모듈프로그래밍, 한빛미디어

자바9의 모듈화(jigsaw) 개념을 중심만 다뤘다.

간단하다
소스루트에다가 module-info.java파일을 생성해서
module{}을 정의하고
requires, exports.. 외 몇가지 구문으로 정의하는것.

typescript같은 언어에서 export 선언한 것만 접근할 수 있는것처럼

 

이 책의 내용은 이게 전부다. 모듈화에만 집중해놔서
자세한 정보는 : http://openjdk.java.net/projects/jigsaw/quick-start

실전적용

라이브러리 개발의 경우에는 캡슐화에 신경쓰려면 세부적인 설정을 해야겠지만
일반적인 서비스모듈 개발에는 현재와 별 차이는 없을 것 같다.
maven/gradle에서 좀 더 신경쓸게 생기겠지만

gradle의 한개 모듈마다 module-info.java를 한개씩 갖게 된다.
jar파일 한개당 한개의 module이라고 생각하면 된다.

기타 책들

가장 빨리 만나는 코어 자바9: 자바9으로 배우는 모던 자바, 길벗
도 같이 봤는데.. 이건 두꺼우면서 쓸데없는 내용이 잔뜩 있고
막상 중요한 부분은 짧게 설명이 돼 있어서 제대로 보지 않았다.

자바9에서 변하는 점

구조적으로 큰 변화인지는 모르겠지만 개발하는 입장에서는 코드상에 큰 변화는 없다.

gradle에 mysql.jar을 가져와서 ide에서는 com.mysql.Driver이 검색되는데 프로젝트에서는 빨간불이 뜨는 상황은 좀 더 자주 보게 되겠지만.

어차피 지금도 gradle 모듈로 프로젝트 나눠서 개발하는 사람은 거의 변화를 못 느끼지 않을까

~

어차피 금방 보니까 한번 보면 좋지 않을까

혹시 다른내용이 있나 싶어서 꼼꼼히 읽다가 몇시간 지났는데 별거 없으니 그냥 훑어보면 될 것 같다. 아니 그냥 공식도큐먼트랑 블로그만 몇 개 봐도 되려나

[도서] Chef Solo 입문 : 인프라스트럭처 자동화 프레임워크 – 뒤늦은 완독

기술서도 완독이라는 표현을 쓰나? 잘 안쓰는 것 같기도 하고..

클라우드가 나와서 일반 개발자가 직접 인프라를 운영해서 kubernetes, hadoop 등등 클러스터를 대규모로 운영할 일은 잘 없다보니.. 인기가 많이 식었지만

개발피씨, 개발서버, local vagrant 등을 설정할 때는 여전히 유용할 것 같다.

좀 사양기술이기도 하고 책도 옛날거라 예제도 다 오류나서 해서 안보려고 했는데, vagrant 개발환경 구성하다가 왠지 chef를 적용 해 보고 싶어서 다시 보기 시작했다.
보통은 docker를 쓰는데 이번엔 몇개 프로젝트 함께 돌리는거라 프로젝트별로 설정 해 놓은 docker를 쓰기는 좀 껄끄러운 상황…
아닌가? 그냥 vagrant를 쓰고 싶었다.

옛날버전이라 책으로는 개념만 익히고 웹튜토리얼이랑 도큐먼트쪽 명령어 찾아 보면서 공부할 수 밖에 없었는데 그러다 보니 시간이 많이 걸렸다.(이틀정도..)

chef 공부하기 힘든 이유가 몇 가지 있다

  • 개념이 뒤죽박죽… chef-solo chef-client –local-mode 비슷한게 섞여있고
  • 용어는 지맘대로.. 들어도 뭔지 모름 chef, kitchen, knife
  • 버전업하면서 legacy 다 바뀜

이런 난관을 넘고 vagrant 정도는 chef로 설정할 수 있게 되어 버렸다.ㅎ

이제 안쓸수가 없군.

추가로

Chef, 클라우드 서비스 설정관리 자동화 도구.

라는 책도 있는데 이건 되는게 더없고 개념이해도 더 힘들다.
두꺼운 책이 오류나니까 더 답도없다.
(책이 처음 쓰여질때는 오류가 아니었겠지 deprecated책이라)

절대 사서 보지 말기 바람.

[리뷰]Angular 앵귤러 첫걸음 – 제목에 충실하게 처음시작할 때 보면서 개념을 잡기 좋은 책

[sb_book_infobox_from_interpark id=9788968486807]

책 소개에 앞서

먼저, 이 책을 보는 시점의 제 기술수준을 밝히면
5~6년차 Java개발자로 웹개발/백엔드개발을 주로 해왔구요. 요즘은 백앤드 개발을 주로 하고 있고
HTML,CSS,JQuery,Bootstrap.. 등등 보통 SI개발자들 많이 쓰는 기술 다 비슷하게 써 봤을 것 같습니다.
TypeScript, Angular – 아예 처음은 아니고 공식사이트에서 튜토리얼을 돌려보고 간단한 페이지를 만들어본 경험은 있는 상태.

이 책을 보게된 동기

요즘엔 동적화면구성을 많이 하다보니 화면한개에 HTML, 스타일, 스크립트까지 너무 길어서 다 만들고나면 어디에 뭐가 있는지 기억도 안 날 지경으로 코드가 망가져 버리는데
정리를 하려고 해도 스크립트 코드 특성상 디버깅/테스트도 힘들고 하다보니 모듈화를 해서 구성을 하는것도 쉽지가 않구요.
결국엔 기능만 구현 해 놓고 버리게 되는 경우가 많습니다.

이런문제를 해결하기 위한 방법 중 하나로 Angular, React .. 등의 기술에 관심을 갖고 살펴보던 와중에
한빛 도서리뷰어에 뽑혀서 이 책을 보게 됐습니다.

공식사이트 : 앵귤러 첫걸음 http://www.hanbit.co.kr/store/books/look.php?p_code=B3348481708

좋은점/아쉬운점

여기부터는 책을보면서 그때그때 메모했던 부분을 옮겨적은거라 내용이 자연스럽게 이어지지 않을 수 있습니다.

  • Angular/Vue/React… 난 무조건 Angular~ 이러는 경우가 아니라면 여러 기술을 놓고 엄청 고민을 하게된다.
    Angular가 다른기술에 비해 뭐가 좋고 왜 Angular를 선택해야 하는지 비교분석이 있었으면 좋았을 것 같은데 없어서 아쉽다.
  • Angular 프레임워크의 구조부터 설명이 되어 있어서 이해에 많은 도움이 된다.
  • 어떤 사람에게는 오히려 장점일수도 있는 부분이지만…
    좀 간단히 설명하고 넘어갔으면 싶은 부분에 대한 설명이 과도한 경우도 간혹 있었다.
  • 윈도우도 맥의 brew처럼 scoop, chocolate같은 패키지 관리자가 있는데…
  • 스타일 차이일 수도 있지만 개인적으로 1~2단원에서 프레임워크의 전체적인 구조를 설명하고 뒷쪽은 세부적인 내용을 배치하는게 좋다고 생각한다.
    이 책은 좀 무작정따라하기’ 시리즈류의 구성스타일을 가지고 있어서 … 그냥 모든 내용이 순서대로 나온다.
    공식 홈페이지에 가면 도큐먼트가 다 있지만 굳이 책을 사서 보는것은 요약집(참고서?)를 사보는 것과 비슷한거다.
    책을 다 외우는 경우도 없을거고 한번 본 책을 다시 뒤적여보는 개발자도 잘 없을거다.
    기술의 뼈대만 이해하고 책의 인덱스와 키워드만 만 머릿속에 입력하고 나머지는 검색인데
    너무 교과서적인 설명이 나와서… 보는데 시간이 오래걸리는 문제가 있다.
  • ES6와 ts 언어 자체에 대한 설명에도 좀 할당이 되어있어야 하지 않을까 싶다.
  • 책의 편집에서 아쉬운점 ex)100p
@Component({
  select: 'af-simple',
    template: `<h1>Angular is awesome!!</h1>`
})
여기서 select는 이름이고 template은 템플릿이다.
라고 하는것보다

@Component({
  select: 'af-simple',    ** << 이름 **
    template: `<h1>Angular is awesome!!</h1>` ** << html 템플릿 **
})
와 같이 한눈에 보이게 표시해주면 어땠을까 싶기도 하다.

@Component ({
  select: `{컴포넌트의이름, 필수항목}`,
    template: `html 템플릿을 그냥쓸때`,
    templateUrl: 'html 템플릿의 경로.. 둘중하나 필수',
    style: : `둘중하나 필수`
    styleUrls: ['', '']
})

이 부분도 취향차이겠지만
텍스트로 길게 설명하는 것보다 소스에 주석처럼 설명이 붙어있는게
그리고 구조도와 설명이 함께 있는게 이해가 빨리 된다.

후기

처음 Angular를 접한 사람이 궁금해할만한 부분들을 구석구석 빠짐없이 잘 소개 해 주는 책으로
인내심을 가지고 끝까지 본다면 Angular 개발을 하는데 큰 도움이 될 것 같다.
구성/편집은 내 취향이 아니라서 좀 아쉽다.