spring 공부를 하다보니 @Getter, @builder... 등 여러 어노테이션을 이용하다 그래서 이게 정확히 뭐지? 싶어서 찾아봄
"자바 어노테이션(Java Annotation)은 자바 소스 코드에 추가하여 사용할 수 있는 메타데이터의 일종이다. 보통 @ 기호를 앞에 붙여서 사용한다. JDK 1.5 버전 이상에서 사용 가능하다. 자바 애너테이션은 클래스 파일에 임베디드되어 컴파일러에 의해 생성된 후 자바 가상머신에 포함되어 작동한다." - 위키백과
??
즉,
이전의 파일 관리방법
- 이전에는 소스코드와 설정파일을 각각 따로(다른 파일에) 작성했기 때문에 소스코드 변경 시 따로 설정파일을 따로 업데이트를해줘야 했음
- 이러한 불편함을 한번에 개선하기 위해 소스코드와 설정파일을 같이 쓰는 방법을 사용하기로 함
@anno1 // 설정파일 public ~~ // 소스코드
@Getter
: 자동으로 Getter 메서드 생성@NoArgsConstructor
: 파라미터가 없는 기본 생성자를 생성(null, 0 등 기본 값으로 초기화 됨)@RequiredArgsConstructor
: final이 붙거나 @NotNull 이 붙은 필드의 생성자를 자동 생성해줌@Builder
: https://peace-log.tistory.com/entry/Builder%ED%8C%A8%ED%84%B4-%EA%B7%B8%EB%A6%AC%EA%B3%A0-Builder-annotation%EB%8A%94-%EB%AD%98%EA%B9%8C%F0%9F%A7%90@Autowired
: 생성자로 Bean 객체를 받도록 하는 것과 같음@RunWith(SpringRunner.class)
: 테스트를 진행할 때 JUnit에 내장된 실행자 외에 다른 실행자를 실행시킴 즉, 스프링 부트 테스트와 JUnit 사이에 연결자 역할을 함@PostMapping
: @RequestBody
: http 통신을 할 때 post의 body에 data를 넣어서 보내겠다라는 의미로, RequestBody에 SearchParam 값들을 매칭시켜서 달라는 의미