오늘 하루
- 채팅화면을 리팩토링했다. 지난번에 함수 하나로 복잡하게 구현했던 것을 질문을 만드는 함수와 답변을 만드는 함수로 분리해서 만들어주었고, 답변 객체를 처리할 때 기존에는 질문-답변 배열 안에 있던 질문 객체 안에 답변 객체를 추가하는 방식을 사용했는데, 리팩토링하면서 아예 새로운 답변 객체를 만들어서 질문객체와 동일하게 질문-답변 배열에 푸시해주기로 했다. 이렇게 state에 배열형식으로 담긴 질문과 답변객체들은 map함수를 통해서 질문-답변 컴포넌트에서 처리가 되는데 이 때 props로 받은 객체가 질문이냐 답변이냐에 따라 서로 다른 것들을 렌더링 해주는 방식을 사용했다.
- 리팩토링 과정을 통해서 얻은 것은 단순히 코드 경량화뿐만 아니라, 서로 다른 기능을 가진 함수를 분리함으로써 setTimeout과 같은 함수를 통해서 질문과 답변이 시간 차를 두고 렌더링 되는 기능을 추가할 수 있었다는 점에서 아주 마음에 들었다 :)
- 글도 처음 쓰고 나서 퇴고의 과정을 거치면 퀄리티가 좋아지듯이 코드도 이와 비슷한 느낌을 받았다. 일단 오늘 밤은 꿀잠 자겠구만~ 속이 시원 😀