반응형

요즘에 한참 클라우드 관련 내용들을 공부하고 도커, 쿠버네티스 에 대한 내용을 보다보니 마이크로 서비스에 대한 내용들을 자주 접하게 되었다. 컨테이너를 사용한 환경에서 어플리케이션을 배포하고 관리 하려면 아무래도 덩치가 큰것 보다는 좀더 작게 모듈화 해서 배포 하는것이 나을 것이다. 어플리케이션의 크기가 작아진다는 것은 간단히 생각해봐도 배포시간이 줄어들고 그렇게 되면 다운 타임 또한 줄어들게 된다. (물론 배포 전략에 따라서 이런 부분들은 없도록 하는게 맞다.) 그래서 나 또한 마이크로 서비스에 대해서 다시 관심을 갖게 되었고 이것저것 책을 찾아보고 읽어보고 있었다. 전부터 관심이 있어서 한번 읽어봐야겠다고 생각은 하고 있었는데 길벗 개발자 리뷰어에 선정되어서 이렇게 책을 접할수 있게 되었다. (베타리더때도 신청을 했었지만 그때에는 선정되지는 못했었다. ^^;)



목차는 아래와 같이 구성이 되어있다.


1장 스프링, 클라우드와 만나다.

2장 스프링 부트로 마이크로 서비스 구축

3장 스프링 클라우드 컨피그 서버로 구성 관리

4장 서비스 디스커버리

5장 나쁜 상황에 대비한 스프링 클라우드와 넷플릭스 히스트릭스의 클라이언트 회복성 패턴

6장 스프링 클라우드와 주울로 서비스 라우팅

7장 마이크로서비스의 보안

8장 스프링 클라우드 스트림을 사용한 이벤트 기반 아키텍처

9장 스프링 클라우드 슬루스와 집킨을 이요한 분산추적

10장 마이크로 서비스의 배포


부록 A 데스크톱에서 클라우스 실행

부록 B OAuth2 그랜트 타입


내가 기존에 알고 있던 내용들은 주로 컨피그 서버나 유레카를 이용한 서비스 디스커버리, 그리고 Zuul 을 사용한 라우팅 정도만 약간 해본 정도였다. 그런데 목차에서 보면 알수 있듯이 그것 이외에 다양한 내용들이 있다. 실패 전략을 통한 복구 패턴(5장), 인증및보안(7장), 그리고 이벤트 처리(8장)가 수록되어있다. 그리고 마이크로서비스 하면 중요하게 생각해야할 모니터링에 대해서 9장에 잘 설명해 주고 있다. 


또 내가 OAuth 2 처음 공부할때에 grant type 이 잘 정의가 안되어서 이해하는데 어려움이 많았었는데 이 내용도 부록을 통해서 설명해주고 있어서 공부하고 있는 입장해서 정말 알찬 구성인것 같다. 



다음은 책 내용을 살펴보자.



코드에 대한 내용과 그 의미들이 코드와 함께 담겨져 있다. 개인적으로 이런 형태의 코드 설명을 좋아하는 편이다. 그냥 종이 위에 코드만 써있는 것보다는 주석 이외에 이렇게 설명을 추가해주면 이해하는데 도움이 많이 된다. 



그리고 내가 읽으면서 가장 맘에 드는 부분이다. 마이크로서비스에 대한 개념과 구성을 거의 빠짐없이 그림으로 설명을 다 해준다. 마이크로 서비스 자체가 작은 단위로 쪼개서 전체 시스템을 구성하기 때문에 머릿속에서 그 큰 그림을 떠올리기는 쉽지가 않다. 어디에서 부터 시작을 해야 할지 막막해질 때도 있다. 그런데 이 책에서 고맙게도 구성, 개념을 알기 쉽게 그림을 통해서 설명을 해준다. 이 부분이 이 책의 가장 큰 장점인것 같다. 


책의 전체적인 내용들을 봤을때에는 초보자들을 위한 책이기 보다는 어느정도 Spring Boot 에 대한 지식을 가지고 있는 개발자에게 도움이 되는 책인것 같다. Spring Boot 에 대한 책이 아니라서 Spring Boot를 모르는 사람이 보기에는 코드부터가 어려울 수 있다. 그래서 Spring Boot 로 개발을 해봐서 코드를 이해하는데에 문제가 없는 분들이 마이크로 서비스를 이해하는데 많은 도움을 줄수 있는 책이라고 생각된다. 



728x90
반응형
반응형

번역시에 부족한 부분이 있을 수 있습니다. 잘못 표현 되었거나 수정이 필요한 부분이 있다면 언제든지 알려주세요.



한빛 미디어 링크 : http://www.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS4213538104

원문 :  A quick reminder on HTTPS everywhere



HTTPS "모든 곳(Everywhere)"은 로그인 페이지나 기부를 받는 페이지만을 의미하는 것이 아닙니다. 전부 다를 의미합니다. 

 

HTTPS Everywhere! 플러그인은 브라우저에서 https:// 를 사용하지 않는 사이트는 보안에 취약하다고 사용자에게 경고합니다. 모든 곳에서 HTTPS를 사용하는 것은 좋은 선택입니다. 그리고 여기에서 "모든 곳"은 홈페이지에 있는 전부를 의미합니다. 단지 로그인 페이지나 기부하는 페이지를 의미하는 게 아닙니다. 전부 다를 의미합니다.

 

Eric Meyer가 지적했듯이 모든 곳에 HTTPS를 사용하는 데는 몇 가지 단점이 있습니다. 캐싱을 중단하기 때문에 위성과의 연결이 제한되어 있는 사람들에게 웹 속도를 훨씬 더 느리게 만듭니다(제 3 세계의 대부분이 해당됩니다). 그리고 여러 가지 이유 때문에 오래 된 브라우저를 사용해야만 하는 사람들에게 문제가 됩니다(세상에는 당신이 생각하는 것보다 더 많은 구형의 브라우저나 운영체제들이 있습니다). HTTPS를 사용할 수 없는  하위 레벨 프로토콜로 처리되는 도메인 네임과 IP 주소는 생각했던 만큼 사적인 공간이 아닙니다. 그래서 좋은 해결책은 아니지만 꼭 필요한 것입니다.

 

진짜 문제는 HTTPS의 단점이 아닙니다. 저는 이것이 왜 사람들에게 영향을 미치는지 묻는 단순한 비상업적 사이트를 운영하는 사람들에게 점점 더 많은 불평을 보고 듣습니다. 만약 당신의 사이트가 단순히 읽기 전용이고 텍스트 전용이어서 논쟁의 여지가 없다면 암호화 보안이 필요할까요? 불행히도 당신은 필요하다고 말 할 것입니다. 거기에는 이유가 있습니다. ISP는 웹을 탈취하고 (네트워크 중립성( Network Neutrality)손실에 대한 제한이 없기 때문에 단지 미국만의 문제가 아닙니다) 자체적으로 다음과 같은 중간자 공격(man in the middle acctack)을 합법적으로 실행할 수 있습니다..

  • 당신의 허가, 동의, 또는 보상 없이 그들의 광고를 삽입합니다.
  • 허가나 동의 없이 사이트 사용자의 사용 기록을 수집하고 판매합니다.
  • 사이트의 일부를 감지하거나 재작성 합니다.

첫번째와 두번째는 이미 일어나고 있으며 세번째도 아마 일어나고 있을 것입니다(위치에 관계없이 유럽 시민을 보호하는 GDPR은 ISP가 인터넷 사용 기록을 수집하고 판매하는 것을 방해할 수 있습니다. 하지만 저는 기대하지는 않을 것입니다).

 

어제 조금 뒤져본 결과 HTTPS 를 사용하지 않는 많은 사이트들을 발견했습니다. 이들 사이트 중에는 아이비 리그 대학들(Cornel, 정신차려요!), 많은 비영리기관(내가 속한 몇몇 기관들을 포함해서), 몇몇 유명한 신문과 잡지사들, 지역 도서관, 그리고 많은 중소기업들이 포함되어 있습니다. 아이러니하게 이들 대부분의 사이트들은 기부금을 받고 접근이 제한된 자료를 읽고, 심지어 온라인으로 물건을 파는 페이지들은 이미 HTTPS를 사용하고 있습니다(항상 그렇지는 않지만). 전체 사이트를 보호하는 데에는 큰 변화가 필요하지 않습니다. 대부분의 경우 전체 사이트에 HTTPS를 사용하는 것은 제한된 페이지만 보호하는 것보다 쉽습니다.

 

단순한 정적 사이트 또는 HTTPS를 구현할 기술력이 없는 그룹이 운영하는 사이트에서 HTTPS는 관리적 측면에서 부담이 크다는 것에 동의합니다. Let's Encrypt와 같은 서비스들은 부담을 일부 덜어줍니다(Let's Encrypt는 무료 인증서를 제공하고 몇 번을 클릭으로 HTTPS를 설정하는 과정을 줄여줍니다). 하지만 여전히 해야만 하는 일들은 있습니다.

 

특히 공격을 받을 때에는 단순하고 우아한 것은 없습니다. 그리고 웹은 해적 ISP, 적대적인 정부(약간은 다른 문제이지만 관련이 있는), 그리고 또다른 요인들로부터 공격을 받고 있습니다. 문제가 있긴 하지만 HTTPS가 해결책입니다. 제가 장담하건데 기술적인 오버헤드를 다룰 능력이 거의 없는 사이트에 부담을 주지만 더 나은 해결책이 없습니다. 네, 우리는 더 나은 해결책을 가지고 있습니다. IPSec와 IPv6는 이 문제를 원활하게 해결해줍니다. 하지만 우리는 20년 넘게 이것들이 보급되기를 기다리고 있고 여전히 기다리고 있습니다. 이것들이 우리가 지금 해결 해야 할 문제들입니다.

 

"내 사이트에는 암호화가 필요하지 않습니다." 라고 말하는 것은 아무 도움이 되지 않습니다. "나는 숨길게 없어서 프라이버시가 필요없습니다" 라고 말하는 사람보다 더 도움이 되지 않습니다. 당신이 할 때까지 프라이버시나 HTTPS는 필요없으며 너무 늦습니다. 사용자들을 위해서 해야 합니다.

728x90
반응형

+ Recent posts