본문 바로가기

WINK-(Web & App)/WINK 공홈 부수기

WINK 공홈 Next.js 스터디 부터 시작하기 💫 (backend/이정욱)

반응형

과연 무슨 주제로 블로깅을 해야할까?

위 내용을 고민하던 도중에 우리가 첫 회의 전에 카톡방이 개설되고나서 고민했던 내용에 대해 블로깅 하기로 정했다.

백엔드 프레임워크는 어떤 것으로 해야할까? (Next.js vs Nest.js)

얼핏 보기에 이름이 비슷한 두 프레임워크에는 어떤 차이점과 장단점이 존재할까?

얘기가 나왔던 프레임워크들의 후보로는

  1. Spring boot
  2. Express.js
  3. Nest.js
  4. Next.js

다음과 같은 후보군이 있었다. 각 프레임워크의 특성을 비교해보고 우리 프로젝트(WINK 공홈 다 때려 빠뿔기)에는 어떤 프레임워크가 적절할 지 나름의 고민을 해보았다.

Spring Boot

Spring Boot는 Java로 애플리케이션을 만들 때 사용하는 웹 프레임워크이다. Java 언어를 기반으로 해서 Java의 강력한 객체 지향 특성을 잘 살릴 수 있는 것이 특징이다. 특히, 다형성을 극대화해서 사용할 수 있게 도와주고, IoC(제어의 역전)와 DI(의존관계 주입)로 역할과 구현을 편리하게 다룰 수 있도록 지원해준다. 그래서 스프링을 쓰면 마치 레고 블록을 조립하듯이 구현을 편리하고 유연하게 변경할 수 있다.

Express.js

Express.js는 JavaScript로 애플리케이션을 만들 때 사용하는 경량 프레임워크이다. 아주 심플하고 유연한 구조를 가지고 있어서 빠르게 개발할 수 있다. 필요한 기능을 미들웨어로 추가할 수 있어서 원하는 대로 커스터마이즈할 수 있는 것이 특징이다. 하지만 기본적인 설정과 구성이 필요하고, 대규모 애플리케이션에서는 코드 관리가 어려울 수 있는 단점이 있다.

Nest.js

Nest.js는 TypeScript로 애플리케이션을 만들 때 사용하는 프레임워크이다. Angular에서 영감을 받은 구조화된 아키텍처를 가지고 있어서 모듈 단위로 코드 분리도 가능하고 유지보수가 용이하다는 것이 특징이다. 정적 타입 언어인 TypeScript를 사용해서 코드 안정성을 높일 수 있고, 강력한 의존성 주입 기능을 제공한다. 하지만 Angular 스타일의 구조에 익숙하지 않다면 초기 학습이 필요하고, 단순한 프로젝트에는 오버헤드가 될 수 있다.

Next.js

Next.js는 JavaScript나 TypeScript로 애플리케이션을 만들 때 사용하는 프레임워크이다. 주로 프론트엔드 프레임워크로 알려져 있지만, 서버 사이드 렌더링(SSR)과 정적 사이트 생성(SSG) 기능을 제공해서 백엔드 역할도 할 수 있다. 풀스택 개발이 가능해서 프론트엔드와 백엔드를 통합해서 개발할 수 있다. 하지만 복잡한 백엔드 로직에는 한계가 있을 수 있다.

그렇다면 우리 프로젝트는?

처음에 거론이 되었던 것은 Spring boot와 Express.js 였다

  • Spring boot: 우리나라에서 현실적으로 가장 많이 사용되는 백엔드 프레임워크 중 하나였으며, 백엔드 팀원(류건, 손대현)이 스프링 경험이 많으며 다른 쩌리(이정욱) 또한 경험이 있다는 점이 있었따.
  • Express.js: 내가 처음에 생각했던 프레임워크이다. 그 이유는 WINK 동아리에서 백엔드 스터디를 하게 되면 일반적으로 접하는 것이 node.js 이며 웹에서 많이 사용하는 js를 사용하기 때문에 학습하기도 쉽기 때문에 나중에 인수인계를 생각한다면 spring boot에 비하면 간단하게 학습하고 이어나갈 수 있다고 생각했다.

여기서 나타난 nest.js와 next.js

손 Damn 현

건이와 대현이의 의견으로 nest.js라는 프레임워크가 떠오르는 만큼 흥미가 생겨서 해보고 싶다는 의견이 생겼다.

vs

다운이의 의견(feat. 지원, ㅎㅅ)은 프론트에서 풀스택 프레임워크로 사용할 수 있는 next.js를 사용하는데 굳이 백엔드에서 다른 프레임워크를 사용할 필요가 있느냐 라는 의견이었다.

 

나의 개인적인 의견은 후자에 가까웠다.

 

둘다 처음 다뤄보는 프레임워크였지만 공식 홈페이지 라는 프로젝트에 초점을 맞추어 봤을 때는 next.js가 좀 더 자연스러운 선택인 것 같아서 였다

 

 

... 이어서 (자이랑 회의가 안끝나요 저좀 살려주세요)

반응형