image.png

프론트엔드 테스트 중, 특정 기능이 예상대로 작동하지 않는 오류가 발생했습니다. 문제의 원인을 조사하던 중, 데이터베이스의 특정 컬럼이 사라진 것을 발견했습니다. 이로 인해 데이터베이스와 관련된 여러 기능이 정상적으로 동작하지 않았습니다.

데이터베이스 컬럼이 사라진 이유를 조사한 결과, 다음과 같은 가능성을 고려할 수 있었습니다

  1. 잘못된 스키마 변경:

  2. 동시 작업 및 동기화 문제:

  3. 자동화된 마이그레이션 도구의 오류:

조사 과정에서 TypeORM의 synchronize: true 설정이 문제의 주요 원인일 가능성이 높다고 판단했지만, 컬럼 삭제의 정확한 원인을 명확히 규명할 수 있는 단서를 찾지 못했습니다. 다만, 이 설정이 활성화된 상태에서는 애플리케이션이 실행될 때마다 데이터베이스 스키마가 자동으로 동기화되며, 개발 중 변경된 엔티티가 실수로 데이터베이스에 반영되어 컬럼이 삭제될 가능성이 있다고 추정했습니다.

image.png

    synchronize: configService.get('DB_SYNC')

해결 방법

  1. AWS를 사용하는 경우 AWS MySQL Log 확인하기

**https://stackoverflow.com/questions/32750072/aws-rds-mysql-bin-change-log**

  1. 개발 환경에는 DB는 각자 다른 DB를 사용하기