[플레이데이터 풀스택 백엔드 9기] 8월 2주차 회고 (22주차)

FerryLa·2025년 8월 19일

서론

8월 2주차 회고 (22주차) - (8/11 - 8/14)

07/18 ~ 09/10 : 기업 참여 프로젝트(파이널 프로젝트)

08/11 : 프런트 & 백엔드 개발
08/12 : 강사님 멘토링
08/13 : 중간 발표
08/14 : 프런트 & 백엔드 개발

이번 주에는 파이널프로젝트 중간발표가 있었습니다. 다른 팀의 진행 상황과 피드백을 받았습니다.

그리고 다음 저의 역할로 기존에 하던 AI요약기능의 프롬프트 측정지표를 만드는 과제를 맡았습니다.

1. 파이널 프로젝트

프로젝트 진행사항

AI요약기능 (내 역할)

뉴스 기사의 카테고리 주제별로 각 프롬프트를 설정해주는 기능을 구현했습니다.
간단하게 프롬프트를 Key와 Value로 코드를 작성하여 Key에 카테고리와 같은 프롬프트 타입을 지정해주고 Value에는 프롬프트 내용을 입력해주었습니다.

그리고 다시 Key와 Value로 나누어 다중 프롬프트를 입력해주었습니다.
다중 프롬프트를 종합해서 해서 요약 기능을 넣을 수 있게 GPT가 만들어주었습니다.

Docker

그리고 Dockerfile을 flaskapi에 적용시켜 하나의 마이크로 서비스로 이미지를 빌드할 수 있게 만들었습니다.

Dockerfiler

# syntax=docker/dockerfile:1
FROM python:3.11-slim

# 환경변수
ENV PYTHONDONTWRITEBYTECODE=1
    PYTHONUNBUFFERED=1
    PIP_NO_CACHE_DIR=1

WORKDIR /app

# 필요한 시스템 패키지 설치
RUN apt-get update && apt-get install -y --no-install-recommends \
    curl && rm -rf /var/lib/apt/lists/*

# 파이썬 의존성
COPY requirements.txt .
RUN pip install -r requirements.txt

# 소스 복사
COPY . .

# Flask API 포트
EXPOSE 5000

# 헬스체크용 엔드포인트(/health) 있는 경우
HEALTHCHECK --interval=10s --timeout=2s --retries=12 \
  CMD curl -fsS http://localhost:5000/health || exit 1

# gunicorn으로 실행 (main.py 안에 app = create_app() 있다고 가정)
CMD ["gunicorn","-w","2","-k","gthread","--threads","4","-t","120","-b","0.0.0.0:5000","main:app"]

Docker-compose.yml

#  # 6. Flask API (새로운 서비스 추가)
  flaskapi:
    build: ./services/flaskapi
    container_name: flaskapi
    ports:
      - "5000:5000"                     # 외부에서 직접 확인도 가능하도록 노출
    networks:
      - msa-network
    depends_on:
      discovery-service:
        condition: service_started      # 유레카가 먼저 떠야 등록 시도 가능
    environment:
      # Flask 실행 포트
      - PORT=5000
      # 유레카 정보
      - APP_NAME=FLASKAPI
      - INSTANCE_HOST=flaskapi          # ★ 컨테이너명과 동일하게 (게이트웨이/유레카에서 접근 가능)
      - EUREKA_SERVER=http://discovery-service:8761/eureka/
      # 타임존
      - TZ=Asia/Seoul
      # 프런트에서 직접 5000 호출할 경우를 대비한 CORS
      - CORS_ALLOWED_ORIGINS=http://localhost:3000
    healthcheck:
      test: ["CMD", "curl", "-fsS", "http://localhost:5000/"]
      interval: 15s
      timeout: 3s
      retries: 10

용어 정리

※ 마이그레이션(Flask-Migrate/Alembic)

  • 모델의 “스키마 메타데이터”(컬럼/제약/인덱스)를 기준으로 변경사항을 비교해 리비전 스크립트를 자동 생성(autogenerate) 할 수 있다.
    생성된 스크립트를 검토/수정 후 DB에 적용(upgrade) 하거나 되돌리기(downgrade) 한다.

데이터 값 이동/변환은 필요 시 스크립트에 수동 쿼리로 작성한다.

요약 프롬프트 측정 지표

https://docs.google.com/spreadsheets/d/1xY18Tc6n-eZFdZKhh4TdTvXd8Zzd-Yx9E9bo6tvXxww/edit?gid=651671327#gid=651671327

구글시트 + App Script를 이용한 크롤링부터 프롬프트 입력, 측정, 대시보드를 만들어봤습니다.

2. 마무리

> 좋았던 점과 아쉬웠던 점

미흡한 준비로 좋지 못한 발표를 하게 된 것이 아쉽습니다.

> 개선할 점

> 다음주 계획

  • SQLD 문제 풀이

08/23 : SQLD 자격증 시험

profile
김지환

0개의 댓글