pile·
백엔드·카카오 엔터테인먼트 FE카카오 엔터테인먼트 FE·

프론트엔드와 THE TWELVE-FACTOR APP

THE TWELVE-FACTOR APP 원칙은 원래 백엔드 애플리케이션을 위한 것이지만, Next.js를 직접 운영하는 프론트엔드 개발자도 알아야 하는 이유와 각 원칙의 FE 적용 방법을 정리한 글이다. 서버 영역이 확장되면서 프론트엔드도 배포·운영의 주체가 되고 있는 현실을 반영한다.

핵심 포인트 - 12-Factor는 독립적으로 확장 가능한 애플리케이션을 위한 12가지 방법론 (Heroku 창업자 제안) - Next.js App Router로 서버 컴포넌트·API Route 직접 운영하는 FE에게도 필수 지식 - 코드베이스 원칙: 1 앱 = 1 레포, 모노레포는 위반이 아님 (코드베이스≠레포, 배포 단위 기준) - 설정 원칙: 환경변수로 모든 환경별 값 분리, 코드에 하드코딩 금지 - 로그는 stdout으로만 출력, 파일 저장이나 로그 라우팅은 인프라 담당 - 빌드/릴리즈/실행 단계 엄격 분리: Next.js build → output → runtime이 이를 자연스럽게 강제

상세 정리 - Codebase: 1 코드베이스 → 다수 배포. 모놀리식(1 레포 1 앱) vs MSA(1 레포 1 서비스) - 모노레포는 코드베이스 위반이 아님: 레포는 업무 편의, 코드베이스는 배포 관련 - Dependencies: package.json에 명시적 의존성, 시스템 전역 패키지 의존 금지 - Config: 환경변수로 분리. Next.js의 NEXT_PUBLIC_* 규칙이 이를 강제 - Backing services: DB·캐시·큐는 URL로 연결, 교체 가능한 리소스로 취급 - Build/Release/Run: next build(빌드) → .next(릴리즈) → node server(실행) 엄격 분리 - Processes: 무상태 프로세스, 세션은 외부 스토어(Redis 등)에 저장 - Port binding: 포트를 통해 서비스 노출, Next.js는 기본 3000 - Concurrency: 프로세스 모델로 수평 확장, 서버리스/컨테이너와 자연스럽게 연결 - Disposability: 빠른 시작·정상 종료. Next.js standalone 출력이 이를 최적화 - Dev/Prod parity: 개발과 프로덕션 환경 차이 최소화 - Logs: console.log → stdout, 수집은 CloudWatch·Datadog 등 외부에서 - Admin processes: DB 마이그레이션 같은 일회성 작업도 동일 코드베이스에서 실행

왜 읽나: 서버 컴포넌트와 API Route로 백엔드 영역까지 담당하게 된 프론트엔드 개발자가 운영 관점의 사고를 갖추기 위해 읽어야 하는 글이다.

카카오 엔터테인먼트 FE
카카오 엔터테인먼트 FE 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 백엔드·twilio-engTwilio Engineering·

    Programmable Messaging에서 Verify API로 마이그레이션하기

    Twilio의 Programmable Messaging API로 자체 OTP 솔루션을 운영하던 서비스가 Verify API로 전환하는 방법을 코드 예시와 함께 설명한다. Verify는 OTP 전송·검증을 위한 전용 API로, 전화번호 구매, 토큰 생성, DB 저장·만료 관리를 내부에서 처리해 개발자가 직접 구현할 코드를 크게 줄인다.

    요약 이어보기
    #authentication#twilio#sms+2
  2. 백엔드·포스타입포스타입·

    포스타입이 개인화 추천을 하는 방법 2부

    포스타입 백엔드 엔지니어가 벡터 기반 개인화 추천 시스템을 실제 운영하며 맞닥뜨린 성능 장애와 용량 문제를 해결한 과정을 담은 2부다. 수백만 개의 벡터 KNN 검색이 피크 시간대에 전체 Elasticsearch 검색 성능을 흔드는 문제부터 클러스터 OOM 사태까지, 쿼리 최적화와 인프라 분리 두 가지 경로로 근본 해결에 이른다.

    요약 이어보기
    #elasticsearch#vector-search#recommendation-system+2
  3. 백엔드·포스타입포스타입·

    포스타입이 개인화 추천을 하는 방법 1부

    포스타입이 태그 기반 추천의 한계를 극복하고 벡터 임베딩 기반 개인화 추천 시스템을 구축한 과정을 담은 1부다. 유사한 콘텐츠가 다른 용어를 쓰거나 동일한 태그가 전혀 다른 톤의 콘텐츠를 가리키는 문제를 임베딩 벡터로 해결하고, OpenSearch의 HNSW ANN 검색으로 수백만 벡터를 실시간 검색하는 시스템을 구축해 구매율 15% 향상을 달성했다.

    요약 이어보기
    #opensearch#vector-search#recommendation-system+2