전체 글 369

[ 디자인 시스템 ] (3) 라이브러리 버전 관리

모노레포 버전 관리: Changeset 자동화 모노레포에서 수십 개의 패키지 버전을 수동으로 관리하는 건 불가능에 가깝습니다. 이번 글에서는 Changeset을 활용한 자동 버전 관리 시스템을 구축하는 방법을 설명합니다. Conventional Commits와 연동하여 커밋 한 번으로 버전 결정부터 배포까지 이어지는 흐름을 만들어보겠습니다. 수동 관리의 한계 우리가 겪었던 문제들 자동화 이전에는 릴리즈 담당자가 엑셀이나 메모장에 변경 사항을 적어가며 버전을 올렸습니다. 이 과정에서 휴먼 에러는 필연적이었습니다. 문제점 상세 내용 ..

je개발 회고 2026.01.12

[ 디자인 시스템 ] (2) 모노레포 의존성 관리

모노레포 의존성 관리: ESLint Boundaries 활용 이번 글에서는 ESLint Boundaries 플러그인을 활용한 모노레포 의존성 관리 전략을 다룹니다. 단순히 "조심해서 코딩하자"는 약속을 넘어, 코드 레벨에서 의존성 규칙을 강제하고 아키텍처를 사수하는 구체적인 방법을 알아보겠습니다. 왜 의존성 관리가 중요한가 모노레포가 가지는 잠재적 위험 모노레포 환경에서는 패키지 간의 소스 코드 접근이 매우 자유롭습니다. 이는 장점이지만 동시에 치명적인 단점이 될 수 있습니다. 무분별한 import는 다음과 같은 문제를 야기합니다. // utils/src/format.tsimport { Button } from '@des..

je개발 회고 2026.01.12

[ 디자인 시스템 ] (1) 모노레포 아키텍처

모노레포 아키텍처: 레이어 기반 패키지 설계지난 글에서 모노레포 도입 배경을 다뤘다면 이번에는 구체적인 아키텍처 설계를 살펴봅니다. 패키지 간 의존성을 어떻게 구조화해야 하는지, 그리고 왜 단방향 의존성 흐름이 유지보수의 핵심인지 설명합니다.레이어 아키텍처 (Layered Architecture)설계 원칙디자인 시스템 내부의 패키지들은 엄격한 단방향 의존성을 갖도록 레이어로 구분했습니다. 이 구조는 복잡도를 낮추고 예측 가능한 시스템을 만드는 데 목적이 있습니다.하위 레이어는 상위 레이어를 참조할 수 없음 - 순환 참조(Circular Dependency)를 원천 차단합니다.같은 레이어 간 참조 지양 - 각 패키지의 독립성을 최대한 보장합니다.상위 레이어만 하위 레이어를 참조 - 데이터와 로직의 흐름을 ..

je개발 회고 2026.01.12

[ 디자인 시스템 ] (0) 모노레포로 사내 라이브러리 만들기

모노레포 관리 가이드: 의존성부터 배포까지모노레포 환경에서 디자인 시스템을 구축하며 마주했던 난관과 이를 극복하기 위해 수립한 해결 전략을 공유합니다. 의존성 제어부터 버전 관리 전략, CI/CD 파이프라인 구축까지 전체 여정을 다루는 시리즈의 첫 번째 글입니다.왜 이런 구조가 필요했나모노레포 도입 시 마주한 과제들단일 저장소(Monorepo)에서 다수의 패키지로 구성된 디자인 시스템을 개발하다 보니 다음과 같은 현실적인 문제에 부딪혔습니다.의존성 순환(Circular Dependency) - 패키지 간 참조 관계가 복잡해지면 의도치 않은 순환 참조가 발생할 위험이 큽니다.버전 관리의 모호함 - 패키지 A를 수정했을 때 이를 의존하는 패키지 B와 C의 버전도 함께 올려야 하는지 판단 기준이 모호했습니다...

je개발 회고 2026.01.12