Part13_TypeScript_OOP
김은정
책 읽기

13장. 타입스크립트 객체 지향

타입스크립트의 객체 지향

  • 타입스크립트는 prop을 인터페이스로 정의할 수 있다. 객체 지향 패러다임에서는 객체 간의 협력 단계에 초점을 둔다. 컴포넌트 간의 협력 관계를 표현하는 것이 prop이다. 또한 객체 자체가 아니라 프레임워크에 의해 객체의 의존성이 주입되는 DI(Dependency Injection, 의존성 주입) 패턴을 따르는데, 이러한 패턴을 더욱 명확하게 표현할 수 있게 해주는 것이 타입스크립트다.
  • 타입스크립트 자체가 객체 지향적으로 다양한 측면을 표현하는 데 큰 장점을 가지고 있다. 타입스크립트는 점진적 타이핑, 구조적 타이핑, 덕 타이핑을 결합한 언어로 객체 지향의 폭을 넓혀준다.

레이아웃은 예상치 못한 변동 사항이 생길 가능성이 높기 때문에 미확정 영역으로 두고 공통으로 사용되는 컴포넌트와 비즈니스 영역에서 객체 지향 원칙을 적용하여 설계하면 좋은 구조를 개발할 수 있을 것이다.

우아한 형제들의 활용 방식

설계 방식

  • 온전히 레이아웃만 담당하는 컴포넌트 영역
  • 컴포넌트 영역 위에서 레이아웃과 비즈니스 로직을 연결해주는 커스텀 훅 영역
  • 훅 영역 위에서 객체로서 상호 협력하는 모델 영역
  • 모델 영역 위에서 API를 해석하여 모델로 전달하는 API 레이어 영역

캡슐화와 추상화

  • 캡슐화 : 다른 객체 내부의 데이터를 꺼내와서 직접 다루지 않고, 해당 객체에게 처리할 행위를 따로 요청함으로써 협력하는 것

    prop drilling이 심할수록, 캡슐화를 저해한다.

    ← 컴포넌트 간의 결합도는 높아지며 내부 처리 로직이 외부로 드러나기 때문

    ⇒ 옵저버 패턴, 상태 관리 라이브러리 등장

  • 추상화 : 객체들을 모델링하는 과정 자체

적절하게 캡슐화되고 추상화된 컴포넌트를 활용해 애플리케이션을 더 유기적으로 구성할 수 있다.