Home

Published

- 3 min read

클립 아카이브와 하나의 책임을 하나씩 관리하기

img of 클립 아카이브와 하나의 책임을 하나씩 관리하기

하나의 책임은 무엇을 의미하는 것일까?

기존에, 나는 필터 상태를 관리하고 때에 따라서 쿼리 파라미터를 만들어주는 Hook이 하나 있었다. 내 컴포넌트는 User와의 Interaction만을 담당하고 있고, ‘필터링’ 이라는 하나의 책임을 가지고 있는 하나의 Hook은 꽤나 섹시했다.

최근, 클립 아카이브에서 특정 필터 기능이 좀 복잡해졌다.
그러자 가독성이 떨어지기 시작했다. 내 보스가 A 필터 빼버리세요, B 필터 넣으세요 할 때마다 동작이 느릿느릿해졌다. 그 때는 섹시했지만 지금은 아니게 되었다.

서버에 줘야 하는 필터링과 클라이언트 사이드에서 관리해야 할 필터링이 하나의 훅에 들어가 있었다.

책임을 하나씩 관리하기

그러다 이 글을 출근하다가 읽게 되었다.

일단, 여기 나오는 예제가 정답이 아니다. 이건 상황마다 달라서.

다만, 로직의 종류에 따라 책임을 나누지 말라는 말은 지금 한정으로 정답인 것 같다는 생각이 들었다.

나의 경우, 상황이 좀 다른데 나는 특정 Entity에 대해서 query를 만들어주는 query 팩터리가 따로 있고 그 query 팩터리에 A 모델을 넣어서 쓰고 있었다. 그래서 모델을 적절히 분리해줬다.

글을 쓰다 보니 모델과 컴포넌트, 훅에 대한 내 생각도 추가로 작성해야겠다는 생각이 들었다. 다음 기회에…