본문 바로가기
TIL _Today I Learned/2025.01

[DAY 121] 최종 프로젝트_ ECR & API

by gamdong2 2025. 1. 10.
[천재교육] 프로젝트 기반 빅데이터 서비스 개발자 양성 과정 9기
학습일 : 2025.01.10

📕 프로젝트 작업 내역

  • ECR 이란
  • API 란

 

📗 수행 결과

1. ECR 이란

1) Amazon ECR (Elastic Container Registry)

  • Docker 이미지를 저장하고 관리할 수 있는 AWS의 컨테이너 이미지 저장 
역할 설명
Docker 이미지 애플리케이션 실행 환경을 패키징한 파일 (예: 코드 + 라이브러리 + 설정 포함)
ECR Docker 이미지를 저장하는 리모트 저장소
GitHub Actions 또는 Airflow 등에서 이 이미지를 가져와 실행함
CI 단계 GitHub에서 코드를 푸시하면, Docker 이미지로 빌드 → ECR에 자동 푸시
CD 단계 Airflow 또는 Lambda가 ECR에서 최신 이미지를 Pull하여 실행 (자동화됨)
[코드 변경 (GitHub)] 
   ↓ (CI: 자동 빌드)
[Docker 이미지 생성]
   ↓ (CI: 자동 푸시)
[ECR 저장소에 업로드]
   ↓ (CD: Airflow DAG 실행 시)
[최신 이미지 Pull → 모델 학습 또는 라벨링 자동 실행]

 

2. API 란

1) API (Application Programming Interface)

  • 서로 다른 프로그램끼리 대화할 수 있게 해주는 약속
  • 예시
    • 사람 : "이 문제 라벨링 해줘"
    • 서버 : "이 문제는 분수 덧셈이야" 라고 알려줌
    • → 이걸 사람이 아니라 코드끼리 주고받게 만든 것이 API

2) REST API (Representational State Transfer)

  • API의 종류 중 하나로, 웹 기반 시스템에서 가장 널리 쓰이는 방식
요소 조건
요청 방식 (Method) HTTP 기반 : POST, GET, PUT, DELETE 중 하나
엔드포인트 (URL) 의미 있는 리소스 이름 사용
데이터 포맷 JSON 등의 표준 형식으로 데이터를 주고 받음

 

3) FastAPI

  • 파이썬으로 REST API 를 쉽게 만들 수 있게 해주는 프레임워크
  • 자동 문서화됨 : Swagger UI 자동 생성됨

4) Swagger UI

  • API 생성 프레임 워크(FastAPI, Flask 등)에서 REST API 를 웹 화면으로 문서화해서 보여주는 도구
특징 설명
자동 생성 FastAPI로 코드를 짜면 Swagger 화면이 자동 나옴
API 테스트 가능 웹에서 API 요청도 직접 눌러볼 수 있음
문서화 용도 “어떤 API가 있고, 어떤 요청을 받아야 하는지”를 자동으로 보여줌

이미지의 S3 경로를 제공하면 서버가 라벨링 해주는 API 요청을 직접 실행해볼 수 있음

 

4) 용어 정리

API 프로그램끼리 통신하는 약속 (넓은 개념)
REST API 웹에서 자주 쓰는 API의 규칙 있는 버전
FastAPI 파이썬으로 REST API를 쉽게 만들 수 있게 해주는 도구
Swagger UI FastAPI로 만든 API를 웹에서 문서 + 테스트까지 해볼 수 있는 인터페이스

 

 

 

📙 내일 일정

  • 최종 프로젝트 발표