목차
- NestJS 학습 경험 공유와 어려움
- Express와 NestJS 비교
- 백엔드 초심자를 위한 학습 조언
- NestJS 구조 이해하기
- GPT 활용 학습 방법
- 링크드인 활용과 커리어 고민
- 이미지 리사이징과 서버/클라이언트 처리
- 프론트엔드와 백엔드 교차 학습 경향
- 팀 내 권력과 역할 변화 이야기
- 커리어 방향과 풀스택 도전 의식
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 공식 예제 및 리소스:
https://github.com/nestjs/awesome-nestjs?tab=readme-ov-file#examples - 이미지 리사이징 라이브러리 sharp:
https://sharp.pixelplumbing.com/ - Presigned URL 개념 참고:
https://aws.amazon.com/ko/presigned-url/
#NestJS#Express#백엔드#프론트엔드#GPT#커리어#링크드인#이미지리사이징#풀스택#학습팁