2차 프로젝트에서 DB를 하나의 DB를 사용하되 서비스 별로 스키마를 분리하기로 하였습니다. 스키마 구분을 위해 application.yml 을 작성 중 팀원간에 설정 방법이 상이하여 그 이유를 자세히 알아보았고 TIL로 남깁니다.
✅ 데이터베이스 vs 스키마
일반적으로 데이터베이스와 스키마는 구분됩니다.
✔️데이터베이스
오라클이 작동하는데 필요한 모든 파일
✔️스키마
데이터베이스의 구조와 제약 조건을 정의
폴더와 유사
하지만 MySQL의 경우에는 데이터베이스 단계가 없습니다.
즉, MySQL에선 데이터베이스와 스키마를 동의어 취급합니다.
발제문에서는 MySQL을 기준으로 스키마 분리를 요청하였습니다.
즉, DB 상에서 join을 하지 못하게 하는 것이 목적이었습니다.
하지만 저희는 PostgreSQL을 사용했고, PostgreSQL은 데이터베이스와 스키마의 개념이 구분합니다.
즉, PostgreSQL에서 사용되는 스키마를 생각하고 구분을 지으면
DB 상에서 join을 할 수 있게 됩니다.
과제에서 제시한 것 처럼 스키마(MySQL 기준)를 분리하기 위해서는
PostgreSQL는 스키마가 아니라 데이터베이스를 분리해야 했습니다.
출처 :
1. https://swkn.tistory.com/79
회고
같은 용어라도 기술에 따라 다르게 부르는 경우도 있음을 인지해야 했는데, 안일하게 용어를 받아들였던 것 같습니다. 앞으로는 알고 있는 용어라도 한번 더 확인하는 습관을 들여야겠다고 생각했습니다.
'스파르타 > TIL' 카테고리의 다른 글
2024.09.13 | @PreAuthorize의 hasRole("") vs hasAuthority("") (0) | 2024.09.14 |
---|---|
2024.09.09 | DDD 이해하기 (2) | 2024.09.10 |
2024.09.06 | record를 이용한 DTO 그리고 불변 객체 (3) | 2024.09.07 |
2024.09.05 | 재귀적 관계 모델링 ( or 계층적 데이터 모델링) (0) | 2024.09.06 |
2024.09.05 | 페이징 처리 (1) | 2024.09.05 |