김데이의 개발공부

[ Weekly Paper 07 ] Express 미들웨어 / 백엔드 서버 이미지 업로드 방식 본문

코드잇 Node.js(BE) 부트 캠프/위클리 페이퍼 📃🖌️

[ Weekly Paper 07 ] Express 미들웨어 / 백엔드 서버 이미지 업로드 방식

theday365 2025. 12. 7. 13:02
반응형

 

 

위클리 페이퍼 주제 (2025.12.1 ~ 12.5)

✅ Express.js에서 미들웨어란 무엇인지 설명해 주세요.

✅ 백엔드 서버에서 이미지 업로드를 구현하는 다양한 방식에 대해 설명해 주세요.

 


 

Q1 - 1. 미들웨어란?

실제 API 구문이 실행되기 전 API 작업에 사용 될 데이터를 검토하거나, 필요한 데이터를 만드는 등 부가적인 작업을 진행 해 주는 중간장치입니다. 예를 들어 회원가입을 하는 요청이 들어오면, 입력된 이름/이메일/전화번호 등이 알맞게 작성 되어 있는지 확인하고, 요청 구문에서 사용할 타입으로 데이터를 변환하여 전달하는 기능을 하는 validator 미들웨어가 있습니다. 

 

미들웨어는 한 요청에 한 개 이상 사용이 가능하며 사용량의 제한이 없습니다. 또한 범위를 구분지어 특정 라우트에만 미들웨어를 적용하거나 특정 작업에만 미들웨어를 적용하는 등의 적용이 가능합니다. 

 

Q1 - 2. 다른 언어에서는 사용하지 않나요?

미들웨어는 웹 프레임워크 전반에 존재하는 개념입니다. 

다만 NestJS에서는 파이프/ 가드 / 인터셉터 처럼 다른 언어로 불리기도 하고,백엔드가 아닌 프론트엔드 React 구조에서도 사용됩니다. 

 

미들웨어는 하나에 국한된 기능이 아니라, "중간에서 특정 역할을 처리 해 주는 개념"으로 접근해야합니다.

여러 필터를 걸쳐 내려오는 커피 = 미들웨어
여러 필터를 걸쳐 내려오는 커피 = 미들웨어

 

 

Q1 - Final . Express.js에서 미들웨어란 무엇인지 설명해 주세요.

앞서 설명한 예시처럼 Express.js에서도 미들웨어는 요청과 응답 사이에 존재하는 중간 필터입니다. 

"요청 ~ {미들웨어} ~ 응답"

 

컨트롤러가 실행 되기 전 요청을 가로채서 필요한 전처리를 하기도 하고, 모든 로직 끝에 존재하고 있다가 발생한 에러들을 모아 처리하기도 합니다. 


 

 

Q2 - Final . 백엔드 서버에서 이미지 업로드를 구현하는 다양한 방식에 대해 설명해 주세요.

해당 내용은 AI(GPT)의 도움을 받아 작성했습니다 😉

 

1. Multer로 서버 로컬 디스크에 저장

  • Express에서 가장 간단하고 빠르게 적용할 수 있는 방식.
  • 파일을 서버 내부 /uploads 같은 폴더에 직접 저장.
  • 단점: 서버 용량 초과, 배포할 때마다 파일 사라짐, 스케일 아웃 어려움.

 

2. Multer + AWS S3 업로드 (백엔드에서 업로드)

  • 서버가 파일을 한번 받고, AWS SDK로 S3에 업로드하는 전통적 방식.
  • 이미지 유효성 검사·리사이징 같은 전처리 넣기 용이.
  • 스타트업~중대형 서비스까지 가장 보편적.

 

3. Presigned URL 방식 (프론트 → S3 직접 업로드)

 

  • 서버는 "업로드 권한 URL"만 발급, 실제 업로드는 프론트가 S3로 직접 요청.
  • 서버 부하가 거의 없어 대규모 서비스에서 선호됨.
  • 요즘 실무 트렌드에서 가장 인기 높은 방식.

 

4. Sharp(이미지 압축/변환) + S3 업로드

 

  • 이미지 용량 줄이고, 썸네일 생성하고, 포맷 변환하는 실무 조합.
  • 서버에서 Multer로 받아 Sharp로 변환 후 S3에 올림.
  • 고해상도 이미지가 많은 서비스(쇼핑몰, 포트폴리오 서비스 등)에 필수.

 

 

 

5. Cloudinary 업로드

 

  • 업로드 + 자동 리사이징 + CDN까지 올인원 제공.
  • 이미지 처리 품질이 뛰어나고 속도 빠름.
  • 스타트업, SaaS, 포트폴리오 서비스에서 사용 빈도 높음.

 

6. Firebase Storage 업로드

 

  • 모바일 앱/웹 MVP, 스타트업에서 매우 흔함.
  • 인증과 업로드가 자연스럽게 연결되어 구현이 빠름.
  • 실시간 이미지 관리가 필요한 서비스에 최적.

 

 

 

+ 추가 S3 업로드 = AWS S3(스토리지 서비스)에 파일 저장하기

Amazon S3는 아마존이 만든 클라우드 파일 저장소로, 
서비스 업체가 직접 자신의 서버 컴퓨터에 이미지 저장하면 용량도 빠르게 차고, 서버를 바꾸면 파일에 문제가 생길 수 있음.
따라서 이미지는 S3라는 외부 창고에 저장하고, 이것을 "S3 업로드"라고 명칭함


 

다음 주에 또 만나요 🖐️

반응형