React Context API를 의존성 주입 도구로 활용하여 Mocking 없이 Zustand store 테스트하기
들어가며
나는 전역 상태를 선호하지 않는다. 그 이유는 아래와 같다.
- 컴포넌트 간의 의존성을 이해하고 관리하기 어렵다.
- 어디서 어떤 변경이 일어났는지 추적하기가 어렵다.
- 상태 변경이 여러 곳에서 일어날 수 있어서 상태를 예측하기 어렵다.
그럼에도 불구하고 이미지 에디터를 개발하게 되면서, 전역 상태 관리 라이브러리를 사용할 수 밖에 없었다. 그 주요한 이유는 아래와 같다.
- UI와 Canvas가 서로 영향을 미쳐야한다.
- 성능 최적화를 꿰해야 한다.
내 선호도와 관계없이, 전역 상태 관리 라이브러리가 가져다주는 이점이 크다고 생각했기 때문이다.
그리고 별 다른 문제없이 제품을 시장에 출시했고, 서비스 운영을 이어나갔다.
하지만 시간이 지남에 따라 코드베이스는 커져갔고, 이에 따라 엔지니어링적인 문제들이 수반되었다.
빠른 개발과 품질의 딜레마
제품의 개발기, 도입기를 거쳐 성장기에 진입하며 우리 팀은 좀 더 빠르게 움직일 수 있길 원했다.
개발자인 나는 더 짧은 주기로 배포 주기를 가져가야 했지만, 제약이 되는 걸림돌이 있었다.
