15줄 @EnableJpaAuditing
: Auditing 활성화 하기위한 annotation
Audit는 감독하고 검사하다는 뜻으로, 해당 데이터를 보고 있다가 생성 또는 수정이 발생하면 자동으로 값을 넣어주는 편리한 기능.
https://web-km.tistory.com/42
https://leo0842.github.io/spring/date-auto-create/
16줄 @SpringBootApplication
= @SpringBootConfiguration
+ @EnableAutoConfiguration
+ @ComponentScan
@EnableAutoConfiguration
: jar properties를 기반으로 자동으로 의존성 설정@ComponentScan
: @Component
가 적용된 클래스들을 스캔하여 자동으로 빈 등록@SpringBootConfiguration
: 사용자가 추가적으로 빈이나 설정 클래스들을 등록 가능하게 함https://seongmun-hong.github.io/springboot/Spring-boot-EnableAutoConfiguration
https://yejun-the-developer.tistory.com/3
@RequiredArgsConstructor
final
필드에 대해 생성자를 만들어주는 lombok
의 annotation
Spring Framework의 DI(의존성주입) 중 Constructor Injection(생성자 주입)을 임의의 코드 없이 자동으로 설정
새로운 필드를 추가할 때 다시 생성자를 만드는 번거로움을 없앨 수 있다. ( @Autowired
사용하지 않고 의존주입 )
@RequiredArgsConstructor
이 어떻게 구동하는지 정확히 알아야 예상치 못한 오류를 막을 수 있다.
@RequiredArgsConstructor
적용 전
@Component
public class LombokTest {
private final MyService myservice;
private final String id;
@Autowired
public LombokTest(MyService myservice, String id) {
this.myservice = myservice;
this.id = id;
}
@RequiredArgsConstructor
적용 후
@Component
@RequiredArgsConstructor
public class LombokTest {
private final MyService myservice;
private final String id;
}
https://byul91oh.tistory.com/432
@RestController
@RestController
는 @Controller
에 @ResponseBody
가 추가된 것입니다. 당연하게도 RestController
의 주용도는 Json 형태로 객체 데이터를 반환하는 것입니다. 최근에 데이터를 응답으로 제공하는 REST API를 개발할 때 주로 사용하며 객체를 ResponseEntity
로 감싸서 반환합니다. 이러한 이유로 동작 과정 역시 @Controller
에 @ReponseBody
를 붙인 것과 완벽히 동일합니다.[https://mangkyu.tistory.com/49](https://mangkyu.tistory.com/49)
@RequestBody
@RequestBody
는 클라이언트가 전송하는 Json(application/json) 형태의 HTTP Body 내용을 Java Object로 변환시켜주는 역할을 한다.@NoArgsConstructor
Lombok을 사용하면 생성자도 자동으로 생성할 수 있습니다. @NoArgsConstructor
어노테이션은 파라미터가 없는 기본 생성자를 생성해주고, @AllArgsConstructor
어노테이션은 모든 필드 값을 파라미터로 받는 생성자를 만들어줍니다. 마지막으로 @RequiredArgsConstructor
어노테이션은 final
이나 @NonNull
인 필드 값만 파라미터로 받는 생성자를 만들어줍니다.
@MappedSuperclass
DTO(Data Transfer Object)
: 계층 간 데이터 교환을 하기 위해 사용하는 객체로, DTO는 로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가진 클래스)DAO(Data Access Object)
: 데이터베이스의 data에 접근하기 위한 객체. DataBase에 접근 하기 위한 로직 & 비지니스 로직을 분리하기 위해 사용함.VO(Value Object)
값 오브젝트로서 값을 위해 쓰입니다. read-Only 특징(사용하는 도중에 변경 불가능하며 오직 읽기만 가능)을 가집니다. DTO
와 유사하지만 DTO
는 setter
를 가지고 있어 값이 변할 수 있습니다.