코드숨 스프링 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을 작성해야 할지에 대해 많이 배웠다.
  • 리뷰의 일부를 지금 되돌아보면 작은 실수들도 많았다. 한 번 더 생각하면 되는 이 실수들을 줄이기 위해 조금 더 꼼꼼해 져야겠다..
  • 이번 주에 개인적으로 아쉬운 점이 있다면 과제 이외에 다른 공부들에 많은 시간을 투자하지 못한 점이다. 다음주에는 시간 분배를 잘해서 하루하루 꼭 해야 하는 공부를 미루지 않아야겠다.

좋은 웹페이지 즐겨찾기