public
클래스, 필드, 생성자, 메서드에 사용 가능
모든 대상이 접근 가능
protected
필드, 생성자, 메서드에 사용 가능
같은 패키지 또는 자식 클래스에서만 접근 가능
(자식클래스가 아닌 다른 패키지에 소속된 클래스에서는 접근 ❌)
(평소에는 private 접근제어자가 붙은것 처럼 사용하지만 상속방은 자식클래스에서는 pulic으로 사용하고 싶은 경우 → protected를 사용하라!)
default
클래스, 필드, 생성자, 메서드에 사용 가능
같은 패키지에 소속된 클래스에서만 접근 가능
private
필드, 생성자, 메소드에 사용 가능
같은 클래스에서만 접근 가능
DAO(Data Access Object, 실제로 DB에 접근하는 객체)이다.
EntitytManager를 사용하여 직접 구현할 수도 있지만 Spring Data Jpa를 통해(인터페이스) 편하게 사용할 수 도 있다
save: 전달된 데이터를 저장하는 경우
저장될 내용을 Entity로 받아야 한다.
(service layer에서 dto를 Entity로 변환하여 전달하자!)
@ModelAttribute
http 파라미터 내용을 java object로 변환, setter가 필요, query string 및 form 형식이 아닌 데이터 처리 불가능
json 형태의 http body 내용을 java object로 변환, @RequestBody를 사용할 객체는 기본 생성자가 필수
lombok을 이용하여 @Slf4j를 통해 쉽게 로그를 기록할 수 있다.(ex: log.info(),...)