조종 다음은 개발
article thumbnail

 

데모데이 준비

갓론트엔드,,

이번주는 2차 데모데이가 있는 주. 그래도 저번주에 해커톤을 통해 프론트엔드는 어느 정도 페이지를 시안을 만들어두었고 백엔드도 CI / CD를 구축해 두었기 때문에 API만 개발하면 됐다.

 

생각보다 여유롭게 구현할 수 있을 것 같은데?

무슨 생각에서 저런 여유가 나왔는지 모르겠다. 이번주 부터 우리 땅콩팀 백엔드는 Real MySQL 스터디도 진행하기로 했어서 스터디도 준비해야 했다. 하지만 뭔가 여유가 있다고 느껴졌다. 그래서 18시 이후에는 알고리즘 문제 좀 풀고 스터디 준비를 하면서 시간을 보냈던 것 같다.

 

 

 

인간은 망각의 동물

화요일 부터는 데모데이 안에 구현해야 하는 API가 무엇인지 정했고, 분배까지 완료했다. 이날도 회의만 하다가 끝났던 것 같다. 그래서 본격적으로 API 개발을 시작한 것은 수요일부터였다. 레벨 2 이후, 스프링 개발을 1도 안 했던 나는 오랜만에 스프링을 하려다 보니 낯선 느낌이 들었다. 

 

@ResponseBody를 어디에 붙여야 하지?? 파라미터였나?? 메서드였나??

 

레벨 2 동안 코딩했던 기억이 증발한 것 같았다. 부랴부랴 예전에 하던 코드를 살펴보면서 기억을 조금씩 되찾아 갔다. 다행히 내가 맡았던 API가 쉬운 편이어서 어렵지 않게 개발할 수 있었고 하루 만에 구현을 마치고 PR까지 작성했다. 백엔드 전원이 본격적으로 API 개발을 시작하다 보니 코드 리뷰도 활발이 일어났고 의견의 차이가 발생하는 부분도 많았다. 이럴 때마다 백엔드는 모여서 회의를 진행했고 각자의 의견을 나누며 최선의 방식을 선택해 나갔다. 하지만 이런 회의를 할 때마다 의견을 잘 말하지 못하는 나의 모습을 발견했다. 

 

커스텀 예외를 사용하는 것에 대해서 어떻게 생각해?

이번에 진행했던 회의 주제이다. 각자 자신만의 철학과 기준을 말하면서 논리적으로 의견을 말해주었다. 반면에 나는 아무말도 못 했다. 프린이 나에게 "타칸은 어떻게 할 거야?" 라며 나의 의견을 물었고 나는 단순히 "커스텀 예외를 사용했던 것 같아"라고 대답했다 "왜?"라는 질문이 왔지만 나는 제대로 대답하지 못했다.

내가.. 뭐라.. 했더라??

내가 왜 커스텀 예외를 사용했었지?? 분명이 레벨 1, 2 때 나만의 기준이 있었던 것 같은데.. 노션에 정리해 두었을 거야!라는 생각에 노션을 살펴보았지만 어디에도 내 생각이 정리된 문서는 없었다. 아무래도 당시에 오만하게 "내 기준을 정했으니까 까먹지 않겠지"라고 생각하고 따로 정리하지 않았나 보다. 인간은 망각의 동물인 것을 까먹고 있었다. 다시 한번 기록의 중요성을 느낀다. 앞으로 기록을 더 철저히 해야겠다.

 

 

나 레프팅 타고 있었네

레프팅을 타본 사람은 알 것이다. 처음엔 잔잔하다고 생각하지만 어느 순간 보트의 속도가 빨라져 있고 정신 차렸을 때는 이미 급물살을 타고 살기 위해 발버둥 치고 있는 본인의 모습을. 이번 2차 데모데이는 나한테 레프팅 같았다. 

 

분명히 여유로웠는데.. 왜 내일이면 데모데이고 나는 API를 하나만 개발했지?? 분명히 여유로웠는데??

 

 

해커톤을 통해 어느정도 기능이 구현되어 있었고, API도 하루 만에 구현했었고, 내가 올린 PR이 머지되면 다른 API 하나만 더 구현하면 됐었다. 아무리 늦어도 수요일이나 목요일이면 다 구현할 것이라고 생각했다. 그런데 데모데이 하루 전인 목요일 아침, 나의 상황은 아직 PR은 머지되지 않았고 구현해야 하는 (심지어 매우 복잡한) API도 하나 남아있었다. 

 

 나 지금까지 뭐했지..?😳

 

팀원 코드 리뷰, 리뷰 반영, API 재설계 등을 하다보니 생각보다 진도가 안나갔었고 이는 나뿐만 아니라 다른 백엔드 크루들도 동일했었다. 심지어 목요일 오후쯤엔 매우 큰 Git 충돌이 발생했다. 

사실 이전에 비대의 1회를 했었다 🤣

바로 비상대책의원회를 소집했고 브랜치 전략을 전면 수정해야할 정도로 심각한 문제였다. 회의 시간이 한 시간.. 두 시간을 넘어가며 다들 지치고 머리도 돌아가지 않았다. 다행히 임시방편을 찾았고 데모데이까지는 일단 급한불만 끄고 다음 주에 브랜치 전략에 대해서 회의를 진행하기로 결정했다.

 

깃 충돌을 어느정도 처리하고, 남아있던 코드 리뷰를 마치고 보니 저녁 먹을 시간이 되었다. 따로 정하진 않았지만 약속이라도 한 듯이 우리 땅콩팀은 모두 저녁을 먹고 다시 자리에 돌아와 밤늦게까지 작업을 했다. 밤 10시쯤 되어서 둘러보니 테이크오프 강의장에서 우리 땅콩팀만 아무도 퇴근하지 못하고 있었다. 밤 10시에 내일 데모 데이를 어떻게 진행하면 좋을지 회의를 하였고, 핵심이 되는 API 하나만 추가로 구현하고 시현을 하기로 결정했다. 그 API는 내가 구현해야 하는 API 였다 🤪. 완전 주인공이 되어버렸자나! 럭키비키자낭! 🍀

회의가 끝나자마자 나는 노트북을 챙기고 곧바로 퇴근을 하였고 집에 돌아와 씻고 바로 열심히 노트북을 두들겼다. 다행히 구현을 마칠 수 있었고 새벽에 PR을 올렸다. 원래는 나머지 3명이 모두 코드 리뷰를 맞춰야만 머지를 하도록 정책을 정했지만, 이번엔 급한 케이스여서 2명만 코드 리뷰를 맞춰도 머지를 할 수 있는 Emergency 라는 정책을 새롭게 추가했다 🤣

 

데모데이 당일 아침, 데일리를 스킵하고 바로 프론트엔드랑 백엔드를 연결하는 작업을 진행했다. 이때가 처음으로 프론트엔드와 백엔드를 연결하는 날이였다ㅎㅎ; 다행히 프린이 이전에 CORS 작업을 해두어서 그런지 큰 문제 없이 기적적으로 시현할 수 있는 상태를 만들었다.

 

2차 데모데이

그리고 진행된 데모데이. 이전에 1차 데모데이를 했었을 때 팀 문화에 대해 여쭈어보고 약간 회고 방식으로 진행되는 느낌이여서 그런지 큰 부담을 가지지 않았다. 하지만 이번 2차는 1차때 처럼 평화롭지 못했다.

 

브리 : 음.. 땅콩 팀의 Infra 구성에 대해서 말씀해주면 좋겠는데.. 타칸이 앞으로 나와서 그리면서 설명해주시겠어요?
나 : 네?? 네..

 

보드마커를 건내준 브리의 얼굴엔 상냥한 미소가 있었지만 나한테는 귀신 같이 무섭게 느껴졌다. 머리속이 하얘졌다. 나는 분명이 CI / CD 팀이다. 그래서 Infra 구성에 대해서 물어본다면 누구보다 잘 설명할 수 있어야한다. 하지만 그렇지 못했다. 내가 칠판에 그린 것은 처량한 네모 2개가 전부였다. 이든이 분명 잘 알려주었고 옆에서 "아 그렇구나~"라고 대답했었다. 이든이 설명해주었을 때는 누군가에게 설명을 해줄 수 있을 정도로 이해했다고 느꼈다. 하지만 자신감은 그때 뿐, 9일전에 구성한 인프라에 대해서 설명해달라는 부탁에 내가 한건 네모 2개를 그리는 것이 전부였다.

 

솔라 : 아. 그러면 서브넷 구성에 대해서 설명해주실래요?
나 : 네..? 서브넷이라면.. 네트워크를 말씀하시는건가요?
솔라 : 아! 모르시면 설명 안해주셔도 괜찮아요!
솔라 : ... 그러면 CI CD 흐름에 대해서 설명해주세요.

솔라가 옆에서 내가 잘 모르는 것을 눈치챘고, 서브넷 구성에 대해서 설명해달라고 했다. 하지만 이번에도 나는 벙어리가 되었다. 그래서 다른 질문으로 CI CD 흐름에 대해서 설명해달라고 하셨고 나름 주말동안 CI / CD 를 공부했어서 이건 설명할 수 있겠다 라는 생각에 마커의 뚜컹을 열고 칠판에 그림을 그리기 시작했다. 하지만 Github Action 만 적고 나는 또 멈춰버렸다.

 

나 : 그.. CI는 깃허브 액션을 통해 돌아가고요. dev 브랜치에 push..아! PR을 보내면 CI가 돌아갑니다!

분명히 공부했었는데.. 나는 뭘 공부한거지..? 

공부한 것 조차 제대로 설명하지 못했다. 안좋은 생각들만 내 머리를 스쳐지나갔다. 무슨 대답을 했는지도 제대로 기억이 나지 않았다. 아무튼 대답을 마친 뒤 자리에 앉았다. 이후 프론트엔드 피드백이 진행되었는데 머리속에 아무말도 들리지 않았다. 그래도 어찌저찌 데모 시현을 마칠 수 있었다. 그리고 애써 웃음을 지어보며 다같이 사진도 찍었다. 

 

근래 이렇게 감정적인 적이 있었나 싶을 정도로 매우 감정적인 상태였다. 하지만 감정을 숨기고 괜찮은 척을 했다.

그 누구도 나에게 비난하지를 않았다. 각자 자신이 잘못한 점을 말하면서 한 개인의 문제가 아닌 팀의 문제로 이끌어갔다. 그래서 그런지 더 미안한 감정이 들었다. 내가 더 잘했다면 좋았을텐데 라는 생각이 자꾸 들었다. 하지만 이런 무의미한 생각은 나만 힘들게 만들 뿐이다. 최대한 이성적으로 생각하려했고 다시는 이런 일이 일어나지 않기 위해 어떻게 해야할지 고민하는게 맞다고 생각했다.

하늘도 내 감정을 알고 있다는 듯이 갑자기 장대비가 내리기 시작했다.

생각을 정리할 시간이 필요하다 느꼈고 혼자 구석에 가서 일기를 쓰면서 우선 내 감정을 털어놓았다. 빗소리를 들으며 생각을 글로 적다보니 어느세 감정은 많이 가라 앉았다. 그리고 앞으로 이러한 문제를 다시 겪지 않기 위해 어떠한 노력을 할 수 있을지 이성적으로 생각해보았다.

 

프로젝트 이해도 싱크가 맞지 않은 나의 상태가 개인의 문제일 뿐만 아니라 우리팀의 문제로도 이어질 수 있다고 생각헀다. 그렇기에 꼭 해결해야하는 문제라고 느끼고 더 이성적으로 문제에 접근했던 것 같다. 한 시간 정도 글로 정리해보면서 나의 생각을 정리했고 팀원들에게 돌아가 나의 생각을 말하며 우리팀의 방향성에 대해서 얘기했다. 팀원들도 모두 공감해주었다. 하지만 빠르게 정할 수 있는 문제가 아니다보니 월요일에 모여 다시 회의를 하면서 앞으로의 팀 방향성에 대해서 얘기 해보기로 했다. 

 

누구나 겪는 고통의 순간이 나에게도 찾아온 것 같다. 하지만 오히려 좋아. 인간은 고통속에서 성장하니까 이 고통을 칡 씹듯이 꼭꼭 씹으며 성장해야겠다. 더 성장할 나를 위해.

 

 

profile

조종 다음은 개발

@타칸

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!