[내일배움캠프 TIL] 프로퍼티

KYJ의 Tech Velog·2023년 11월 14일
0

TIL

목록 보기
59/71
post-thumbnail

Today I Learned

C#은 객체 지향 언어입니다. 객체 지향 프로그래밍을 할 때에는 '캡슐화'가 중요합니다. 캡슐화란 클래스 내부의 정보를 외부로부터 보호하는 것을 의미합니다.

함부로 다른 클래스에서 어떤 클래스의 필드를 수정하거나 사용할 수 없다는 뜻입니다. 이를 수행하기 위해 C#에서는 프로퍼티를 사용할 수 있습니다. 바로 'get', 'set' 접근자를 활용한 방법입니다.

class Test
{
	private int num;
    public int Num
    {
    	get { return num; }
        set
        {
        	if ( num > 0 && num <= 100)
            {
            	num = value;
            }
        }
    }
}

다음과 같이 구현하면 다른 클래스에서 Num이라는 프로퍼티를 통해 Test 클래스의 num 변수에 접근할 수 있습니다.

class Test
{
	private int num;
    public int Num
    {
    	get { return num; }
    }
}

다음과 같이 set 접근자를 선언하지 않으면 읽기 전용 필드로도 사용할 수 있습니다.

이처럼 set 접근자를 사용하지 않거나 조건을 달아서 다른 클래스의 필드에 특정 값만 넣을 수 있도록 보호할 수 있습니다. 이게 바로 프로퍼티를 사용하는 주된 목적입니다.

성능 상으로 손해를 볼 수 있지 않냐는 생각이 들 수도 있는데 실제로 프로퍼티를 적용한 필드와 적용하지 않은 필드를 사용해 어떤 연산을 100만번 수행(값 부여같은 단순한 연산)해보면 2ms 정도의 차이를 확인할 수 있다고 합니다. 100만번 실행에 있어 2ms는 큰 차이라고 볼 수는 없습니다. 이런 부분에서 성능 상 이점을 찾기 보다는 다른 부분에서 최적화를 하는 것이 더 이득일 것입니다.

Tomorrow's Goal

  • 최종 프로젝트
  • 면접 질문 제출

0개의 댓글