피드로 돌아가기
What We Lose When Everything Is a Wrapper
Dev.toDev.to
Frontend

외부 의존성 배제를 통한 시스템 제어권 확보 및 유지보수성 극대화

What We Lose When Everything Is a Wrapper

Viktor Lázár2026년 5월 17일13intermediate

Context

현대 소프트웨어 개발의 과도한 Wrapper 기반 추상화로 인한 런타임 동작의 불투명성 증대. 복잡한 Dependency Tree로 인해 애플리케이션 유지보수가 아닌 빌드 환경 유지 자체에 리소스가 소모되는 아키텍처적 한계 직면.

Technical Solution

  • Framework 및 Package Manager를 완전히 배제한 Pure JavaScript 및 Canvas 기반의 직접 구현
  • 브라우저를 단순 배포 대상이 아닌 Execution Engine으로 활용하는 설계 방식 채택
  • 일반적인 Game Engine의 추상화 계층 대신 특정 게임의 도메인에 최적화된 Narrow Implementation 적용
  • 외부 라이브러리를 통한 일반성 확보보다 프로젝트 고유의 제약 사항을 직접 반영한 Concrete Architecture 구축
  • Closure Compiler를 활용한 패키징 단계의 최적화로 아키텍처 영향 없이 런타임 페이로드 감소
  • 의존성 계층을 제거함으로써 런타임 동작의 예측 가능성을 높이고 디버깅 시 인지 부하를 최소화하는 구조 설계

- 프로젝트 초기 단계에서 성급한 일반화(Premature Generality)를 위해 외부 라이브러리를 도입하고 있지는 않은가? - 현재 사용 중인 Dependency가 단순 도구(Tool)인가, 아니면 시스템의 아키텍처를 결정짓는 재료(Material)인가? - 프레임워크 제거 시 발생할 구현 비용과 장기적인 유지보수 비용(Dependency Drift)을 비교 분석하였는가? - 도메인 특화 기능을 위해 추상화 계층을 걷어내고 플랫폼과 직접 통신하는 구조가 더 효율적인 상황인가?

원문 읽기