protected 기본 생성자
·
DEVELOP/CONCEPT
왜 기본 생성자에 protected를 쓰는가?JPA 엔티티에서 기본 생성자에 protected 접근 제어자를 쓰는 건 아주 흔하고 권장되는 패턴이다. 그렇담 왜 public이 아닌 protected를 써야할까? 1. JPA는 기본 생성자를 필요로 한다.JPA는 내부적으로 리플렉션을 사용해 객체를 생성하기 때문에, 기본 생성자가 없으면 엔티티를 생성할 수 없다. 그래서 무조건 기본 생성자가 필요하다. 2. 하지만 public은 너무 개방적이다.기본생성자를 public으로 열어두면, 외부 코드에서 실수로 new Entity() 객체를 생성할 수 있다. 즉 불완전한 상태의 객체가 생길 수 있는 것이다. 이는 특히 도메인 무결성이 깨질 가능성으로 이어진다. public vs private vs protected..