안녕하세요 완강 후 추가적으로 궁금한 사항이 있어서 글을 올리게 되었습니다.
요즘 대세인 MSA와 관련하여 여쭙고 싶어서 연락드립니다.
[문제상황]
MSA와 관련하여 아키텍쳐에서는 요청에 맞추어 반응하는 서버를 만들기 위하여 docker container 를 활용한 서버들을 많이 구성하는 걸로 알고 있습니다.
이때, Spring boot은 다양한 기능들을 제공하지만 python의 flask나 Fastapi와 같은 가벼운 프레임워크에 비해서는 안좋은 점들이 있을것이라 생각듭니다.
(예를 들어서 컨테이너의 용량이 크고, 콜드 스타트의 시작이 늦다는 점... 이 대표적으로 생각납니다.)
[질의사항]
1. Springboot 로 MSA를 구성하였을 경우 앞서 얘기드렸던 문제점이 없는지 여부
2. Springboot 가 MSA에서 갖는 장점
3. 프레임워크의 무겁다와 가볍다의 개념이 무엇인지 궁금합니다.
4. 배민에서는 JAVA를 사용하여 프로젝트를 진행하는데, 우리나라의 경우 JAVA를 사용하는 시니어개발자들이 많아 사용하는 걸로 알고있습니다. 만약 그렇지 않았다면, JAVA Spring boot 가 아닌 다른 프레임워클 사용하여 개발하였을지 궁금합니다.
감사합니다.
안녕하세요. 정영호님
1. Springboot 로 MSA를 구성하였을 경우 앞서 얘기드렸던 문제점이 없는지 여부
-> 크게 문제가 되는 점은 없습니다.
2. Springboot 가 MSA에서 갖는 장점
-> Jar 파일 내부에 톰캣 서버가 포함되어 있어서 빌드한 Jar 파일로 바로 배포하고 서버까지 띄울 수 있습니다.
3. 프레임워크의 무겁다와 가볍다의 개념이 무엇인지 궁금합니다.
-> 최근에는 서버 성능이 좋아서 이런 부분은 크게 문제가 되지 않습니다.
4. 배민에서는 JAVA를 사용하여 프로젝트를 진행하는데, 우리나라의 경우 JAVA를 사용하는 시니어개발자들이 많아 사용하는 걸로 알고있습니다. 만약 그렇지 않았다면, JAVA Spring boot 가 아닌 다른 프레임워클 사용하여 개발하였을지 궁금합니다.
-> 네카라쿠배 대부분의 회사가 메인 기술로 자바를 사용합니다. 그런데 자바와 스프링 조합이 정말 다른 기술보다 부족하다면 많은 시니어 엔지니어가 선택할 이유는 없겠지요? 단순히 자바를 사용하는 시니어 개발자가 많아서 이런 선택이 일어난다기 보다는 자바 스프링은 안정적이고 웹 애플리케이션에서 성능도 뛰어납니다. 멀티쓰레딩 같은 기술도 간단하게 사용할 수 있도록 되어 있습니다. 그리고 기술 생태계도 매우 안정적이고 훌륭하게 잡혀있습니다. 기업에서 백엔드 기술을 사용할 때는 성능 + 안정성 모두가 다 중요한데, 자바와 스프링 조합은 그 둘을 모두 만족합니다.
감사합니다.
답글