TIL

TIL - 20220729

Lee Jaeyoon2 2022. 7. 29. 11:56

 오늘은 모던 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 튜토리얼에서 커피머신을 예로 들며, 사용자가 만지는 인터페이스는 외부 인터페이스, 커피머신의 덮개를 벗기게 되면 나오는 복잡한 회로는 내부 인터페이스라고 비유를 드는데 이렇게 구분 짓는 걸 캡슐화라고 부르며 협업할 때 좋기 때문에 객체 지향 프로그래밍을 많이 선호하는구나 스스로 깨달을 수 있어서 좋았다.