private int _memberValue = 0; public string NextValue { get { _memberValue++; return "값"; } }
문제. 이 코드에 어떤 잠재적 위험이 있는지 기술하시오.
정답. 디버깅시 디버거가 NextValue
프로퍼티를 자동으로 호출하여 멤버 변수 _memberValue
의 값이 예기치 않게 변할 수 있다. 이같은 문제를 피하려면 프로퍼티가 아닌 메서드를 쓰면 된다. 이와 유사한 문제를 다룬 글로는 ToString은 잘 짜야 한다란 게 있다.
Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
애초에 프로퍼티의 getter는 deterministic해야하지 않을까 생각합니다.
역시 그래야겠죠. 디버거 생각을 못해서…