학습 자료

캡슐화로 속성과 메소드를 하나로 묶는 방법

캡슐화(Encapsulation)는 객체의 데이터(속성)와 데이터를 처리하는 메서드를 하나로 묶는 것을 말합니다.

이를 통해 객체 내부의 세부 구현을 숨기고, 외부의 잘못된 접근으로부터 데이터를 보호할 수 있습니다.

파이썬에서는 캡슐화를 구현하기 위해 속성 이름 앞에 __를 붙여서 private 속성으로 만들 수 있습니다.

캡슐화 예시
class ClassName: # 생성자 def __init__(self): # private 속성 self.__private_attr = 0

위 코드에서 __private_attr는 private 속성으로, 클래스 외부에서 직접 접근할 수 없습니다.

private 속성을 정의할 때는 밑줄(_)을 2개 사용하는 것이 관례입니다.


캡슐화의 역할

객체 지향 프로그래밍에서 캡슐화는 다음과 같은 역할을 합니다.

  • 인터페이스 제공: 인터페이스(Interface)는 서로 다른 시스템이나 객체 간의 상호 작용을 위한 접점을 뜻합니다. 캡슐화를 통해 객체 내부가 어떻게 동작하는지 알 필요 없이, 제공된 메서드를 통해 객체와 상호작용할 수 있습니다.

  • 데이터 보호: 객체의 중요한 데이터를 외부의 잘못된 접근으로부터 안전하게 보호합니다.


캡슐화 사용 예시

아래 코드 예시는 은행 계좌를 표현하는 Account 클래스를 정의하고, 캡슐화를 통해 계좌의 잔액을 안전하게 관리합니다.

캡슐화 예시
class Account: def __init__(self, balance): # private 속성 self.__balance = balance # 입금 메서드 def deposit(self, amount): if amount > 0: self.__balance += amount return "입금 금액이 유효하지 않습니다." # 잔액 확인 메서드 def get_balance(self): return f"현재 잔액: {self.__balance}원" # 계좌 생성, 초기 잔액 10000원 account = Account(10000) # 5000원 입금 account.deposit(5000) # 잔액 확인 print(account.get_balance())

이 예제에서 __balance는 private 변수로 설정되어 외부에서 직접 접근할 수 없습니다.

대신 depositget_balance 메서드를 통해 이 변수를 안전하게 조작하거나 확인할 수 있습니다.

Mission
0 / 1

객체 지향 프로그래밍에서 캡슐화는 객체 내부의 세부 구현을 공개한 상태로 두는 것을 의미한다.

학습 자료

AI 튜터

배포

디자인

업로드

수업 노트

즐겨찾기

도움말

코드 에디터

코드 실행
코드 생성

실행 결과