[javascript] 캡슐화와 정보 은닉의 개념
캡슐화와 정보 은닉은 객체지향 프로그래밍에서 중요한 개념입니다. 이들은 코드의 유지보수성과 보안을 개선하는 데 도움이 되며, 객체의 내부 구현에 대한 접근을 제한함으로써 코드의 신뢰성을 높입니다.
캡슐화 (Encapsulation)
캡슐화는 객체의 상태와 행동을 하나로 묶는 것을 의미합니다. 이는 객체가 자신의 상태를 직접 변경하는 대신에 특정한 메소드를 통해 상태를 변경할 수 있도록 하는 것을 의미합니다.
class Car {
constructor() {
this._speed = 0; // 캡슐화된 속성
}
// 캡슐화된 메소드
accelerate() {
this._speed += 10;
}
}
캡슐화의 장점:
- 객체의 내부 구현을 외부로부터 숨길 수 있음
- 객체의 상태를 유효한 상태로 유지할 수 있음
- 코드를 재사용하기 쉬워짐
정보 은닉 (Information Hiding)
정보 은닉은 캡슐화를 통해 내부 상태와 구현의 세부 사항을 외부로부터 숨기는 것을 의미합니다. 이는 외부에서 객체의 상태를 직접 접근하여 변경할 수 없도록 하는 것을 의미합니다.
class BankAccount {
constructor() {
let _balance = 0; // 정보 은닉된 속성
// 정보 은닉된 메소드
deposit(amount) {
_balance += amount;
}
}
정보 은닉의 장점:
- 객체의 내부 상태를 보호함
- 외부에서 객체의 상태에 대한 잘못된 접근을 방지함
- 객체의 내부 구현을 변경하여도 외부에 영향을 주지 않음
결론
캡슐화와 정보 은닉은 객체지향 프로그래밍에서 중요한 원칙으로, 코드의 관리성과 안정성을 높여줍니다. 객체를 캡슐화하고 정보를 은닉함으로써 안정적이고 유연한 코드를 작성할 수 있게 됩니다.
참고 자료: