월간 일기장/2023년

23년 8,9월 크런치 기간의 회고

ghoon99 2023. 9. 30. 17:07

 

8, 9월은 업무로 매우매우 바쁜 날의 연속이었다. 그래서 8월 글이 밀려버렸고, 작성할 틈도 없이 바로 9월이 지나가 버렸다.

지금은 추석 연휴를 맞아 잠시 쉴 틈이 생겨, 8-9 월에 있었던 일들을 되돌아보고 기록해보려고 한다.

 

 

처음 겪어본 크런치 모드

3달 전 쯤부터 서비스의 대부분의 FE 인원이 투입된 대규모 프로젝트를 진행 중이였다. 예상 출시 날짜가 다가오고 있었지만 생각보다 진행도가 더뎠던 것 같다. 앞날이 깜깜했던 어느 날, 개발 리더 분께서 크런치 모드를 선언하셨다.

 

크런치 모드는 쉽게 말해 비상 근무체제..? 빡세게 몇 주 동안 몰아쳐 원하는 일정을 맞추자는 이야기였다.

출처: 킹무갓키 [크런치모드]

그래서 8, 9월은 디폴트가 거의 연장 근무였고, 심지어 주말에도 무려 10명 이상의 FE 팀원분들이 (FE는 다합쳐서 25+ 정도다)  업무를 하기도 했다. (누군가는 20일 연속출근 기록을 찍기도 했다..)

 

 

이 또한 경험이려니..

최근 몇 달 동안 업무 밀도가 높긴했지만, 이렇게 대부분의 팀원들이 모두 함께 많은 업무를 소화해내는 기간은 취업 이후로 처음 겪었다.

이 또한 경험이겠거니...언젠가 또 어디가서 이런 상황을 겪지 않을까..?

 

이런 바쁜 순간에 나는 어떠한 태도를 취할지, 어떻게 업무를 효율적으로 진행하고, 문제를 잘 풀어낼지를 생각해볼 수 있는 소중한 경험이라고 여기기로 했다. 실제로도 다양한 생각을 할 수 있었던 좋은 경험이였다.

 

 

아무리 바빠도 흔들리지 않는, 뿌리 깊은 나무가 되고 싶다.

프로젝트 초기에는 많은 개발자들이 그렇듯이 "새로 만드는 만큼 이전보다 더 잘 만들자", "더 새로운 것들을 시도해보자"  등등의 생각을 가지고 있었다. 그러나 점점 시간이 지나고 바빠질수록 점점 초반의 퀄리티를 잃어갔다. 오히려 이상한 히스토리가 쌓여가고, “일단다음에”, “// TODO” 가 치트키 처럼 퍼져나가기 시작했다.

이런류의 TODO 가 수도 없이 늘어나고 있었다..

PR 리뷰도 제대로 받지 못하고, 컨벤션도 깨트린 채 급하게 기능부터 내보낸 적도 있었고, 이 순간만큼은 변수명을 생각하는 시간조차 아깝게 느껴졌을 순간이 있었다. 나 뿐만이 아니라 프로젝트 전체에 그런 분위기가 생겨버려 살짝 아쉬운 부분이기도 했다.

 

실제로 특정 기간 이후의 코드들이 내가 생각하는 프로덕션 코드의 기준을 넘지 못하는 곳이 많았다.  "여긴 왜 이렇게 짜놨지 .." 라고 생각했던 "레거시 코드" 의 탄생 현장을 목격한 것이다.

 

몇몇의 팀원들은 "너무 빨리 만들어서 이렇게 할 수 밖에 없었다."  "오히려 기술 부채를 더 쌓은 것 같아 아쉽다" 등의 이야기들을 했다.

나 또한 "조금만 더 각잡고, 시간이 조금 더 걸리더라도 코드에 신경을 쓰면서 프로젝트를 진행했어야 했다"  라는 이야기를 했다. 

 

어쩌면 실제로 물리적인 시간이 부족했을 지도 모르겠다. 하지만 요즘 "혹시 이게 내 진짜 실력이 아닐까..?" 라는 의문이 들기 시작했다. 시간이 급박한 상황에서도, 일정 수준의 퀄리티를 유지할 수 있는 개발자는 분명 존재할 것이다.

 

내가 시간이 부족해서 놓친 여러 요소들, 작은 것부터는 명확한 변수명, 함수의 책임 분리, 뷰와 로직의 분리, 추상화 수준의 통일 등등.. 신경을 많이 쓰지 않더라도 (각을 잡지 않더라도), 그냥 코드에 묻어나오는 것이 되어버릴 정도로 이런 것들이 습관화 되어있었다면 어땠을까? (습관이 이래서 무서운 것인가 보다.)  그리고 애초에 시간을 더 쓴다고 더 괜찮은 수준의 코드를 작성 할 수 있는 능력이 있었을까..?

 

급박한 상황에서도 일정 수준의 퀄리티를 유지할 수 있는 개발자. 진짜 어렵겠지만, 그런 사람이 되고 싶다. 

지금은 시간을 더 준다고 해도, 만족할 만한 결과가 나오지 않을 것 같다. 다시 한번 돌아보고 반성하게 되었다.

 

 

기획, 정책 관리의 중요성

이번 프로젝트는 기존에 존재했던 기능을 다시 만드는 작업이 대부분이였다. 하지만 어떤 기능이 어떻게 돌아가고 있는지에 대한 기록은 잘 정리되지 않았고, 많은 개발자들이 이로 인해 어려움을 겪었다. 특히 무엇을, 어떻게, 개발할지 모르는 상황에서 공수 산정은 정말 큰 어려움이였다. 또 정책을 이전에 작성된 코드를 보며 판단해야 했던 점이 아쉬웠다. 개발자가 역으로 기획을 찾아 전달해줘야 했으니..

 

누군가를 탓할 상황은 아닌 것 같고... , 이런 문제를 어떻게 해결 할 수 있을지 궁금해졌다. 기획자와 개발자의 협업을 더 능숙하게 할 필요가 있었던 것 같기도 했다. 또 문서화의 중요성을 한번 더 느끼고 간다. 

 

개인적으로 이 서비스에 어떤 기능이 있는지, 어떤 서비스인지에 대한 이해도가 부족했던 것 같다. 조금 더 신경 썼더라면…..이라곤 하지만

위에 적었듯이 조금만 더 신경쓰지 않아도 그냥 묻어나오는, 이런 것이 기본이 되는 사람이 되길.. 

 

 

FE 팀 에서 나의 역할

나는 이전부터 이 프로젝트에 대한 기반작업(협업환경 구축, 폴더구조/컨벤션, 공통 기능개발 등)을 진행했었다. 8월 쯤 부터는 대다수의 개발자가 투입된 상황이였고, 다른 사람들이 투입되면서 이 프로젝트에 나에게 익숙한 것들이 다른 사람들에겐 아니였다는 것을 알게되었다.

 

여기 저기 다니면서 프로젝트에 사용된 기술들에 대한 설명을 해주며 팀원들에게 도움이 되려고 노력했었다. 다른사람에게 설명을 하면서 더 잘 알게 된 지식도 있었고..(react-query, suspense 를 프로덕션 레벨에서 처음 써보니 정말 힘들었다. 특히 SSR 과 조합이 좀..)

 

다시 생각한거지만.. 어떤 기능을 구현하는 것 보다는, 개발 환경을 세팅하고, 구성원들이 더 편하고 재밌게 개발 할 수 있도록 가이드를 제공해주거나, 관련 기술들을 연구/도입 하는 일들이 익숙하고 더 잘 되고, 관심이 있는거 같았다. 여튼 내가 좋아하는 부분에서 의미있는 업무들을 하니 좀 재미도 붙었고.. 그랬었다.

 

크런치 기간은 멘탈, 체력 싸움도 동반된다.

처음엔 솔직히 좀 재밌었다. 이런 것도 경험해보는구나.. 라는 생각도 있었고, 사실 저녁도 주고 집/회사 반복하긴 했어도 평소에 하던게 거의 개발밖에 없어서 달라질 건 없었다.

 

근데 어느 순간 돌아보니 갑자기 지쳐있더라.. 진짜 한순간에 텐션이 확 죽어버렸다. 물리적인 업무 시간 자체가 늘어나니까 체력적으로도 살짝 견디기 힘든 것도 있었고,진짜 갑자기 별거 아닌 순간에서 짜증이 트리거 되면서 아무것도 하기 싫은 무기력한 감정이 밀려왔었다. 

 

딱 마침 슬슬 번아웃에 빠지는 팀원이 생기는 듯 했다. 이런 기간이 길게 유지될 때 최대한 슬럼프 기간이 덜 오도록 멘탈 관리도 잘 해야겠다는 생각했다.

 

 

이번 프로젝트에서 얻은 기술적 경험 중..

이번 프로젝트를 진행하면서, 기능 구현은 물론 프로젝트 세팅과 관련된 작업, 프로덕션을 위한 다양한 작업들을 간접적으로라도 경험 할 수 있어서 재미있었다.

 

프로젝트에선 NextJS 를 사용중이다.(13이긴 한데 page Route) 서버 사이드에서는 suspense 가 작동하지 않음..? 을 특이하게 해결했는데 보통 검색하면 나오는 SSRSafetySuspense 같은 fallback 을 보여주는 방식이 아니였다. 이래도 되나 싶긴한데…?? 

 

여튼 Suspense 와 react-query 를 프로덕션 레벨에서 처음 사용해보면서 겪은 어려움들이 너무 많았고 (심지어 사용해본 사람도 FE 팀에서도 손에 꼽는다....)  현재는 쿼리키 때문에 난장판이 되어버려 고민 중이다.

 

 

또 NextJS 의 build cache 를 활용해 배포 시간을 줄여본다거나, build 시 이상하게 딸려오던 devDependency install 하는걸 캐치해서 낭비되는 시간(평균 100초+ → 70초) 을 줄여본다거나 하는 업무를 개인적으로 진행했었다. (이건 따로 이야기를 안해서 팀원들이 거의 모른다.. 실수한거 같기도..)

 

지금은 SSR 환경에서의 렌더링 결과물 캐싱, gssp 에서 res.setHeader(Cache-Controll… 하는거말고….) renderToHTML 결과물을 인메모리 캐싱 하는 그런거… 를 고민중인데 뭐 하나도 쉽지 않더라.. (애초에 도메인 특성상 무거운 SPA 앱인데.. SSR 이 의미가 있는 화면인가도 싶다. 그치만 이미 너무 멀리 와버렸다..)

 

디자인 시스템도 새로 만들게 되면서, 다른 패키지와 함께 멀티 레포 형태로 운영중이다. 그러면서 수많은 모노레포 도입 후기들에서 보이는, “왜 우리는 모노레포를 선택했을까요?” 라는 내용, 멀티레포의 부작용들을 그대로 겪고 있는 중(진짜로.. 소름돋을 정도로..)이다. 그래서 일부 경력 팀원분들 중에 모노레포를 도입하자 라는 목소리가 점점 나오고 있는 중이다.

 

 

 

이런 고민들을 하면서  블로그(velog의 일부 글은 독이될 지도..), 아티클 보고 깔짝이면서 "이런거 써볼까요"  하기엔

 

프로덕션 레벨에 도입하기 위해 고려해야 하는 점들 생각보다 많다는걸 느꼈다. + 책임감까지.

  거의 뇌피셜로 "이러면 되지 않을까요" 했던 나의 태도도 반성하게 되었다. (뇌피셜 코딩..)

 

“모노레포 좋네요 도입해보죠..!” → 버저닝은? , 패키지 관리 툴은? CI/CD 는?, 브랜치 전략은? sparse checkout 알아?, 다른 팀원도 모노레포가 뭔지 안대?”

 

주니어(나도 포함)의 비율이 매우 높은 조직에서 새로운 개발 환경 구조를 만들어나가기는 상당히 난이도가 있는 작업일 것 같다. 사실 생각보다 우리 FE팀이 모던 FE생태계의 대한 경험도가 높지 않다는 생각도 들었다.

 

모노레포를 도입해보자는 동료분의 이야기에 CI/CD 스크립트 짤 줄아는 사람 3명만 데리고 와주세요..(사실 나도 못함) 라는 답변을 하기도 했다.

 

반대로 개선시켜보거나 실험해볼 수 있는 영역들이 많이 남아있고, 관심만 있으면 개인적으로 파서 프로젝트에 기여할 수 있는 좋은 환경이기도 하다.

 

 

결론 

이번 크런치모드를 겪게 되면서 다양한 상황을 겪었고, 많은 생각을 할 수 있게 된 계기가 되었다.

 

일정 압박에도 괜찮은 수준을 유지하며 개발을 할 줄 아는 사람이 되었으면 했다. 내부 상황상 프로젝트를 진행하며 아쉬웠던 점이 여럿 있었지만, 이를 통해서 이전에 존재했던 문제점을 해결해볼만 방법론들을 찾아 나중에 적용해볼 수 있는 기회로 만들면 좋을 것 같았다. 

 

이번 프로젝트를 진행하며 FE 팀에서의 나의 역할을 찾아 수행한 것에 큰 재미를 느꼈고, 앞으로도 어떤 개발자 유형이 될지를 생각하는데 도움이 될 것 같다. 크런치 모드 기간 같은 스트레스를 많이 받을 수 있는 환경에서 최대한 멘탈 관리를 잘 하는 것이 중요하다는 것도 느꼈다.

 

마지막으로 이전에 이직 후기에서 언급했던 "업무를 하며 공부를 할 수 있는 환경" 이 만들어져서, 그래서 따로 시간 내어 공부를 하지 않아도 되는 환경이 되어서 좋았다. 앞으로도 이런 기간이 또 닥쳐오면 이번보다 더 현명하게 업무를 해결해 나갈 수 있었으면 좋겠다.

 

 

 

업무 외 8, 9월

대부분 집 회사를 반복하며 딱히 일상적인 일은 많이 없었지만, 기억나는 일들을 적어본다.

 

8월

 

대부분 직장인/대학원생 이라 저녁에 만났음. 사진이 이거밖에 없네..

19동기가 졸업해서 학교(졸업식 끝나고 저녁에)에 다녀왔다.

 

학교에서 지내던 많은 사람들이 졸업을 했다. ..혼자남았네?

솔직히 내년에 학교 어떻게 다닐까 걱정이 많이 된다..

 

기술 블로그 떴냐..??

8월 말 연차 하루 쓰고 쉬었던 날이 기억난다. 8월엔 드디어 기술 블로그를 만들었고, 도메인사서 붙이고, 기능, GA ,SEO 다 끝냈는데…

스타일만 못해서 방치중이다. 또 바빠져서 손도 못대는 중이다. 글도 여전히 밀려있는데 참 아쉽다.. 여유가 생긴다면 제일 먼저 완성 시킬 프로젝트.

 

 

결혼식에 무슨 코스요리가..

가족 지인 누군가의 결혼식도 다녀왔는데 음식이 코스요리로 나왔었다. 신기해서 남겨봄. 잘나가는 사람끼리 만나면 이렇게도 되는구나 싶었다. 

 

+ 8월에는 월수금 5키로 달리기 운동을 꾸준히 했었다. 9월도 그러고 싶었는데 야근이 늘어버려서 실패..

 

 

9월

D100 떴냐..??? (산기요는 이병 전역이랜다)

100일 남았다. 그 날이 오긴 오는구나… 길기도 짧기도 한 2년이 이렇게 지나가는 중이다. 

 

오랜만에 만난 친구들과 종각에 있는 애슐리 다녀왔다. 서울 중심가를 돌아다녔는데 광화문이 꽤 이뻐졌다 (공사해서 한쪽 도로를 막아놨더라). 내년에 혼자만의 시간이 좀 생기면 서울 구경 좀 해봐야겠다는 생각.. (특히 강북쪽, 사대문 안쪽 등등)

23년 과천 축제 엔딩

동네축제 다녀왔다. 이번에도 불꽃놀이가 인상적이였다.(성시경 라이브 들음)

 

 

 

추석연휴 + 연차로 잠시 휴식할 시간을 벌었다.

앞으로 연말까지 가야할 길이 조금 많이 남았는데, 앞으로도 의미있는 시간이 되길 바란다.

 

 

 

 

끝 

'월간 일기장 > 2023년' 카테고리의 다른 글

23년 11월의 기록  (12) 2023.12.03
23년 10월의 기록  (2) 2023.11.05
23년 7월의 기록  (2) 2023.08.05
23년 6월의 기록  (1) 2023.07.10
23년 5월의 기록 - 이상하게 길었던 1달  (2) 2023.06.07