Skip to content

Commit

Permalink
Merge pull request #83 from meoraeng/main
Browse files Browse the repository at this point in the history
[7주차/머랭] 워크북 제출합니다.
  • Loading branch information
meoraeng authored Nov 16, 2024
2 parents feae2a7 + 5c25a2d commit 12daeff
Show file tree
Hide file tree
Showing 16 changed files with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions keyword/chapter07/keyword.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
## 어노테이션 정리
- `@Getter`: 클래스의 모든 필드에 getter 메소드 자동 생성
- `@NoArgsConstructor`: 매개변수가 없는 기본 생성자 자동 생성

- `@AllArgsConstructor`: 모든 필드를 파라미터로 받는 생성자 자동으로 생성
- `@JsonPropertyOrder`: JSON 직렬화 시 필드의 출력 순서를 지정
- `@JsonInclude(JsonInclude.Include.NOT_NULL)`: null인 필드를 JSON에 포함하지 않도록 한다


### Builder
builder(): (복습)빌더패턴 구현 메서드, 클래스에 대한 빌더 인스턴스를 반환하여 유연하게 객체를 생성할 수 있게 한다.
반환된 빌더 객체를 사용해 필요한 필드를 지정할 수 있고 각 필드를 설정하는 메서드는 빌더 객체 자체를 반환하여, 메서드 체이닝 방식으로 필드 설정 후 build()메서드를 호출하여, 설정된 필드들로 객체를 생성

우리가 만드는 인스턴스는 모두 빌더 패턴을 쓴다고 생각하면 편하다.


## 내용 정리
`public static class`를 쓰는 이유는 다음과 같다.
> DTO는 수많은 곳에서 사용되기 때문에, static class로 만들면 매번 class파일을 만들 필요 없이 범용적으로 DTO를 사용 가능

vaildation(유효성검증): 데이터가 특정 조건을 만족하는지 확인하고, 입력된 값이 올바른 형식인지 검증하는 과정이다. 입력 데이터가 유효한지, 비즈니스 로직에 맞는지, 보안상 문제는 없는지 등을 체크한다.
자바에서 사용하기 위해서는 관련 기능을 사용하기 위한 의존성을 추가해주어야 한다.

### `RestControllerAdvice`
어노테이션 형태로 사용되며, 예외처리에 쓰인다. `@RestController`가 붙은 대상에서 Exception이 발생하는 것을 감지하는 역할을 한다.

이를 사용하면 편한 이유는 다음과 같다.
- 모든 컨트롤러에서 발생하는 예외를 한곳에서 처리할 수 있게 해준다. 예외가 발생할 때 마다 컨트롤러에 예외 처리를 개별적으로 추가할 필요가 없어진다.
- 종복된 예외처리 로직을 작성하지 않아도 되어 코드 중복을 줄인다.
- 모든 예외에 대해 일관된 형식의 응답을 보낼 수 있다.
- 특정 예외 유형에 대해서만 처리하거나, 특정 패키지or클래스에만 적용하도록 할 수도 있다.

### Lombok
자바의 반복적인 코드 작성을 줄여주는 라이브러리로, 어노테이션을 사용하여 Getter, Setter, Constructor, Builder, toString, EqualsAndHashCode 등 자주 사용하는 메서드와 코드를 자동으로 생성해준다.

작동방식 : 컴파일 시 바이트코드를 조작하여 자동으로 메서드를 추가하는 방식이기 때문에 실제 코드 파일에는 나타나지 않고, 컴파일된 클래스 파일에 생성된다.

첫줄에서 정리해둔 어노테이션의 대부분이 Lombok 라이브러리에 속한다.
Binary file added mission/chapter07/image-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mission/chapter07/image-10.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mission/chapter07/image-11.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mission/chapter07/image-12.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mission/chapter07/image-13.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mission/chapter07/image-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mission/chapter07/image-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mission/chapter07/image-4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mission/chapter07/image-5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mission/chapter07/image-6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mission/chapter07/image-7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mission/chapter07/image-8.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mission/chapter07/image-9.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mission/chapter07/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file added mission/chapter07/mission.md
Empty file.

0 comments on commit 12daeff

Please sign in to comment.