오늘 알게된것
Git 다루기
Git branch, Git issue
원격(Remote) 저장소 vs 로컬(Local) 저장소
지금까지 원격 저장소와 로컬 저장소를 아무 생각없이 쓰고 있었는데, 원격을 직접 건드리는건 정말 해서는 안되는 행위이다.
로컬 main과 원격 main이 분리되어 있다는 사실을 잊지 말자.
정적 팩토리 메서드
메서드의 이름을 만들어 주기 위해 사용한다.
예) Color redColor = Color.valueOf("RED");
여기서 valueOf도 정적 팩토리 메서드이다.
이름은 컨벤션으로 미리 정의되어 있다.(of, from 등)
호출할 때마다 새로운 객체를 생성할 필요가 없다.
객체 생성을 캡슐화할 수 있다.
예) public static Response of(Review review) {}
@Builder 패턴
// ASIS
User user = new User("테스트", 19, 181, 121);
// TOBE
User user = new User("테스트", 19, 181, 121, 79);
위와 같은 빌더 패턴을 사용함으로써 얻을 수 있는 이득은
자바의 Record로 DTO 만들기
@Getter
public class DTO {
private Long id;
private String title;
public DTO(Entity entity){
this.id = entity.getId();
this.title = entity.getTitle();
}
}
이런 식으로 만드는데, 이것을 record로 만들게 되면
public record QuestionResponseDto (
Long id,
String title,
String content
) {}
이렇게만 쓰면 된다!
데이터에 대한 유효성 검증 관련 Annotation(Validation) / 벨덩
깃허브 링크 : https://github.com/wkdehf217/codingTest/commit/1b46ac4b36fae4187f51ecd1ae4795aeb4121cf7
문제는 간단했지만, 내 풀이방식은 간단하지 못했다.
왜냐하면 contains과 같은 메서드들을 일부러 안쓰려고 피하다고 보니 어렵게 돌아갔던것 같다.
가끔은 메서드들도 쓰면서 풀어본 후에 리펙토링하는 방향으로 해야겠다.