구현이 끝난 프로젝트를 리팩토링한 한주였다. 리팩토링 방법은 세명의 페어프로그래밍. 키보드는 한명만 잡고, 화면을 보며 리팩토링을 진행했다.
아래의 항목들을 주로 수정했다.
- 변수명 개선
- import 순서
- 한 파일에서 너무 긴 코드는 분리
- 헤더, 레이아웃 등 반복되는 코드 컴포넌트화
- 타입 수정
- 폴더 구조 통일
- react query key 전역화
import는 IDE가 거의 자동으로 해주기 때문에 따로 신경쓰지 않았는데 이것까지도 코드구나라는 것을 느꼈다. import-sort-style-react
라는 라이브러리가 있을정도. 페어 프로그래밍은 무의식적으로 작성하는 수준을 의식의 수준으로 끌어올리는 과정이라고 한다. 정신적 자원이 소모되는 일이라 힘들다고 하더니, 해보니까 정말로 힘들었다... 내 코드를 보여주는 것이 심적으로 부담스러웠고, 내 나름의 이유를 갖고 작성한 코드인데 그 이유를 팀원들에게 납득시키는 것, 다른 생각을 받아들이고 인정하는 것, 높은 집중력을 유지해야하는 것과 근무시간 거의 전부를 팀원들과 밀착해서 있어야 한다는 점이 힘들었다. 페어 프로그래밍은 분명 힘들지만 즐거운 과정이어야 한다고 했는데, 개인적으로는 즐겁지 않았다. 물론 결과물은 만족스럽다. 처음 짠 코드보다 더 이해하기 쉽고, 프로젝트 전체의 코드를 파악할 수 있었고, 코드 스타일을 통일할 수 있었다. 어느 정도 각자 리팩토링한 다음에 진행했으면 했는데, 구현이 급했기 때문에 개인적으로 아쉬웠던 부분을 반영하고 싶었기 때문이었다. 어차피 페어 프로그래밍이라면 그 과정이 결과적으로 낭비하는 시간이었을까. 아무튼... 내가 페어프로그밍에 맞지 않는 성격인건지, 진행한 방법이 맞지 않았던건지, 처음이라 적응이 필요했던건지 잘 모르겠다.
Broswer 101 강의는 이번주도 영 진도를 나가지 못했지만 CRP 부분은 정리할 수 있었다. 기술면접을 준비할 때 '브라우저 렌더링 과정'이라고 공부했던 부분인데 Critical Rendering Path라는 정식 이름이 있었다. 강의를 듣고 MDN과 다른 블로그 글을 읽으면서 스스로 정리하는 능동적인 공부를 오랜만에 했다. DOM, CSSOM, Render Tree를 한번 더 정리할 수 있었고, CRP의 Operation 부분을 처음으로 알게 되었다.