오늘은 모던 JavaScript 튜토리얼에서 private, protected 프로퍼티와 메서드(https://ko.javascript.info/private-protected-properties-methods)에 대해 공부했다. 작성한 질문은 다음과 같다.
내부 인터페이스와 외부 인터페이스는 다음과 같다.
- 내부 인터페이스: 동일한 클래스 내 다른 메서드에선 접근이 가능하지만, 외부에서 접근이 불가능한 프로퍼티와 메서드를 내부 인터페이스라고 한다.
- 외부 인터페이스: 클래스 밖에서도 접근이 가능한 프로퍼티와 메서드를 외부 인터페이스라고 한다.
public과 private은 다음과 같다.
- public: 어디서든 접근 가능하며 외부 인터페이스가 public에 해당한다. 별다른 추가 설정을 취하지 않으면 전부 public이다.
- private: 클래스 내부에서만 접근할 수 있으며 내부 인터페이스가 private에 해당한다.
protected와 private의 차이점은 자손 클래스에서의 접근 가능 유무이다. 자손 클래스에서 접근할 수 있으면 protected이고 그조차도 접근할 수 없으면 private이다. 자손 클래스의 필드에 접근해야 하는 경우는 생각보다 많기 때문에 protected가 public보다 광범위하게 사용된다.
읽기 전용 프로퍼티를 사용하는 경우는 프로퍼티를 생성할 때만 값을 할당하고, 그 이후에는 절대로 수정하면 안 되는 경우이다.
클래스를 공부하면 객체 지향 프로그래밍에 대해서도 동시에 저절로 배우게 되는 것 같다. 모던 JavaScript 튜토리얼에서 커피머신을 예로 들며, 사용자가 만지는 인터페이스는 외부 인터페이스, 커피머신의 덮개를 벗기게 되면 나오는 복잡한 회로는 내부 인터페이스라고 비유를 드는데 이렇게 구분 짓는 걸 캡슐화라고 부르며 협업할 때 좋기 때문에 객체 지향 프로그래밍을 많이 선호하는구나 스스로 깨달을 수 있어서 좋았다.
'TIL' 카테고리의 다른 글
TIL - 20220731 (0) | 2022.07.31 |
---|---|
TIL - 20220730 (0) | 2022.07.30 |
TIL - 20220728 (0) | 2022.07.28 |
TIL - 20220727 (0) | 2022.07.27 |
TIL - 20220726 (0) | 2022.07.26 |