JPA

테이블과 컬럼에 대한 명세를 엔티티에 자세하게 적는것이 좋은지?

DeJa 2021. 12. 29. 13:45
728x90

테이블과 컬럼에 대한 명세를 엔티티에 자세하게 적는것이 좋은지?

테이블과 컬럼에 대한 명세를 엔티티에 자세하게 적는것이 좋은지, 아니면 @Column 같은 애노테이션은 생략해도(생략 가능할 경우) 좋은지에 대한 개인적인 의견이 들어간 글입니다.

테이블과 컬럼에 대한 명세를 엔티티에 자세하게 적는것이 좋다고 생각

그 이유는 엔티티에 테이블 및 컬럼에 대한 명세를 자세하게 적으면, 데이터베이스의 테이블 명세를 직접 까보지 않아도(Ex. DBeaver 에 들어가서 테이블을 열어서 명세 확인) 엔티티단에서 바로 확인할 수 있다는 장점이 있기 때문입니다.

자세하게 적는다 : 엔티티를 보고 테이블 명세를 정확하게 파악할 수 있어야 하는 정도

MyBatis 를 사용해보신 분들은 알겠지만, SI 에서 VO, DTO 와 같은 명칭으로 God Class를 만들어서 사용하는데 해당 클래스만 보고 테이블이 어떻게 생겼는지 유추할 수 없습니다. 해당 클래스에서는 테이블 컬럼에 대한 필드 + 화면단에서 필요한 필드 등 여러가지가 섞여 있기 때문입니다.

따라서, 엔티티에 테이블 및 컬럼에 대한 명세가 자세하게 적혀있고 이러한 규칙들이 개발팀 내 컨벤션 규칙으로 자리잡고 있다면 엔티티만 확인하여 어떤식으로 DDL 이 구성되었는지 알 수 있습니다.

728x90