1. 은닉성(Encapsulation) 개요

은닉성은 객체지향 프로그래밍(OOP)에서 매우 중요한 개념 중 하나입니다. 핵심 기능만 외부에 노출하고 나머지 부분은 숨김으로써 프로그램의 안전성을 높이고 유지보수를 쉽게 만들어 줍니다.

  • 은닉성: 데이터를 숨기고 접근을 제한하는 개념.
  • 캡슐화: 은닉화된 데이터와 로직을 하나의 로 묶는 개념.

2. 변수의 은닉성

블루프린트에서 변수의 은닉성 설정은 간단한 UI 인터페이스를 통해 이루어집니다.

2.1 변수 접근 제한 (눈 모양 아이콘)

변수의 오른쪽에 있는 눈 모양 아이콘을 통해 변수 접근 여부를 설정할 수 있습니다.

  • 눈 아이콘이 활성화(열림) → 다른 블루프린트나 레벨 블루프린트에서 해당 변수를 읽고 쓸 수 있음.
  • 눈 아이콘이 비활성화(닫힘) → 변수에 직접 접근할 수 없음.

2.2 Private 변수 설정

클래스 상세페이지의 Private 옵션을 체크하면 해당 변수는 내부 클래스에서만 사용할 수 있습니다.

  • Private 설정: 변수에 대한 접근이 클래스 내부로 제한됩니다.
  • 결과: 외부 클래스나 레벨 블루프린트에서 해당 변수에 접근할 수 없습니다.

예시:
1. Hp 변수에 Private 체크.
2. 레벨 블루프린트에서 Hp 변수에 접근하려고 하면 불가능합니다.


3. 함수의 은닉성

함수의 접근 제한도 변수와 비슷한 방식으로 설정할 수 있습니다.

3.1 접근제한자 설정

블루프린트에서 함수에 접근제한자를 지정할 수 있습니다:

  • Public: 누구나 사용할 수 있습니다.
  • Protected: 상속받은 자식 클래스에서만 사용할 수 있습니다.
  • Private: 동일한 클래스 내부에서만 사용할 수 있습니다.

3.2 접근제한자에 따른 함수 예시

TestPublic, TestProtected, TestPrivate이라는 3개의 함수를 설정했다고 가정해 봅시다.

  • Public:

    • 외부 클래스와 레벨 블루프린트에서도 호출 가능합니다.
    • 접근 제한이 없으므로 모든 영역에서 사용 가능합니다.
  • Protected:

    • 상속받은 자식 클래스 내부에서만 사용할 수 있습니다.
    • 외부 클래스나 레벨 블루프린트에서는 호출이 불가능합니다.
    • 예시: 자식 클래스에서 TestProtected 함수를 호출하면 정상적으로 동작합니다.
  • Private:

    • 동일한 클래스 내부에서만 호출이 가능합니다.
    • 상속받은 자식 클래스에서도 접근이 불가능합니다.

정리:
| 접근제한자 | 외부 접근 | 자식 클래스 | 동일 클래스 |
|------------|----------|------------|------------|
| Public | 가능 | 가능 | 가능 |
| Protected | 불가능 | 가능 | 가능 |
| Private | 불가능 | 불가능 | 가능 |


4. 은닉성의 중요성

4.1 안전 강화

  • 위험한 변수나 함수를 외부에 노출시키지 않음으로써 잘못된 접근이나 수정으로부터 시스템을 보호합니다.
  • 예시: Hp 변수나 핵심 로직 함수Private로 설정하면 외부에서 실수로 값을 변경하거나 호출하지 못합니다.

4.2 협업에 유리

  • 팀 프로젝트에서 은닉성을 활용하면 변수와 함수에 대한 접근 범위를 명확히 할 수 있습니다.
  • Private로 잠그면 불필요한 접근이 차단되고, 오직 허용된 인터페이스만 사용할 수 있습니다.

4.3 유지보수 용이성

  • 데이터와 로직을 캡슐화하면 변경 사항이 있을 때 최소한의 코드만 수정하면 됩니다.
  • 외부에 노출된 부분이 적을수록 수정 시 영향 범위가 작아집니다.

5. 은닉성과 캡슐화의 차이점

구분설명
은닉성데이터를 숨기고 접근을 제한하는 개념.
캡슐화은닉성 데이터를 관련된 로직과 함께 묶는 개념.

profile
李家네_공부방

0개의 댓글