Bilder를 사용해야 하는 이유 & 포스트맨의 변수

단비·2023년 4월 18일
0

학습

목록 보기
8/66

Builder란

  • builder() 함수를 통해 객체를 생성할 수 있는 빌더를 얻고,
    값 세팅 후 build()를 통해 빌더를 작동 시켜 객체를 생성

생성자의 단점

  • 매개변수가 많아지면 코드를 읽기 어렵고, 어떤 순서로 매개변수 넣어야하는지 헷갈림
  • 하나의 객체를 만들기 위해 메소드 여러개를 호출해야 함
  • 객체가 완전히 생성되기 전까지는 일관성(consisitency)이 무너진 상태(미완성) ⇒ 디버깅 어려움
  • 객체에 필요 없는 필드가 있는 경우 더미 값을 넣어주거나 해당 필드가 없는 생성자를 만들어주어야 함
    User user = new User("dbkim", 25, "female");

Builder의 장점

1. 필요한 데이터만 설정할 수 있음

  • 객체에 필요하지 않은 필드의 경우 생략 가능함
    private Stirng name
     private int age
    // age 생략
    User user = User.builder().name("dbkim").build()

2. 유연성을 확보할 수 있음

  • 새로운 필드가 추가돼도 기존 코드를 수정할 필요가 없음

    // 생성자의 ASIS
    new User("dbkim", 25)
    
    // 생성자의 TOBE
    new User("dbkim", 25, "female")

3. 불변성을 확보할 수 있음

  • 수정자 패턴(Setter)의 경우 Open-Closed 법칙에 위배되고 불필요한 코드 리딩 등을 유발,
    그렇기 때문에 클래스 변수를 final로 선언하고 객체의 생성은 빌더에 맡기는 것이 좋음
    @RequiredArgsConstructor
    @Builder
    public class User{
        private final String name;
        private final int age;
    }

  • Builder 어노테이션의 옵션
    • builderMethodName (default = builder)
      • 빌더를 생성하는 메서드의 이름을 변경할 수 있음
    • buildMethodName (default = build)
      • 빌더에 필드 값들을 입력하고 마지막에 객체를 생성하는 동작인 빌드 메서드의 이름을 변경 할 수 있음
    • toBuilder (default = false)
      • 빌더로 만든 인스턴스에서 toBuilder() 메서드를 호출해 그 인스턴스 값을 베이스로 빌더 패턴으로 새로운 인스턴스를 생성할 수 있음
    User user2 = user1.toBuilder().name("SweetRain").build();

Postman의 변수

특징

  • 기존에 사용하던 API의 IP 또는 패턴이 바뀌어도 Postman에 정의해둔 API들을 모두 일일히 바꿀 필요가 없음
  • 5가지 유형의 스코프가 있음 ( 우선 순위: Local -> Data -> Environment -> Collection -> Global )

    스코프(Scope)란?
    변수에 접근할 수 있는 범위


1. Environment(환경 변수)

각 워크스페이스에서만 적용되고, 여러 개를 생성할 수 있음

  • Variable: 변수명
  • Type: default 와 secret
  • Initial value: 모든 사용자가 접근할 수 있는 value
  • Current value: 로컬에서만 접근할 수 있는 value

2. Global(전역 변수)

  • 모든 범위에서 항상 사용할 수 있는 변수의 집합을 제공
  • 한 번에 하나의 집합만 활성화할 수 있음
profile
tistory로 이전! https://sweet-rain-kim.tistory.com/

0개의 댓글