[우아한테크코스 8기] 프리코스 오픈미션 및 전체 회고

이여빈·2025년 12월 14일

대외활동

목록 보기
11/11
post-thumbnail

돌이켜 보니 정말 재밌었고 배운 것이 많았던 7주였다. 처음 미션을 받을 때만 해도 '문제가 제법 쉽네?' 라는 생각을 했었지만, 문제의 난이도가 중요한 것이 아니었다는 것을 알게 되었다. 문제의 난이도는 상대적인 것이기에 '내가 이 문제를 어떻게 느끼느냐' 혹은 '내가 얼마나 어려운 문법들을 사용해서 멋진 결과를 만들어내느냐' 보다는, 문제를 어떻게 풀어나가고 쌓아가는지 그 과정과 감각에서 느낄 수 있는 성장 척도가 중요하다는 것을 배울 수 있었다. 우테코에서 느낀 것들이 그저 순간의 경험으로 끝나지 않고 앞으로 나의 개발 인생에 두고두고 도움이 될 것 같다.


회고가 3주차에서 멈춰서 그간 뭘 했는지 캐치업을 좀 하자면, 4주차부터 6주차까지는 기존 기수에는 없었던 오픈 미션을 진행했다. 오픈미션에 대해 간단히 얘기하자면, 2주라는 시간 동안 자기가 도전하고 몰입할 수 있는 주제를 선택해서 결과물을 만들기만 하면 되는 미션이다. 마지막에 일주일 간의 제출 기한이 주어져서 총 3주 간 진행되는 미션으로 봐도 무방하다. 주제에 제한은 없었으며, 오픈미션 사전 OT에 따르면 주제가 개발에 국한될 필요도 없다고도 하셨다.

오픈 미션 : rock-FE ; 돌쇠

나는 오픈미션의 주제로 실패에 대한 도전을 선택했으며, 결과물로 디스코드 스터디 봇을 만들었다. 협업 프로젝트로 진행했고, 개인 미션 기간 동안 코드 리뷰를 함께 하며 친분이 있었던 김희주님과 함께 진행했다. (헤헤 희주 언니 최고)

해당 미션에 대한 자세한 소감문은 노션에 별도로 작성했으며, 이 글에서는 몇 가지만 덧붙이기만 하겠다.


프리코스 목표 재점검

우테코 프리코스를 들어가면서 내가 남겼던 이 있다. 그 글에서 적은 우테코 프리코스의 목표를 얼마나 이뤘는지 확인하며 전반적인 활동 요약을 해보고자 한다.

우테코 프리코스에서의 목표

  1. README.md 가독성 있고 구조적으로 작성하기
  2. 애자일한 개발 진행하기 : 우선 기능 개발 후 리팩토링 하기
  3. 일일 회고와 주간 회고 작성해서 블로그 업로드 하기
  4. 디스코드로 사람들과 활발히 소통하며 코드 리뷰 주고 받기
  5. 새로 학습한 개념 노션 / 블로그에 정리해놓기
  6. 할 일 구체화 해서 시간 낭비하지 않기

1. README.md 가독성 있고 구조적으로 작성하기

주기적으로 코드 리뷰를 진행하면서 나는 가독성과 구조에 꽤나 집착을 하게 됐다. 가독성이 좋은 코드를 봤을 때 리뷰하기 수월하고, 구조적인 글을 보면 이해가 잘 되는 것 처럼 다른 사람들도 내 코드를 봤을 때 똑같이 느꼈으면 좋겠다고 생각했기 때문이다. README도 마찬가지였다. 동료들이 내 README를 읽는 것만으로도 어떤 작업을 했는지 알 수 있기를 바랬다.

그러기 위해서 개인 미션을 할 때는 README에 핵심만 담아서 전달할 수 있게 README 양식을 만들었다. 양식을 미리 만들어 두니 매번 고민하지 않아도 되어서 편했고 동료들이 궁금해 할 법한 부분들을 사전에 명시 할 수 있었다. 실제로 코드 리뷰에 README가 상세히 적혀있어서 좋았다는 평이 종종 달렸으며, 코드를 읽는 동시에 해석을 하지 않아도 되어서 편하다는 의견도 받았다.

(아래는 노션에 정리한 양식)

오픈 미션 협업 할 당시에는, README 보다는 PR를 더 많이 남기게 되어 PR 내용에 좀 더 신경을 많이 썼다. 처음에 대충 어떤 것을 했는지만 작성하니 코드를 보는 시간이 개발 기간에 비해 기하급수적으로 올라가는 것 같아 희주님과 함께 회의를 통해 양식을 정하고, 어떤 내용을 담으면 좋을지에 대해 상의했다. 해당 회의는 오픈미션 노션페이지 -> 회의 기록 -> 2025년 11월 12일에 담겨있으며, 디스코드 서버를 통해 구두로 회의를 진행했기 때문에 자세한 기록을 담지는 못했다.

하지만 해당 회의를 기점으로 PR내용이 구체적이게 되어 효율적인 PR리뷰를 진행할 수 있게 되었으며, 코드에 대해 더욱 원활한 소통을 할 수 있었다.

2. 애자일한 개발 진행하기 : 우선 기능 개발 후 리팩토링 하기

원래 나는 무작정 개발 -> 안되면 그제서야 코드 파악 후 문제 해결을 진행하는 주먹구구식 개발을 하곤 했다. 그러다 우연히 피어 코드 리뷰를 해보게 되었는데, 굉장히 체계적이고 깔끔한 동료분들의 코드를 보며 구조적이고 가독성이 좋으며 확장성이 잘 고려된 코드를 작성하고 싶다는 목표를 세우게 되었다. 지속적으로 클린코드에 대해 공부하고, 적용하고, 피드백 받으며 코드를 개선해 나가는 과정에서 알게 된 것은 내가 너무 코드를 큰 단위로 만진다는 것이였다. 그래서 이번 우테코 미션을 진행하면서 짧은 단위의 개발을 반복하는 방법인 애자일 방법을기능 1개 설계->구현->리팩토링의 작은 사이클 단위로 나에게 맞게 다듬어서 적용하는 과정을 연습해보고 싶었다.

결과적으로는 성공적이게 진행한 것 같다. (시행착오는 있었지만)

개인 미션을 진행할 때는 테스트를 먼저 작성한 후에 기능을 개발하는 TDD를 적용하기도 했고, 새롭게 익히고 적용해 볼 개념들이 많아서 설계 -> 테스트 작성 -> 기능 개발 -> 테스트 통과 -> 리팩토링의 순으로 개발을 진행했다. 매주 피어 리뷰를 통해 새롭게 배운 개념을 적용하고 TDD도 지키면서 애자일하게 개발하려니 익숙하지 않아 하나에 집중하면 다른 하나는 놓치는 시행착오도 있었다 ㅎㅎ;; 하지만 계속 시도해보니 점점 체화가 되기 시작했고, 처음에는 다 챙기느라 조급했던 마음을 내려놓고 이성적으로 개발할 수 있었다. (지금도 완벽하지는 않다.)

오픈 미션을 할 때는 앞서 언급한 짧은 단계의 방식으로 진행을 했다. 원래 프로젝트의 목표를 메인 기능 2개 개발하기로 작게 잡았었기 때문에, 확장성을 미리 고려하여 개발을 하고 싶어 중간 중간 리팩토링 하는 시간을 많이 가졌다.

맨 처음에 봇 세팅 후 event와 슬래시 명령어를 봇에 등록하는 과정을 하나의 파일에 모두 넣으니 코드가 길어져서 추후에 봇에 등록할 다른 기능을 고려하여 파일 분리를 하는 리팩토링을 진행했다. 또한 음성채널 이벤트를 관리하는 voiceState 이벤트에도, 점차 기능을 덧붙이던 과정에서 기존의 구조를 재정립해야 하는 상황을 맞이하게 됐을 때 5일 정도를 들여서 코드를 리팩토링 했었다. 기존의 코드가 결합성이 높게 짜여서 다시 뜯어내어 기능이 돌아가는지 확인하면서 하느라 시간이 더욱 오래 걸린 것도 없지않아 있다. (처음 이틀은 하다가 안돼서 커밋을 전부 stash 한 다음, 머리를 식힐 겸 며칠 간 다른 오류를 고치고 다시 0부터 리팩토링을 시작했다.)

3. 일일 회고와 주간 회고 작성해서 블로그 업로드 하기

이거는 일부 성공 일부 실패했다.
일일 회고 같은 경우에는 매일 길게 작성하기 어려워서 노션에 토글로 간단히 작성했고, 주간 회고는 개인 미션 할 때 미션 회고로 올리기 위해 노력했다. 오픈 미션 때는... 3주 내내 개발하고 일일 회고 하고 오류 트래킹 하느라 주간 회고를 작성할 힘이 없었다ㅎ0ㅎ

4. 디스코드로 사람들과 활발히 소통하며 코드 리뷰 주고 받기

이거는 실패했다.
초반에 사람들이 미션을 시작하기도 전에 디스코드에 미친듯이 토론하고 대화를 나누길래 엄청난 열정에 비대면으로 기가 빨려서 공지 올라올 때 / 내가 궁금한 것이 생김 / 다른 사람들 뭐하는지 구경 / 코드 리뷰 할 때를 제외하고는 디스코드에서 활발히 활동할 수 없었다. 다들 미친 체력과 의지를 갖고 있어서 그걸 따라가려 했다간 있는 체력마저 빨려서 미션을 제대로 하지 못할 것 같았기 때문에..

하지만 초반에 채널 만들기가 활성화 되었을 때 모각코 방을 만들거나 전에 정리해 둔 회고방법론 정리글들을 공유했고, 대신 피어리뷰를 적극적으로 함으로써 사람들과 조금은.. 소통했다! 아예 안 하지는 않았다!!!

5. 새로 학습한 개념 노션 / 블로그에 정리해놓기

새로 학습한 개념에 대해 정리하는 글을 작성하고 업로드 하기 위해서는 많은 시간을 쓰는 편이기 때문에 일단은 노션에만 짤막하게 정리를 해두었다. (이 회고를 작성하는 것도 지금 한 3일 정도 걸리는 중이다... 시작에 애초에 늦긴 했지만 내용을 작성하는 데도 항목 몇 개 쓰고 지쳐버려서 더 하지 못하는 걸 보니 체력을 늘릴 필요가 있는 것 같다.)

6. 할 일 구체화 해서 시간 낭비하지 않기

이건 진짜 진짜 잘했다.
내가 우테코에서 어떤 부분을 제일 열심히 했나요? 라고 물으면 질문 끝나기도 전에 모든 것을 작은 단위로 쪼개는 것이요.라고 대답할 수 있을 정도로 잘했다고 자부한다. 할 일뿐만 아니라 설계와 기능 구현도 잘게 쪼개서 애자일한 개발을 진행했다.

나는 앞서 언급한 것처럼 목표는 방대하게 잡는 편이지만 쉽게 지치고 쉽게 질리며, 쉽게 스트레스 받는 편이라 장벽 낮추기가 정말 중요하다. 그래서 몇 년 간 연구하다 알아 낸 방법이 작개 쪼개기였다.

물론 방법을 알아냈다고 해서 일사천리로 적용할 수는 없었다. 작게 쪼개는 것도 내가 할 수 있겠다고 느끼는 단위가 어느 정도인지, 언제 지치는 지 등 스스로에 대한 이해가 많이 필요했다. 아직도 잘 아는 편은 아니지만 이번에 우테코 미션을 진행하면서 무려 6주짜리 프리코스를 안 지치고 최선을 다해서 완주하는 것이 목표였기에 내 상태를 수시로 확인하면서 할 일을 잘게 쪼개서 진행했다.
물론 하기 싫을 때는 좀 미루기도 했지만...


최종 느낀 점

우테코를 진행하면서 정말 즐겁게 미션을 풀이했다.
스스로에 대한 실험을 다양하게 해보면서 나만의 개발 방법을 찾아가는 연습을 할 수 있었고, 앞으로 개발을 더 깊게 해보고 싶다는 나의 의지를 확인할 수 있는 기간이기도 했다. 미션을 풀이하는 게 별 거 아닌 것 같았지만 막상 해보니 내가 보완해야 할 부분은 너무나도 많았고, 느슨했던 휴학기에 긴장 두 스푼 정도를 섞어준 것 같다. 앞으로도 느슨해질 때마다 나의 부족함을 마주했던 이 기간을 되돌아보며 전진해 나갈 것이다.

profile
경북대학교 소프트웨어학과 | 개발자

0개의 댓글