지금을 사는 사람

필드(Field)와 프로퍼티(Property)의 차이 본문

CS

필드(Field)와 프로퍼티(Property)의 차이

지금회 2023. 12. 22. 11:50
728x90

소개:

프로그래밍에서 변수와 값의 저장은 필드와 프로퍼티라는 두 가지 주요 개념을 통해 이루어집니다. 이 블로그에서는 필드와 프로퍼티의 차이점과 각각의 특징, 활용 방안에 대해 알아보겠습니다.


1. 필드(Field)란?

  • 개념:
    • 클래스나 구조체 내부에 선언된 변수를 의미합니다.
    • 주로 객체의 상태를 나타내거나 클래스 내부에서만 접근 가능한 데이터를 저장하는 데 사용됩니다.
  • 특징:
    • 주로 private 또는 protected 접근 제어자로 선언되어 해당 클래스 내부에서만 직접 접근이 가능합니다.
    • 간단한 데이터 저장에 사용되며, 외부에서 직접 접근하는 것이 권장되지 않습니다.
public class MyClass {
    private int myField;

    public void setMyField(int value) {
        myField = value;
    }

    public int getMyField() {
        return myField;
    }
}

2. 프로퍼티(Property)란?

  • 개념:
    • 필드의 값을 읽고 쓰는데 사용되는 메서드(getter와 setter)를 가진 멤버입니다.
    • 외부에서 필드에 접근할 때 메서드를 통해 간접적으로 접근하는 패턴을 가집니다.
  • 특징:
    • 필드에 대한 접근을 메서드로 래핑하여 데이터의 캡슐화를 지원합니다.
    • 필드 값을 가져오거나 설정하는 로직을 더 추가할 수 있어 유연한 제어가 가능합니다.
public class MyClass {
    private int myProperty;

    public int getMyProperty() {
        return myProperty;
    }

    public void setMyProperty(int value) {
        // 추가적인 로직 수행 가능
        myProperty = value;
    }
}

3. 필드 vs 프로퍼티:

  • 접근 제어:
    • 필드는 직접적으로 접근이 가능하므로 외부에서의 제어가 어려울 수 있습니다.
    • 프로퍼티는 메서드를 통해 간접적인 접근을 제공하여 데이터를 더 효과적으로 제어할 수 있습니다.
  • 캡슐화:
    • 필드는 데이터를 감추지 않고 직접 노출합니다.
    • 프로퍼티는 필드를 감싸고 있는 메서드를 통해 데이터를 감출 수 있습니다.
  • 확장성:
    • 프로퍼티는 필드에 대한 접근에 추가적인 로직을 수행할 수 있어 더 많은 확장성을 제공합니다.

4. 사용 시 고려 사항:

  • 간단한 데이터 저장:
    • 간단한 데이터 저장에 필드를 사용합니다.
  • 캡슐화와 로직 추가:
    • 데이터에 대한 더 많은 제어와 캡슐화가 필요한 경우 프로퍼티를 사용합니다.
  • 언어에 따른 관례:
    • 언어에 따라 필드와 프로퍼티의 사용 관례가 다를 수 있습니다.

5. 결론

필드와 프로퍼티는 데이터를 저장하고 접근하는 데 사용되는 주요한 프로그래밍 요소입니다. 필드는 간단한 데이터 저장에 적합하며, 프로퍼티는 데이터에 대한 접근을 더 세밀하게 제어하고 로직을 추가하는 데 유용합니다. 선택은 사용되는 언어와 프로그램의 요구사항에 따라 달라질 수 있습니다.

 

728x90