서론
07/18 ~ 09/10 : 기업 참여 프로젝트(파이널 프로젝트)
08/11 : 프런트 & 백엔드 개발
08/12 : 강사님 멘토링
08/13 : 중간 발표
08/14 : 프런트 & 백엔드 개발
이번 주에는 파이널프로젝트 중간발표가 있었습니다. 다른 팀의 진행 상황과 피드백을 받았습니다.
그리고 다음 저의 역할로 기존에 하던 AI요약기능의 프롬프트 측정지표를 만드는 과제를 맡았습니다.
1. 파이널 프로젝트
뉴스 기사의 카테고리 주제별로 각 프롬프트를 설정해주는 기능을 구현했습니다.
간단하게 프롬프트를 Key와 Value로 코드를 작성하여 Key에 카테고리와 같은 프롬프트 타입을 지정해주고 Value에는 프롬프트 내용을 입력해주었습니다.
그리고 다시 Key와 Value로 나누어 다중 프롬프트를 입력해주었습니다.
다중 프롬프트를 종합해서 해서 요약 기능을 넣을 수 있게 GPT가 만들어주었습니다.
그리고 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)
데이터 값 이동/변환은 필요 시 스크립트에 수동 쿼리로 작성한다.
구글시트 + App Script를 이용한 크롤링부터 프롬프트 입력, 측정, 대시보드를 만들어봤습니다.
2. 마무리
미흡한 준비로 좋지 못한 발표를 하게 된 것이 아쉽습니다.
08/23 : SQLD 자격증 시험