서버리스 환경과 파일 쓰기 제한 사이에는 밀접한 관련이 있습니다.

서버리스 환경의 특징

서버리스(Serverless) 환경은 전통적인 서버와 달리 함수가 요청이 들어올 때만 실행되고, 처리 후 바로 종료됩니다. Vercel의 경우 각 API 요청이나 페이지 렌더링을 위해 임시 컨테이너(Lambda 함수)가 생성되고, 작업 완료 후 삭제됩니다.

파일 시스템의 임시성

서버리스 환경에서는 파일 시스템이 **임시적(ephemeral)**입니다:

  • 읽기 전용 파일시스템: 대부분의 디렉토리는 읽기 전용으로 설정되어 있습니다
  • 임시 디렉토리 제한: /tmp 디렉토리에만 쓰기가 가능하지만, 함수 실행이 끝나면 모든 데이터가 사라집니다
  • 용량 제한: /tmp 디렉토리도 용량이 제한적입니다 (보통 512MB)

왜 이런 제한이 있을까?

  1. 비용 효율성: 함수가 종료되면 리소스를 완전히 해제하여 비용을 절약
  2. 확장성: 수천 개의 함수가 동시에 실행될 수 있도록 가벼운 환경 유지
  3. 보안: 각 실행 환경을 격리하여 보안 위험 최소화
  4. 일관성: 상태를 저장하지 않아 예측 가능한 동작 보장

대안 솔루션

파일을 영구적으로 저장하려면:

  • 외부 스토리지: AWS S3, Google Cloud Storage 등
  • 데이터베이스: MongoDB, PostgreSQL 등
  • Vercel Blob: Vercel의 파일 저장 서비스
  • 외부 API: 파일 업로드 서비스 활용

서버리스는 “서버가 없다”는 의미가 아니라, 서버 관리를 클라우드 제공업체가 대신 해준다는 뜻이며, 이런 관리 방식 때문에 파일 쓰기에 제한이 생기는 것입니다.