
30여 년간 현업에서 개발자와 아키텍트, 컨설턴트로 다양한 프로젝트를 수행하였으며 30여 권의 저서와 7권의 번역서를 출간하고 폭 넓은 독자 층을 갖고 있는 베스트 셀러 저자다. 금융, 제조, 조선, 통신, 국방, 정부 연구 기관 등 다양한 도메인 분야에서 아키텍트이자 컨설턴트로 프로젝트를 수행하였으며, 특별히 SOA 전문가로서 조달청 차세대 통합 국가전자조달시스템 구축 사업 서비스 모델링과 KT N-STEP SOA 진단 컨설팅 등의 프로젝트를 수행하였다. 대표적인 저서로는 전병선의 객체지향 이야기와 SOA, What & How, CDB, What & How, All-in-One Java 애플리케이션 개발, UML 분석 설계 실무, 나는 개발자다 등이 있다. 이러한 지식와 노하루를 바탕으로 최근에는 막 개발자와 프로그래머로서 첫걸음을 시작하는 사람들이 실무 프로젝트에서 작업을 할 수 있을 만큼의 능력을 갖출 수 있도록 핵심 지식과 기술을 묶어 다섯 권의 책을 출간하였다. 또한 이들 책을 교재로 온라인 강의 사이트(www.realdev-learning.com)에서 체계적인 강의를 제공하고 있으며, 이러한 노력은 자바에서 닷넷으로, 객체지향 언어에서 함수형 언어로, 컴포넌트에서 마이크로서비스로, 모노리식 애플리케이션에서 반응형 분산 컴퓨팅 분야로 이동하면서 끊임 없이 새로운 기술과 언어에 관한 저술과 강의 할동을 계속 이어갈 예정이다. 유튜브(www.youtube.com/@realdev.learning)에서 독자들과의 소통에도 힘쓰고 있다.
이 책은 시리즈 1에서 하나로 만든 모노리스(monolith) 채용 플랫폼 데브잡을, 여러 개의 마이크로서비스(microservice)로 나누는 실전서다. 서비스 경계를 어떻게 그을지에서 출발해, 스프링 클라우드(Spring Cloud) 인프라, 서비스 간 통신, 그리고 장애가 번지지 않게 막는 안정성까지, 분산 시스템을 운영 가능한 수준으로 끌어올리는 과정을 한 흐름으로 다룬다.
1장 「왜 MSA인가 & 서비스 분리」에서는 모노리스의 한계를 짚고 서비스 경계를 그리는 기준을 세운다. 멀티 모듈 프로젝트를 구성하고 공통 모듈을 먼저 분리한 뒤, 사용자(User)·공고(Job)·지원(Application)·알림(Notification) 네 서비스를 차례로 떼어 내고, 각 서비스가 자기 데이터를 소유하도록 데이터베이스까지 나눈다.
2장 「서비스 컨테이너화」에서는 각 서비스를 Dockerfile로 이미지화하고(멀티스테이지·non-root), 환경에 따라 H2와 PostgreSQL을 오가도록 설정을 프로파일과 환경 변수로 나눈다. 그런 다음 도커 컴포즈로 네 서비스와 데이터베이스를 명령 한 줄에 띄우고, 분리·컨테이너화 후 드러나는 과제로 다음 장의 필요성을 끌어낸다.
3장 「Spring Cloud 인프라」에서는 스프링 클라우드 BOM으로 버전을 맞추고, API 게이트웨이로 단일 진입점을 만들며 그 문에서 JWT를 검증해 인증을 중앙화한다. 유레카(Eureka)로 서비스를 이름으로 찾고, 컨피그(Config) 서버로 설정을 중앙에서 관리한다.
4장 「서비스 간 통신 & 안정성」에서는 @HttpExchange 선언형 HTTP 호출과 로드밸런싱·재시도, 동시성 제한과 서킷 브레이커(Resilience4j)로 장애를 격리하고, 집킨(Zipkin) 분산 추적으로 요청 흐름을 잇는다. 마지막으로 서비스 간 이벤트로 지원과 알림을 느슨하게 연결한다.
5장 「완성 & 정리」에서는 전체 스택을 도커 컴포즈로 한 번에 띄우고, 깃허브 액션스로 마이크로서비스 CI/CD를 구성한 뒤, 모노리스에서 MSA로 전환한 과정을 회고한다.