본문 바로가기
패스트캠퍼스 환급챌린지

패스트캠퍼스 환급챌린지 39일차 : 코드팩토리의 백엔드 아카데미 : 한 번에 끝내는 NestJS 패키지 - 기초부터 MSA까지 강의 후기

by 논문보관함 2025. 4. 12.

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://bit.ly/4hTSJNB

 

커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스

성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.

fastcampus.co.kr

0412 토

학습 내용 정리

Ch 3. 파일 선업로드 방식

01. CommonModule로 파일 업로드 로직 이동하기 - common 폴더에 controller 와 module 생성. 작업 내용은 temp에 파일 업로드 로직 완성

02. Movie 엔드포인트 완성하기 : temp -> movie 폴더로

 

수강후기

오늘 수업에서는 드디어 실질적인 파일 업로드 기능을 NestJS에서 구현하는 방법을 학습하였다. 그동안 이론적으로만 이해했던 파일 처리 방식에 대해 실제로 프로젝트에 적용하는 흐름을 경험하면서, NestJS 백엔드에서 파일을 어떻게 다루는지를 명확히 이해할 수 있는 계기가 되었다.

우선, 수업에서는 CommonModule을 따로 생성하여 파일 업로드 로직을 분리하는 구조로 설계하였다. 그 결과 common 폴더 내부에 controller와 module을 따로 만들어, 재사용 가능한 파일 업로드 인터페이스를 구축할 수 있었다. 이는 추후 다른 도메인에서도 파일 업로드 기능이 필요할 때 CommonModule을 간단히 import하여 사용할 수 있도록 설계된 부분으로, 확장성과 유지보수 측면에서 매우 유용한 접근이라고 느꼈다.

특히 오늘 구현한 CommonController의 /common/video 엔드포인트에서는 FileInterceptor와 multer의 설정을 직접 지정하면서, **업로드 허용 용량 설정(fileSize)**과 **파일 필터링(fileFilter)**을 통해 mp4 형식만 허용하는 유효성 검사를 적용하였다. 이 과정에서 직접 BadRequestException을 발생시키는 방식은 사용자에게 직관적인 오류 메시지를 제공할 수 있어 실무에서도 매우 실용적인 방식이라고 생각되었다.

또한, diskStorage를 활용한 파일 저장 설정에서는 파일이 저장될 경로를 join(process.cwd(), 'public', 'temp')으로 지정하고, 업로드된 파일명을 uuid + timestamp + 확장자 형태로 구성함으로써, 파일명 충돌을 방지하는 전략까지 학습했다. 이처럼 시스템적인 부분까지 고려한 세부 구현은 백엔드 엔지니어로서 한 단계 더 성장하는 느낌이었다.

그리고 마지막으로, 오늘의 학습은 단순히 파일을 temp 폴더에 저장하는 것에 그치지 않고, 이후 Movie 엔드포인트로 해당 파일을 옮겨 저장하고, 이를 TypeORM의 movieFilePath 컬럼으로 연결하는 전체 흐름까지 이어졌다. movieFilePath는 Transform 데코레이터를 사용해 URL로 자동 변환되도록 처리되어 있었는데, 이는 클라이언트가 파일을 바로 접근 가능하도록 하며, RESTful API 설계의 관점에서도 매우 적절한 구현이라고 느꼈다.

총평하자면, 오늘은 NestJS에서 파일 업로드라는 중요하고 실용적인 기능을 처음으로 완전하게 구현해본 날이다. 단순히 작동하는 코드를 따라 작성하는 수준을 넘어서, 왜 이렇게 설계하는지에 대한 의문을 스스로 던지고, 그에 대한 해답을 실습 과정에서 직접 얻을 수 있었기에 매우 의미 있었다. 특히 도메인 간의 모듈 분리, 파일 저장 정책, MIME 타입 체크와 같은 세세한 기술 요소들은 프로젝트를 실무 수준으로 끌어올리는 데 중요한 역할을 할 수 있음을 체감했다.

앞으로의 과제는 이 파일 업로드 로직을 영화 생성과 연결하여 하나의 전체적인 흐름으로 통합하는 것이다. 단순한 기능 구현을 넘어서, 구조화와 확장 가능성까지 고려하며 작업하는 방법을 익혀 나가야겠다고 다짐한 하루였다.

 

사진

시작
종료
수강후기
결과물