[javascript] 게터와 세터 함수의 활용

게터(Getter)와 세터(Setter) 함수는 JavaScript 클래스에서 속성을 안전하게 읽고 쓸 수 있도록 하는 데 사용됩니다. 이를 통해 클래스의 속성에 직접적으로 접근하는 것을 피하고, 값을 검증하거나 추가적인 로직을 적용할 수 있습니다.

게터 함수

게터 함수는 해당 속성을 반환하며, 일반적으로 get 키워드와 함께 정의됩니다. 예를 들어, 다음과 같이 게터 함수를 사용하여 클래스의 속성을 안전하게 읽을 수 있습니다.

class Circle {
  constructor(radius) {
    this._radius = radius;
  }

  get radius() {
    return this._radius;
  }
}

const myCircle = new Circle(5);
console.log(myCircle.radius); // 5

위의 예제에서 _radius 속성은 get radius() 게터 함수를 통해 안전하게 접근됩니다.

세터 함수

세터 함수는 해당 속성에 값을 할당하며, 일반적으로 set 키워드와 함께 정의됩니다. 이를 통해 값의 유효성을 검증하거나 추가적인 로직을 적용할 수 있습니다. 예를 들어, 다음과 같이 세터 함수를 사용하여 클래스의 속성에 안전하게 값을 할당할 수 있습니다.

class Circle {
  constructor(radius) {
    this._radius = radius;
  }

  get radius() {
    return this._radius;
  }

  set radius(value) {
    if (value > 0) {
      this._radius = value;
    } else {
      console.log("반지름은 0보다 커야 합니다.");
    }
  }
}

const myCircle = new Circle(5);
myCircle.radius = 10;
console.log(myCircle.radius); // 10

myCircle.radius = -1;
// 출력: "반지름은 0보다 커야 합니다."
console.log(myCircle.radius); // 10

위의 예제에서 set radius(value) 세터 함수를 통해 radius 속성에 안전하게 값을 할당하고, 유효성을 검증합니다.

게터와 세터 함수를 사용하여 속성을 안전하게 읽고 쓰면서 더 나은 코드를 작성할 수 있습니다.


이제 JavaScript 클래스에서 게터와 세터 함수를 활용하여 속성을 안전하게 읽고 쓸 수 있게 되었습니다. 게터와 세터 함수를 통해 코드의 안정성을 높이고, 유지보수성을 향상시킬 수 있습니다.

더 많은 정보는 MDN web docs에서 확인하실 수 있습니다.