캡슐화란 무엇일까?

동준1234 ㅣ 2024. 11. 19. 15:22

캡슐화는 객체 지향 프로그래밍의 핵심 원칙 중 하나로, 데이터를 외부에서 직접 접근하지 못하도록 숨기고,

허용된 메소드를 통해서만 접근할 수 있도록 제한하는 것을 말한다. 데이터를 보호하고 코드의 유지보수성과 재사용성을 높이기 위한 개념이다.

 

주요 목적

1. 데이터 보호

- 외부 코드가 객체의 내부 데이터를 직접 변경하지 못하게 막는다.

- 잘못된 데이터를 방지하고 객체의 무결성을 유지한다.

2. 정보 은닉

- 클래스 내부의 구현 세부 사항을 숨기고, 외부에는 필요한 인터페이스만 제공한다.

- 사용자는 클래스의 내부 동작을 몰라도 클래스의 기능을 사용할 수 있다.

3. 유지보수성 향상

- 내부 구현이 변경되더라도 외부에 영향을 미치지 않아 코드를 쉽게 수정할 수 있다.

4. 코드 재사용성 향상

- 캡슐화된 코드는 재사용성과 확장이 용이하다.

 

구현 방법

1. 필드(변수)를 private로 선언

- 외부에서 직접 접근할 수 없도록 접근 제한자를 사용(private)

2. Getter 과 Setter 메소드 제공

- 데이터를 읽거나 수정할 수 있도록 public 메소드를 통해 접근을 허용함

- Getter : 변수값을 반환하는 메소드

- Setter : 변수값을 설정하는 메소드

캡슐화의 장점

1. 안정성 : 잘못된 데이터나 무작위적인 수정으로부터 보호함.

2. 유연성 : 필요 시 내부 구현을 수정하더라도 외부 코드를 변경할 필요 없음.

3. 읽기 쉬운 코드 : 데이터들 다루는 명확한 인터페이스 제공함.