새해가 되었지만 바뀐 것은 나이뿐이다. 나의 상황은 달라진 것이 없다. 요즘 읽는 책은 나르치스와 골드문트인데, 팀장님이 며칠 째 읽는 거냐고 하셨다. 이번 주말에 시간내서 읽고 반절이나 읽었다고 월요일에 자랑하려 한다. 이 책 반납할 때 한때 문학소년이었던 팀장님이랑 함께 도서관에 가기로 했다. 얼마 전에는 인생의 역사를 읽었는데 시와 거리가 먼 나에게 해설을 들려주어서 시를 이해하는 데 도움이 되었다. 문장 하나하나 빈틈없이 비집고 들어와서 어렵지만 마음에 드는 책이었다.
저번 주에 글을 쓰지 않은 이유는 그 전주와 크게 다른 점이 없다고 느껴졌기 때문이다. 프로젝트 작업을 하고 있는데 일을 하고 있다는 거 외에는 할 말이 없었다.
W 프로젝트는 아예 나에게 할당이 되어서 웬만한 건 내가 처리하게 되었다. 다만 아직까지 코드의 모든 구현 사항을 깨우친 건 아니라 완벽히 에러 대응을 하지는 못한다. 오늘은 사용자가 서비스를 이용하다가 갑자기 서비스가 멈춰버린 상황이었는데, 안드로이드 앱이 아닌 크롬 브라우저로 서비스를 실행해서 생긴 문제였다. 팀장님의 순발력으로 해결되었다.
B 프로젝트에 서비스를 추가하는 것을 90% 완성하였다. 오늘은 어제 받은 피드백을 기반으로 코드를 개선하였다.
useEffect
가 많다.
어떤 값이 변동되었을 때 실행되는 로직이 많았는데, 이것을 onClick
처럼 이벤트가 발생했을 때 실행되도록 최대한 변환하였다. useEffect
가 많으면 사이드 이펙트가 발생할 수 있고 차후 로직을 이해하기 어려워질 수 있다. 이것을 개선하면서 중복되는 로직을 발견하여 함수로 추출하였다. 원래 useEffect
가 6개 정도 되었는데 지금은 3개 정도 남았다.
없앨 수 있는 state
가 남아있다.
이것은 내가 react-query
에 대해 제대로 이해하지 않아서 생긴 문제였다. react-query
에서는 useInfiniteQuery
로 무한 스크롤을 할 수 있는데, query
가 실행되는 조건이 page
state가 하나씩 증가할 때였다. 하지만 이미 react-query
에서 pageParam
으로 page
를 관리하고 있기 때문에 굳이 사용하지 않아도 되는 변수였다. 이것을 수정하여 dependency 하나를 줄였다.
중복되는 디자인 스타일이 있다.
어느 정도 중복된다고 생각하면 컴포넌트를 만드는 편인데, 스타일적인 요소라서 따로 컴포넌트로 만들지 않았다. 하지만 보여주는 것의 역할이 같았고 스타일이 조금 다른 거라서 컴포넌트로 빼라는 의견을 받았다. 하나의 스타일 파일을 지웠다.
react-hook-form
의 isDirty
를 사용하여 input
의 값이 바뀌었는지 확인해라.
isDirty
는 input
에 적힌 값이 defaultValue
와 다르면 true
가 된다. 이 값을 알기 전에는 onChange
에서 변화를 감지하여 state에 저장하였다. state와 setState 2개가 props로 여러 컴포넌트에 전달되면서 dependency가 늘어나서 이 변수를 지웠다.
이 작업은 아직 완벽히 끝나진 않았다. 정확한 이유를 알아내진 못했지만, 컴포넌트 외부에서 값을 끌어다 쓰면서 align이 맞지 않아 inputValue
가 바뀔 때 isDirty
가 true
가 되지 않고 defaultValue
가 바뀌는 문제가 있다.
컴포넌트 내에서 const
를 선언하면 렌더링할 때마다 생성되니 전역으로 빼라.
이건 아직도 고민하고 있는 점이다. const
몇 개로 컴포넌트에 무리를 줄 거 같지는 않은데, 전역에 선언을 하자니 굳이 다른 데에서 쓰지 않는 거를 꺼내둬야 하나 싶었다. 그래서 대안으로 ref
를 사용하였다. 이 방식대로 하면 메모리 주소값은 바뀌지 않고 ref.current
의 값만 바뀐다. 하지만 const
로 했을 때보다 가독성이 좀 떨어지는 거 같아서 어떻게 해야 할지 분명히 정하진 못했다.
입사 직후에 가장 많이 했던 실수는 useMemo
의 dependency
였다. table
에 들어갈 column
을 useMemo
로 만들어두었는데 값이 바뀌지 않아서 시간을 오래 썼다. table
에 들어가는 event 함수는 값의 변화가 감지되지 않는다는, 대단히 큰 착각을 했다. 이때 골머리 쓰다가 질문했는데 스윽 보고 바로 알려주셔서 가슴에 돌을 맞은 기분이었다. '이것도 몰랐다니. 왜 생각을 못 했지?'라는 생각과 함께 내가 사람을 볼 때 멋지다고 느끼는 순간이 이런 거라는 걸 느꼈다.
회사에는 이미 적응을 많이 한 상태다. 이번 주에 처음으로 야근을 해봤다. 우리 회사는 이번 달에 야근 한 시간을 다음 달의 대체 휴가로 넘겨준다. 야근 식대도 나온다. 팀장님께서 "일이 많아서 그런 게 아니라 다음 달에 놀려고 그러는 거지?"라고 하셔서 "네."라고 했더니 솔직해서 좋다고 하셨다.
정말 적응을 한 건지 간혹 나의 본 사투리가 나오기도 하고 장난도 친다. 어제는 옆 분(이하 선생님)과 과자를 나눠 먹다가 홈런볼 2개와 뻥튀기 하나가 남아서 팀장님께 드시라고 했더니, "안 먹어! 뻥튀기 맛없어! 홈런볼 오래된 거 지? 안 먹어!"라고 하셔서 "진짜 겁나 깐깐하네"라고 했더니 옆 분이 웃으셨다. 팀장님께서는 우리는 이렇게 말해줄 사람을 뽑으려고 했다고 하시며 쿨하게 다시 코드 짜러 가셨다.
내가 편의점으로 가려고 책상 옆으로 지나오면서 "제가 보기에 두 분은 이런 면에서 정말... (좋아요)"이라고 했더니 선생님께서 "뭔데~ 말해봐~"라고 하셔서 "음... 네. 하하." 하고 나와버렸다. 사수들 덕분에 회사 분위기에 적응도 빨리하고 코드 볼 기회도 많아졌다. 질문하는 거에 대한 허들이 없다. 대학생이 되어 친한 선배한테 가서 들붙는 기분이다. 재택근무가 없는 데도 회사 가기 싫은 적은 없었다.
1월부터 회사 지원으로 헬스장을 다닐 수 있게 되어서 12월에 한 번 운동하신 대표님의 자리를 내가 양도받았다. 아침 6시쯤 기상해서 6시 55분에 나가서 7시 42분에 회사에 도착해서 짐을 챙기고 8시에 운동을 시작하고 (정확히는 스트레칭을 많이 한다) 9시 02분에 씻고 9시 45분에 나와서 10시에 도착해서 19시까지 근무하는 루틴이다. 근래에 식단 조절과 약간의 운동으로 0.5kg 정도 감량하였다. 1kg이 7700kcal라는데 언제 살을 뺄 수 있으려나.
아침에 운동을 해서 좋은 점은 크게 2가지다.
앞으로도 꾸준히 무언가 해볼 예정이다.
"커피 사줄까?"를 반복하는 팀장님과 커피가 기호식품인 선생님 사이에 낀 나의 스토리. 끝.
전 개발자로 전직하기전에 상명하복식 군대문화를 가진 곳에서 일을 많이 했었어서.. 뭔가 수평식 문화에 녹아들기가 참 힘드네요..
다른 분들 보면.. 동료들과 참 재미있게 농담도 던지고 서슴 없이 잘 이야기 하더라고욤 부럽습니다 너무..
아무래도 살아온 곳이 그래서인지.. 더 이런 문화에 적응을 못하는 것 같네요.
아니면 원래 제가 그런 사람이었던 것이었는지도 모르고요
개발자로 일 시작한지 4개월 됬는데도.. 팀장님이 가볍게 묻는 질문에도 다나까가 되고, 팀원 분들께도 서슴 없이 못 대하고..
어렵습니당..
그와는 별개로 글은 너무 잘 읽었습니다
가끔 확인했을 때 글이 있으니 너무 좋네요.
회사 생활 재밌어보여요 헬렌 화이팅!