[Spring Data JPA] JPA 엔티티 설계 시 생성자 접근 제한을 PROTECTED로 설정하는 이유
·
BackEnd/Spring & JPA
1. 시작하며Spring Data JPA를 활용하여 애플리케이션을 개발하다 보면 엔티티(Entity) 설계는 매우 중요한 요소로 다가옵니다. 특히, Entity의 생성자 접근 제한과 같은 세부적인 설계는 시스템의 안정성과 데이터 일관성을 유지하는 데 큰 영향을 미칩니다.이번 글에서는 회원 엔티티(Entity)를 설계하며 @NoArgsConstructor와 @AllArgsConstructor를 AccessLevel.PROTECTED로 제한한 이유를 다룹니다. 이러한 설계가 가지는 장점과 실제로 어떤 효과를 기대할 수 있는지에 대해 설명합니다.2. JPA 엔티티 기본 설계JPA 엔티티는 데이터베이스 테이블과 1:1로 매핑되는 클래스입니다. 아래는 Member 엔티티의 예시입니다.@Entity@Getter@B..
[JAVA] 인터페이스 심화: 다중 상속, 다중 구현
·
BackEnd/JAVA
1. 추상 클래스보다 인터페이스를 주로 사용하는 이유자바에서 인터페이스는 추상 클래스와 비슷한 역할을 하지만, 특정 상황에서는 더 유연하고 효과적인 설계 방식을 제공합니다. 특히, 다중 구현과 같은 특성 때문에 추상 클래스보다 인터페이스를 더 자주 사용하는 경향이 있습니다. 그 이유는 다음과 같습니다.1.1 다중 구현이 가능하다자바는 클래스 간의 다중 상속을 허용하지 않습니다. 즉, 한 클래스는 오직 하나의 부모 클래스만 상속받을 수 있습니다. 하지만 인터페이스는 여러 개를 동시에 구현할 수 있습니다. 이를 통해 클래스가 여러 역할을 동시에 가질 수 있게 되어 설계의 유연성이 크게 증가합니다.// 인터페이스 1interface Drivable { void drive();}// 인터페이스 2inter..