2월엔 별로 한게 없는 것 같아서 그 사실이 부끄러워 괜히 미루다 회고 쓸 타이밍을 놓쳤는데, 3월도 끝나버렸다. 한 달이 얼마나 빠른지, 한게 없는 와중에 한 것은 정리를 하고 싶어서, 한게 없다면 왜 없는지에 대해 생각하는게 회고이므로 늦은 2월 회고와 3월 회고를 쓴다.
2월의 가장 큰 일은 graphQL 전환 작업이었다. graphQL을 쓰면서 좋았던 것은 일일이 손으로 했던 타입 정의를 type gen을 이용해서 하기 때문에 작업 시간이 줄었고, 중복 타입을 선언하는 일이 없어졌다. 불러오는 데이터에 따라 API 생성 요청을 백엔드에 따로 하지 않아도 되고, apollo client가 제공하는 hook이 사용하기 편리했다. 그럼에도 불편했던 점은 초반에 타입이 계속 변경되는 일이 있었는데, 프로젝트를 시작하거나 커밋할 때 자동으로 gen을 하는 코드때문에 에러가 나서 에러가 고치기 전까지는 앱 실행이 안되는 경우가 있었다. 이건 graphQl의 문제라기 보다 우리의 스크립트와 소통의 문제라고 생각했다.
graphQl을 사용하기 전에 server쪽과 client쪽 모두 공부를 했다. schema와 resolver의 개념을 공부하고, REST API와의 차이점과 더 좋은 점을 알고, 사용법을 익혔다.
회사 복지를 이용해 nomad coder에서 강의를 왕창 샀고, ReactJS 강의를 첫번째로 듣고있다. (30프로정도 들었다...) 클론코딩에 회의적인 사람도 있지만, 내가 몰랐던 걸 코드 스타일이든, 개념이든, 라이브러리든 하나라도 더 배우는 게 있다면 그건 가치있는 일이라고 생각한다. 그리고 나는 아직 모르는게 너무너무 많기 때문에 무조건적인 input이 필요하다고도 생각한다.
styled-component의 다양한 사용법과 recoil, chartjs를 새로 알게 되었고, react-router-dom v6를 이용해 보았다.! 이건 나중에 따로 정리할 예정.
v6를 적용해볼 생각을 한 것과 직접 적용해본 것에 칭찬을 👏
'한 권으로 읽는 컴퓨터 구조와 프로그래밍'을 읽다가 막히는 부분에서 벗어나질 못해 이번 달은 운영체제 강의를 들었다. 뭔지는 안다, 들어는 봤다는 것들의 개념과 맥락을 정리할 수 있었다. 다 이해하고 흡수하는건 또 다른 얘기겠지만 우선은 이렇게 또 점을 찍은 것에 만족!
사랑스러운 토이프로젝트인 외출난이도를 드디어 리팩토링 하기로 했다. 절반정도는 지금 회사에서 해본 것들을 도입해보기로 했다. react-query나 presentational-container pattern, amplify. 해본 것을 왜하냐하면 같이하는 파트너는 안 써본 기술이기도 했고, 나도 처음부터 다시 셋팅을 하면서 사용을 해보고 싶기 때문이다. 그리고 test code를 작성하고, 리덕스가 아닌 다른 상태관리 라이브러리를 사용해 볼 예정이다. 매주 토요일 11시에 회의하고, 틈틈이 작업하기로 얘기를 마치고, 새로운 브랜치도 따놨다.
가까운 지인의 요청으로 저렇게 약재 용량을 입력하면 총 금액을 계산하는 앱을 만들었다. 백엔드 서버를 굳이 써야할까 싶어서 엑셀 파일을 읽어와 state에 저장해 사용했고, electron으로 빌드해 데스크탑 앱으로 만들어서 친구한테 전달했다.!
결과는!! 컴퓨터가 너무 느려진다.....였다. 내가 인지하고 있던 문제는 키보드 onChange 이벤트에 따로 lodash 처리를 안해서 모든 입력마다 include 연산이 돌면서 렌더링이 된다는 것과 약재입력 -> 탭 -> 수량입력 -> 엔터의 딱 한가지 액션만 가능하다는 것이었다. 금방 해결할 수 있는 문제라 우선 써보라고 하고 업데이트를 할 예정이었는데 컴퓨터가 너무 느려진다니. 모든 데이터를 state에 올리고, 키보드 액션 한번마다 length 1000정도의 array를 매번 연산하는 점에서 성능이 괜찮을까 싶긴했는데 안 괜찮았나보다... 앱을 켜자마자 메모리 사용량이 1gb가 확 늘어버리는데 기능이 단순하니까 성능도 가벼웠으면 했는데 어떻게 개선을 할 수 있을지 모르겠다. 엑셀을 db처럼 쓰고 싶어서, 프로그램을 켜면 엑셀을 읽어 json으로 만들고 그걸 바로 데이터로 이용할 수 있으면 좋겠다고 생각은 하고 잇는데 아직 방법을 못찾았다. 그래서 개선도 못해주고있다 ㅋㅋㅋㅋ.. 4월엔 꼭!
우리 파트너센터는 현재 antd를 사용하고 있다. 팀장님이 ag grid 도입에 대해 poc를 해보라고 하셔서 개발된 페이지에 똑같이 만들어봤고 낸 내가 결론은 '지금 쓰는 것 보다 불편하다, 굳이 이걸 써야하나? 아직 사용자측에서 이런 기능을 요구한게 아닌데 사용할지 안할지도 모르는 기능 때문에 이걸 써야하나?'였다. 그리고 회의를 하면서 엄청 부끄러웠다. sean이 poc를 요청한 이유는 다른 서비스의 파트너센터들에서는 기본적으로 제공되는 기능들이 우리 테이블에는 부족하고, 어떤 기능들이 있는지 보면서 우리가 어떻게 이걸 활용할 수 있을지, 이걸 이용해 어떻 편의를 먼저 제공해줄 수 있을지 등을 탐색해봤으면 해서였다. 띠용... 부끄러웠지만 프로덕트를 대하는 시야가 또 조금 더 넓어질 수 있었다. 기술은 결국 사용자에게 더 좋은 경험을 주기 위한 것이고, 요청이 있을때마다 개발을 해도되지만 더 나은 사용성을 어떻게 제공할 수 있을지를 고민해야 했다. 기술적 지식도 부족하지만 일을 대하는 태도도 아직 이렇게 부족하다 ㅠㅠ. 그래도 파트너센터를 좋은 프로덕트로 만들고싶은 욕심, 다른 서비스에서는 본적 없는 기능을 제공하고 싶다는 욕심이 생겼다.