최근 한 개발자가 대규모 자바스크립트(JavaScript) 프로젝트에서 코드 변경의 영향 범위를 예측하기 어렵고, 특정 코드를 어디서 참조해야 할지 고민하는 문제에 직면했습니다. 이러한 경험을 바탕으로, 정적 분석 도구인 ESLint를 활용해 임포트(import) 경계를 강제함으로써 코드 아키텍처의 품질을 안정적으로 유지할 수 있는 새로운 플러그인 'eslint-plugin-import-boundary'를 개발해 공개했습니다.
이 플러그인은 기존의 유사 도구인 'eslint-plugin-boundaries'가 프론트엔드(Frontend) 프로젝트에 적용하기 복잡하고 임포트 경로 형태까지 강제하기 어려웠던 단점을 개선했습니다. 'eslint-plugin-import-boundary'는 단순한 설정으로 자바스크립트(JS) 및 타입스크립트(TypeScript) 프로젝트의 폴더 구조 자체가 규칙이 되도록 설계되었습니다. 기본적으로 부모 디렉토리는 직계 자식 디렉토리의 'public entry'(기본값: index 파일)만 임포트할 수 있으며, 공용 파일이나 폴더를 지정하여 해당 범위 안에서만 공유 모듈을 자신과 하위 디렉토리 영역에서 임포트할 수 있도록 합니다.
이러한 접근 방식은 대규모 코드베이스에서 발생할 수 있는 예측 불가능한 의존성 문제를 줄여줍니다. 개발자들이 코드 변경 시 발생할 수 있는 부작용을 사전에 방지하고, 시스템의 특정 부분이 다른 부분에 미치는 영향을 명확하게 이해하는 데 도움을 줍니다. 결과적으로 프로젝트의 유지보수성을 높이고, 장기적으로는 개발 생산성 향상에도 기여할 것으로 기대됩니다. 아직 초기 단계인 만큼, 개발자 커뮤니티의 피드백을 통해 더욱 발전할 가능성이 큽니다.