엔터프라이즈 자바 마이크로서비스
사회가 발전 할수록 관련 업무도 더욱 분업화 되고
기존에 신경쓰지 않았던 중요하지 않던 부분도 어느 순간 중요한 업무의 하나로 바뀌어 있다.
따라서 우리가 늘상 업무에 사용해 오던 시스템들도 회사의 성장에 따라 계속 발전해 나간다.
기존에 10가지였던 업무가 어느덧 몇 배가 넘는 큰 규모의 서비스가 되어 있다면 어떻게 해야 할까?
지금 까지는 현재 사용하고 있는 시스템에 기능을 하나 둘 덧붙여 가며 시스템의 크기를 늘려 왔겠지만
이것은 물리적으로든 논리적으로든 곧 한계에 부딪치게 된다.
물리적 문제는 비교적 쉽게 해결 할 수도 있다.
클라우드 시스템을 이용하여 처리 할 수 있다.
대표적인 시스템이 아마존 웹 서비스(AWS) 와 마이크로서비스 애저(Azure) 등의 서비스를 이용하면 된다.
하지만 이번 포스팅에서는 논리적 한계에 이르렀을때의 방안이다.
기존의 대부분의 서비스는 10개든 100개든 모든 기능이 하나의 서비스에 묶여 있었다.
따라서 간단한 하나의 기능을 수정하거나 추가를 하려면
모든 서비스를 멈춰야 했다.
서비스의 크기가 작다면 문제는 없었다. 재기동 하는 시간이 오래 걸리지 않았기 때문이다.
하지만 기능의 수가 많아 지면 많아 질 수록 서비스의 크기는 늘어나게 되고
시스템을 재기동 하는 시간도 덩달아 같이 늘어 난다.
따라서 일과 시간에는 처리 할 수 없고 사용자가 없는 새벽 시간에 작업해야 한다.
문제라도 하나 생기게 된다면 상상할 수 없는 악몽의 시간이 시작된다.
마이크로서비스는 필요한 기능을 하나의 독립적인 시스템으로 동작하게 한다.
따라서 작은 기능 하나를 수정했거나 추가 했다고 해서 모든 시스템을 재시작 하는 부담을 덜 수 있고
기능을 쉽고 빠르게 반영할 수 있다.
마이크로서비스를 적용하는 일은 쉽지 않다.
대표적으로는 스프링이나 스프링부트를 사용하는 것으로 알고 있었는데
일반적인 자바만을 사용해 마이크로서비스를 구현할 수 있다는 것을 이 책을 통해 알게 되었다.
마이크로서비스 자체가 쉬운 부분이 아니다.
따라서 이 책의 적절한 독자층은 어느정도 개발 경험이 있는 개발자여야 할 것이라고 생각된다.
물론 개발 경험이 얼마 되지 않는 개발자가 읽어도 괜찮다.
책의 저자는 마이크로서비스가 무엇인지, 왜 마이크로서비스를 도입해야 하는지
기존의 모노리스 시스템을 어떻게 마이크로서비스로 전환시켜 나갈 수 있는지를
그림을 통해 쉽게 설명해 주고 있기 때문이다.
이 책은 스프링과 스프링부트를 이용하지 않는다.
책의 마지막에 부록으로 스프링부트를 이용하는 방법이 나오지만
부록으로 나오는 만큼 내용이 간단하다.
수많은 개발자들의 노력과 연구의 집대성인 이러한 프레임워크를 이용하지 않는 다는 것은
많은 부분의 설정과 개발을 직접해야 한다는 것이다.
하지만 반대로 마이크로서비스에 대한 깊이있는 이해와 경험을 쌓을 수 있어서,
추후에 마이크로서비스 프레임워크를 도입할때 많은 도움이 될 것은 분명하다.
어떤 시스템을 도입하든 그 그간을 이루는 개념이나 사상, 언어를 알아두면 많은 도움이 된다.
마이크로서비스를 공부하고 있다면 한번쯤 읽어 보면 좋을거 같다.
'블로그 > 도서' 카테고리의 다른 글
[도서] 빨간 머리 앤, 에이번리의 앤 (0) | 2020.07.16 |
---|---|
[도서] 초등 하루 한 권 책밥 독서법 (0) | 2020.07.16 |
[도서] 팀 개발을 위한 Git GitHub 시작하기 (0) | 2020.06.27 |
[도서] 정서적 흙수저와 정서적 금수저 (0) | 2020.06.16 |
[도서] 맥스웰 몰츠 성공의 법칙 (0) | 2020.06.16 |