네이버 부스트캠프 웹·모바일 10기 멤버십 7주차 회고

무호·2025년 10월 6일

네이버 부스트캠프

목록 보기
13/13
post-thumbnail

두 번째 프로젝트 미션이 끝나가고 있다.


📌6주차 요약

  • 각 주차의 목표와 멤버십 전체 목표를 설정하여 방향성을 점검 및 유지하고자 했다.
  • 스터디 그룹 일지를 피어 세션의 기록 도구 및 피드백 작성 도구로 활용했다.
  • 학습정리 목표를 달성하지 못했고, 구현을 생각한 만큼 하지 못해 체력적으로 무리를 했다.

🕒Timeline

월요일~화요일

이번 주부터 월요일~화요일마다 양재에 있는 코드스쿼드 교육장에 참석할 수 있게 되었다.
오프라인에서 얻을 수 있는 장점을 느껴보고 싶기도 했고,
동료들을 직접 만나 여러 이야기를 나눠보고 싶었기 때문이다.

그래서 아침에 헬스장을 다녀와 바로 버스를 타고 가면 어떨까 싶었지만
아쉽게도 알람 시간보다 1시간을 더 자는 관계로 운동은 스킵했다...
운동 때문에 짐이 추가되는 것도 번거롭기도 했고.

교육장 근처를 지나는 광역버스가 있었지만,
우선 자주 이용했던 고속버스를 통해 이동을 하기로 했다.

마침 고속터미널에 도착할 때 한 동료로부터 같이 들어가자는 연락이 와서 근처 카페에서 만났다.
오오 이것이 실존 인물인가... 하는 생각이 들었다.

그리고 교육장을 들어가야 하는데... 처음에 어느 건물인지 헤매다가
특정 상가 건물 층별 안내문을 보고 다행히 늦지 않게 출석했다.

양재 교육장은 천장이 엄청 높지 않았고, 여기저기서 다양한 물건이 비치된 것을 볼 수 있었다.
그래서인지 내게는 아늑하게 다가왔다.
부덕이... 인줄 알았으나 닮은 친구도 만날 수 있었다. 진짜 부덕이는 따로 있다고.

codesquad budoki bookshelf

30분을 살짝 넘겨 들어왔기에 이미 다른 동료들이 자리를 잡은 상태였다.
한 분이 먼저 다가와 인사해줘서 너무 감사했고 반가웠다.

안드로이드 캠퍼분들과는 대체로 편하게 이야기를 나눴다. 그야 6주가 넘는 시간동안 함께 이야기를 나눠왔으니... 그렇지 않으면 더 이상했다.
다른 트랙의 캠퍼분들과는 한 두 분 정도만 이야기를 나눌 수 있었다.
온라인에서는 상대적으로 E이지만, 오프라인을 나오니 어쩔 수 없는 I가 되어 말을 선뜻 내밀기 힘들었다.

각자 챙겨온 장비들을 설정하고, 팀 빌딩을 시작했다.
서로의 캠에 나오는 진기명기도 보여주기도 하고, 소리가 조금 겹치는 이슈가 있었지만 어찌저찌 잘 마쳤다.
그 이슈 때문인지 아니면 다른 이유에선지 동료들의 목소리에 집중하지 못해
이번 주는 스터디 기록 일지에 상세히 기록을 남기기 힘들었다.

이번 주는 운이 좋게 특별한 손님(?)들과 이야기를 나눌 수 있었다.
바로 시니어 개발자인 배필주님과, 그리고 마스터 아이비님이었다.

필주님과는 월요일에 각자의 배경과 멤버십 활동, 그리고 질문과 답변을 나누었다.
아이비님과는 화요일에 커리어적인 이야기를 많이 나눌 수 있었고, 인터미션에 하면 좋을 것들, 그룹프로젝트 등과 관련된 내용도 다루었다.

이때 질문을 거의 하지 않았다. 아니 못했다고 보는 게 맞을 것이다.
실제로 만나서 말하는 것에 부끄러움을 느끼는 것도 없지 않지만, 그보다는 더 근본적인 이유가 있었다.

베이직 후기에서도 언급했듯, 나는 정보통신학과를 졸업했다.
CS, 프로그래밍, 반도체, 보안 등을 넓고 얇게 접했고 안드로이드 또한 표면적으로 학습한 것이 전부였다.
특정 분야에 대한 지식과 깊이가 없었고 기술적인 무언가를 파봐야겠다고 행동한 경험이 전무했다. 그저 생각만 많았을 뿐이다.

그리고 나는 개발만큼 다른 분야에 개발을 접목시키는 것에 관심이 많았다. 지금도 유효하지만.
3년간의 약국 알바에서도, 6년 넘게 해온 운동에서도 어느 것을 개발을 통해 더 편하게 만들 수 있을지 고민해왔다.
넓고 얇게 아는 것을 좋아하는 특성이 반영된 게 아니었을까 생각한다.

우매함의 봉우리 그래프에 빗대어 본다면 나는 원점에 있는 것이나 다름없었다.
그런 상태였기에 무엇을 질문해야 할 지 알 수 없었다... 그저 껍데기만 있는 사람이었기에 부끄러웠던 것이 아닐까.

다시 멤버십 활동으로 돌아와서 이야기를 해보자면,
교육장은 오전 10시부터 오후 7시까지 개방되므로 이후에는 퇴장하여 근방에 남아 학습 및 작업을 지속하거나 귀가해야 했다.
즉, 월요일은 마스터클래스가 끝나면 교육장 이용 시간이 4시간밖에 없다.
물론 오프라인 특성 상 집중이 잘 되어 원하는 목표의 작업량을 세운다면 충분히 이룰 수 있었다. 화요일은 11시부터 시간이 생기니 더더욱.

이번 주의 목표는 MVVM 패턴 학습이었고, 최대한 코드 구현을 통해 몸소 느껴 목표에 가까워지자고 다짐했다.
월요일에는 주간계획서를 작성했고, 화요일은 공식 문서를 토대로 학습정리를 진행했다.
리뷰어님께서 알려주신 notebooklm을 활용하여 정리했다. 보이스로 정리된 내용을 들을 수도 있었다.
챌린지 때에는 정말 많이 활용했는데 멤버십에서는 구현에 더 치중해서 그런지 깜빡하고 있었다.

덕분에 MVVM 패턴이 정확히 어떤 아키텍처 패턴인지, 그리고 AAC ViewModel과 비교하여 설명할 수 있었다.
두 개념 사이에는 ViewModel이라는 같은 이름의 개념이 존재하지만 파고들면 완전히 동일한 개념이 아님을 학습하면서 깨달았다.
특히 AAC ViewModel은 두 번째 프로젝트 때부터 숱하게 부딪혀왔기에 이번 기회에 더욱 익숙해질 수 있었다.

수요일~목요일

원래대로라면 금요일까지 진행했겠지만 공휴일이 된 관계로 목요일까지 최대한 작업량을 쌓아두기로 했다.

수요일, 정확히는 화요일 귀가 이후로는 구현 작업에 착수했다.
MVVM 패턴을 먼저 적용하고, 이후 밀린 미션을 해야겠다고 판단했다.

우선 UI가 적은 화면을 대상으로 적용하기 위해 XML과 Kotlin 파일을 수정했다.
작성했던 코드들이 책임 분리가 명확히 되지 않고 패턴을 적용하면서 제자리를 찾아간다는 느낌을 받았다.

기존에 적용한 View Binding 방식 대신 Data Binding 방식을 쓰기 위해 Binding Adapter를 사용해야 했는데 생각보다 쓰기 어려웠다.
공식 문서를 읽으면서 놓친 부분이 한둘이 아닌 느낌이었다.
시행착오를 기록하면서 문제를 해결하다 보니 Fragment에서 생성한 Binding 객체에 lifecycle과 ViewModel을 연결하지 않은 것이 원인이었던 사소한 문제임을 깨달았다.

중간에 수요일 마스터클래스에 언급되었던 과제를 하기 위해 Domain Layer에 대한 학습을 진행하며 동료들과 이에 대하여 논의하는 시간을 가졌는데,
이상하게 나는 동료들의 말을 전혀 이해하지 못하고 있었다. 여기서도 지식을 제대로 학습하지 못하고 어딘가 새어보내고 있다는 것을 느꼈다. 그렇게 소외감을 느꼈던 것 같다.

다음으로는 Toolbar에 대한 Data Binding을 진행해야 했는데...
내비게이션 버튼과 메뉴에 대한 처리를 어떻게 해야 할지 고민하다가 결국 해결하지 못했다.

지난 6~7주간 수면 시간을 줄여가면서(특히 이번 주는 화요일부터 계속),
미션을 최대한 따라가야 한다는 압박을 계속 부여하다가
결국 공식 문서도 읽히지 않고, 코드 구현을 할 수 없는 상황까지 이르렀다.

이때 한계를 느꼈다.

이대로라면 리뷰 요청할 내용이 거의 없어 어떻게든 조금이라도 공식 문서를 이해하고 구현하고 싶었으나
더 이상 사고회로가 정상적으로 동작하지 않았다.
과거로부터 이어진 부끄러움과 아무 것도 할 수 없는 내 모습이 겹쳐져 점점 무너져갔다.

'여기까지인가... 더는 할 수 없는 걸까... 페어 프로그래밍과 그룹 프로젝트 때 발을 잡으면 안 될 텐데...'
하는 생각과 함께 슬픔에 잠겼다.

개인적으로, 상대의 부정적인 감정은 내게 전염되지 않기에 편하게 받아들여 힘듦을 나눌 수 있다고 생각하지만, 반대로 내 부정적인 감정을 공유하는 것은 상대에게 짐을 주는 것 같아 꺼리는 편이다.

그럼에도 어떻게든 학습을 이어나가고 싶었다. 포기하고 싶은 생각은 눈꼽만치도 없었다.
어떻게든 개선하고 싶었다. 가리기에 급급하면 상황은 나아지지 않을 것이 뻔했으니까.
너무나도 간절했기에 염치 불구하고 라운지에 현재 상황을 공유하며 도움을 요청했고, 다음과 같은 대답을 들을 수 있었다.

"육체가 피곤해서 이때다 싶어서 잡아먹으려고 하나 봅니다. 휴식 겸 잠시 내려놓고, 고민을 글로 정리하고 공유하시는 것도 좋을 것 같습니다. 과도하게 채찍질하는 건 아닌지 점검하는 것도 필요합니다."

"헛된 건 하나도 없습니다. 놓친 게 아쉽고 새로운 건 어렵고 그렇지만 사실 해야할 건 스스로 명확하게 알고 있다고 생각합니다. 하나씩 차근차근 하면 되는 겁니다!"

"그런 상황을 겪어야 성장한다고 생각합니다. 운동할 때도 근육통이 안 오면 성장이 멈춘 듯한 기분이 드는 것처럼요. 성장통을 넘어설 수 있을 때 대폭 성장할 수 있다고 생각해요. 블랙 아웃의 조짐이 보이는데, 저는 그럴 때마다 방법을 바꿔서 시도해보는 것 같아요. 한 주를 돌이켜보며 문제를 파악하고, 다음 주부터는 바꾼 방식을 적용해서 요구사항을 다 해낼 생각에 기대가 되더라구요."

하지만 여전히 같은 트랙의 동료들에게 말하기는 너무 힘들고 부끄러웠다.
챌린지 때부터 함께 이야기를 나눠온 한 동료에게만이라도 이야기를 해볼까... 하는 고민을 하며 주저하다가
Slack DM에 메시지를 입력할 때 아이콘이 바뀌는 것을 깜빡하고 들켜버렸다...
결국 (모든 고민은 아니지만) 고민을 실토했고, 다음과 같은 이야기를 들을 수 있었다.

"사소한 실수는 있어도 사소한 고민은 없다고 생각합니다. 자신이 직접 찾기 힘든 것도 있기 때문에 오히려 그럴 수록 기록하는 과정이 필요하다고 생각합니다. 그렇게 문제를 찾고 해결하는 것 아니겠어요? 그걸로 된 겁니다!"

스터디 그룹의 팀원들에게는 다음과 같은 이야기를 들을 수 있었다.

"마스터클래스 초기에 마스터님께서 그런 말씀을 하셨어요. 이 미션들을 여유롭게 할 수 있을 정도면 여기가 아니라 회사에 있었을 것이며, 그만큼 안드로이드 배경 지식이 완전하지 않다는 메시지 말이에요. 저는 두 멘트를 항상 깊게 받아들이면서 학습하고 있어요."

위의 이야기들을 듣고 나를 되돌아보며 멘탈을 다잡을 수 있었다.
언제나 나를 갉아먹는 존재는 나 자신이었으며, 동료들은 그러한 나를 붙잡고 함께 이끌어줬다는 것을 깨달았다.
그동안 너무 체력적으로 혹사시킨 것도 그렇고, 사소한 헛된 고민도 없었으며, 더 잘 해내기 위한 성장통을 겪고 있다고 생각하니 조금 안심했다.
물론 오버트레이닝처럼 너무 무모하게 달려온 건가, 내가 너무 유난을 떠는 건가 싶기도 했지만...
적어도 내가 할 수 있는 범위 내에서의 모든 걸 다 쏟아부었다고 생각한다.

시간이 지나서 이미 Merge된 PR을 이전 PR들과 고민을 정리하여 리뷰 요청 PR 내용을 추가, 링크를 리뷰어님께 전달했다.
현재 컨디션에서 도저히 행동을 이어갈 수 없었으므로, 리뷰어님께서 알려주셨던 커뮤니케이션을 통해 일정을 조율하는 방법을 사용했다.
시간 약속을 중요하게 생각하는 내 입장에서는 최후의 수단이었지만, 이번에 그 방식을 쓰지 않으면 안 될 것 같았다.

그렇게 리뷰어님께 미리 내 상태를 공유하며 PR을 조금 미룰 수 있냐고 허락을 구했던 터라, 다음과 같은 답장을 받을 수 있었다.

"리뷰를 받는 이유가 내 완벽한 코드를 봐달라는 의미보다는 이 구현에 대한 것을 같이 봐달라는 의미로 생각하고 작성하시면 조금이나마 부담이 덜할 것 같네요.
지금 단계에서는 위의 의미보다는 학습의 의미가 강한 MR이지만 앞으로는 저렇게 생각하고 진행하시면 좋을 것 같습니다."

리뷰 활동은 며칠 간 더 지속되었으나, 나의 외부 일정으로 인해 정리된 답변을 하지 못해 아쉬운 채로 끝이 났다.
그렇게 또 하나의 3주간의 프로젝트를 새하얗게 불태운 채로 마무리했다.
여러모로 아쉬움이 많은 과정이었다.

금요일 이후

기존에 진행했던 피어 피드백은 자유롭게 진행하고,
Lucas에 작성하는 피드백 활동은 목요일부터 일찍 작성할 수 있어 금요일 오전부터 작성, 오후에 마무리했다.
여전히 동료 피드백을 작성하는 게 참 어렵다. 어떻게 하면 도움이 되는 멘트를 받아들이기 쉽게 만들 수 있을지 고민하게 된다.
분량 면에서도 그렇고. 무엇이든 적당히... 너무 적지도 많지도 않게 조절해야 함도 느꼈다.

확실히 몸을 너무 혹사시킨 모양인지 머리를 대면 바로 잠이 오고, 밥을 먹고 나서도 바로 잠이 왔다.
다행히 이번에는 마음 편히 잘 수 있어서 좋았다. 이번 인터미션 때 충분히 회복해서 다시 달릴 수 있는 체력을 만들어야겠다고 생각했다.


🔧KPT를 이용한 정리

Keep

  • 문제 발생 시 생각의 흐름과 해결 과정을 코드 스니펫과 함께 가볍게 메모하여
    PR에 Files Changed에 comment로 정리했다.

Problem

  • 스터디 그룹 일지에 기록을 남기는 것을 등한시했다.
  • AI와의 코드 리뷰, 동료와의 코드 리뷰 활동을 성실히 임하지 못했다.
  • 화요일부터 잠을 자지 않고 계속 학습을 이어왔으나 구현 속도가 나지 않았고,
    수~목요일에는 중간에 4시간동안 기절하면서 졸고 깨고를 반복했다.
  • 결국 탈진하여 아무 것도 할 수 없는 상태에 도달했다...

Try

  • 동료의 PR와 이야기에 집중하여 기록을 다시 이어나가자.
  • 코드 리뷰 활동도 꼭 잊지 말고 비동기적으로라도 진행해보자.
  • 무언가를 더 이상 할 수 없다면 작업을 중단하고 쉬자.
    계속 붙잡고 있어 봤자 늘어지는 건 나 자신 뿐이다.
  • 완벽주의에서 벗어나자. 나는 결코 완벽해질 수 없다.
  • 주마다, 또는 날마다 방식을 바꿔서 다양한 시행착오를 겪으면서 학습을 진행하자.
    그렇게 주어진 요구사항을 기한에 맞춰서 이뤄보자.
  • 그렇게 재미를 느끼자. 과도한 의무감에서 벗어나자.

📝나만의 정리

마지막 프로젝트 미션을 앞두고 한 주간의 인터미션 기간이 주어졌다.
이 기간동안 체력을 충분히 회복하고, 리뷰어님께서 알려주신 책 하나를 잡아 정리하는 학습 방식을 활용하려 한다.
중간에 집중력이 떨어지는 것 같다면 과목을 바꿔 UI/UX도 공부하고, 대화법에 관련된 것도 조금씩 둘러보면 좋을 것 같다.
못했던 운동도 다시 나가고. 운동이야 이전에도 매일 갔던 것이니 큰 어려움은 없다.

사실 지금 이렇게 멘탈을 회복한 와중에도 과연 더 잘 할 수 있을지 걱정은 남아있긴 하다.
하지만 가만히 있을 수는 없다. 그 너머에 원하는 것이 있다면, 결국은 그 길을 걸어가는 게 답이니까.
겁쟁이가 되지 말자. 차라리 실패해서 다시 일어나자.

그렇게 회복과 학습에 집중하면서 남은 멤버십 기간을 위해 재정비하자.

0개의 댓글