Skip to main content
Sonamu에서 자주 발생하는 데이터베이스 연결 관련 문제와 해결 방법을 다룹니다.

DB 연결 리소스 누수

증상

또는
장시간 개발 서버를 실행하거나, Fixture 작업을 반복할 때 발생합니다.

원인

DB 연결을 생성한 후 에러가 발생하면 destroy()가 호출되지 않아 연결이 정리되지 않고 누적됩니다. 문제가 있던 코드 패턴:

해결 방법

1. try-finally 패턴 사용

2. 여러 DB 연결 정리

3. 현재 연결 수 확인

PostgreSQL에서 현재 연결 상태를 확인하려면:

예방 방법

  • DB 연결을 직접 생성하는 경우 반드시 try-finally 사용
  • BaseModel의 메서드를 사용하면 자동으로 연결 관리됨
  • Fixture 작업 시 FixtureManager의 메서드 사용 (자동 정리 포함)

연결 설정 오류

증상

원인

  1. PostgreSQL 서버가 실행되지 않음
  2. .env 파일의 DB 설정이 잘못됨
  3. 포트 번호가 틀림

해결 방법

1. PostgreSQL 실행 확인

2. 연결 정보 확인

.env 파일 확인:

3. 수동 연결 테스트

성공하면 비밀번호 입력 후 psql 프롬프트가 나타납니다.

타임아웃 오류

증상

원인

  1. DB 연결 풀이 고갈됨
  2. 장시간 실행되는 쿼리가 연결을 점유
  3. 연결 풀 설정이 너무 작음

해결 방법

1. 연결 풀 설정 조정

sonamu.config.ts:

2. 장시간 쿼리 확인

3. 트랜잭션 미정리 확인

권한 오류

증상

해결 방법

테스트 환경 DB 충돌

증상

또는

원인

  • 이전 테스트가 정상 종료되지 않아 테스트 DB가 남아있음
  • 여러 테스트 프로세스가 동시에 실행됨

해결 방법

1. 테스트 DB 강제 삭제

2. 테스트 실행 시 격리

package.json:

3. 테스트 전후 정리 확인

관련 문서