작은 중소기업에서 너무 낙후된 시스템을 운영하던 도중 시스템 교체 하려고 조사하던 차에 알게되었던 책이였고 해당 책을 토대로 시스템 교체를 진행해보고 느낀 점을 알려드립니다. 다른 분들이 상세히 써두셔서 초보자 관점에서 책을 보시려는 분을 위해서 좀 쉽게 리뷰를 남깁니다. 1. 난이도 (2/5점) 확실히 초급자습서는 아닙니다. 어느정도 흐름을 읽을 수 있는 수준의 개발자가 읽는게 좋습니다. 실제로 부하직원들 데리고 이걸로 교육시키고 현업 투입시켰는데 개발의 개념이 잡혀있지 못한 신입들은 어려워 했으나 1년차 정도 되는 친구들은 곧 잘 하더라구요. 2.적절한 예제 다른 책들은 현업에서 응용하기 좋은 예제가 아닌 정말기초중의 기초만 서술되어있어서 난해했으나 해당 책은 소스코드와 이해관계도가 자세히 작성되어있어서 어지간하면 이해하기 쉽고 응용하기 좋게 되어있습니다. ![]() ![]() 3. 적절한 신기술 다른 책을 보면서 느낀게 쿠버네티스,도커 많이 사용하는 툴이긴하나 현업에서 SI아니면 자주 쓰이는 기술이 아닌데 해당 책에서는 부분을 보고 적절히 현업에서 바꿀 수 있게 스케일링되어있어서 보기 좋았습니다. 특히 도커부분이 꽤 상세히 적혀있어서 마음에 들었습니다. 결론 기본적으로 DB,호스팅,java, 프론트엔드(html/css/js)에 대해서 기초지식은 있어야 합니다. 현업 5개월 차에서 2년차 사이가 보면 좋을 것 같습니다. 신기술 스택이 낮은 팀장급들이 보고 학습하여 사이드,토이 프로젝트 등에 적용해도 좋을 것 같습니다. |
|
클라우드 컴퓨팅이 계속해서 주목을 받으면서 클라우드 환경의 이점을 활용할 수 있는 애플리케이션에 대한 필요성이 점점 더 중요해지고 있습니다.
《클라우드 네이티브 스프링 인 액션》(토마스 비탈레 지음, 차건회 옮김, 제이펍, 2024)은 클라우드 네이티브의 패턴부터 클라우드 네이티브 애플리케이션 구축·개발·테스트·배포·운영에 필요한 개념과 기술을 실용적인 접근법으로 학습할 수 있는 책입니다. ![]() 《클라우드 네이티브 스프링 인 액션》을 읽으면서 느낀 장점입니다. 1. 클라우드 네이티브의 개념부터 시작하여 보안, 모니터링, 테스트, 지속적 배포 등 과 함께 클라우드 네이티브 개발과 관련된 광범위한 주제를 다룹니다. 2. 실제 사례에 중점(온라인 서점)을 둔 클라우드 네이티브 애플리케이션을 처음부터 차례대로 구축할 수 있습니다. 3. 서버리스, 그랄VM, 케이네이티브 등 최신 기술을 습득할 수 있습니다. 4. 스프링 부트 버전 2.x부터 3.x 까지 저자의 지속적인 업데이트로 편리한 실습을 할 수 있습니다. ![]() ![]() 추천 독자로는 스프링 개발자로 스프링 프레임워크로 클라우드 네이티브 애플리케이션을 만들기 위한 기술을 확장하고자 하는 개발자에게 꼭 필요한 책입니다. 두 번째로 클라우드 엔지니어입니다. 클라우드의 활용부터 스프링을 이용한 개발까지 배울 수 있습니다. 마지막으로는 데브옵스(DevOps) 엔지니어입니다. 클라우드 네이티브 애플리케이션의 배포, 모니터링 및 운영을 다루는 책을 통해, 스프링 개발자와 함께 일하는 DevOps 엔지니어에게 유용할 거라 생각합니다.다만, 이 책은 자바와 스프링 관련 기술에 대해 어느 정도 익숙하다고 가정하고 있는데, 자바와 스프링에 대해 잘 모르는 독자들에게는 어려울 것이라 생각합니다. ![]() ![]() 기술을 다루는 사람들은 최신 유행의 최첨단 기술에 쉽게 사로잡힌다. 특정 기술이나 접근 방식이 문제를 해결할 수 있는지 파악하는 것이 핵심이다. 《클라우드 네이티브 스프링 인 액션》, p.25 《클라우드 네이티브 스프링 인 액션》은 스프링 프레임워크를 사용하여 클라우드 네이티브 애플리케이션을 구축하는 데 필요한 지식과 기술을 아낌없이 제공하는 책입니다. 클라우드 네이티브에 대해 잘 모르는 독자도 이해할 수 있게 코드에 대한 자세한 설명, 아키텍처와 프로세스를 파악할 수 있는 그림으로 다양하면서도 복잡한 주제를 잘 담아냈습니다. 책에서 인상적이었던 부분은 클라우드 네이티브 애플리케이션을 처음부터 제작하는 과정이었습니다. 스프링 그리고 도커와 쿠버네티스를 활용하여 애플리케이션을 배포하는 과정으로 기술에 대한 이해를 할 수 있고, 이를 통해 필요한 기술을 프로젝트에 적용하는 데 기반을 마련할 수 있을 것 입니다. 아쉬웠던 점은 클라우드 컴퓨팅 서비스로 디지털오션을 활용했다는 점입니다. 우리나라의 많은 회사와 개발자들이 사용하는 아마존의 AWS를 활용하는 방법을 부록으로 제공했다면 더 좋았을 것 같습니다. ![]() ![]() 실전 중심의 설명이 가득한 이 책을 통해 클라우드 네이티브 기술을 터득한다면, 클라우드 중심 IT 환경으로 변하고 있는 현재의 상황에서 유리한 고지에 올라설 수 있을 것입니다. 클라우드 네이티브 이해를 넘어, 실습을 통해 클라우드 네이티브에 대한 역량을 확장시키고자 하는 개발자와 엔지니어에게 《클라우드 네이티브 스프링 인 액션》을 추천합니다. "해당 서평은 제이펍 출판사로부터 책을 제공받아 작성했습니다." #클라우드, #스프링, #클라우드네이티브, #컨테이너, #쿠버네티스, #지속적배포, #보안, #확장성, #복원력, #테스트, #도커, #모니터링, #관측가능성, #스프링클라우드, #서버리스, #제이펍 |
|
book reviews sponsored by publishers (Lang : KR) 제이펍 출판사 IT 전문서 리뷰어 3기 선발이 되어 책을 받았다. 700페이지가 넘어가기에... 정말 각잡고 봐야한다. 주말에 몰빵해서 봐야겠다는 마인드는 아마 안될 확률이 매우 높다.(경험담) 확실히 교양책은 아니다. 완전 전문서적에 해당하며, 내용은 엄청 어렵진 않다. 대략 미디엄 난이도가 맞는 것 같다. (제이펍 오피셜도 똑같다) 코드를 이해하냐 못하냐에 따라 해당 책을 얼마나 활용할 수 있을지 달려있다고 생각한다. 하지만, 코드를 이해 못한다고 해서, 활용을 못할 정도로 가치가 없다? 그건 또 아니다. 클라우드에 관심이 있는 유저라면, 반드시 읽어야 하는 필독서라고 생각한다. (그냥 하는 말이 아니라 진짜 강추) 2019년도에 Google Cloud Study Jams에서 팀장을 맡으며, 1년간 《입문, 중급, 심화》를 전부 이수하며, Google 수료증까지 4개를 받으며 실무 실습을 해본 입장으로써 솔직히 아직까지 애매했던 부분을 이 책을 읽으면서 바로 잡을 수 있어서 너무 기뻤고 흥분됐다! 이 책은 코드가 자바로 구성되어있다. But, 진짜 몰라도 된다! 일단 클라우드에 관심 있다고 그냥 사서 읽어봐라 클라우드에 관심이 더 생긴다면 이후에 자바 프로그래밍을 연습하고 다시 정독 해도 충분하다고 본다. 또, 웹 애플리케이션 구축 경험 + 스프링 핵심기능에 대한 기본 지식이 있으면 좋다. 도커와 쿠버네티스 경험은 없어도 상관없다. 인프라 구축 교양지식 정도 있으면, 어느정도는 책의 흐름을 따라가며 읽을 수 있을거라 생각한다. (100%는 불가. 그만큼 책을 읽기전에 준비해야될 사전 지식이 필수다.) ----- 챕터 리뷰 : 너무 많아서 대표적 내용들만 소개함. 1.) 코드에서 프로덕션까지의 클라우드 네이티브 여정을 위한 준비 단계 (클라우드 네이티브 용어 역사 설명으로 시작) 2.) 스프링 부트와 쿠버네티스를 통해 프로덕션에 바로 사용할 수 있는 클라우드 네이티브 앱을 구축하기 위한 주요 사례와 패턴 소개 3.) 복원력, 보안, 확장성, API, 게이트웨이 등 클라우드에서 실행되는 분산 시스템의 기본 속성과 패턴을 다룬다. 또한 리액티브 프로그래밍과 이벤트 중심 아키텍처에 대해서도 설명 4.) 통합 가시성, 설정 관리, 비밀 관리 및 배포 전략과 같은 문제의 해결을 통해 클라우드 네이티브 앱을 프로덕션에 사용할 수 있도록 준비하기 위한 마지막 몇 단계를 안내한다. 또한 서버리스 및 네이티브 이미지에 대해서도 다룬다. ----- 이 책은 실제 클라우드 네이티브 시스템을 구축한 후에 프로덕션 환경에 배포할 수 있도록 실습 위주의 내용이 담겨있다. 해서, 코드 설명을 정말 세세하게 해놨다. (Java언어는 정말 오랜만인데, 덕분에 다시금 떠올릴 수 있어서 이건 정말 칭찬하고 싶다.) 이해가 안될 부분은 코드 주석을 보면서 이해하기 쉽다. 코드가 안 읽히면 무시하고, 일단 흐름이라도 파악 하는 느낌으로 정독을 하길 추천한다. 책을 완주하면, 스프링 부트와 쿠버네티스를 사용하여, 클라우드 네이티브 앱을 설계, 빌드, 배포할 수 있는 실력을 가질 수 있다! 필자는 Offensive Security 분야의 Penetration Testing/Red Teaming길을 걷고 있으며, 이제는 침투 실습을 많이 해봤기에 그동안 즐긴 컨텐츠를 직접 개발하고 싶어서, 최근에는 인프라 구축 역할인 Green Team의 논문을 완독했으며 추가적으로 나아가 이런 책들을 보며 학습하고 실습하며 프로젝트를 진행하고 있다. 그리고, 배운 것들을 객관적으로 시험하기 위해 해커톤, 창업 경진대회를 준비하고 있다. (팀을 이룬 상태이며 인프라 구축 방향으로 진행중이다. 자세한건 전략노출로 비밀이다.) 여기까지 오는것에 제이펍 출판사에서 《서평단, 베타리더》에 선발되어서 더욱 진행속도를 높힐 수 있었다. 또, 이번에는 IT 전문서 리뷰어 3기에 선정되어 이와 같은 혜택을 누리고 있으니, 제이펍 출판사에게 정말 감사의 의미를 표한다. 이 책은 여기서 끝나는게 아니라 두고두고 볼거 같다. 필자처럼 더이상 실습에 만족하지 못하고 즐긴 컨텐츠를 직접 만들고 싶다면, 망설이지 말고 구매해서 즐겨보길 부디 바란다. 남들이 만든 컨텐츠를 그저 실습하는 것과 내가 직접 만드는 관점은 색다른 재미와 많은 것들을 배운다. #제이펍 #제이펍전문서 #제이펍서평단 #Jpub #jpub #출판사 #제이펍출판사 #서평단 #hackers #hacker #hacking #anonymous #cybersecurity #kalilinux #programming #hack #hacked #technology #cybercrime #linux #ethicalhacking #coding #programmer #computerscience #malware #hacks #bhfyp #redteam #tryhackme #hackthebox #pnpt
|
|
시중에 나온 클라우드에 관련된 책들을 보면은 아쉬운점이 많습니다. 책은 읽어도 도커나 쿠버네티스에 대한 명령어만 즐비한 책들이 많기 때문이죠. 이럴때 드는 생각은 닭이 먼저 인지 달걀이 먼저인지 고민하게 됩니다. 기술을 명확하게 알아야 하는지. 비즈니스 설계를 명확하게 하고 접근을 해야하는지 말이죠. 이번에 소개 드릴 책은 <클라우드 네이티브 스프링 인 액션>입니다. 이 책은 기술과 비즈니스 설계를 동시에 배울 수 있는데요. 쿠버네티스 환경에서 스프링을 깊이 있게 다룬 책이라 읽어 보게 됐습니다. 전체적으로 이 책을 요약해 보도록 하겠습니다. ![]() 1) 책의 개발 환경 이 책은 우리나라에 딱 맞는 백엔드 개발 환경을 갖춘 책이라 할 수 있는데요. 개발 언어는 자바이며, 프레임워크는 스프링 부트(v2.7.3)를 사용합니다. 프로젝트 빌드 툴로는 그래들을 씁니다. 그래들을 쓴다고 해서 메이븐에 대한 설명이 없는 것은 아닙니다. 친절하게 책 곳곳에 메이븐에 대한 설명이 되어 있습니다. 개인적으로는 그래들을 코드 읽는 점과 작성하기 편해서 선호합니다. 다만 프런트엔드(SPA) 부분은 앵귤러를 사용해 아쉬웠는데요. 국내에서는 앵귤러를 잘 사용하지 않고 대신 리액트나 뷰를 많이 사용합니다. 아마도 저자분이 계신 덴마크에서는 앵귤러를 꽤 쓰나 봅니다. 그러나 이 책은 프런트를 크게 다루지 않습니다. 주제에 맞지도 않습니다. 보안 부분에서 스프링 시큐리티 설정할 때 프런트 환경이 필요해서 나옵니다. 또한 전체 서비스가 정확하게 돌아가는지 확인하는 화면의 용도입니다. 마치 음식의 소스 같은 역할이라 생각하시면 됩니다. 메인 음식은 당연히 쿠버네티스 환경에 스프링 부트 기반의 MSA 구축하는 것입니다. ![]() 2) 모놀로식과 마이크로서비스 차이점 대부분의 국내 웹이나 모바일 서비스는 사용자가 많지 않습니다. 그래서 모놀로식으로 구현이 하는 경우가 많습니다. REST 형식으로 간단히 만들어서 사용하기 편하기 때문이죠. 하지만 서비스의 규모가 커지게 되면 이야기는 달라집니다. 모놀리식은 서버가 수직으로 커지기 때문에 클라우드에서 비용도 커질 수가 있습니다. 이때 회사는 마이크로서비스로 바꾸는 경우가 많습니다. 도메인 별로 아키텍쳐를 설계해서 사용자가 많은 서버만 확장하면 되기 때문에 비용 부분은 줄일 수 있습니다. 개발적인 측면에서 차이점은 모놀리식 경우 단순하게 프런트 단에 알려만 주면 끝납니다. 다만 마이크로서비스는 서블릿 컨테이너끼리 서로 소통하고 프런트 단에 알려줘야 합니다. 이 부분이 처음인 분들은 되게 낯설게 느껴질 수 있습니다. 이 책은 쿠버네티스 환경에서 도서 도메인을 바탕으로 마이크로서비스를 간접적으로 배울 수 있는데요. 책의 저자가 쉬운 설명과 도식화를 바탕으로 이해하기 쉽게 썼습니다. ![]() 3) 클라우드 네이티브 문화 클라우드 네이티브 문화는 크게 3가지로 나눌 수 있습니다. 자동화, 지속의 전달, 데브옵스입니다. 이 책의 저자는 테라폼, 앤시블을 활용해서 클라우드 자동화하는 것을 추천합니다. 팁만 존재하고 따로 자세한 설명은 없습니다. 이 부분은 분량 문제가 상당하기 때문이라 생각이 듭니다. 지속의 전달은 깃 옵스를 바탕으로 책에서 자세히 설명해 줍니다. 요즘은 개발자가 상향 평준화가 되는 시대인데요. 어떠한 포지션으로 프런트, 백엔드, 데브옵스, SRE 등으로 나눠는 집니다. 해당 포지션에 대한 지식은 높아야하며 나머지 분야는 어느 정도는 대화가 될 수 있을 만큼 지식은 갖춰야 된다고 봅니다. ![]() PS 정말 매력적인 책입니다. 다소 책이 두껍지만 시간 가는 줄 모르고 술술 익힌 책인데요. 도서에 대한 도메인은 모르는 사람이 없을 만큼 쉽지만 막상 마이크로서비스로 구축하게 되면 다소 어려울 것입니다. 책에서 나온 도메인 대로 바로 접근 하기보다는 머릿속으로 나라면 이 도메인에서 이렇게 설계했겠다 등으로 적어 보시고 저자와 나와의 생각이 얼마나 어떻게 다른지 사색을 해보는 시간을 가져보는 것을 추천합니다. 아키텍쳐 설계는 하루아침에 늘지 않기 때문입니다. 이 책은 스프링으로 간단히 게시판은 만들어 봐야 하며 도커와 쿠버네티스 명령어에 대한 기본적인 이해는 있어야 합니다. 또한 주니어 백엔드 개발자, 데브옵스, SRE들이 보면 서비스 로직과 스프링에 대한 이해가 같이 될 것입니다. 또한 SI나 스타트업의 백엔드 개발자분들은 마이크로서비스를 설계하는 데 있어서 도움이 돼 추천해 드립니다. |
![]() 이 책은 스프링 부트와 쿠버네티스를 활용하여 클라우드 네이티브 애플리케이션을 설계, 개발, 배포하는 방법까지 자세히 나와있다. 그렇기 때문에 책이 두껍다. (총 736페이지...) 스프링 부트 설정, 코드와 각 코드에 대한 설명, 그리고 도커부터 스프링 보안(OAuth2), 스프링 클라우드, 래빗MQ, 깃옵스, 쿠버네티스등을 담고 있기 때문에 두꺼울 수밖에.... 실제 책 내용에는 "폴라 북숍"이라는 애플리케이션을 요구사항에 맞게 설계하고, 스프링 부트를 활용해 개발한 후에 클라우드에 배포한 후 쿠버네티스로 배포된 애플리케이션의 관리까지를 담고 있다. 아래는 해당 아키텍처이다. 책 안에 이러한 삽화로 아키텍처를 표현한 부분이 많아서 보기 편했고, 이해하기 쉬웠다.또한 이 책을 읽으면서 가장 좋았던 점은 아래와 같이 각 챕터 마지막 장에 항상 해당 챕터의 요약한 부분이 있어서 처음 접해본 사람이라도 조금이나마 이해하기 쉽게 다가왔다. 그리고 각각의 의존성 라이브러리의 설명까지 있어서 해당 라이브러리가 어떤 것을 하는지 간략하게 정리가 되어있었다. 물론 스프링 부트가 무엇인지, 클라우드, 쿠버네티스가 무엇인지 잘 모르는 사람이 보았을 땐 이해하기 어려울 것 같다는 느낌이 들었지만 '이런 식으로도 애플리케이션을 배포 관리할 수 있구나'라는 것을 책을 읽으면서 알 수 있다는 것이 가장 큰 장점인 것 같았다.마지막으로 쿠버네티스까지는 모르겠지만 이 책을 읽기 전에 스프링 부트와 도커의 지식은 조금이라도 있는 것이 좋을 것 같다는 생각이 든다. 그래야 조금 더 이해하기 쉬워질 수 있을 것 같다. 물론 쿠버네티스까지 어떻게 설정하고 사용하는지를 알고 있다면 이 책은 더 재미있게 읽을 수 있을 것이다. |
제목에서 언급하는 기술 외의 더 다양한 요소들을 경험할 수 있습니다 (메세지큐,보안 등) 이해를 돕는 이미지 자세한 코드 설명 깔끔한 코드 트랜드가 반영된 gradle, yaml 사용이해를 도울 수 있는 요소가 많습니다. 각 내용들에 대해 기초적인 지식만 있다면 해당 책이 큰 도움이 될 것 같습니다. 인프라 학습의 로드맵을 선택한다면 해당 책을 추천합니다. 비용대비 736페이지라는 방대한 내용과 그 구성이 매우 깔끔하여 개발을 즐겨하는 분들이라면 읽는데 큰 부담이 없습니다 읽기전 참고 사항 - 각 내용들에 대해 아주 기초적으로만 알고 있어도 해당 책을 읽는데 큰 부담은 없어보입니다. - 하지만 내가 아예 용어조차 모르고 어떻게 사용되는지 하나도 모른다고 하면, 먼저 관련 기술을 유튜브나 인터넷 자료를 통해 조금이라도 이해하고 책 읽는 것을 추천드립니다. - 스프링 부트에 대한 지식이 아예 없다면 먼저 스프링 부트에 대한 지식을 먼저 습득하고 읽는 것을 추천드립니다 [제이펍 서평단으로 당첨되어서 좋은 성장의 기회를 얻게되었습니다. 감사합니다.] |
|
대규모 분산 시스템을 K8S 기반으로 개발, 운영하고 있습니다. Hadoop Eco에서 동작하는 대부분의 open source나 서비스들은 MSA 아키텍처를 지원하지 않습니다. 목적이 다르기 때문에 MSA와 어울릴 수 없는 구조입니다. 하지만 플랫폼을 이용해 비즈니스 서비스를 하는 App들은 하둡 아키텍처에 종속이 될 필요가 없습니다. 하둡을 제외한 모든 서비스를 K8S로 옮겼는데 실행 플랫폼만 Cloud Native 기반으로 바꾼거지 실제 내부 코드는 기존 legacy와 거의 동일하게 작업을 했습니다. 다만, K8S 플랫폼 자체가 제공해주는 다양한 기능을 활용할 수 있기 때문에 기존 환경보다는 훨씬 유연한 구조를 확보할 수 있었습니다. 문제는 App 내부의 코드를 Cloud Native하게 바꿔야 하는데, 시간/비용 등 주어진 상황에 맞게 개발하기 위해 기존과 유사한 패턴으로 만들었지만, App 하나씩 K8S의 API를 제대로 활용할 수 있는 형태로 개선하고 있습니다. "클라우드 네이티브 스프링 인 액션"은 저와 비슷한 상황에 있는 분들께 아주 좋은 최신 정보를 제공해주는 교재라고 추천합니다. 일단 Spring은 기본적으로 이해하고 있어야 하고, K8S를 기반으로 개발/운영을 해보신 분이라면 Spring + K8S를 통합하는 코드를 만드는 방법을 쉽게 배울 수 있습니다. 기본적인 클라우 네이티브 개념에 대한 설명 -> 다양한 패턴 이해 -> Spring VMC/Restful 모델 이해 -> 설정 관리 -> 컨테이너로 DB 실행 -> Spring Boot의 컨테이너화 -> Spring Boot를 컨테이너로 배포하고 서비스에 노출하는 API 사용 -> 그리고 비동기 구조 적용과 API 게이트웨이 활용 하나의 Cloud Native App을 만들기 위해 필요한 대부분의 과정을 하나의 흐름으로 설명하고 있습니다. 이정도만 기초로 이해하고 있고, 개발팀 내부에 지식의 공유만 이루어진다면 세부적인 기능 개선은 얼마든지 빠르게 적용할 수 있는 단계까지 만들어주는 책이라고 생각합니다. 저자가 하고 싶은 말이 정말 많은 것 같은데 기본적인 수준으로 잘 엮은 책이라고 느꼈습니다. |
|
책은 매우 두껍습니다. ![]() 이 책을 처음볼때 주안점은 기존 Spring 책과 무엇이 다른가? 어떤 독자 분들이 보시면, 도움되는 내용이 있는가 살펴봐야 합니다.
![]() 책에서 소개되는 효과적인 학습 방법으로 소개되는 flow는 아래와 같습니다. 가사의 온라인 서점 시스템을 개발하는 과정을 처음부터 진행하는 방식으로 구성되어 있습니다. ![]()
Spring을 통해서 서비스 하기 위한 거의 모든 것이 망라되어 있는 AllInOne같은 책이라고 생각이 됩니다. 책이 내용에 대해서 언급되어 있는, 장표를 추가합니다. 저자분도 실제 업무에서 사용이 가능한 기술적인 내용에 주안점을 두고 집필하셨다고 합니다.
■ 책이 매우 친절합니다. · 처음에 책을 살펴보면서, 조금 놀란 부분은 책이 무조건 어려운 내용으로만 되어 있을것 같았는데, 전혀 그렇지 않았습니다. 분명 선수 지식이 필요한 부분은 있지만, 매우 상세히 내용에 대해서 설명하고, 무엇가 하나하나 이론에 기반하여서 어떠한 이유로 이 기술이 사용되는지 공감대를 형성하는 구성으로 되어 있어서 책은 두껍지만, 하나하나 필요한 부분 보아도 충분히 도움될수 있게 구성이 되어 있습니다.
아래 그림처럼, 빌드 설정에 대한 설명을 보면서 매우 상세하게 내용 구성이 되어 있는 것을 바로 알수 있었습니다. ![]()
· 책의 두께를 보고, 기본지식이 있다고 관련 부분에 대한 설명이 Skip되는 부분이 있을수도 있다고 생각을 했는데, 전혀 그렇게 느껴지지 않았고 다른 책들보다 더 친절하다는 생각이 들었습니다. ■ 클라우드 네이티브란? · 처음 해당 용어에 대해서 어색한 부분이 있을수 있는데, 저자분은 명확히 어떠한 이유로 이 단어가 나왔고 기존의 서비스 설계에서 차이점이 무엇인지 설명합니다. · 이 용어는 2010년에 폴 프리맨틀이라는 분이 블로그에 올려서 처음 언급되었는데, 그때 당시에 MSA, 도커, 데브옵스 쿠버네티스, 스프링부터 같은 개념과 기술이 아직 존재하지 않았던 시가리고 합니다. (이 부분이 많이 새롭고 의아했습니다.) · 가장 큰 개념 및 설명하려고 하는 의도는 기존에 클라우드가 아닌 기존 애플리케이션을 클라우드에 옮기는 것은 클라우드 네이티브가 아니라는 개념입니다. · 개념도 ![]()
이렇게 많은 구성요소들을 고려해야 최적으 클라우드 네이티브 구성을 할수 있는 부분은 매우 독자 입장에서 체크포인트를 제공해주는 부분이라서 평소 생각하지 않은 사항들을 잘 살펴볼수 있습니다. ·CNCF재단 : 클라우드 네이티브 컴퓨팅 재단이며, 쿠버네티스 등 클라우드 오픈소스를 학습할때 많이 언급됩니다. 원래 쿠퍼네티스는 구글에서 만든 오픈소스이지만, 현재 CNCF재단의 오픈소스로 클라우드 생태계를 발전하기 위해서 관리되고 있다고 알고 있습니다.
· 보통 ks8환경 구축시 많이, 적용하시는 구성 및 12가지 요소에 대해서 설명되어집니다. ![]()
·
■ 클라우드 네이티브 개발을 해보자 · 이제 본격적으로 개발을 하게 될때, 아래와 같은 항목이 설명되어 집니다. - 클라우드 네이티브 프로젝트의 부트스트래핑 하나의 코드 베이스, 하나의 애플리케이션으로 관리를 해야 합니다.
- 임베디드 서버와 톰캣을 사용한 작업 - 스프링 MVC를 사용한 RESTful 애플리케이션 구축 - 스프링 테스트를 사용한 RESTful 애플리케이션 구축 @SpringBootTest - 깃허브 액션을 사용한 빌드 및 테스트 자동화
· 4장. 외부화 설정 관리 여러대의 서버들의 유연하게 동작을 잘 동작하기 위해서는 configuration의 관리 및 사용법이 매우 중요합니다. 일반적인 Spring 관련 설정 이외의 고려해야 하는 사항은 무엇일지 살펴봅니다.
![]()
일반적인 Spring에 대한 설정을 파악하기에도 아주 좋은 내용으로 구성되어 있습니다. 속성 소스이 우선순위 목록들 (@TestPropertySource, System.getenv()등등...) 설정 데이터 파일은 더 세부적인 우선 순위들이 있습니다. - jar외부에 패키칭, 내부에 패키징 application.yml, application-{profile}.properties등등에 대해서 동작 원리를 알지 못하면 다양한 서버에 배포되는 경우, 의도하지 않은 flow대로 흐름이 진행될수 있습니다.
· 5장. 클라우드에서 데이터 저장과 관리 이 책에서는 PostgreSQL을 컨테이너로 실행을 해서 실습을 합니다. Spring Data JDBC아니면, Spring Data JPA 어떤것을 사용해야 좋을지 고민하는 부분에 대해서 p.187에서 설명을 하는데, 일반적인 내용보다 더 이해가 좋았고, 최종적으로 이 책에서는 클라우드 네이티브 애플리케이션과 잘 맞고 가지고 있는 장점이 명확해서 JDBC를 이용해서 실습을 진행합니다.
실습에 전혀 문제가 없도록 각종 설정사항들이 잘 설명되어져 있습니다. 이러한 설명이 내용이 평소에 관습처럼, 또는 크게 의미를 가지지 않았던 항목의 사항이 언급되어서, 일반적인 spring을 공부하는 독자분이라고 해도 큰 도움을 받을수 있을 것 같습니다.
- JDBC 감사 활성화 설정에 대한 부분 @CreateBy, @CreateDate, @LastModifiedBy, @LastModifiedDate에 대한 부분도 좋았습니다. - 스프링 및 테스트 컨테이너로 데이터 지속성 테스트 하기 - 플라이웨이를 통한 프로덕션 환경에서의 데이터베이스 관리 : 자바 생태계에서 데이터베이스 변경 사항의 추적, 버전 관리 및 배포를 위해서 가장 많이 사용하는 2가지 종류 (플라이웨어, 리퀴베이스)가 있습니다.
· 6장. 스프링 부터 컨테이너화 - 도커를 활용해서 컨테이너 이미지로 작업하고, 패키징, 도커 컴포즈를 사용한 컨테이너 관리, 깃허브 액션을 사용한 이미지 빌드 및 푸시 자동화를 통해서 이제 클라우드 네이티브 구성을 쉽게 관련 소스를 모듈화 하는 방법이 소개됩니다. - 도커를 한번이라도 사용해보시거나, 경험해보셨으면 조금더 쉽게 접근 가능하지만 그래도 처음부터 어떠한 동작방식으로 사용되는지 책을 통해서도 이해하실수 있는 내용으로 구성되어 있습니다.
· 7장. 스프링 부트를 위한 쿠버네티스 기초 - 이제 실제 이론적으로 필요한 마지막 기술요소인 ks8에 대해서 다룹니다. 항목) - 도커에서 쿠버네티스로 이동 - 스프링 부트 애플리케이션을 쿠버네티스에 배포 - 서비스 검색 및 부하 분산의 이해 - 확정성 및 일회용 애플리케이션 구축 - 로컬 쿠버네티스 개발 워크플로 구축 - 깃허브 액션으로 쿠버네티스 매니페스트 검증 파드, 틸드 사용, 배포 파이프라인 구성등 실제 크게크게 시스템 구성 및 로컬 개발환경을 하나하나 구축해 나갑니다.
이렇게 여러기술요소를 하나의 흐름대로 깊이있게 하나의 흐름대로 실습 및 이론적인 부분을 설명하는 책은 잘 못본것 같은데, 매우 깊은 인상이 남았습니다. 매우 흥미롭게 실습까지 진행할 수 있는 구성으로 되어 있습니다.
■ 클라우드 네이티브 분산 시스템 8장 부터는 실제적으로 일반적인 서비스 개발과 다른 분산시스템 구성을 위한 목차로 구성됩니다.
· 리액터와 스프링의 비동기 및 비차단 아키텍처를 활용합니다. ![]()
리액터를 사용할때, map, flatMap에 대한 선택에 가이드를 제공합니다. 스프링 웹플럭스로 REST API를 사용해서 주문서비스 실습을 연습합니다. 오류가 발생시, 재시도, 롤백, 오류처리, 타임아웃에 대한 이슈가 발생했을때의 처리 전략을 클라우드 구성시에 필수적인 부분인데 잘 설명되어 있습니다. @DataR2dbcTest, @WebFluxTest등을 통한 테스트케이스~ 진행
· API 게이트웨이와 서킷 브레이커 이제 조금 다른 아키텍처 구성이 필요한 시점이고 그것에 대한 내용이 언급됩니다. 기존에 없었던 새로운 용어들과 개념이 들어갑니다. 스프링클라우드 서킷 브레이커 및 레질리언스J로 서킷 브레이커 설정 레디스를 사용한 사용율 제한기 정의, 스프링 세센 데이터 레디스를 활용한 분산 세션관리 쿠퍼네티스 인그레스로 애플리케이션 트래픽 라우팅 설정 등 스프링 리액티브 스택을 토대로, API게이트웨이를 구현합니다. API게이트웨이는 마이크로서비스와 같은 분산 아키텍처에서 클라이언트가 직접 내부 API를 연결하지 않도록 하기 위해 일반적으로 사용하는 패턴이다. ![]()
· 10장에서는 이벤트 중심 애플리케이션과 함수라는 부분인데, 이벤트 처리르 위해서 여러 접근 방법을 제공합니다. 래빗MQ를 이용한 메세지큐 방식 및 스프링 크라우드 스트림을 이용한 이벤트 처리, 생성, 소비등을 다룹니다.
· 11장 , 12장에서는 보안.인증과 SPA에 대해서 다룹니다. 일반적인 스프링 보안 및 키클룩을 이용한 사용자 계정 관리, 오픈ID, JWT을 통한 방식이 소개되는데 JWT는 많이 사용하고 계시지만 다른 개념은 어떠한 방식에 차이점이 있고, 적용하기 위해서는 무엇을 해야 하는지 소개되어져서, 업무에 활용범위가 더 넓어질것 같습니다.
책에 앞에서도 소개했던, 저자분이 실제 업무에서도 도움될수 있게 구성하신다는 의미가 책의 전반적으로 일치하신다는 생각이 들었고, 번역도 매우 어색하지 않고 기술적인 부분이 잘 소개되도록 설명되어 집니다. 스프링 보안, OAuth2를 활용한 API보호, 권한 부여등은 일반적인 Spring을 활용한 Application에서도 필요한 부분이 활용가능합니다.
· 마지막 4파트에서는 구성을 하였을때, 실제 운영에 필요한 모니터링, 설정, 배포등에 대해서 다룹니다. 목자를 보시면, 어떠한 기술들이 언급되어 있는지 파악이 용이하여서 가져와 보았습니다.
클라우드 환경에서의 모니터링을 및 특화된 기술도 있고, 일반적으로 사용이 가능한 기술도 있습니다. 들어본 기술도 있고, 처음 이 책을 통해서 접한 기술도 있습니다. 이러한 부분들이 모두 담당하는 서비스에 바로 부분적으로 학습하고 시도해볼만한 기술들이 잘 소개되어 지고 실습을 진행할수 있게 구성되어서 매우 좋았습니다.
■ 대상 독자분 · 클라우드 네이티브에 관심은 있으시지만, 정의 및 개념에 대해서 학습을 하고 싶으신 분 · 스프링의 전제적은 서비스를 경험하고 다양한 기술을 조합해서 사용해보고 싶으신 분 · 이책이 비싸다고 느껴지는분(실제 이책의 내용은 금액보더 더 큰 지식을 제공하는것 같습니다.) |
![]() 웹 프로그래머에게 스프링, 클라우드, 컨테이너, 도커, 쿠버네티스. 이 키워드들은 빼놓을 수 없는 주제입니다. 이 책은 클라우드 환경에서 어떻게 웹 서비스를 서빙 할 지에 대한 방법론과 그에 대한 실습들로 구성되어 있습니다. ![]() ![]() ![]() ![]() ![]() 전반적으로 클라우드 환경에서 프로젝트나 프로덕트를 다루기 위한 내용들로 구성되어 있습니다. 그리고 책을 보면서 인상적이던 내용이 몇가지가 있는데 ![]() 1. 이미 서비스하고 있는 제품을 클라우드 환경으로 옮기는 것이 항상 최선의 선택인가? 에 대해 항상 최선의 선택이 아니며 그에 대해 필자는 클라우드 환경으로 옮겨야 할 상황을 4가지 포인트로 설명하고 있습니다. ![]() 2. 이 책에서는 요즘 핫한 주제인 마이크로아키텍처(MSA)로 예제 코드를 구성하고 있습니다. 하지만 클라우드로 환경을 옮길 때에 꼭 마이크로아키텍처에 포커스를 맞출 필요는 없다는 뉘앙스로 얘기하고 있고, ![]() 3. 가장 중요한 것은 오류를 당연하게 봐야 한다는 내용이었습니다. 이 책에서는 오류로 인해 서비스가 멈추는 상황에서 클라우드 상에서 어떻게 해결해야 하는 지에 대한 해답도 알려주고 있습니다. ![]() ![]() 그리고 책의 또다른 장점으로 도식화와 각 예제코드들에 대해 주석으로 해당 코드들이 어떤 역할을 하고 있는 지 알 수 있어서 좋았습니다. 책으로 공부할 때의 기대는 블로그 혹은 유튜브보다 좀 더 완성되고 퀄리티 있는 지식을 얻기 위해서라고 생각합니다. 그리고 이 책은 이 기대에 충분히 부응하는 책인 것 같습니다. 제 리뷰가 책을 구매할까, 말까 하는 고민에 조금이라도 도움됐으면 좋겠습니다. 추천독자 자바와 스프링에 대해 어느정도 다뤄본, 이후 클라우드에서 본인의 프로젝트를 운영하고 싶은 취업준비생 클라우드 환경으로 프로젝트 혹은 프로덕트를 옮겨서 운영해야 하는 프로그래머 클라우드 환경에서 운영할 코드를 최적화하는 방법을 알고 싶은 프로그래머 ps) 감사하게도 서평단으로 당첨되어서 좋은 책을 읽게 되었습니다. 감사합니다. |