Twelve Factor 방법론

IT 위키
SaaS 앱을 개발하기 위한 방법론

특징[편집 | 원본 편집]

  • 설정 자동화를 위한 절차 체계화로 새로운 개발자가 프로젝트에 참여하는데 드는 시간과 비용을 최소화
  • OS에 따라 달라지는 부분을 명확히하고, 실행 환경 사이의 이식성을 극대화
  • 최근 등장한 클라우드 플랫폼 배포에 적합하고, 서버와 시스템의 관리가 불필요
  • 개발 환경과 운영 환경의 차이를 최소화하고 민첩성을 극대화하기 위해 지속적인 배포 가능
  • 툴, 아키텍처, 개발 방식을 크게 바꾸지 않고 확장(scale up) 가능

12개의 요소[편집 | 원본 편집]

번호 요소 설명
1 코드베이스 버전 관리되는 하나의 코드베이스와 다양한 배포
2 종속성 명시적으로 선언되고 분리된 종속성
3 설정 환경(environment)에 저장된 설정
4 백엔드 서비스 백엔드 서비스를 연결된 리소스로 취급
5 빌드, 릴리즈, 실행 철저하게 분리된 빌드와 실행 단계
6 프로세스 애플리케이션을 하나 혹은 여러개의 무상태(stateless) 프로세스로 실행
7 포트 바인딩 포트 바인딩을 사용해서 서비스를 공개함
8 동시성(Concurrency) 프로세스 모델을 사용한 확장
9 폐기 가능(Disposability) 빠른 시작과 그레이스풀 셧다운(graceful shutdown)을 통한 안정성 극대화
10 개발/프로덕션환경 일치 개발, 스테이징, 프로덕션 환경을 최대한 비슷하게 유지
11 로그 로그를 이벤트 스트림으로 취급
12 Admin 프로세스 admin/maintenance 작업을 일회성 프로세스로 실행