nestjs 썸네일nestjs

2025-02-21

목차

  1. NestJS 학습 경험 공유와 어려움
  2. Express와 NestJS 비교
  3. 백엔드 초심자를 위한 학습 조언
  4. NestJS 구조 이해하기
  5. GPT 활용 학습 방법
  6. 링크드인 활용과 커리어 고민
  7. 이미지 리사이징과 서버/클라이언트 처리
  8. 프론트엔드와 백엔드 교차 학습 경향
  9. 팀 내 권력과 역할 변화 이야기
  10. 커리어 방향과 풀스택 도전 의식

1. NestJS 학습 경험 공유와 어려움

  • NestJS는 백엔드 초심자에게 특히 어렵게 느껴지는 프레임워크임.
  • 여러 개발자들이 '끝판왕' 같은 난이도를 언급하며 처음에는 포기하고 싶을 정도였다고 이야기함.
  • NestJS를 배우려는 이유로 모듈 구조화 개념과 유지보수 편리함을 경험하려는 의견이 많음.
  • “슈뢰딩거의 고양이”처럼 불확실하지만 도전할 가치가 있는 공부 대상임을 비유로 표현함.

NestJS란?

NestJS는 Node.js를 기반으로 한 백엔드 프레임워크로, Angular에서 영감을 받은 모듈과 의존성 주입 구조를 통해 큰 규모의 서버 애플리케이션을 체계적으로 개발할 수 있도록 돕는 도구임.

2. Express와 NestJS 비교

  • Express는 자유도와 단순함 덕분에 배우기 쉽고, 가벼운 프로젝트에 적합함.
  • 하지만 큰 서비스에서는 모듈화가 부족해 4000줄 이상 단일 파일에 몰아쓰는 경우가 발생하기도 함.
  • NestJS는 이런 문제점을 해결하기 위해 구조화와 모듈 분리, 의존성 주입 등을 제공해 유지보수가 수월함.
  • 취업이나 빠른 학습 목적이면 바로 NestJS 입문 추천, 시간이 있다면 Express부터 시작하는 것도 방법임.

3. 백엔드 초심자를 위한 학습 조언

  • 처음부터 너무 거창하게 잡지 말고, Express로 REST API 만들어보고 DB까지 저장까지 해보는 것이 좋음.
  • 최소한 서버가 작동하는 기본 흐름을 이해한 후 점차 보안, 인증, 예외처리 같은 고급 기능을 추가하면서 확장해나가길 권장함.
  • 프론트엔드 개발자가 백엔드로 넘어올 때는 프로그램 구조에 대한 생각이 다르니 처음에 힘들 수 있으나 꾸준한 도전이 필요함.

4. NestJS 구조 이해하기

  • NestJS는 모듈(Module), 서비스(Service), 컨트롤러(Controller) 기반으로 설계됨.
  • 모듈은 기능별로 코드 묶음을 관리하는 단위이며, 의존성 주입(Injectable)과 같은 패턴이 활용됨.
  • '@'(골뱅이) 데코레이터는 클래스나 메서드에 메타데이터를 부여해 NestJS 내부 동작을 돕는 역할임.
  • 처음 접하는 개발자는 이 개념들이 낯설고 복잡하게 느껴질 수 있음.
  • 꾸준히 예제 코드와 튜토리얼을 보면서 ‘왜 이렇게 설계되었는지’를 이해하는 과정이 중요함.

5. GPT 활용 학습 방법

  • 잘 모르는 부분이 있으면 GPT(인공지능 챗봇)를 적극 활용해 질문을 던지고 이해할 때까지 계속 물어보는 방식을 추천함.
  • 예를 들어, "서비스가 뭔가요?", "모듈은 어떻게 등록하나요?", "Injectable이 뭐죠?" 같이 기초적인 질문부터 시작하면 좋음.
  • 반복적인 질문과 답변 과정을 통해 막연했던 개념들이 명확해질 수 있음.
  • AI를 ‘온라인 선생님’처럼 활용하는 것이 빠른 이해에 큰 도움이 됨.

6. 링크드인 활용과 커리어 고민

  • 링크드인에서 포지션 관련 연락이 오는데, 광고인지 진짜인지 헷갈린다는 고민이 나옴.
  • 계정을 제대로 관리하지 않아 껍데기 계정이 되는 경우가 많고, 답장할 때 신중할 필요가 있음.
  • 관심 있는 포지션에는 답장하고, 불필요한 홍보 메시지는 무시하는 것이 권장됨.
  • 커리어가 한 방향(백엔드)만 고집되지 않고 프론트엔드, 인프라를 넘나드는 경향이 나타남.
  • 다만, 지나친 역할 분산은 커리어 설계에 부정적 영향을 줄 수도 있으므로 적절한 방향성을 갖는 것이 중요함.

7. 이미지 리사이징과 서버/클라이언트 처리

  • 이미지 리사이징 라이브러리로 "sharp"이 많이 사용됨.
  • 하지만 presigned URL 등의 기법을 활용하면 서버가 아닌 클라이언트 또는 별도의 배치 작업에서 이미지 변환 처리를 하는 경우가 많음.
  • 예를 들어, 서버에 파일이 직접 전송되지 않는 구조라면 서버에서 리사이징이 불가능하기 때문임.
  • 노드 기반 서버나 AWS Lambda 같은 서버리스 환경에서도 리사이징 작업 가능.
  • 요즘에는 클라이언트 자원을 활용해 불필요한 서버 부하를 줄이는 추세임.

8. 프론트엔드와 백엔드 교차 학습 경향

  • 많은 개발자가 프론트엔드에서 백엔드, 백엔드에서 인프라 등으로 영역을 확장하려는 흐름이 보임.
  • 풀스택 개발자의 수요가 커지면서 동시에 여러 분야를 경험해보려는 경향도 있음.
  • 그러나 여러 분야를 얕게 경험하는 것은 커리어 관리 측면에서 반드시 좋은 결과만을 보장하지는 않음.
  • 깊이 있는 전문성 확보와 원하는 커리어 방향을 잘 고민해야 함.

9. 팀 내 권력과 역할 변화 이야기

  • 커뮤니티 내에서 '부방장 임명'과 같은 역할 위임 사례가 있었음.
  • 개발팀 내에서도 권력 구조와 역할 분담 문제에 대한 농담과 토론이 오감.
  • 특히 자바 개발자가 NestJS를 이해하기 어려워한다거나, 프론트와 인프라 업무가 혼재하는 현실에 대한 불만도 표출됨.
  • 권력과 커뮤니케이션이 개발 환경에 미치는 영향에 대한 가벼운 이야기로 할애됨.

10. 커리어 방향과 풀스택 도전 의식

  • 일부 개발자는 ‘풀스택 프리랜서를 꿈꾼다’고 표현하며 학습 동기를 드러냄.
  • 반면 특정 상황에서 ‘임시직’ 또는 ‘짤리길 바란다’는 부정적인 표현도 나옴.
  • 여러 분야를 동시에 경험하는 것이 커리어에 좋을지 고민하는 목소리도 있음.
  • 중요한 것은 본인이 좋아하고 잘하는 부분을 발전시키면서 시장 트렌드에 맞춰 유연하게 대응하는 것임.

면접팁⚡

  • NestJS나 Express 경험에 대해 묻는 면접에서는 각각의 장단점과 사용 경험을 구체적으로 설명할 수 있도록 준비하자.
  • 모듈과 의존성 주입 개념, 데코레이터(골뱅이)의 역할을 쉽게 설명할 수 있으면 좋은 인상을 줄 수 있음.
  • “백엔드 구조화 경험이 있느냐” “왜 NestJS를 선택했느냐” 같은 질문에 대비하자.
  • GPT를 활용한 학습 경험도 간단하게 이야기할 수 있으면 현대 개발 문화 적응력을 보여줄 수 있음.

링크🔗

#NestJS#Express#백엔드#프론트엔드#GPT#커리어#링크드인#이미지리사이징#풀스택#학습팁