10월 2주차 회고

devwuu·2023년 10월 11일

Dailyday

목록 보기
1/2

Spring VS NodeJS VS Python

구직을 하려고 공고를 살펴보니 내 생각보다 백엔드 프레임워크는 치열한 삼파전을 치르는 중이었다. 특히 Nodejs의 파이가 꽤 높다고 느껴졌는데 이전 프로젝트로 express를 살짝 경험해봤어서 그런가 파이썬보다 조금 더 흥미가 갔다. 그래서 집에 있는 Python+Django 책으로 쟝고를 살짝 찍어먹어보고 Nodejs로 간단한 포트폴리오를 만들어보기로 했다.


Python 과 Django

참고한 서적은 Do it! 파이썬 웹 개발의 정석 이고 2~3년 전쯤에 파이썬에 흥미를 가져 사뒀던 책이다. 그 뒤로 (실제로 업무에 써야하는) Spring을 공부하느라 책을 펼쳐볼 기회가 없었지만...😅 비록 몇 년전 책이긴 해도 clone 해볼 예제 프로젝트도 있고 ORM도 가볍게 다뤄볼 수 있는 것 같아서 일단 시작을 했다. 아주 간단하게만 사용해본 거라 일주일 정도의 시간을 두고 진행했던 것 같다.

Clone project
🏠 https://github.com/devwuu/python-study/tree/main/django-study

더 발전시키고 싶은 부분

  1. 쿼리가 너무 많이 발생한다. ORM에 의해 자동으로 발생되는 쿼리에만 의지하다보니 이런 문제가 생긴 거 같은데 추후에 Python으로 포트폴리오를 만들게 된다면 이 부분은 자체적으로 구글링해서 해결해야 하는 부분이다.
  2. 각 계층의 분리를 좀 더 명확하게 하고 싶다. 이 프로젝트는 복잡한 비즈니스 로직을 필요로 하지 않아서 views에서 거의 모든 걸 해결하고 있는데 코드가 조금만 길어지면 아마 나는 모든 걸 분리하고 싶어질 것이다... 이 부분은 다른 개발자 분들의 프로젝트도 참고해봐야하고 쟝고의 기본 철학도 어느 정도는 알아야 하는 부분이라 1번에 비해선 시간이 좀 더 필요할 거 같다.

인상적이었던 부분

  1. 약간의 설정만으로도 아주 멋진 admin 페이지가 만들어진다. 어느정도 커스텀도 가능하고 디자인도 나름 훌륭해서 정말 올인원 패키지 같은 느낌이 들었다.
  2. 올인원 패키지. 1번에서 서술한 admin 페이지도 그렇고 로그인 기능도 그렇고 어느정도는 다 기본적으로 갖추고 있다는 게 정말 멋졌다. 내가 python을 조금 더 능숙하게 다룰 수 있었다면 Nodejs 말고 django로 포트폴리오를 만들지 않았을까? 하는 생각이 들었다.

Typescript와 Nodejs 그리고 Nestjs

Nodejs를 선택한 이유는 총 2가지였는데 (1) express를 간단하게나마 사용해본 적이 있다 (2) javascript가 python 보다 익숙하다. 이 두 가지였다. 물론 이번 기회에 typescript를 사용해볼 계획이었어서 typescript 따로 공부해야 하긴 하지만 아예 새로운 언어인 건 아니었기 때문에 자주 사용하는 기본적인 문법 위주로 익히고 포트폴리오를 만들면서 조금 더 익숙해져보기로 했다.

Clone project
🏠 https://github.com/devwuu/node-study

Side Project
🏠 https://github.com/devwuu/dailyday

왜 express가 아니라 nestjs 인가?

가장 많은 시간을 들인 고민이었다. 사용 경험이 있고 커뮤니티가 큰 건 express였다. 반면 nestjs는 거의 처음부터 익혀야 했다. 그럼에도 불구하고 nestjs를 선택한 이유는 (1) 구조가 친숙하다 (2) express에 비해 틀이 어느정도 정해져있다. 이 두 가지 때문이었다. 가장 눈에 띄게는 데코레이터 문법부터 DI, IoC, 등등 nestjs의 구조가 spring과 상당히 유사하다는 건 Nestjs를 사용해본 사람이라면 모두 공감할 수 있을 것이라 생각한다. 또, express의 상당한 자유도는 그 자체로 이점이 되기도 하지만 주니어 개발자인 내겐 많은 고민거리를 주었다.(물론 구글링해보면 많은 훌륭한 개발자분들이 고민해서 정해진 규격이 있겠지만...) 그래서 Nodejs를 시작하는 단계의 나는 우선 비즈니스 로직 자체에 집중할 수 있는 Nestjs를 선택하기로 했다.

그래서 현재는...

비즈니스 로직이 복잡한 프로젝트는 아니어서 어지간한 문제 상황은 공식 문서와 구글링으로 해결이 되고 있다. 그럼에도 불구하고 처음 사용해보는 프레임워크이다보니 별 것 아닌 문제도 어렵게 느껴지는 경향이 있는 것 같다. 프로젝트를 완성할 때 쯤이면 지금보다 많이 능숙해져있었으면 좋겠다... 😂😂😂 혹시 또 블로그에 남길만한 이슈가 생기면 추가로 포스팅 하기로 했다... 😂😂😂

profile
일단 한다

0개의 댓글