1. Data - (Annotation)
- [설명]
- Class의 모든 Field에 대한 getter 및 setter 메서드, toString() 및 equals() 및 hashCode() 메서드를 생성해주는 역할을 합니다
- [기능]
- @ToString
- Class의 toString() 메서드를 생성해준다는 의미입니다
- @EqualsAndHashCode
- Class에 대한 equals() 및 hashCode() 메서드를 생성해준다는 의미입니다
- @Getter
- Class의 모든 Field에 대한 getter 메서드를 생성해준다는 의미입니다
- @Setter
- Class의 모든 Field에 대한 setter 메서드를 생성해준다는 의미입니다
- @NoArgsConstructor
- Class에 대한 인자가 없는 생성자를 생성해준다는 의미입니다
- @RequiredArgsConstructor
- Class의 각 final field와 null이 아닌 field에 대해 하나의 매개변수가 있는 생성자를 생성해준다는 의미입니다
- @AllArgsConstructor
- Class의 각 Field에 대해 하나의 매개변수가 있는 생성자를 생성해준다는 의미입니다
- @Builder
- [설명]
- Class에 대한 빌더 패턴을 생성해준다는 의미입니다
- [기능]
- @NoArgsConstructor
- Class에 대한 인자가 없는 생성자를 생성해준다는 의미입니다
- @RequiredArgsConstructor
- Class의 각 final field와 null이 아닌 field에 대해 하나의 매개변수가 있는 생성자를 생성해준다는 의미입니다
- @Value
- 최종 Field, getter 메서드, toString() 및 equals() 및 hashCode() 메서드가 있는 불변 class를 생성해준다는 의미입니다
- 설정파일(.properties, .yml)에 설정한 내용을 주입시켜주는 어노테이션을 말합니다
2. Log - (Annotation)
- Log란?
- 프로그램에서 로그를 작성해두면, 어떤 동작을 하고 있는지, 어느 부분에서 에러가 났는지 쉽게 파악할 수 있습니다
- 특히 오류가 발생하면 어떤 함수 호출에서 문제가 있었는지, 에러 메세지가 무엇인지, 어떤 값이 들어갔는지 등을 알 수 있어 훨씬 더 빠르게 파악이 가능합니다
- 내장 java 로깅 framework를 사용하여 class에 대한 로거 인스턴스를 생성해준다는 의미입니다
- [종류]
- Slf4j
- [설명]
- SLF4J 로깅 framework를 사용하여 class에 대한 로거 인스턴스를 생성해준다는 의미입니다
- Simple Logging Facade for Java의 약자로 로깅 추상화 라이브러리 입니다
- 로깅하는 일을 직접하지 않고 로깅 구현체를 찾아서 실제 로깅 라이브러리를 찾아서 사용할 수 있게 합니다
- [모듈]
- API
- 인터페이스로서 이것 혼자 사용을 할 수 가 없으며 사용하기 위해서 바인딩 작업이 필요합니다
- Binding
- API 구현체와 이어주는 어댑터 역할을 하며, 여러 바인딩 중 반드시 하나만 사용해야 합니다
- Bridge
- 레거시를 위해 필요한 모듈을 말합니다
- [로그레벨]
- FATAL
- 매우 심각한 에러가 났을 때입니다
- ERROR
- 의도하지 않은 에러가 발생했을 때를 말합니다
- WARN
- 에러는 아니지만 잠재적 가능성이 있는 경우를 말합니다
- INFO
- 요구사항에 따라 시스템 동작을 보여줄 때를 말합니다
- DEBUG
- INFO레벨보다 상세히 나타낼때 사용됨을 말합니다
- Log4j
- [설명]
- Log4j 로깅 framework를 사용하여 class에 대한 로거 인스턴스를 생성해 준다는 의미입니다
- [3가지 컴포넌트]
- Logger
- 프로그램으로부터 로깅정보를 받아온다는 의미입니다(feat. 데이터를 기록하는 역할)
- Appender
- 로깅정보를 여러가지 장치로 내보내준다는 의미입니다 (feat. 어디에 기록할 것인가 [Ex. file, console, jdbc, smtp등])
- Layout
- 로깅 정보를 포맷팅한다는 의미입니다 (feat. 어떤 스타일로 기록할지를 정하는 역할)
3. Repository - (Annotation)
- [설명]
- Entity에 의해 생성된 DB에 접근하는 메서드들을 사용하기 위한 인터페이스를 말합니다
- 받은 정보를 DB에 저장하고 조회하는 기능을 수행합니다
4. Mapper - (Annotation)
- [설명]
- 일일이 DAO를 만들지 않고 Interface만을 이용해 더 편하게 개발을 할 수 있습니다
- 자바코드와 SQL문**(*.xml 형식)**을 분리하여 편리하게 관리하도록 도와줍니다
- XML파일과 Mapper Interface의 패키지 위치와 파일명이 동일해야합니다 (Ex. id=”mapper interface method”)
- MyBatis에서 인식할 수 있도록 도와주는 역할을 합니다
- [기능]
- @Insert
- xml파일 id에게 insert명령문을 이용하겠다고 명시하는 것입니다
- xml file에서는 인터페이스에 설정한 insert method 이름을 지정해서 이용할 수 있게 합니다
- @Update
- xml파일 id에게 update명령문을 이용하겠다고 명시하는 것입니다
- xml file에서는 인터페이스에 설정한 update method 이름을 지정해서 이용할 수 있게 합니다
- @Select
- @Delete