본문으로 건너뛰기

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

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

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

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


캡슐화의 역할

  • 인터페이스 제공: 객체의 내부가 어떻게 구현되었는지 알 필요 없이, 제공된 메소드를 통해 객체와 상호작용할 수 있습니다.

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


캡슐화 사용 예시

캡슐화 예시
class Account:
def __init__(self, balance):
self.__balance = balance # private 변수

def deposit(self, amount):
if amount > 0:
self.__balance += amount
return f"입금 완료: 잔액 {self.__balance}원"
return "입금 금액이 유효하지 않습니다."

def get_balance(self):
return f"현재 잔액: {self.__balance}원"


# 클래스 사용 예시
account = Account(10000)

print(account.deposit(5000)) # '입금 완료: 잔액 15000원' 출력

print(account.get_balance()) # '현재 잔액: 15000원' 출력

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

대신 depositget_balance 메소드를 통해 이 변수를 안전하게 조작하고 조회할 수 있습니다.