Written on
·
24
0
Spring(Java)을 약 1~2년 정도 공부하다가, 최근 입사 후 NestJS를 새롭게 배우고 있습니다.
공부하기 위한 강의를 듣던 중 문득 궁금증이 생겨 이렇게 질문을 남깁니다.
NestJS를 사용하는 이유가 무엇일까요?
제가 지금까지 배워온 관점에서 보면, Spring은 생태계가 훨씬 풍부하고 레퍼런스도 많으며, 엔터프라이즈 환경에서 안정성이 매우 높다고 느껴졌습니다.
반면 NestJS는 비동기 I/O 처리에 강점이 있어 성능적으로 빠르다는 인상을 받았지만, 단순히 그 이유만으로 NestJS를 선택해야 할까 하는 의문이 들었습니다.
물론 기술 선택에는 여러 요소가 있겠지만, 실무적으로나 기술적으로 Spring 대신 NestJS를 선택하는 명확한 이유가 무엇인지 궁금합니다.
단순 궁금증이었습니다...!
Answer 2
0
안녕하세요!
휴가중이라 답변이 늦었습니다. 죄송합니다.
사실 말씀하신 부분때문에 한국에서는 Spring이 훨씬 인기가 많습니다.
하지만 말씀하지 않은 장점도 많습니다.
예를들어 nodeJS의 경우 매우 lightweight 하기 때문에 컨테이너화 할때 효율이 좋다는점, Bootstrapping이 빠르기 때문에 MSA에 유리하다는점, 싱글스레드의 극강 효율, JS 풀스택의 가능성등 사실 이유는 무수하게 많습니다.
이미 글로벌 트렌드는 Java에서 많이 벗어나고 있습니다. SO Survey를 봐도 그렇구요.
한국이 유난히 Spring 공화국인 이유는 유독 한국 개발자들이 보수적이기 때문이라 생각합니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. JeonTak님.
NestJS와 Spring은 모두 훌륭한 서버사이드 프레임워크로, 각각의 장단점이 있어 선택할 때 고려해야 할 요소가 많습니다. 아래에서 주요한 차이점과 각 기술을 선택할 수 있는 이유를 정리해 드릴게요.
비동기 처리: NestJS는 Node.js 기반으로 비동기 I/O 처리가 가능하며, 비동기 작업이 많은 애플리케이션에서 성능상의 이점을 제공합니다. 반면, Spring은 Java 기반으로 멀티스레드 환경에서의 동기 작업에 익숙해져 있죠.
경량성: NestJS는 상대적으로 가벼운 프레임워크로, 마이크로서비스 아키텍처나 빠른 개발이 필요한 프로젝트에 적합할 수 있습니다. Spring은 방대한 기능을 제공하지만, 그만큼 무거워지는 경우가 있습니다.
개발 언어: NestJS는 TypeScript를 기본으로 사용합니다. 이로 인해 프론트엔드와 유사한 언어 및 패러다임을 유지할 수 있어, 프론트엔드 개발자들이 백엔드로 전환할 때 적응하는 데 유리할 수 있습니다.
생태계 차이: Spring은 성숙된 생태계를 가지고 있어 레퍼런스와 도구가 풍부하며, 대규모 엔터프라이즈 환경에서 널리 사용됩니다. 반면, NestJS는 상대적으로 새롭지만, JavaScript 및 타입스크립트 커뮤니티의 활발한 지원을 받고 있습니다.
설계 패턴: NestJS는 Angular의 모듈 시스템과 유사한 설계를 채택하고 있어, 구조화된 코드 작성이 가능하며, 이것이 팀 워크에 도움을 줄 수 있습니다.
실제 프로젝트에서는 팀의 기술 스택, 규모, 요구 사항 등을 고려하여 어떤 프레임워크를 선택할지 결정합니다. 따라서 특정 상황이나 프로젝트 요구에 따라 다르게 선택될 수 있는 부분이므로, JeonTak님께서 일하는 환경과 상황에 맞는 기술 선택을 고민해보시면 좋겠습니다.
보다 자세한 내용은 이 링크에서 비슷한 주제에 대해 강사님의 의견을 참고하실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.