이전

리뷰 (14)

한줄평
평점 분포
  • 리뷰 총점10 64%
  • 리뷰 총점8 36%
  • 리뷰 총점6 0%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 10.0
  • 30대 9.0
  • 40대 9.0
  • 50대 10.0

포토/동영상 (6)

리뷰 총점 종이책
엔터프라이즈 자바 마이크로서비스
"엔터프라이즈 자바 마이크로서비스" 내용보기
마이크로서비스는 개발자 컨퍼런스에서 자주 들리는 단어입니다.많은 기업이 마이크로서비스로 개발하려고 하는데요.개발자들에 대한 마이크로서비스에 대한 책은 나와 있지만 이해하기 어려웠습니다.난이도가 어렵거나 방대한 분량이 개발자들이 어려운 책이었습니다.적당한 분량과 난이도로 된 책이 나와 소개하려고 합니다.책 제목은 ‘엔터프라이즈 자바 마이크로서비스’입니다.이
"엔터프라이즈 자바 마이크로서비스" 내용보기

마이크로서비스는 개발자 컨퍼런스에서 자주 들리는 단어입니다.


많은 기업이 마이크로서비스로 개발하려고 하는데요.

개발자들에 대한 마이크로서비스에 대한 책은 나와 있지만 이해하기 어려웠습니다.


난이도가 어렵거나 방대한 분량이 개발자들이 어려운 책이었습니다.


적당한 분량과 난이도로 된 책이 나와 소개하려고 합니다.


책 제목은 ‘엔터프라이즈 자바 마이크로서비스’입니다.


이 책의 대상은 4년 이상 엔터프라이즈 자바 개발 경험이 있는 개발자를 대상으로 합니다.


또 마이크로서비스에 관심 있는 사람들도 개발자도 이 책을 읽으면 서비스에 대한 이해가 될 겁니다.




◆ 책의 구조

책의 구조는 크게 2부로 나뉩니다.


1부인 1~5장에서는 분산 시스템과 마이크로 서비스의 전반적인 아키텍처를 알려줍니다.


아키텍처를 알려주고 다음으로 간단한 애플리케이션 서버를 만듭니다.


서버를 만든 후에는 테스팅 하는 것을 통해 개발 프로세스를 익힐 수 있습니다.


그 외에도 클라우드 네이티브 개발 개념도 설명해줍니다.


2부에서는 서비스 레지스트리, 내고장성, 보안 등 마이크로프로세스의 핵심적인 부분을 배웁니다.


마이크로 서비스와 분산 처리에 대한 관심이 있는 분들에게 좋은 책입니다.




◆ 프로그램 관리


프로그램을 효율적으로 관리하기 위해선 모듈로 관리를 하게 됩니다.


중앙 집중형 컴퓨팅 환경에서 분산 컴퓨팅 환경으로 넘어가게 됐습니다.


분산 환경으로 넘어간 이유는 무엇일까요?

이유는 코드의 재사용 때문이 아닐까 생각됩니다.


통째로 가지고 있다면 코드를 찾기 위한 시간이 많이 소비됩니다.


크게 바뀌지 않고 재사용 가능한 코드는 모듈을 쓸 수 있습니다.


또한 서비스의 크기가 크다면 한 번 실행되는 많은 시간이 걸립니다.


하지만 분산처리를 하게 되면 실행되는 시간도 쪼개지므로 더 빠른 서비스를 운영할 수 있습니다.




끝으로 국내의 경우에는 자바 프로젝트가 50% 이상입니다.


정부의 경우에는 더 많이 사용합니다.


하지만 새로운 설계 방식으로는 바뀌지 않는 관행이 있습니다.


하지만 언젠가는 바뀔 수도 있을 것입니다.


그때를 위해서 이 책은 단비 같은 책이 되리라 생각이 드는데요.

엔터프라이즈에 대한 전체적인 큰 틀을 알 수 있어서 자바 개발에 관심 있는 분들에게 추천해드립니다.





n*******e 2020.07.05. 신고 공감 0 댓글 0
리뷰 총점 종이책
마이크로서비스를 알아보았다!, 엔터프라이즈 자바 마이크로서비스
"마이크로서비스를 알아보았다!, 엔터프라이즈 자바 마이크로서비스" 내용보기
'마이크로서비스'란 정확히 어떤 개념인지 궁금하기도 했고 '엔터프라이즈 자바'도 무엇인지 궁금해서 '엔터프라이즈 자바 마이크로서비스' 도서를 집어서 보게 되었습니다.책이 제수준에는 어려워 끝까지 읽진 못하고 클라우드 네이티브 장까지만 보고 리뷰를 남기려고 합니다.마이크로서비스는 반대 개념인 '모노리스'의 단점을 해결하기 위해 등장했는데요.모노리스와 마이크로서비스
"마이크로서비스를 알아보았다!, 엔터프라이즈 자바 마이크로서비스" 내용보기


'마이크로서비스'란 정확히 어떤 개념인지 궁금하기도 했고 '엔터프라이즈 자바'도 무엇인지 궁금해서 '엔터프라이즈 자바 마이크로서비스' 도서를 집어서 보게 되었습니다.

책이 제수준에는 어려워 끝까지 읽진 못하고 클라우드 네이티브 장까지만 보고 리뷰를 남기려고 합니다.


마이크로서비스는 반대 개념인 '모노리스'의 단점을 해결하기 위해 등장했는데요.

모노리스와 마이크로서비스 개념 설명은 첫 장부터 깔끔한 전개로 저의 첫 궁금증을 해소시켰습니다.

엔터프라이즈 자바란 무엇이고 전형적인 엔터프라이즈 자바의 아키텍처, 모노리스의 설명과 장점과 그 문제점들, 마이크로서비스와 분산 아키텍처의 개념과 등장 배경, 왜 도입해야 하는지 장단점들을 소개한다.


또 마이크로서비스를 만드는데 있어 엔터프라이즈 자바를 써야하는 이유도 서술한다.

하나 하나 자세한 설명으로 '왜'를 포인트로 잡아 글을 전개하는 방식이 마음에 들었다.



Java EE API 안의 REST API 구현을 지원하는 JAX-RS를 예제 프로젝트로 이용했다.

얼마 전에 스프링으로 바로 시작을 해서 JAX-RS API가 낯설기는 했지만 스프링도 Java EE 표준 명세를 따르기 때문인지 몇몇 부분을 제외하고는 금방 코드를 이해할 수 있었다.

( 3장 중간에 스프링 부트를 활용한 마이크로서비스 예제도 나오긴 한다. )


그러나 책에서는 마이크로서비스를 어떻게 하면 잘 만들 것인지에 집중하기 때문에 Java EE 안에 어떤 모듈들이 있으며 JAX-RS에 지원하는 기능들을 자세히 소개하지는 않는다.

소스 코드에 세세한 설명이 담겨있긴 하지만...

RESTful API를 만들어보는 두 번째 장부터 모르는 부분이 있다면 따로 공식 문서를 참고해야 한다.




마이크로서비스들을 만들었으면 그에 대한 테스트 코드는 어떻게 작성해야 하는지도 한 챕터에 할애했다. 마이크로서비스 관점에서 단위 테스트와 통합 테스트는 무엇인지 설명하고 직접 테스트 코드를 만들어 확인한다.




5장부터는 본격적으로 클라우드를 소개하고 마이크로서비스를 배포하는 방법을 다룬다.

IaaS, PaaS, SaaS 서비스 모델을 소개하고 클라우드 개발을 왜 해야 하는지를 처음에 설명하고 직접 클라우드에 전개하는 법을 그림과 함께 상세하게 풀어나갔다.


생소한 용어와 생소한 배포 프로그램들도 많고 설정법도 있었지만 어떤 식으로 클라우드에 마이크로서비스를 전개하는지 대충 경험해볼 수 있었다.



남은 뒷 부분은 마이크로서비스들이 서로 호출해 상호작용해보는 경험을 해보고, 모니터링 전략과 보안, 하이브리드 아키텍처, 아파치 카프카를 이용한 데이터 스트리밍, 스프링 부트 마이크로서비스 예제 프로젝트를 경험해본다.


중간까지 읽어보지 않았지만 뒷 장에도 흥미로운 주제가 많아 꼭 완독해보고 싶은 도서다.

엔터프라이즈 자바와 마이크로서비스란 개념에 생소해도 자세한 설명이 뒷받침되어있어 초보자도 충분히 도전해볼 만한 도서인 것 같다.

r*****2 2020.07.05. 신고 공감 0 댓글 0
리뷰 총점 종이책
[리뷰] 엔터프라이즈 자바 마이크로서비스
"[리뷰] 엔터프라이즈 자바 마이크로서비스" 내용보기
책소개마이크로서비스 아키텍처로 전환하려는 개발자를 위한 본격 활용 안내서  JVM 기반 마이크로서비스 애플리케이션을 설계하고 구축하는 방법을 알려준다. 전통적인 Java EE 애플리케이션과 마이크로서비스 설계를 비교한 후 마이크로서비스를 이루는 각 요소를 설명하는 방식으로 독자의 이해를 돕는다. 이를 바탕으로 마이크로서비스를 구현하는 도구와 기법을 설명한다. 마이크로
"[리뷰] 엔터프라이즈 자바 마이크로서비스" 내용보기

책소개

마이크로서비스 아키텍처로 전환하려는 개발자를 위한 본격 활용 안내서 

 

JVM 기반 마이크로서비스 애플리케이션을 설계하고 구축하는 방법을 알려준다. 전통적인 Java EE 애플리케이션과 마이크로서비스 설계를 비교한 후 마이크로서비스를 이루는 각 요소를 설명하는 방식으로 독자의 이해를 돕는다. 이를 바탕으로 마이크로서비스를 구현하는 도구와 기법을 설명한다. 마이크로서비스를 매끄럽게 운용하는 모니터링, 보안, 테스팅, 클라우드 전개 방법도 함께 살펴본다.

 

이 책의 주요 내용

  • 마이크로서비스 모델
  • 클라우드 네이티브 개발
  • 내고장성 전략과 모니터링 전략
  • 개발을 마친 애플리케이션에 보안 추가

 

자세한 내용 : https://www.hanbit.co.kr/store/books/look.php?p_code=B8925824072

 

엔터프라이즈 자바 마이크로서비스

JVM 기반 마이크로서비스 애플리케이션을 설계하고 구축하는 방법을 알려준다. 전통적인 Java EE 애플리케이션과 마이크로서비스 설계를 비교한 후 마이크로서비스를 이루는 각 요소를 설명하는

www.hanbit.co.kr

 

목차

리뷰

이번에 리뷰하게 된 책은 '엔터프라이즈 자바 마이크로서비스'입니다.

책 리뷰는 한빛미디어로부터 책을 지원받아 작성하였습니다.

자바에 대한 경험이 없는 개발자에게는 어려운 내용일 수 있고, 기본적으로 자바를 알고 있다는 가정하에 작성된 책이기 때문에 책을 보시기 전에 Spring이나 자바에 대한 기초개념은 알고 책을 봐야 이해하기 쉬울 것이라고 생각된 책입니다.

 

 

책을 읽다보니 생각보다 내용이 상세하게 들어가 있어서 놀랐습니다. DDD 주도 설계, 실무에서 프로젝트를 진행하다보면 항상 고민하는 부분 중 하나입니다. 도메인 내에서 도메인을 컨트롤 해야하는 문제로 인해 추가적인 개발이 필요한 경우도 있으니까요. 도메인 내에서 처리하도록 개발을 하도록 고민하는 부분도 마이크로 서비스에서 중요한 부분이라고 생각해왔는데 책에서 다루어주는 것을 보고 내용이 깔끔함과 함께 상세한 내용을 꽉꽉 눌러담아놓은 좋은 책이라는 생각이 들었습니다. DDD에 대해서 더욱 자세히 공부하기 위해서 'DDD Start! - 최기선(교보문고)' 책을 추천드립니다. 품절 상태이긴한데 가끔 재고가 풀릴 때가 있어서 구입해서 보시면 좋을 것 같아 추천드립니다.

 

빅뱅패턴, 하이브리드 패턴, 스트랭글러 패턴 등 여러 패턴을 설명해주고 있고 그런 패턴들 중에서 대다수의 기업들이 모노리스에서 마이크로서비스로 전환하면서 하이브리드 패턴을 많이 사용하고 있습니다. 

 

이 책에서 마음에 들었던 부분 중 한 부분은 설명 시에 그림으로 보기 편하게 설명하고 있다는 점입니다. 글로만 봐서는 무슨 내용인지 이해가 잘 안가고, 어려울 때가 있는데 책 전반적으로 그림이 많아서 내용을 이해하기 쉬운 것이 장점입니다.

 

 

8장의 내용 중에 회로 차단(서킷 브레이커) 내용이 나오는데 실제로 서킷 브레이커를 적용 중이었던 제가 느끼기에, 책을 쓰면서 많은 고민을 했고 마이크로서비스에 대해서 고민해봐야하는 부분들을 책에 잘 녹여놓았다를 매번 느끼게 해줍니다. 마이크로서비스로 개발을 진행하면서 서킷 브레이커, 보안(9장) 등을 끊임없이 고민하고 생각하며 개발을 진행하고 있는데 이런 내용들이 책에 나오니 반갑기도 했습니다.

 

책 전반적으로 모노리스 서비스를 마이크로 서비스로 전환하면서 고민해야하는 많은 내용들을 담고 있습니다. 마이크로서비스로 전환을 하려고 하는 기업, 팀에서 서비스 구축 전에 한번 읽어봤으면 좋겠다라는 생각을 합니다. 제가 마이크로 서비스 구축을 하기 전에 봤다면 도움이 많이 되었을 것 같습니다.

 

k*********0 2020.07.03. 신고 공감 0 댓글 0
리뷰 총점 종이책
엔터프라이즈 자바 마이크로서비스
"엔터프라이즈 자바 마이크로서비스" 내용보기
엔터프라이즈 자바 마이크로서비스 사회가 발전 할수록 관련 업무도 더욱 분업화 되고기존에 신경쓰지 않았던 중요하지 않던 부분도 어느 순간 중요한 업무의 하나로 바뀌어 있다.따라서 우리가 늘상 업무에 사용해 오던 시스템들도 회사의 성장에 따라 계속 발전해 나간다.기존에 10가지였던 업무가 어느덧 몇 배가 넘는 큰 규모의 서비스가 되어 있다면 어떻게 해야 할까?지금 까지는
"엔터프라이즈 자바 마이크로서비스" 내용보기

 

엔터프라이즈 자바 마이크로서비스

 

사회가 발전 할수록 관련 업무도 더욱 분업화 되고

기존에 신경쓰지 않았던 중요하지 않던 부분도 어느 순간 중요한 업무의 하나로 바뀌어 있다.

따라서 우리가 늘상 업무에 사용해 오던 시스템들도 회사의 성장에 따라 계속 발전해 나간다.

기존에 10가지였던 업무가 어느덧 몇 배가 넘는 큰 규모의 서비스가 되어 있다면 어떻게 해야 할까?

지금 까지는 현재 사용하고 있는 시스템에 기능을 하나 둘 덧붙여 가며 시스템의 크기를 늘려 왔겠지만

이것은 물리적으로든 논리적으로든 곧 한계에 부딪치게 된다.

물리적 문제는 비교적 쉽게 해결 할 수도 있다.

클라우드 시스템을 이용하여 처리 할 수 있다.

대표적인 시스템이 아마존 웹 서비스(AWS) 와 마이크로서비스 애저(Azure) 등의 서비스를 이용하면 된다.

하지만 이번 포스팅에서는 논리적 한계에 이르렀을때의 방안이다.

 

기존의 대부분의 서비스는 10개든 100개든 모든 기능이 하나의 서비스에 묶여 있었다.

따라서 간단한 하나의 기능을 수정하거나 추가를 하려면

모든 서비스를 멈춰야 했다.

서비스의 크기가 작다면 문제는 없었다. 재기동 하는 시간이 오래 걸리지 않았기 때문이다.

하지만 기능의 수가 많아 지면 많아 질 수록 서비스의 크기는 늘어나게 되고

시스템을 재기동 하는 시간도 덩달아 같이 늘어 난다.

따라서 일과 시간에는 처리 할 수 없고 사용자가 없는 새벽 시간에 작업해야 한다.

문제라도 하나 생기게 된다면 상상할 수 없는 악몽의 시간이 시작된다.

 

마이크로서비스는 필요한 기능을 하나의 독립적인 시스템으로 동작하게 한다.

따라서 작은 기능 하나를 수정했거나 추가 했다고 해서 모든 시스템을 재시작 하는 부담을 덜 수 있고

기능을 쉽고 빠르게 반영할 수 있다.

 

마이크로서비스를 적용하는 일은 쉽지 않다.

대표적으로는 스프링이나 스프링부트를 사용하는 것으로 알고 있었는데

일반적인 자바만을 사용해 마이크로서비스를 구현할 수 있다는 것을 이 책을 통해 알게 되었다.

 

마이크로서비스 자체가 쉬운 부분이 아니다.

따라서 이 책의 적절한 독자층은 어느정도 개발 경험이 있는 개발자여야 할 것이라고 생각된다.

 

물론 개발 경험이 얼마 되지 않는 개발자가 읽어도 괜찮다.

책의 저자는 마이크로서비스가 무엇인지, 왜 마이크로서비스를 도입해야 하는지

기존의 모노리스 시스템을 어떻게 마이크로서비스로 전환시켜 나갈 수 있는지를

그림을 통해 쉽게 설명해 주고 있기 때문이다.

 

이 책은 스프링과 스프링부트를 이용하지 않는다.

책의 마지막에 부록으로 스프링부트를 이용하는 방법이 나오지만

부록으로 나오는 만큼 내용이 간단하다.

 

수많은 개발자들의 노력과 연구의 집대성인 이러한 프레임워크를 이용하지 않는 다는 것은

많은 부분의 설정과 개발을 직접해야 한다는 것이다.

하지만 반대로 마이크로서비스에 대한 깊이있는 이해와 경험을 쌓을 수 있어서,

추후에 마이크로서비스 프레임워크를 도입할때 많은 도움이 될 것은 분명하다.

 

어떤 시스템을 도입하든 그 그간을 이루는 개념이나 사상, 언어를 알아두면 많은 도움이 된다.

 

마이크로서비스를 공부하고 있다면 한번쯤 읽어 보면 좋을거 같다.


k*******9 2020.07.03. 신고 공감 0 댓글 0
리뷰 총점 종이책
[서평] 엔터프라이즈 자바 마이크로서비스
"[서평] 엔터프라이즈 자바 마이크로서비스" 내용보기
이 책은 336페이지로 꽤 얇은 편에 속하는 서적이다 이 책은 총 2부로 나뉘어져 있는데 1부는 1장부터 5장까지 분산시스템과 마이크로서비스의 전반적인 아키텍처를 다루고, 애플리케이션 서버를 가볍게 만드는 것과 테스팅, 클라우드 네이티브 개발에 대한 개념을 다룬다2부는 서비스 레지스트리, 내고장성, 보안등 마이크로 서비스 개발에 관련된 핵심 내용을 설명한다예제 소스: - 매
"[서평] 엔터프라이즈 자바 마이크로서비스" 내용보기

이 책은 336페이지로 꽤 얇은 편에 속하는 서적이다 


이 책은 총 2부로 나뉘어져 있는데 1부는 1장부터 5장까지 분산시스템과 마이크로서비스의 전반적인 아키텍처를 다루고, 애플리케이션 서버를 가볍게 만드는 것과 테스팅, 

클라우드 네이티브 개발에 대한 개념을 다룬다

2부는 서비스 레지스트리, 내고장성, 보안등 마이크로 서비스 개발에 관련된 핵심 내용을 설명한다


예제 소스: 

- 매닝 출판사: https://www.manning.com/books/enterprise-java-microservices

- 저자의 GitHub: https://github.com/kenfinnigan/ejm-samples


이 책에서 짧게 다루는 마이크로서비스로 마이그레이션할 때 사용할 수 있는 패턴들은 잘 읽어보기 바란다 

마이크로서비스로 마이그레이션을 할 때 필수적으로 적용되어야 하는 패턴이므로 반드시 숙지하고 넘어 가는 것이 좋다


1. 도메인 주도 설계

도메인 주도 설계(DDD)는 도메인에 대한 이해를 소프트웨어에 모델링하기 위한 방법론과 패턴의 모음이다

DDD의 핵심 부분은 제한된 맥락(Bounded Context_ 패턴이다

그 패턴을 사용하면 시스템 각 부분을 한 번에 서로 격리해 모델링할 수 있다


2. 빅뱅 패턴

엔터프라이즈 애플리케이션을 마이크로서비스로 마이그레이션하기 위한 빅뱅(Big Bang) 패턴은 가장 복잡하고 제대로 하기 어려운 패턴이다

빅뱅 패턴은 기존 모노리스의 모든 부분을 하나하나 분리해서 마이크로서비스로 변환하는 과정을 거치며, 마지막에 모노리스에서 마이크로서비스로 모든 시스템이 전체적으로 이동한다


3. 스트랭글러 패턴

스트랭글러(Strangler) 패턴은 마틴 파울러가 정의한 스트랭글러 애플리케이션에 기반한다

마틴은 기존 시스템의 가장자리에 점차 새로운 시스템을 만들어 나가는 방식으로 전체 시스템을 다시 작성하는 방법을 스트랭글러 패턴이라고 묘사한다

새 시스템은 몇 년에 걸쳐 점차 자라나며, 기존 시스템은 점점 줄어들어 더 이상 존재하지 않게된다


4. 하이브리드 패턴

빅뱅 패턴과 스트랭글러 패턴을 살펴봤으므로 하이브리드(Hybrid) 패턴을 살펴 보자

하이브리드 패턴이 기업에서 마이크로서비스 개발로 마이그래이션할 때 가장 많이 사용하는 패턴일 것 같다

이 패턴은 스트랭글러 패턴과 비슷한 형태로 시작한다

차이는 원래의 모노리스를 완전히 없애지 않는다는 점에 있다

이 패턴에서는 모노리스 안에 몇 가지 기능을 계속 유지하며 그 기능을 새로운 마이크로서비스에 통합한다


- 기존 엔터프라이즈 자바 모노리스와 새로운 마이크로서비스 아키텍처를 통해 들어온 요청의 경로

사용자는 브라우저에서 자신이 보고 싶은 애플리케이션의 뷸르 요청한다

뷰는 자신을 만들어내기 위해 필요한 정보를 얻기 위해 컨트롤러를 호출한다

컨트롤러는 비즈니스 서비스를 호출한다 컨트롤러는 여러 소스에서 얻은 데이터를 통합할 수도 있다

게이트웨이는 미리 정의된 라우팅 규칙에 따라 요청을 적절한 마이크로서비스에게 전달한다

마이크로서비스는 요청을 받고 자체 처리를 진행한 후 다른 마이크로서비스를 호출한다

마이크로서비스 사슬의 맨 마지막에 있는 마이크로서비스는 데이터 저장소 계층과 상호 작용해 레코드를 읽거나 쓸 수 있다

새로운 마이크로 서비스 아키텍처로 마이그레이션 하는 비용이 너무 많이 드는 컴포넌트들은 기존 엔터프라이즈 자바 플랫폼에 계속 전개될 수 있다



이 후 이 책은 엔터프라이즈 자바 마이크로서비스에 대해 코드를 분석하며 알아보기 시작한다


이 후 2부에서는 엔터프라이즈 자바 마이크로서비스를 직접 구현하며 아래의 내용들에 대해 구체적으로 알아본다


- 소비할 마이크로 서비스 발견하기

  소비할 서비스를 발견할 수 있으려면 마이크로서비스가 서비스 정보를 읽을 수 있도록 한곳에 관련 정보를 집중해 등록해야 한다 

  서비스 레지스트리는 마이크로서비스 환경에서 그런 중앙 정보 집중소 역할을 한다

  손테일을 사용하면 마이크로서비스 환경에서 제이그룹스나 오픈시프트, 컨설을 서비스 레지스트리 구현으로 사용할 수 있다

  마이크로서비스에서 넷플릭스 리본 클라이언트를 사용하면 서비스 발견을 위한 손테일 토폴로지 구현의 이점을 살림으로써 

  클라이언트 코드 안에서 서비스를 찾는 코드를 제거할 수 있다  


- 내고장성과 모니터링 전략

  분산 아키텍처에 마이크로서비스를 전개할 때 지연시간이나 고장을 견딜 수 있는 힘(내고장성)을 갖추기 위해 

  마이크로서비스를 소비하는 코드를 히스트릭스로 감싸서 폴백, 요청 캐시, 벌크헤드와 같은 내고장성 기능을 추가할 수 있다

  히스트릭스만으로는 내고장성을 완벽하게 처리할 수 없다 히스트릭스 대시보드 등의 도구를 통해 실시간 모니터링을 하는 것이

  전체 내고장성을 성공적으로 향상시키기 위해 꼭 필요하다


- 마이크로서비스 보안

  키클록은 Bearer 토큰을 받을 수 있고, 인증 클라이언트를 제공하며, 마이크로서비스에 보안을 부여하면서 쉽게 설정할 수 있다

  키클록으로 사용자가 없이도 인증이 가능하다 마이크로서비스를 호출하는 경우 그 기능이 꼭필요하다

  인증을 제공하기 위해 애플리케이션 UI에 키클록을 통합할 수 있다 그리고 보안이 적용된 RESTful 종단점에 요청을 보낼 때 토큰을 전달할 수 있다


끝으로 스프링 부트 마이크로서비스 프로젝트를 알아보며 마무리를 짓는다


장황하게 설명하지 않고 내용을 잘 축약하여 핵심적인 내용들만 잘 전달하려고 노력한 저자의 노고가 담긴 서적이다 

엔터프라이즈 자바 마이크로서비스에 대해 공부해보고 싶다면 이 책을 통해 공부 해보는 것을 강력히 추천한다



r******1 2020.06.21. 신고 공감 0 댓글 0
리뷰 총점 종이책
[리뷰] 엔터프라이즈 자바 마이크로서비스
"[리뷰] 엔터프라이즈 자바 마이크로서비스" 내용보기
이번에 리뷰할 책은 "엔터프라이즈 자바 마이크로서비스" 입니다.http://www.hanbit.co.kr/data/books/B8925824072_l.jpg마이크로서비스가 도래한 배경부터 장점, 그리고 마이크로서비스를 위한 기반기술(환경), 테스트, 클라우드 deploy, 서비스 discovery, 내 고장성과 모니터링, 보안 등등을 다루고 있습니다.또한 아주 오래된 웹 어플리케이션에 하이브리드패턴을 통해 새로운 마이크
"[리뷰] 엔터프라이즈 자바 마이크로서비스" 내용보기

이번에 리뷰할 책은 "엔터프라이즈 자바 마이크로서비스" 입니다.

http://www.hanbit.co.kr/data/books/B8925824072_l.jpg


마이크로서비스가 도래한 배경부터 장점, 그리고 마이크로서비스를 위한 기반기술(환경), 테스트, 클라우드 deploy, 서비스 discovery, 내 고장성과 모니터링, 보안 등등을 다루고 있습니다.

또한 아주 오래된 웹 어플리케이션에 하이브리드패턴을 통해 새로운 마이크로서비스를 덧붙여가는 과정을 통해 하나씩 필요한 개념들을 배울 수 있습니다. 300페이지의 분량으로 꼭 필요한 부분만 알찬 내용을 담고 있습니다. 



기존 (모든 컴포넌트가 한번에 deploy되는 형태의)모노리스방식의 단점을 얘기하면서, 제한된 context단위의 서비스별로 분산처리하는 마이크로서비스의 개발방식이 생겨나게 되었습니다.


일반적인 WAS는 j2ee등을 지원하기 위해 상당히 많은 기능을 포함하고 있어 매우 무겁습니다.  이에 JeAS(Juest Enough Application Service)라는 실행에 꼭 필요한 기능들만 패키징한 런타임이라는 개념이 생겼고 JAX-RS, CDI, JSON-P 정도의 기능들이 가볍게 동작합니다.

드롭위저드, 파야라 마이크로, 스프링 부트, 손테일 등등이 이런 JeAS런타임들이며 어느것을 선택하느냐에 따라 패키징방법 및 소스의 annotation이 달라집니다.


테스트는 일반적으로 알고 있는 단위 테스트 및 통합 테스트외에 소비자 중심 계약 테스트라는 마이크로서비스 소비자와 마이크로서비스 사이의 계약을 정의하는 합의 문서(pact document)를 기반으로 하는 테스트에 대해서도 다루고 있습니다.


기존 사용하고 있던 서비스에서 마이크로 서비스를 찾아서 호출하는 케이스를 위해 하드코딩된 URL을 통해 호출하는 형태부터 추상화된 라이브러리사용 그리고 최종적으로 레지스트리에 등록된 서비스를 찾아서 이용하는 방법을 넷플릭스 리본을 통해 설명해준다.


마이크로서비스의 보안에 대해선 키클록 오픈소스를 통해 설명한다.


마이크로서비스가 여러 런타임으로 분산되어 있으면 필연적으로 네트웍에서 문제가 발생하는 경우가 많은데 이런 여러 문제상황별로 설명하고 히스트릭스라는 오픈소스를 통해 설명합니다.


그리고 마지막으로 카프카를 통해 데이터 스트리밍에 대한 내용을 다루고 있습니다.




회사에서 여러 컴포넌트로 이루어진 웹서비스를 모노리스방식으로 개발하면서

마이크로 서비스로의 전환이나 도입은 막연히 힘들지 않을까 생각하고 아예 관심도 갖지 않고 있었는데

하이브리드방식으로 기존시스템에 영향을 주지 않고 마이크로서비스형태의 서비스를 추가하는것이 생각보다 어렵지 않을 수 있겠구나 하는 생각이 들었습니다.





메이븐 apache-maven-3.6.2 버전으로는 빌드 및 실행에 문제가 있네요.

[ERROR] Failed to execute goal io.thorntail:thorntail-maven-plugin:2.2.0.Final:package (package) on project chapter1: Execution package of goal io.thorntail:thorntail-maven-plugin:2.2.0.Final:package failed: An API incompatibility was encountered while executing io.thorntail:thorntail-maven-plugin:2.2.0.Final:package: java.lang.AbstractMethodError: null


전 메이븐 3.5.3으로 했을때 이상이 없었습니다.

b****n 2019.09.16. 신고 공감 0 댓글 0
리뷰 총점 종이책
엔터프라이즈 자바 마이크로서비스 - 리뷰
"엔터프라이즈 자바 마이크로서비스 - 리뷰" 내용보기
이번에 엔터프라이즈 자바 마이크로서비스라는 책에 대해서 리뷰를 하게 되었다용어부터가 어렵다 "엔터프라이즈 자바" 그렇다면 엔터프라이즈 자바란 무엇인가에 대해서부터 알아보자엔터프라이즈 자바는 API의 모음과 그 구현을 말한다. API와 구현은 UI로부터 아랫단의 데이터베이스에 이르기까지 웹 서비스를 통해 서로 통신하며 내부 레거시 시스템에 통합된 전체
"엔터프라이즈 자바 마이크로서비스 - 리뷰" 내용보기

 

 
 
 
 
 
 
 

 

 

이번에 엔터프라이즈 자바 마이크로서비스라는 책에 대해서 리뷰를 하게 되었다

용어부터가 어렵다 "엔터프라이즈 자바" 그렇다면 엔터프라이즈 자바란 무엇인가에 대해서부터 알아보자

엔터프라이즈 자바는 API의 모음과 그 구현을 말한다. API와 구현은 UI로부터 아랫단의 데이터베이스에 이르기까지 웹 서비스를 통해 서로 통신하며 내부 레거시 시스템에 통합된 전체 애플리케이션 스택을 제공한다.

어렵다..... 개발자들이 자신의 분야에 맞는 원하는 기능들을 미리 만들어 놓아 좀더 비지니즈 가치를 제공하는 일에 집중할 수 있도록 만들어 주는 기능을 모아놓은것이라고 생각하면 될것 같다.

가장 많이 사용되는 플랫폼으로는 자바 플랫폼 엔터프라이즈 에디션(Java EE)과 스프링(Spring)이 있다. 엔터프라이즈 자바를 사용하는 대부분의 기업 개발자들은 이 두 프레임워크를 사용한다고 한다

그렇다면 마이크로 서비스란 무엇인가? 마이크로 서비스는 한 프로세스 안에 들어가 실행되는 단일 전개로 구성되며, 비즈니스 기능 중 구체적인 일부분을 충족하기 위해 작동된다.

한 마이크로서비스와 다른 마이크로서비스의 전개와 실행은 완전히 분리된다.

 

이 책은 2부로 나뉜다. 1부는 1장부터 5장까지 분산시스템과 마이크로서비스의 전반적인 아키텍처를 다루고, 애플리케이션 서버를 가볍게 만드는 것과 테스팅, 클라우드네이티브 개발에 대한 개념을 다룬다

2부는 서비스 레지스트리, 내고장성, 보안 등 마이크로서비스 개발에 관련된 핵심 내용을 설명한다.

 

Part 1 마이크로서비스 기초

1장은 독자들에게 엔터프라이즈 자바를 소개한다. 특히 모노리스가 무엇이고 왜 모노리스가 생기는지에 대해 설명한다.

2장은 쇼핑사이트의 카테고리 목록을 관리하기 위한 레스트풀 종단점을 개발하는 과정을 보여주면서 마이크로 서비스를 소개한다.

3장은 꼭 필요한 만큼의 애플리케이션 서버라는 개념을 소개하고 그 런타임 시스템을 지원할 때 사용할 수 있는 프레임워크들의 차이를 보여준다.

 

4장은 마이크로 서비스를 사용할 경우 단위 테스트와 통합 테스트가 어떻게 달라지는지 보여주고 테스팅을 쉽게 하기 위한 도구를 소개한다.

5장은 클라우드에 대해 이야기하고 다른 클라우드 한경에서 사용 할 수 있는 여러 서비스 모델을 소개한다.

Part2 엔터프라이즈 자바 마이크로서비스 구현

 
6장에서는 외부 마이크로 서비스가 제공하는 기능을 소비해야 하는 경우 사용할 수 있는 라이브러리와 각각이 어떤 수준의 추상화를 제공하는지에 대해 설명한다.

7장은 6장을 확장애서 마이크로 서비스가 사용하고 싶은 외부 마이크로서비스를 찾을때 필요한 기능을 추가한다.

 

8장은 마이크로서비스와 분산 아키텍처에서 가장 중요한 주제로 실패에 대해 설명하고 어떻게 실패의 영향을 줄일 수 있는지 살펴본다.

9장에서는 마이크로서비스의 보안에 대해 설명하고 키를록을 통해 보안을 달성하는 방법을 설명한다

 

10장에서는 카얌베 모노리스를 다시 살펴보면서 변경하지 않은 상태에서 카얌베를 실행 할 수 있는 방법을 보여준다.

 

 

11장에서는 아파치 카프카의 데이터 스트리밍을 사용해 하이브리드와 마이크로서비스 사이의 데이터 중복을 감소시키는 방법을 설명한다.

 

총평

이 책의 대상 독자로는 최소 5년 이상 엔터프라이즈 자바 개발 경험이 있는 개발자를 대상으로 한다고 한다. 책이 난이도가 좀 있다 마이크로서비스에 대해 개념과 원리를 이해하고

책을 본다면 수월할수 있을것 같다

기업에서 마이크로 서비스를 구현하는 방법에 대해 알고 싶은 개발자에게는 유용할것이다.

자바 개발자가 마이크로 서비스를 성공적으로 구현하는데 필요한 개념, 패턴, 프레임워크에 대해서 잘 설명하였다

 

f*****n 2019.09.14. 신고 공감 0 댓글 0
리뷰 총점 종이책
자바로도 가능한 마이크로서비스
"자바로도 가능한 마이크로서비스" 내용보기
파이썬 고 등으로 쉽고 간단히 마이크로서비스를 만들 수 있지만 보안이나 스케일링을 고려할 때는 결국 자바로 하게 되어있다. 그래서 내부용이나 간단한 것만 아니면 자바로 했겠지만, 이 책은 어떤 서비스든 자바로 마이크로서비스 개발이 가능하다는 것을 알려준다. 오픈스택과 오픈소스 기반의 솔루션들을 함께 사용하면 가능하고, 이 책은 하나씩 그 방법들을 알려준다
"자바로도 가능한 마이크로서비스" 내용보기
파이썬 고 등으로 쉽고 간단히 마이크로서비스를 만들 수 있지만 보안이나 스케일링을 고려할 때는 결국 자바로 하게 되어있다. 그래서 내부용이나 간단한 것만 아니면 자바로 했겠지만, 이 책은 어떤 서비스든 자바로 마이크로서비스 개발이 가능하다는 것을 알려준다. 오픈스택과 오픈소스 기반의 솔루션들을 함께 사용하면 가능하고, 이 책은 하나씩 그 방법들을 알려준다



p****r 2019.09.14. 신고 공감 0 댓글 0
리뷰 총점 종이책
점점 커져만 가고 관리하기 어려운 애플리케이션을 더 나은 방향으로 개선하기 위한 해결책
"점점 커져만 가고 관리하기 어려운 애플리케이션을 더 나은 방향으로 개선하기 위한 해결책" 내용보기
들어가며현재 나와 우리 팀은 프로젝트를 진행하며 필요에 따라 아키텍처를 개선해 나가는 중인데 서비스가 점점 커지면서 유지보수가 어려워지거나 여러 팀과 협업을 하다보니 자연스럽게 마이크로서비스 형태가 되어가고 있다. 서비스를 나누다 보니 외부 트래픽을 적절한 서비스로 분배해주기 위한 API Gateway가 필요하게 되고, 백엔드 서버들간 통신을 위한 내부 gateway나 큐와 같
"점점 커져만 가고 관리하기 어려운 애플리케이션을 더 나은 방향으로 개선하기 위한 해결책" 내용보기

들어가며

현재 나와 우리 팀은 프로젝트를 진행하며 필요에 따라 아키텍처를 개선해 나가는 중인데 서비스가 점점 커지면서 유지보수가 어려워지거나 여러 팀과 협업을 하다보니 자연스럽게 마이크로서비스 형태가 되어가고 있다. 서비스를 나누다 보니 외부 트래픽을 적절한 서비스로 분배해주기 위한 API Gateway가 필요하게 되고, 백엔드 서버들간 통신을 위한 내부 gateway나 큐와 같은 또다른 시스템들을 필요로 하게 되고, 아키텍처는 점점 복잡해졌다.

나중에 알고 보니 이런 복잡한 상황들을 위한 아키텍처가 마이크로서비스 아키텍처이고, 같은 고민을 이미 선배 개발자들이 해왔으며, 이미 이런 것들을 비교적 쉽게 할 수 있는 도구들이 많이 나와있는 상황이었다. 현재 진행 중인 프로젝트가 마이크로서비스를 지향하고 있지만 마이크로서비스에 이해도가 높진 않다고 생각하기 때문에 이러한 도구들을 적극 활용하는 것이 좋다고 본다.

더군다나 자바 기반의 서비스라면 잘 만들어져있는 프레임워크 위에 마이크로서비스를 더 쉽게 구현할 수 있다. 엔터프라이즈 자바 마이크로 서비스라는 이 책에서 이러한 내용들을 잘 설명하고 있다.

책을 읽으며

이 책은 번역서임에도 불구하고 저자를 보지 않았다면 한국사람이 썼다고 생각할 정도로 번역 품질이 좋다. 어색한 문장을 거의 찾아보기 힘들고, 어려운 내용을 이해하기 쉽게 쓰여졌다.

게다가 아래와 같이 설명글도 잘 작성되어 있고,

또 아래와 같이 그림도 많이 포함되어 독자들의 이해를 돕는다.

사실 나는 자바 언어로 개발은 하고 있지 않기 때문에 자바 관련 내용은 크게 도움되진 않았지만 마이크로서비스를 구현하기 위한 방법과 이론은 동일하기 때문에 언어와 무관하게 개념 이해에는 큰 도움이 되었다.

조금 우려가 되는 부분은 나의 경우 업무 특성상 연관된 부분이 많아서 이해하는데 어렵진 않았지만 익숙치 않은 독자들이라면 처음 들어보는 도구들로 인해 혼란스러울 것 같기도 하다는 생각이 들었다. 하지만 이 또한 극복한다면 엄청난 도움이 될 것이라 생각한다.

마무리하며

이번에 읽을 때는 코드 부분은 스킵하고, 훑어내려가며 읽었는데 내용이 너무 좋아 다시 한번 찬찬히 읽어 봐야겠다. 잘 알려진 마이크로서비스 아키텍처 관련 책(?) 이후로 꼭 봐야할 필독서라고 생각한다.


y********7 2019.09.15. 신고 공감 0 댓글 0