inflearn logo
강의

Course

Instructor

Java ORM Standard JPA Programming - Basics

Practical Example 1 - Requirement Analysis and Basic Mapping

질문있습니다.

2

hoon

14 asked

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]

20분 쯤 내용에서


실제 스키마의 기준이 DDL이라고 하더라도, 엔티티에 주요 제약과 인덱스를 함께 적어두면 코드만 봐도 DB 설계 의도를 파악할 수 있다는 장점이 있다고 말씀하셨습니다.

해당 강의가 녹화된 날짜가 예전임을 감안했을 때, 현재까지도 유효한 말씀일까요? 물론 회사마다 규칙이 있고 다를 수 있다고 생각하고 또 요즘은 어떻게 설계하는지 궁금합니다.

java jpa

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

hoon님 질문과 관련하여, 엔티티에 주요 제약 조건과 인덱스를 함께 기록해 DB 설계 의도를 표현하는 방식에 대한 유사한 답변을 아래에서 확인하실 수 있습니다.

JPA를 사용할 때 SQL 생성 질문

해당 답변에서는 다음과 같이 안내하고 있습니다.

  • JPA가 생성하는 DDL을 그대로 운영 DB에 적용하기보다는, 생성된 쿼리를 확인하고 검토하는 것이 좋습니다.
  • 운영 환경에서는 ddl-autocreate, create-drop으로 사용하면 테이블이 초기화될 수 있으므로 주의해야 합니다.
  • 일반적으로 운영 환경에서는 validate 또는 none을 사용하고, 실제 스키마 변경은 별도의 데이터베이스 관리 도구나 마이그레이션 도구를 통해 관리합니다.
  • 엔티티에 @Column, @Table(indexes = ...), unique, nullable 등의 정보를 기록하면 코드만으로도 도메인 및 DB 설계 의도를 파악하는 데 도움이 됩니다. 다만 엔티티의 설정이 운영 DB 스키마의 유일한 기준이 되는 것은 아니며, 회사의 마이그레이션 정책과 DBA 검토 절차에 따라 달라질 수 있습니다.

따라서 강의에서 설명한 내용은 현재도 유효하다고 볼 수 있습니다. 다만 실무에서는 엔티티에 설계 의도를 표현하면서도, 실제 운영 스키마는 Flyway·Liquibase·수동 DDL 등 별도의 마이그레이션 체계로 관리하는 방식이 일반적입니다.

참고로 기존 질문의 원본 URL은 다음과 같습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

리뉴얼 시기

0

92

2

변경감지(더티체킹) 이후 플러시할 경우의 쿼리

0

79

1

단일 테이블 시 null 값과 연관관계 필요성 질문

0

75

1

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

110

2

inheritance startegy 선택시 고려사항

0

77

1

Entity 동등성 비교

0

70

1

실무 조언 관련 질문입니다.

0

101

1

H2데이터베이스 파일 생성

0

116

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

1

104

2

수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?

0

90

1

JPQL 메소드와 락

0

90

1

Delivery @OneToOne

0

105

1

17강 4~5분대 테이블 값 조회가 안됩니다.

0

156

2

UnsupportedOperationException 발생

0

173

3

H2 Database 연결이 안됩니다.

0

135

2

연관관계 매핑 질문드립니다.

0

133

2

h2데이터베이스 실행오류

0

150

2

persistence.xml

0

163

2

양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?

0

128

1

영속성 컨텍스트

0

109

1

JPA 프록시

0

143

1

Native Query와 MyBatis

0

122

1

영속성 컨텍스트는 어떤 메모리에 저장되는건가요?

0

133

1

임베디드 타입 예시 코드 관련 질문

0

175

3