jrcfore***
2023-05-28

데브옵스 기본 사항, 컨테이너 모범 사례, 모놀리스 해부까지 자바 개발자도 알아야 하는 데브옵스의 모든 것
SpringBoot 혹은 이와 관련된 실무 경험이 있는 개발자들에게는훌륭한 복습 교재로써, 그리고 막 신입 사원으로 입사하려는 사람들에게는 훌륭한 서비스 개발 지침서가될 책
시간이 흐를수록 IT 업계의 동향도 크게 변화하고 있다. 그 과정에서 수많은 기법의 흥망성쇠를 반복하고 있고 그중에 살아남은 몇 안 되는 오픈소스 프로젝트나 솔루션들이업계의 표준으로 잡혀가고 있다.
근래의 서비스 개발의 트렌드는 컨테이너를 기반으로 한 Microarchitecture와 자동화 CI/CD를 이용한 반복적인 QA 및 안정적인 서비스 개발에 있는듯하다.
물론 위의 내용들은 꼭 근래에만 주목받았던 기술이라 할 순 없다. 10년전에도 20년 전에도 위와 비슷한 주제의 기술들이 언급되었고 지금의 기술들의 기반이 되는 것들이 당시에탄생하였으니 말이다. 다만 그 옛날에는 지금과 같은 수준의 기술 고도화를 이루기에는 환경이 마땅치 못하였고, 기술력 역시 지금에 이르지 못하였기에 현실화하는 데에는 한계가 있었다.
하지만, 시간은 흘렀고 기술은 일취월장하여 10년 전과는 비교할 수 없을 정도의 컴퓨팅 능력이 세상에 출현하게 되었다. 이말인즉슨, 옛날에는 말로써 존재하였던 기술들이 이제는 현실화가 가능해졌음을 시사하리라..
이 책은 위에서 언급한 세 가지의 기술을 비롯한 자바 기반의 서비스 개발자들이 기본적으로 알아두면 좋을법한 수많은기법과 피해야 할 안티 패턴 그리고 각광받는 기술들에 대해 술 한 책이다.
따라서 서비스 개발자를 이제 시작한 신입 개발자이거나 혹은 연차가 5~7년차 정도되는 중니어 개발자라면 꼭 읽어보길 권한다.
【책의 구성】 "자바 개발자를 위한 데브옵스 툴"의 구성은?
이 책은 챕터별로 주제를 정하고 이에 대해서 상세히 기술을 나열한 후, 이에대해서 술 한 방식을 고수하고 있다.
어떤 챕터의 경우에는 직접 간이 프로젝트를 만들어 테스트해 볼 수 있는 실습 챕터도 있고, 최신 트렌드가 되는 기술과 동향에 대해서 작가 나름의 생각과 전망에 대해서 아낌없이 설파하고 있다는 점에서여러 참고서와 그 맥을 같게 하고 있다.
이 책에서 다루는 챕터의 각각의 내용들은 그 주제만으로도 책 한 권이 나올 정도의 방대한 내용들이다. 다만 그만큼 요지를 잘 파악하여 정리해두었으므로 이 책 한 권만 잘 정독한다면 서비스 개발에 대한 어느 정도틀이 잡혔다고 평해도 무방하리라 보인다.
1 챕터 : 개발자와 데브옵스
회사 어플라이 사이트에 들어가면 수많은 개발 부서에서 "데브옵스" 개발자 혹은 기획자, 리더 개발자를 채용한다고하고 있다.
"데브 옵스" 어디선가들어봤지만 확실히 이거다!라고 선을 긋고 평하기엔 뭔가 애매한 감이 있는 그런 용어이다.
이 챕터에서는 저자가 바로 이런 부분을 시원하게 자신의 논리를 더해 정의하고 있다. 과연 데브 옵스는 무엇일지? 직접 책을 통해 확인해 보도록 하자.
3 챕터 : 컨테이너
요즘은 컨테이너를 사용하지 않는 회사를 찾는 것이 사용하는 회사를 찾는 것보다 어려운 시대리라 생각된다.
그만큼 수많은 회사들이 컨테이너 기술을 서비스에 도입하였고, 이를기반으로 MSA 도입 및 인프라 비용 절감을 시도하고 있는 것이라 평해진다.
이 챕터에서는 Docker를 기반으로 컨테이너가 무엇인지 기존의 VM과 어떤 면에서 차이가 있고 탄생 배경과 역사가 무엇인지 자세히 술하고 있다. 또한 나아가 컨테이너를 사용한 시스템에서 주의해야 할 안티 패턴이 무엇이 있는지에 대해서도 자세히 술하고 있다.
하나 버릴 내용이 없으므로 꼭 잘 정리해서 머릿속에 새기도록 하자.
5챕터 : 지속적 통합
"서비스 개발은 나 혼자 하는 것이 아니다.!"
이제 막 회사에 입사하는 신입 개발자들에게 꼭 해주고 싶은 말이다.
여러 대회 공모나 혹은 학교 과제를 많이 리딩 해본 새내기 개발자들이라면 막 입사하여 멋진 프로젝트를 혼자서잘 리딩 할 거야!라는 광대한 야심을 갖는 것이 보통이다. (아니라면.. 뭐 그것 나름 좋은 부분이다.)
하지만, 회사에서 진행하는 프로젝트들은 학부 때 경험해 보았을 법한프로젝트와는 그 규모에서 제법 차이가 있다. 훨씬 크거나 훨씬 복잡하거나 아니면 둘 다이거나 보통이그러하다.
그렇기에 회사에서는 절대로 혼자 일하는 프로젝트를 새내기에게 맡기지 않는다. 또한경력직이라도 페어 혹은 다수의 개발자들이 같이 일하는 형태를 취하지 절대로 혼자서만 프로젝트를 진행하게 하진 않는다. (만약 혼자서만 개발하고 있는 분이 계시다면, 솔직히 나의 관점에서는일하는 곳을 옮기시길 권장한다. 혼자 일하면서 향상시킬 수 있는 능력에는 한계가 있다. 물론 빌게이츠럼 예외는 있긴 마련이지만..)
이 챕터에서는 왜 회사에서는 혼자 일하지 않는지, 그리고 여럿이 일하면어떤 어려움에 직면하고 이를 돕는 도구들이 무엇이 있는지 체계적으로 술하고 있다.
【 자바 개발자를 위한 데브옵스 툴을 읽고 나서 】
개발자라는 직업은 피로도가 꽤 있는 직업이다. 왜냐하면 하루가 멀다하고 새로운 기술이 끊임없이 태동하고 탄생하며 다시 사라지길 반복하는 그런 생태계에 있기 때문이다.
하지만, 이는 단연 IT 학문에만국한된 것이 아니다. 의학도 그렇고 법학도 그렇고 모든 학문은 그 시대에 맞게 변화해야만 살아남을 수있다. 특히, 지금과 같이 기술 발전이 더더 고도화되어가는사회에서는 학문이 그 자리에 정체한다는 것은 어찌 보면 나라의 존폐가 달린 일이라 할 수 있다.
그렇기에 바다를 향하는 물이 끊임없이 흐리고, 바다에 도착하여 다시비가 되어 대륙부터 다시 시작하듯. 우리 개발자들도 항시 이 업계를 떠나는 그 순간까지 수학함에 게으름이있어선 안 될 것이다.