Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- postgres
- transaction
- 스키마 자동 생성
- 컨테이너
- Container
- load balancer
- java
- Database
- acid
- 데이터베이스
- 자바 동시성
- ArrayList 가변
- PostgreSQL
- 멀티스레드 싱글톤
- ArrayList 길이 확장
- ArrayList 소스코드
- github
- 싱글톤 동시성
- JPA란
- thread safety
- 트랜잭션
- 도커
- docker
- 권장 PK 전략
- index
- heap
- create-drop
- 로드밸런서
- JPA 장점
- JPA
Archives
- Today
- Total
JS
[JPA #3] 데이터베이스 스키마 자동 생성 기능 본문
JPA에는 데이터베이스 스키마를 자동으로 생성해주는 기능이 존재합니다.
이 기능은 DDL을 애플리케이션 실행 시점에 자동 생성해줍니다.
당연히 개발환경 에서만 사용이 권장되는 기능이고, 운영환경 에서는 사용하지 않거나 필요에 따라 적절하게 다듬은 뒤 사용해야 합니다.
DB 스키마 자동 생성 기능은 데이터베이스 방언을 활용해서 사용하는 데이터베이스에 맞는 적절한 DDL을 생성해줍니다.
hibernate.hbm2ddl.auto 속성
- create: DROP + CREATE
- create-drop: create와 같으나 종료 시점에 DROP
- update: 변경분만 반영 (운영 DB 사용 X, 지우는 건 안되고 업데이트만 가능)
- validate: 엔티티와 테이블이 정상 매핑되었는 확인
- none: 사용하지 않음
해당 속성들을 필요에 따라 아래와 같이 사용할 수 있습니다.
<property name="hibernate.hbm2ddl.auto" value="create" />
주의할 점은 운영 장비에는 절대 create, create-drop, update를 사용하면 안됩니다.
- 개발 초기 단계에는 create 또는 update
- 테스트 서버는 update 또는 validate
- staging, prod 서버는 validate 또는 none
되도록이면 테스트 서버 및 개발 서버에서도 쓰지 않는게 권장사항입니다.
만들어주는 SQL문 정도만 꼼꼼히 검수해서 활용하는게 좋은 방법입니다.
JPA의 데이터베이스 스키마 자동 생성 기능에 대한 정리를 마치며, 이 기능을 운영환경에서 사용하면 안되는 이유를 실제 사례를 통해 설명해주는 재미있는 유투브 영상이 있어 소개합니다.
제가 정말 좋아하는 개발바닥 채널의 영상인데요.
진행자 중 한분이신 호돌맨님이 배민에 계실 때 실수로 일으켰던 역대 탑3 장애라고 하는데 굉장히 재미있게 봤습니다.
'JPA' 카테고리의 다른 글
[JPA #5] 연관관계 매핑 (Relationship Mapping) (0) | 2023.01.03 |
---|---|
[JPA #4] 엔티티 매핑 (Entity Mapping) (0) | 2022.10.28 |
[JPA #2] 영속성 컨텍스트 (Persistence Context) (0) | 2022.10.27 |
[JPA #1] JPA란? JPA를 왜 사용할까? JPA 장점은? (0) | 2022.10.27 |
Comments