Published
- 3 min read
클립 아카이브와 하나의 책임을 하나씩 관리하기

하나의 책임은 무엇을 의미하는 것일까?
기존에, 나는 필터 상태를 관리하고 때에 따라서 쿼리 파라미터를 만들어주는 Hook이 하나 있었다. 내 컴포넌트는 User와의 Interaction만을 담당하고 있고, ‘필터링’ 이라는 하나의 책임을 가지고 있는 하나의 Hook은 꽤나 섹시했다.
최근, 클립 아카이브에서 특정 필터 기능이 좀 복잡해졌다.
그러자 가독성이 떨어지기 시작했다. 내 보스가 A 필터 빼버리세요, B 필터 넣으세요 할 때마다 동작이 느릿느릿해졌다. 그 때는 섹시했지만 지금은 아니게 되었다.
서버에 줘야 하는 필터링과 클라이언트 사이드에서 관리해야 할 필터링이 하나의 훅에 들어가 있었다.
책임을 하나씩 관리하기
그러다 이 글을 출근하다가 읽게 되었다.
일단, 여기 나오는 예제가 정답이 아니다. 이건 상황마다 달라서.
다만, 로직의 종류에 따라 책임을 나누지 말라는 말은 지금 한정으로 정답인 것 같다는 생각이 들었다.
나의 경우, 상황이 좀 다른데 나는 특정 Entity에 대해서 query를 만들어주는 query 팩터리가 따로 있고 그 query 팩터리에 A 모델을 넣어서 쓰고 있었다. 그래서 모델을 적절히 분리해줬다.
글을 쓰다 보니 모델과 컴포넌트, 훅에 대한 내 생각도 추가로 작성해야겠다는 생각이 들었다. 다음 기회에…