코드숨 스프링 4주차 회고
한 일
- '고양이 장난감 가게 만들기' 과제 수행 (코드 리뷰)
- 이펙티브 자바 읽기
- '엘리강트 오브젝트'읽고 객체지향 스터디 참여
배운 점 & 느낀점
1. Lombok 사용시 주의 할 점 (링크)
- @AllArgsConstructor를 사용한 클래스 멤버변수들의 순서를 바꾸거나, 멤버변수를 추가하게되면 문제가 될 수 있다.
- 해당 생성자를 사용한 부분을 모두 수정해주어야 합니다.
- 멤버변수들의 순서를 바꿀때 멤버변수의 타입이 같다면, 생성자 인자 순서가 바뀌어도 오류가 발생하지 않는다. - Lombok을 적절히 활용하려면 필요한 생성자를 직접 만들고 필요에 따라 @Builder를 붙여 사용하는 것이 바람직하다.
2. 데코레이터 패턴
- 데코레이터 패턴을 연습해보기 위해 DTO를 데코레이터 패턴을 얄팍하게 응용해 보았다.
- 처음에는 Product에 setter를 만들지 않기 위해 ProductRequest에 Product, ProductBuilder 두개의 참조를 가지고 있도록 만들었었는데.. 아무래도 모양이 좋지 않고 조금 과한 감이 있었다.
- 그래서 결국 setter를 만들고 ProductRequest, ProductResponse가 Product의 참조값을 가지는 방법으로 구현하였다.
- 아래에 간단한 예시를 작성해보았다.
@Entity
public class Product {
@Id
@GeneratedValue
@Column(name = "product_id")
private Long id;
private String name;
protected Product() {
}
@Builder
private Product(Long id, String name) {
this.id = id;
this.name = name;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public class ProductRequest {
private Product product;
public ProductRequest() {
product = new Product();
}
public void setName(String name) {
product.setName(name);
}
public String getName() {
return product.getName();
}
public Product getProduct() {
return product;
}
}
public class ProductResponse {
private Product product;
public ProductResponse(Product product) {
this.product = product;
}
public Long getId() {
return product.getId();
}
public String getName() {
return product.getName();
}
}
3. JavaDoc을 빌드 하는 방법(링크)
- 내가 작성한 JavaDoc
4. 주석에 DTO라는 단어 쓰지 않기
자기 선언
- 이번 주에는 대부분의 시간을 과제를 하며 보냈다. 그래서인지 과제를 통해 배운 게 참 많았다. 이 정도면 괜찮은 거 같은데.. 라고 생각해도 종립님이 해주신 리뷰를 보면! 아.. 아... 깨닫게 되는 순간이 많았습니다. 특히나 어떻게 테스트코드를 작성해야 할지, 어떻게 JavaDoc을 작성해야 할지에 대해 많이 배웠다.
- 리뷰의 일부를 지금 되돌아보면 작은 실수들도 많았다. 한 번 더 생각하면 되는 이 실수들을 줄이기 위해 조금 더 꼼꼼해 져야겠다..
- 이번 주에 개인적으로 아쉬운 점이 있다면 과제 이외에 다른 공부들에 많은 시간을 투자하지 못한 점이다. 다음주에는 시간 분배를 잘해서 하루하루 꼭 해야 하는 공부를 미루지 않아야겠다.
Author And Source
이 문제에 관하여(코드숨 스프링 4주차 회고), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jamieshin/코드숨-스프링-4주차-회고저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)