본문 바로가기
카테고리 없음

20230209 TIL

by hbIncoding 2023. 2. 10.

Spring 입문 주차 6일차

1. 세션 정리

 1)application.properties 대신 apllication.yml로 쓰기

  • 세팅을 세부적으로 나누어 주고 들여쓰기를 사용하여 가독성을 높일 수 있다,

  2)@builder

  • 객체 생성에서 주입하는 것에 대한 방식
  • 객체를 생성 할 때는 생성자 패턴과 빌더 패턴이 존재한다.
  • 생성자 패턴은 아래와 같다. id와 name이 헷갈리게 들어갈 경우가 생긴다.
public class CarImpl {

    private String id = "1";
    private String name = "carTest";

    Car car1 = new Car(id, name);
    Car car2 = new Car(name, id);
}
  • Lombok을 통해 builder 패턴을 만들어 보자. 더이상 헷갈리지 않을 것 같다.
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class Car {

    private String id;
    private String name;

    @Builder    // 생성자를 만든 후 그 위에 @Builder 애노테이션 적용
    public Car(String id, String name) {
        this.id = id;
        this.name = name;
    }
}


public class CarImpl {

    private String id = "1";
    private String name = "carTest";

    Car car3 = Car.builder()
            .id(id)
            .name(name)
            .build();
}

 3)Repository

  • repository 상속시 instends JpaRepository<메인클레스(ex.Memver), Pk타입(ex.Long)>과 같이 타입을 넣어준다
  • findbyId 같은 건 JpaRepository가 상속되면서 자동으로 구현된다.

 4)Service에서 dto에 담기

  • 내가 한거 보다 메서드를 사용해서 담는게 더 깔끔해 보일 수 있다.
BoardResponseDto responseDto = new BoardResponseDto(board.getUsername(),sucess);


// 강사님 방식

return memberresponse.of(member)
//dto 에서 of 메서드안에 아래처럼 다 넣어주어 service에서 코드를 깔끔하게 하고
//column이 여러개 있을 때 혼란을 최소화 할 수 있다.
 this.name = member.getUsername()

 5)@NotBlank와 @NotNull, @NotEmpty의 차이

  • @NotNull은 이름 드래도 Null만 허용하지 않음, null이 들어왔을 때 예상치 못한 오류나 문제가 생길 경우 사용
  • @NotEmpty는 null과 ""둘다 허용하지 않게 한다. 하지만 " "은 허용이 된다.
  • @NotBlank는 null ,"", " " 모두 허용하지 않는다.

 

2. 기술 멘토링

 1) Repository : entity에 생성된 DB에 접근 하는 메서드를 사용하기 위한 interface, 메서드들의 CRUD를 어떻게 할건지 정의하는 계층

 2)try catch는 실제로 지양한다 > 예외를 잡고 아무것도 안하면 에러를 찾기 어렵다.