피드로 돌아가기
Dev.toFrontend
원문 읽기
JavaScript OOP의 Abstraction을 통한 인터페이스 단순화 및 유지보수성 향상
Abstraction in JavaScript — Explained in Simple Words (and How It Differs from Encapsulation)
AI 요약
Context
객체 지향 프로그래밍 과정에서 내부 구현 로직의 노출로 인한 복잡도 증가 문제 발생. 불필요한 세부 사항이 사용자 인터페이스에 포함되어 코드 가독성 저해 및 유지보수 비용 상승 유발.
Technical Solution
- 내부 구현 상세를 은닉하고 필수 기능만 노출하는 Abstraction 전략 채택
- Public Method 설계를 통한 단순화된 외부 인터페이스 제공
- Private Class Fields(#)를 활용한 Helper Method의 내부 캡슐화로 외부 접근 차단
- 'What(기능)'과 'How(구현)'를 분리하여 클래스를 Black Box 형태로 구조화
- 사용자가 내부 호출 순서를 고민하지 않도록 단일 진입점(Entry Point) 메서드 설계
- Abstraction(복잡도 제거)과 Encapsulation(데이터 보호)의 역할 분리를 통한 설계 명확화
실천 포인트
- 사용자가 알아야 할 필수 기능만 Public Method로 노출했는지 검토 - 내부 동작을 수행하는 Helper 함수를 Private 필드로 정의하여 외부 노출 차단 - 단순 기능 은닉(Abstraction)과 상태 보호(Encapsulation) 목적을 명확히 구분하여 설계 - 과도한 추상화로 인해 필요한 제어권까지 제한하지 않았는지 확인