나 개발자 진짜 되냐?

get set은 왜 쓰는 걸까? 제대로 이해하고 가자. 본문

C# 을 맛보았어요!/문법정리를 해보았어요!

get set은 왜 쓰는 걸까? 제대로 이해하고 가자.

Snow Rabbit 2025. 7. 4. 17:35

get과 set을 왜 쓰는지 몰랐던 그대는

이 글을 보시오

 

나도 볼것이니...

 

Get / Set

이 친구들은

 

이것은 함수라고 표현하지 않고 변수라고도 표현하지 않고..

속성(Property)이라고 표현한다.

 

그들의 역할은 명확하게 구분되어 있다.

 

get은 값을 읽을 때 동작하며

set은 값을 변경할 때 동작한다.

 

속성을 쓰는 이유는

제어 로직을 넣을 수 있기 때문이다.

 

단순히 값만 저장하는 게 아니라 값이 바뀔 때 추가 작업이 가능해진다.

 

 

쓰는 이유는 말 그대로 제어하기 위해서..!

 

예를 들어보자

public int hp;

 

속성 없이 일반 변수로 작성되었다.

그러다 보니.. 누구든 이 hp를 10으로든 200으로든 9999든 바꿀 수 있는데

하지만 -9999는 안되잖아!!!! 0 밑으로 떨어지면 죽으니까

근데 이렇게 설정해 두면 버그가 생길 확률이 생긴다.

 

그래서 속성으로 바꾸게 되면..

private int _hp;

public int HP
{
    get { return _hp; }             // 값을 읽을 때
    set                           // 값을 설정할 때
    {
        if (value < 0) value = 0;  // 음수 못 들어오게!
        _hp = value;
    }
}

 

이렇게 해주면 음수는 절대 들어갈 수 없게 된다.

정확히 말하면 -100이든 -9999든 0으로 바뀐다.

 

 

나는 의문점이 생겼다..

 

아니 그럼 그냥 if문 걸면 되는 거 아니야?

if 어쩌고 해서 음수면 막는 거

쓰면 될 거 같지만..

 

이건 생각보다 일일이 해주어야 하고.. 

다른 코드에서 실수로 바꿔버릴 수도 있다고 한다.

get / set을 써주면 “자동으로 if문이 실행되게 만드는 장치” 여서

 

그냥... get / set을 쓰는 게 좋다고 한다 ㅎㅎㅋㅋ

 

오케 제어장치! get / set 확인