Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript 접근자 프로퍼티(Getter/Setter)의 개념과 4가지 핵심 속성 완벽 정리

접근자 프로퍼티(Accessor Property)는 JavaScript에서 getter와 setter 함수를 구현할 때 사용되는 강력한 기능입니다. 일반적인 데이터 프로퍼티와 달리, 접근자 프로퍼티는 값을 읽거나 설정하는 순간 지정된 함수가 실행됩니다. 이를 통해 객체 내부 로직을 캡슐화하면서도 직관적인 문법으로 값을 다룰 수 있습니다.

접근자 프로퍼티의 4가지 속성

접근자 프로퍼티는 다음과 같은 네 가지 속성(attribute)을 가집니다.

  • get – 프로퍼티를 읽을 때 호출되는 함수입니다. 인자는 받지 않으며, 반환값이 곧 프로퍼티 값이 됩니다.
  • set – 프로퍼티에 값을 할당할 때 호출되는 함수입니다. 단 하나의 인자(할당하려는 값)만 받습니다.
  • enumerabletrue로 설정하면 해당 객체를 반복(iteration)할 때 이 프로퍼티가 포함됩니다.
  • configurablefalse로 설정하면 해당 프로퍼티를 삭제하거나 속성 값을 변경할 수 없게 되어 보호 기능을 제공합니다.

예제 코드

아래는 접근자 프로퍼티와 그 속성을 실제로 활용한 전체 코드 예제입니다.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
    body {
        font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    }
    .result {
        font-size: 20px;
        font-weight: 500;
        color: blueviolet;
    }
</style>
</head>
<body>
<h1>Accessor property and its attributes</h1>
<div class="result"></div>
<br />
<button class="Btn">CLICK HERE</button>
<h3>Click on the above button to use set and get to modify and display person object properties</h3>
<script>
    let resEle = document.querySelector(".result");
    let BtnEle = document.querySelector(".Btn");
    let person = {
        name: "Rohan",
        age: 22,
        occupation: "Student",
        get fullname() {
            return this.name;
        },
        set job(occupation) {
            this.occupation = occupation;
        },
    };
    BtnEle.addEventListener("click", () => {
        resEle.innerHTML =
        "Name = " + person.fullname + " : Occupation = " + person.occupation;
        resEl.innerHTML += "<br>After modifying occupation property <br>";
        person.occupation = "Developer";
        resEle.innerHTML += "New Occupation = " + person.occupation;
    });
</script>
</body>
</html>

실행 결과

위 코드를 실행하면 화면에는 'CLICK HERE' 버튼과 안내 문구가 표시됩니다.

버튼을 클릭하기 전 화면:

JavaScript 접근자 프로퍼티(Getter/Setter)의 개념과 4가지 핵심 속성 완벽 정리

'CLICK HERE' 버튼을 클릭하면 getter(fullname)를 통해 이름이 조회되고, setter를 통해 직업(occupation) 값이 'Developer'로 변경된 결과가 화면에 출력됩니다.

JavaScript 접근자 프로퍼티(Getter/Setter)의 개념과 4가지 핵심 속성 완벽 정리

핵심 정리

접근자 프로퍼티를 활용하면 객체의 내부 상태를 외부에서 직접 수정하지 못하게 하면서, 필요한 검증 로직이나 변환 처리를 getter/setter 안에 캡슐화할 수 있습니다. 특히 enumerableconfigurable 속성을 적절히 조합하면 객체 프로퍼티의 노출 범위와 변경 가능 여부를 세밀하게 제어할 수 있어, 견고하고 유지보수하기 좋은 코드를 작성하는 데 큰 도움이 됩니다.