Rocky 's Blog

[네이버부스트캠프 웹・모바일 10기] 멤버십 13주차 회고

  • 네이버부스트캠프
  • 회고
2025. 11. 22.
게시글 썸네일

회고를 시작하며


이번 주는 어떻게 보냈는가?

그룹 스프린트의 마지막 구현 주차였다. 남은 작업이 1, 2주차 못지않게 많아 걱정도 되었지만, 예상보다 많은 부분을 구현할 수 있어 다행이었다. 중간중간 이번 프로젝트에서 부족했던 점들을 돌아보며, 어떻게 하면 더 개선할 수 있었을지 고민하는 시간도 많았다. 아쉬운 점들이 남긴 했지만, 이만큼 완성했다는 사실만으로도 충분히 의미 있다고 느꼈다.

마지막 데모 시간에는 다른 팀들의 완성된 결과물을 보며 많은 인사이트를 얻었다. 활발히 오간 질문과 답변 덕분에 미처 생각하지 못했던 관점을 접할 수 있었던 것도 큰 수확이었다. 특히 우리가 생각만 하고 실제로 구현하지는 못한 부분들을 관심 있게 살펴보았다. 이번 주말에는 그들의 코드와 기록들을 살펴보며 어떻게 진행해왔는지 참고해보고자 한다.

목표 설정


이번주의 목표는 무엇이었는가?
  • 남은 일주일 기간에 맞는 계획을 세우고 완수하기
  • 스트레스 받지 않는 행복한 개발 흐름 유지하기
  • 설계 및 구현 고민 과정을 문서로 기록하여 팀 전체의 이해도 높이기
  • 시간에 쫓기지 않되, 각 작업의 완성도를 높여 안정적인 데모 준비하기
  • 목표가 실제로 잘 이루졌는가?

    팀 내의 목표는 개발보다는 외적인 부분에 초점이 많이 가있었다. 그래서 개인적으로 구현에 대한 목표도 세웠다. 실제 동작 방식과 구현된 방식이 일치하는지, 그렇지 않다면 어디까지 신경 썼는지에 대해서 고민해보려 했다.

    한 80% 정도는 이루었다고 생각한다. 새로운 기능을 추가할 때마다 실제로 어떻게 동작할지 생각하며 작업에 임했다. 알고 있는 개념과 얕게 찾아본 개념을 적용하다 보니, 정확하지 않은 부분도 있었을 것이다. 이에 대한 학습이 더 필요하다고 생각한다.

    목표가 잘 이루어지 않은 이유가 무엇일까?

    애매하게 아는 개념이 여전히 입 밖으로 나오지 못한다. 특정 키워드가 떠오르지만, 이들을 연결하는 과정에서 부족함을 느꼈다. 배운 내용에 대한 복습이 부족했던 것일까? 아니면 제대로 이해하고 넘어가지 못한 것일까? 다시 차근차근 그 키워드들을 연결하는 과정을 정리해보고자 한다.

    더 나아가서

    머릿속에 학교 다닐 때 시험 공부한 흔적이 그대로 남아있다는 생각이 들었다. 특정 개념이 챕터 단위로 나누어 정리되어 있다. 연관관계는 고려하지 않고 각 챕터별로만 정리된 느낌이다. 그래서 연결고리를 찾지 못한다.

    각각의 챕터를 그래프로 연결짓는 작업이 필요하다. 노션처럼 글로 정리되는 것이 아니라, 옵시디언의 그래프뷰처럼 개념들을 연관 지어보자. 그 과정에서 학습이 더욱 필요하다.

    협업 과정을 돌아보며


    협업 과정에서의 목표는 무엇인가?

    부스트캠프 이전의 협업에서는 주로 팀장을 맡아 진행했다. 하지만 그동안 팀장을 맡은 이유는 단순히 경험이 조금 더 많았기 때문이지, 팀의 진행이나 조율을 잘해서라기보다는 그렇다. 팀 운영 방식도 늘 이전에 하던 방식을 반복하는 데 그쳤다. 익숙한 협업 도구를 사용하고, 이전 템플릿을 그대로 가져와서 새로운 시도를 해본 적은 거의 없었다.

    이번 프로젝트에서는 협업 과정을 제대로 체험하고 싶었다. 그래서 평소 익숙한 방식을 제안하기보다, 팀원들의 다양한 방식을 받아들이고 그 이유에 대해 생각해보려 했다. 팀 문서 관리부터 여러 git 전략, 작업 진행 방식까지 다양한 방법을 경험하며 스스로 내 것으로 체화하고, 왜 이 방식이 더 효과적인지 고민하는 시간을 가지고자 했다.

    목표가 실제로 잘 이루졌는가?

    팀원들 각자가 다양한 경험을 가지고 있어 협업 능력이 뛰어났다. 이번 프로젝트에서는 슬랙, GitHub 프로젝트, 노션 같은 협업 도구들을 처음 사용해 모두 새로웠지만, 팀원들이 이 도구들을 체계적으로 잘 활용하는 모습을 보며 많은 것을 배울 수 있었다.

    1. 슬랙

    이전에는 디스코드만 활용했었는데, 부스트캠프에 들어오면서 처음으로 슬랙을 사용해보았다. 이번 프로젝트를 진행하며 그룹 슬랙에서 스레드 기능을 적극적으로 활용했다. 덕분에 원하는 이슈를 쉽게 찾을 수 있었고, 각 이슈가 독립적으로 관리되어 효율이 높아졌다. 특히, 특정 이슈에 대해 팀원들이 나눈 의견을 스레드로 한 곳에 모아보기 편했던 점이 인상적이었다.

    2. GitHub 프로젝트

    이전 미션에서 GitHub 프로젝트를 처음 사용해 보며 다루기 어렵다고 느꼈다. 기능과 활용 방법에 대해 고민이 많았는데, 비슷한 내용만 검색되어 잘 활용할 수 있는 방법을 깨닫지 못했다. 이번 프로젝트에서는 GitHub 프로젝트를 잘 다루는 팀원이 있어서 많이 배울 수 있었다. 특히 마일스톤과 이슈를 함께 사용하면 팀의 진행 상황을 잘 파악할 수 있고, 작업 단위별 내용을 상세히 살펴볼 수 있어 매우 효과적이라 생각했다.

    다만, 단점은 모든 팀원이 적극적이고 성실하게 최신화를 해야만 과정이 의미 있어진다는 점이다. 첫 주차에는 모두가 낯설어서 최신화가 잘 이루어지지 않았고 GitHub 프로젝트를 통해 얻을 수 있는 부분이 적었다. 개인 작업 위주로 흐른 느낌이었다.

    이후 팀 내에서 논의를 거쳐 이를 잘 활용하기 위해 기능을 추가하고 개선하면서, 칸반 보드가 항상 활성화되고 팀 효율이 크게 향상되었다. 내 작업이 끝나면 남은 일을 확인 후 바로 다른 작업에 투입할 수 있어 매우 효과적이었다.

    3. 노션

    프로젝트를 진행하면 늘 노션을 사용해왔기에 자신이 있었다. 하지만, 이번 프로젝트를 진행하며 나는 정말 일부 기능만을 알고 있다는 것을 깨달았다. 늘 직접 작성하거나 복사 / 붙여넣기를 반복하기도 했다. 노션만의 장점들을 활용하지 못한 것 같다.

    이번 프로젝트에서는 팀원들의 노션 활용 방식을 보며 많이 배웠다. 관련된 정보를 적절히 분리하고, 데이터베이스를 능숙하게 다루며 자동화 기능까지 잘 활용하는 점이 인상적이었다. 나는 데이터베이스를 단순히 표처럼 생각했으나, 팀원들은 데이터베이스를 연동해 상호 연결하는 방법을 활용하는 것이 신기했다.

    또한 자동화 기술에 대해서 배울점이 많았다. 매일 데일리 스크럼 기록을 동일한 템플릿으로 생성했는데, 다른 팀원이 버튼 클릭 한 번으로 새 페이지를 만들고 이를 캘린더에 자동 등록하는 기능을 구현해 효율성이 크게 향상되었다. 정적인 HTML 기반 사이트만 다루던 중, AJAX 같은 동적 기능을 접한 듯한 신선한 경험이었다.

    목표가 잘 이루어진 이유가 무엇일까?

    기존같으면 프로젝트 초반에 기존에 존재하던 탬플릿을 복사해오고 이를 그대로 사용했을 것이다. 빠르고 다른 고민해보지 않아도 되니까 안주하기 쉬웠기 때문이다. 하지만 이번에는 다른 팀원들의 활용 내용을 적극 반영했고 이를 배워보려고 노력했다. 어떤 점에서 효율적이고 효과적인지에 대해서 고민해보며 그 장점을 확실하게 가져가려고 했기에 많이 배울 수 있었다고 생각한다.

    더 나아가서

    평소 팀장 역할을 선호하지 않았다. 누군가를 이끄는 역할보다는 옆에서 보조하며 분위기와 사람들을 챙기는 데 자신이 있었고, 그런 역할만 골라서 맡으려 했다. 그래서 팀 내 프로세스에 대해 깊이 고민해본 적도, 노력해본 적도 없었다. 이번 주차에는 부스트캠프에서 계속 상기시키는 분위기가 좋은 것과 협업이 잘되는 것이 같은가? 에 대해 생각해보았다.

    팀 내 분위기가 좋지 않다면 협업에 지장이 있을 수 있고, 반대로 분위기가 너무 들떠도 협업에 방해가 될 수 있다. 즐거운 분위기 속에서 작업으로 자연스럽게 돌아오는 과정이 필요한데, 이 과정이 지체될수록 팀 전체의 시간도 늦어질 수 있기 때문이다.

    나는 그동안 작업으로 돌아올 수 있는 말을 해주는 사람이 좋은 리더라고 생각했다. 하지만, 그런 사람이 특별한 것이 아니라, 팀 내에서 이런 과정이 자연스럽고 당연해야 협업이 잘된다는 생각이 들었다. 그동안은 어쩌면 누군가에게 책임을 미루고 있었던 것은 아닐까 하는 반성도 하게 되었다.

    일과 그 외적인 경계가 명확하고, 팀 모두가 작업을 최우선으로 인지하는 것이 건강한 협업이라고 느꼈다. 너무 들뜬 분위기로 이끄는 것에 대한 점검도 필요하며, 나만의 기준을 만들어보는 것도 좋은 방향이라 생각한다.

    목표를 명확하게 설정하고 들어가자


    구현 과정에서 목표는 무엇인가?

    요구사항에 맞춰 기능을 도출하고, 그에 알맞은 기술을 도입하며 구현해나간다.

    목표가 실제로 잘 이루었는가?

    추가 요구사항에 다중 사용자 지원이 있었으나, 선택적 옵션이라 논의가 뒤로 밀리곤 했다. 다중 사용자를 고려했을 때 기능 구현 방식에 분명한 차이가 있었다. 별도의 필드를 생성하고 다양한 기술 고려가 필요했지만, 놓친 부분이 많아 후반부에 많이 수정해야 했다.

    목표가 잘 이루어지지 않은 이유는 무엇인가?

    다중 사용자 지원이 선택적이라 뒤로 미뤄진 점이 크다. 만약 초기부터 이를 목표로 삼았다면 확장성 고려가 더 철저했을 것이고, 중간의 고민과 수정도 줄었을 것이다. 목표가 명확하지 않아 반복적인 수정과 고민이 계속되었다고 생각한다.

    더 나아가서

    마지막 주차인 만큼 배포 서버를 공유하여 여러 사용자가 접속해 테스트를 진행했다. 다른 팀의 서비스를 살펴보니, 다수 사용자가 접속할 때 문제가 발생하는 경우도 있었다. 이 과정에서 사용자가 많아질 때 우리 서비스는 잘 버틸 수 있을까?라는 근본적인 질문에 도달하게 되었다.

    우리 팀은 파일 입출력을 사용 중인데, 다수 사용자가 동시에 읽기/쓰기할 경우 데이터 충돌과 레이스 컨디션이 발생할 수 있다. 또한 파일 입출력은 디스크 I/O에 의존하므로 동시 접근이 많으면 대기 시간과 병목 현상이 발생해 성능이 크게 저하될 가능성이 있다.

    사용자 수가 많아질 때 이런 문제들을 어떻게 해결할지 명확한 답변을 하는 게 중요하다. 특정 기술로 성능을 개선하려는 시도 도 필요하지만, 우리 서비스는 몇 명까지 안정적으로 지원하는지그 한계 내에서 문제점은 무엇인지 구체적으로 정의하고 설명하는 것이 더 현실적이고 좋은 접근이라고 생각이 들었다.

    앞으로는 프로젝트 초기에 목표 사용자 수를 명확히 설정하고, 이를 기준으로 기술 선정과 설계, 성능에 대해서 고민해보고 설명해보고자 한다.

    AI를 잘 활용하고 있는가?


    AI 활용에서의 목표는 무엇인가?

    AI 활용의 목표는 프로젝트 내 각 구현 단계에서 적절하게 AI를 활용하는 것이다. 구체적인 제한을 두지 않은 이유는, 활발한 코드 리뷰 과정을 통해 결과물을 지속적으로 검토하고 개선할 수 있다고 판단했기 때문이다.

    목표가 실제로 잘 이루졌는가?

    팀 내 구현 과정에서 AI는 적절히 잘 활용되었다고 생각한다. 모두가 마지막 주차까지 활발하게 코드 리뷰를 진행했다. 또한 팀원들이 자신의 코드에 대해 명확히 설명하고 이해시키는 모습을 보아, AI를 효과적으로 활용하고 있다고 판단된다.

    다만, 문서 작성에 AI를 활용한 부분에서는 아쉬움이 남았다. 예를 들어 CS 연결고리에 대한 문서를 작성하는 과정에서 AI를 통해 중간에 문서를 다듬었다. 우리가 말하지 못한 단어들을 AI가 추가하고 표현을 다듬으면서, 오히려 우리 고유의 고민이 담긴 언어가 희석된 느낌이었다.

    문득 이런 방식이 어떤 도움이 될까? 라는 생각도 들었다. 좀 더 활발히 토론하며 우리만의 언어로 문서를 작성한다거나, AI가 만든 내용과 우리가 작성한 내용을 비교하며 다시 논의하는 과정이 있었다면 더 도움이 되지 않았을까?

    목표가 잘 이루어지지 않은 이유가 무엇일까?

    당시 느낀 점을 솔직히 표현하지 못한 것이 아쉽다. 모두가 피곤하고 힘든 상황이었지만, 누군가는 그런 분위기를 깨고 의견을 제시해야 팀이 성장할 수 있다. 익숙함과 귀찮음에 젖은 것 같아 후회가 된다.

    더 나아가서

    AI의 발전이 본질적인 고민과 탐구에 집중하는 시간이 줄어들게 하고, 흐름을 방해하는 측면이 있지 않은가 하는 생각이 든다. AI 없이 직접 고민하고 부딪히면서 얻을 수 있는 좋은 부분들을 놓치고 있지는 않은가?

    물론 AI는 팀 대화나 논의 과정을 정리하고 구조화하는 데 유용하다. 하지만 그렇게 정리된 내용을 다시 토론해보거나, AI가 제안하는 새로운 아이디어를 충분히 활용하지 못한 것 같다.

    다양한 활용 방법이 있음에도 불구하고, 중간 단계에서 멈춰버리고 AI를 제대로 활용하지 못하고 있다는 생각이 든다. 도구를 쓰는 것에 그치지 않고, 그것을 어떻게 더 깊이 있게 활용할 수 있을지 고민이 필요한 시점인 것 같다.

    다음 주에 시도해볼 내용


    이번 주를 정리해보자면?

    팀원 모두가 열심히 참여해 많은 기능을 구현했고, 다양한 의견이 활발히 오갔다. 특히 처음에는 모두가 NestJS에 익숙하지 않아 어려움을 겪었지만, 점차 잘 활용하며 프로젝트에 대한 이해도도 높아졌다고 느낀다. 다음 리팩토링 기간에는 높아진 이해도를 바탕으로 전체적으로 검토하고, 아쉬웠던 점들을 개선하는 데 힘쓰고자한다.

    다음 주를 위해서 준비한 내용이 있어?

    주말 동안, 요구사항의 실제 동작 방식을 더 깊이 공부하고자 한다. 비슷한 구현을 하기 위해서는 동작 원리를 명확히 알아야 비교와 선택이 가능하다고 생각한다. 지금까지는 개별 단위에 대해 필요한 내용만 부분적으로 살펴보았다면, 이번에는 전체적인 흐름과 내용을 연결하여 큰 그림을 그려보며 동작 방식을 체계적으로 이해하려 한다.

    다음 주에 새롭게 시도해 볼 내용이 있어?

    다이어그램과 사용자 시나리오를 적극 활용할 계획이다.

    다이어그램을 통해 실제 모듈들이 어떤 관계를 맺고 흐름이 어떻게 진행되는지 시각적으로 표현하려 한다. 지금까지 이 부분이 부족해 흐름을 이해하는 데 시간이 더 걸렸다고 느꼈다. 다른 팀들이 다이어그램을 매우 효과적으로 활용하는 모습을 보며 참고하여 적용해보려 한다.

    또한, 사용자 시나리오는 처음 작성한 후 다시 검토한 적이 거의 없다고 느꼈다. 작성한 시나리오를 실제로 따라가며 전체 흐름을 점검하고, 그 과정에서 발생할 수 있는 오류와 문제점을 찾아보고자 한다.

    회고를 마치며


    행운이자 기회

    부족한 부분들을 채울 수 있는 팀원들을 만나서 정말 행운이라고 생각한다. 늘 평균은 되겠지 라고 생각하던 나에게 부족한 점을 많이 깨닫게 해주었고, 팀원들을 통해 이를 보충할 수 있었다. 깊이와 방법에서 큰 차이를 느꼈고 더 많은 학습이 필요함을 실감했다. 하나씩 익혀가며 그들을 쫓아가고자 한다.

    더 잘할 수 있는 부분

    그림을 그려보자. 아직 머릿속으로만 이해하기는 어렵다. 직접 하나씩 그려가며 어느 부분에서 막히는지 확인하고, 부족한 점을 보완해 나가자. 연결 다리를 하나씩 이어가며 내 머릿속에 하나의 지도를 완성하는 것이다.