2026/01/20 합동프로젝트 - 10

김기훈·2026년 1월 20일

TIL

목록 보기
116/194
# 어제 무엇을 했나요?
- 1. ai 리뷰 요약 관련 기본 공부 
- 2. ai 리뷰 요약 api 구현

# 오늘은 무엇을 할 것인가요?
- 1. ai 리뷰 요약 PR 리뷰 반영
  - 글자 수 제한
  - 최소 리뷰 조건 / 기간 30일 제한 은 환경변수로 빼기 
  - 리뷰 5개 가져오는 로직 수정 요망 
    - 글자수 제한 / 가져오는 개수 늘리기 
- 2. ai 리뷰 api 비동기 처리 
- 3. ai 리뷰 api 욕설 1차 필터

# 진행하는데 어려운 부분(도움이 필요한 부분)이 있나요?
- 쉘스크립트 작성 

오늘 학습 내용 ✅


새롭게 알게된 내용 ✅

오늘 발생한 문제(발생 했다면) ✅

docker 문제

# 1. 로컬 환경에 패키지 추가 (lock 파일 갱신)
poetry add drf-spectacular

# 2. Docker 이미지 새로 빌드 (변경된 lock 파일 반영)
docker compose build

# 3. 컨테이너 재실행
docker compose up -d
# env 수정 
# Django 시크릿 키
SECRET_KEY= ...

# 디버그 모드 (개발용)
DEBUG=True

# 데이터베이스 설정
	...
POSTGRES_HOST=PlayType_db
POSTGRES_PORT=5432

REDIS_URL=redis://redis:6379/0

# 수정 하고나서 
docker compose down
docker compose up -d


[ 🔴 문제: ]
**Docker 환경에서 Django 서버가 데이터베이스(PostgreSQL)에 접속하지 못하고 종료됨.**
* 에러 로그: `connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused`
* 현상: `settings.py`를 수정했음에도 불구하고, 도커 컨테이너가 여전히 DB 위치를 `PlayType_db`가 아닌 `localhost`로 잘못 찾고 있음.


[ 🟡 원인: ]
**`docker-compose.yml`의 환경 변수 설정 위치가 잘못됨.**
1. **변수 전달 대상 오류:** `POSTGRES_HOST=PlayType_db`라는 설정을 DB 서비스(`db`) 쪽에 적어주셨습니다. 정작 이 주소를 알아야 하는 건 Django 서비스(`backend`)였습니다.
2. **우선순위 미적용:** Django 서비스(`backend`)에 `environment` 설정이 없었기 때문에, 도커는 `.env` 파일에 적힌 로컬용 설정(`localhost`)을 그대로 가져다 썼습니다.
3. **결과:** 도커 컨테이너 내부에서 "자기 자신(localhost)"에게서 DB를 찾으려다 연결이 거부된 것입니다.


[ 🔵 해결: ]
**`backend` 서비스에 환경 변수 덮어쓰기 설정 추가.**
1. `docker-compose.yml`의 `backend` 서비스 섹션에 `environment`를 추가했습니다.
2. 여기에 `POSTGRES_HOST=PlayType_db`를 명시하여, `.env`의 `localhost` 설정을 무시하고 도커 컨테이너 주소로 연결하도록 강제했습니다.
3. `docker-compose up --build` 명령어로 변경 사항을 반영하여 재실행했습니다.
profile
안녕하세요.

0개의 댓글