정보처리기사 기출문제 총정리 ㉗ 클라우드 네이티브 앱 – 12-Factor·서버리스·FaaS

클라우드 네이티브 앱이란?

클라우드 네이티브 애플리케이션은 클라우드 환경의 특성(탄력성, 분산, 자동화)을 최대한 활용하도록 설계된 소프트웨어입니다. 정보처리기사 최신 트렌드에 포함되는 영역입니다.

12-Factor App 방법론

Heroku가 제안한 클라우드 네이티브 앱 설계 12가지 원칙입니다.

  • 1. 코드베이스: 하나의 코드베이스, 여러 환경(dev/staging/prod) 배포
  • 2. 의존성: 명시적으로 선언·격리 (requirements.txt, package.json)
  • 3. 설정: 환경 변수로 관리 (코드에 하드코딩 금지)
  • 4. 백엔드 서비스: 연결 가능한 리소스로 취급 (DB, 캐시, 메시지큐)
  • 5. 빌드·릴리스·실행: 단계를 엄격히 분리
  • 6. 프로세스: 무상태(Stateless) 프로세스로 실행
  • 7. 포트 바인딩: 포트 바인딩으로 서비스 노출
  • 8. 동시성: 프로세스 모델로 스케일 아웃
  • 9. 폐기 가능성: 빠른 시작과 우아한 종료
  • 10. 개발/운영 일치: 개발·스테이징·운영 환경을 최대한 유사하게
  • 11. 로그: 이벤트 스트림으로 취급. stdout에 출력, 수집은 인프라 역할
  • 12. 관리 프로세스: 일회성 관리 작업은 별도 프로세스로 실행

서버리스(Serverless) 아키텍처

서버 관리 없이 코드만 작성하면 클라우드가 인프라를 자동 관리하는 실행 모델입니다.

서버리스 특징

  • 사용한 실행 시간·횟수만큼만 과금
  • 자동 스케일링 (0에서 수천 인스턴스)
  • 서버 패치·관리 불필요
  • 이벤트 드리븐(Event-driven) 실행

콜드 스타트(Cold Start)

처음 실행 시 컨테이너 초기화로 인한 지연. 저지연이 중요한 서비스에 주의

FaaS (Function as a Service)

함수 단위로 코드를 배포·실행하는 서버리스 컴퓨팅 모델입니다.

  • AWS Lambda: 이벤트(S3 업로드, API 호출, DynamoDB 변경 등)로 트리거
  • Azure Functions: HTTP, Timer, 큐 메시지 등으로 트리거
  • Google Cloud Functions: GCP 이벤트 연동

FaaS 제약사항

  • 실행 시간 제한 (AWS Lambda: 최대 15분)
  • 로컬 파일 시스템 일시적 저장만 가능
  • 상태 유지 불가 (외부 저장소 사용 필요)

이벤트 드리븐 아키텍처

  • 이벤트 발행자(Producer) → 이벤트 브로커(Kafka, SQS, SNS) → 이벤트 소비자(Consumer)
  • 느슨한 결합: 발행자와 소비자가 직접 통신하지 않음
  • 비동기 처리: 응답 대기 없이 다음 작업 진행

시험 핵심 포인트

  • 12-Factor 3번: 설정은 환경 변수로 (코드에 자격증명 하드코딩 금지)
  • 12-Factor 6번: 무상태 프로세스 (세션을 외부 저장소에)
  • 서버리스: 서버 관리 불필요, 이벤트 트리거, 사용량 과금
  • FaaS 콜드 스타트: 최초 실행 지연
  • 이벤트 드리븐: 느슨한 결합, 비동기 처리

마무리

클라우드 네이티브는 현대 소프트웨어 개발의 방향입니다. 12-Factor App의 핵심 원칙과 서버리스의 특징·제약사항을 중심으로 학습하세요.

Leave a Comment