캡슐화(Encapsulation)와 접근 제한자의 관계에 대한 설명으로 틀린 것은?

과목: C#

문제 번호: 2643

hard
캡슐화(Encapsulation)와 접근 제한자의 관계에 대한 설명으로 틀린 것은?
A. private 필드는 민감한 데이터를 외부로부터 숨긴다
B. 캡슐화를 위해 모든 필드는 반드시 public이어야 한다
C. public 메서드를 통해 private 필드에 제어된 접근을 제공할 수 있다
D. 접근 제한자는 클래스의 보안 수준을 제어한다

정답: B



캡슐화는 오히려 필드를 private으로 만들어 데이터를 보호하는 것입니다.

캡슐화의 올바른 구현:
class BankAccount
{
    private double balance;  // private 필드
    
    public void Deposit(double amount)  // public 메서드
    {
        if (amount > 0)
            balance += amount;
    }
    
    public double GetBalance()
    {
        return balance;
    }
}

각 설명 분석:

1. 맞음: 데이터 은닉
⦁ private으로 직접 접근 차단
⦁ 무분별한 수정 방지

2. 틀림: 캡슐화의 오해
⦁ 캡슐화 = private 필드 + public 메서드
⦁ 모든 public은 캡슐화 위배

3. 맞음: 제어된 접근
⦁ Getter/Setter 메서드
⦁ 유효성 검사 가능

4. 맞음: 보안 제어
⦁ 접근 수준별 보안 설정
⦁ 의도하지 않은 접근 방지

캡슐화의 이점:
⦁ 데이터 무결성 보장
⦁ 구현 세부사항 은닉
⦁ 유지보수성 향상
⦁ 코드 안정성 증대

💡 학습 팁

이 문제를 포함한 C# 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.