개발자
안녕하세요? 저는 처음 개발을 접할 때, 자바와 스프링으로 시작을 했고, 나름 꽤 많이 자바와 스프링을 이용하여 나름의 개발을 진행 했었습니다. 최근 취업 공고나, 사이드 프로젝트 모집 공고를 보면 Nest.js를 사용하는 곳이 부쩍 늘었다고 보았고, 또 GraphQL을 요구하는 곳이 보여 GraphQL을 공부하면서 자프링과 Nest.js로 구성하고, 실습을 해보고 있습니다. 그러면서 문득 궁금한게 생겼습니다. 어떤 커뮤니티에선 스프링 부트를 레거시라고 외국에선 쓰지 않는다고, 굉장히 안 좋은 것처럼 이야기를 하는 글을 꽤 봤는데, 개인적으로 소속된 환경에 사람들의 주 스택과 앞으로 개발되어야 하는 제품을 생각해서 기술 스택을 정하는 게 좋다고 생각하는데, 스프링 부트를 안 좋다고 생각하신다면 왜? 안 좋은지와 Nest.js가 뜨는 이유와 선택의 사유에 대해 답변 주시면 정말 감사드리겠습니다. 다만, 제가 궁금한 건 단지 개발 속도가 빠르다라는 답변이 아닌 기술적으로 어떤 부분이 강점이 있는가?가 궁금합니다. 소중한 답변 주시면 감사드리겠습니다!
답변 1
인기 답변
node 서버가 io가 많은 작은 단위의 request가 많은 경우 좋습니다. 반면 스프링은 많은 연산이 필요하거나 안정성이 필요한 경우 좋죠. nest를 많이 쓰게 되는 이유는 별다른 연산이 필요없는 front와 붙어있는 쪽 api 서버로 너무 좋기 때문입니다. 또 실제로 front io가 많이 일어나는 web service 회사... 즉 사용자가 많은 서비스회사..(라 적고 돈을 많이 주는 회사라고 읽는다.)에서 도입을 하기 시작해서 점점 떠오르는 추세입니다. 다만 한국자체가 전자정부 프레임워크라던가.. java 인력풀이 많기 때문에 굳이 도입 하지 않는 곳도 많구요 외국에서 nest 를 많이 쓴다 O web api 서버로 nest가 좋다 O java Spring boot 는 레거시다 X 정도가 맞는거 같습니다. jetbrain 개발자 에코시스템을 봐도 많은 사람들이 아직 java를 쓰고 있고 java를 쓰는 대다수의 개발자들이 spring boot 를 쓰고 있습니다. https://www.jetbrains.com/ko-kr/lp/devecosystem-2023/java/
주니
작성자
어제보다 오늘이 더 기대되는 개발자 • 2023년 12월 05일
개인적으로 스프링 부트를 굉징히 좋아하고, nest.js도 스프링과 비슷하게(물론 엥귤러 방식도 있지만..) 되어 있어 둘 다 관심 있게 보고 있는 프레임워크입니다. 근데 어떤 기준으로 선택할까? 라는 의문이 생겨서 질문 올려 보았는데, 좋은 답변 너무 감사드립니다!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 12월 04일
안녕하세요, 저도 기술 선택에 대한 의견을 말씀드리겠습니다. 먼저, Spring Boot가 레거시하다고 이야기하는 사람들이 있지만, 이는 상대적인 비교일 수 있습니다. Spring Boot는 여전히 세계 각지의 많은 회사에서 활발하게 사용되고 있으며, 그 자체로 안정적인 프레임워크입니다. 그러나, 최근에는 Node.js와 같은 비동기 I/O를 지원하는 서버 사이드 Javascript 환경과 그 위에서 동작하는 Nest.js같은 프레임워크들이 주목 받고 있습니다. 그 이유 중 하나는 개발 속도 뿐만 아니라 스케일아웃하기 좋은 구조와 마이크로서비스 아키텍처에 적합한 구조 등을 가지고 있기 때문입니다. Nest.js의 경우 Typescript를 기반으로 하며, Angular의 의존성 주입 패턴과 모듈화 방식을 따르면서도 Express나 Fastify와 같은 Node.js의 HTTP 서버 프레임워크 위에서 동작합니다. 또한 GraphQL 등 다양한 통신 방식을 지원하며, 소프트웨어 엔지니어링 원칙을 잘 따르는 구조를 가지고 있습니다. 이는 코드의 효율성과 유지 보수성을 높이는데 도움이 됩니다. 그래서 결론적으로 어떤 기술 스택을 선택할 것인가는 여러 요소를 고려해야합니다. 팀원들의 기술 숙련도, 프로젝트의 성격, 필요한 기능과 지원하는 데이터 타입 등 다양한 요소를 고려해야 합니다. 한 가지 기술이 모든 상황에서 최적의 솔루션이 되지는 않으므로, 자신의 환경에 가장 적합한 것을 선택하는 것이 중요하며 이는 직접 실험하고 경험해보는 것이 중요합니다. 따라서 Spring Boot가 나쁘다기보다는 현재 트렌드와 프로젝트/팀 상황에 따라서 다른 선택을 할 수 있게 된 것일 뿐입니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!