Search

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

생성일
2025/10/26
URL
9주차가 어느덧 끝나가고 있습니다.
다음 주면 벌써 학습 스프린트의 마지막이라니… 시간이 참 빠른 것 같네요.
학습 스프린트 후반부가 되니 어느 순간 기존에 하던 방식을 그대로 반복하고 있는 제 자신을 발견하곤 했는데,
이번 주에는 의도적으로 그런 습관에서 벗어나서 많은 변화를 주려 노력했습니다!
그 덕분에 좋은 인사이트를 많이 얻을 수 있었고, 만족스러운 주간 회고를 작성할 수 있었습니다.
적절한 시기에 좋은 인사이트를 나눠주신 제이님께 감사드립니다!

 무엇을 배웠나!

한정된 자원에 배포를 해보는 경험

이번 주에는 GCP e2-micro 프리티어 환경에서 서비스를 배포해보며 제한된 자원 속에서 서버를 어떻게 운영할지 전략을 고민해보았습니다. e2-micro 인스턴스는 vCPU 2개와 메모리 1GB라는 제약이 있었기 때문에 자원이 어떻게 사용되고 관리되고 있는지 이해하며 최적화하는 과정이 필요했습니다.
먼저 빌드를 클라우드가 아닌 Github Actions Runner에서 수행하고, 빌드 결과물만 서버로 전송하도록 설계했습니다. 클라우드 환경에서 빌드까지 진행할 경우 Out of memory가 발생할 수 있다고 생각했기 때문입니다. 또한 각 프로세스(Nginx, PM2, MySQL)의 메모리 점유율을 bpytop으로 직접 모니터링했습니다.
실험 결과 MySQL(408MB), Node.js(96MB), PM2(65MB), Nginx(12MB) 순으로 메모리를 사용하는 것을 확인했습니다. 이를 통해 모든 서비스를 한 인스턴스에 올릴 경우 메모리의 한계(1GB)를 초과하게 되어, 스왑 메모리 사용으로 인한 성능 저하가 발생할 수도 있다고 생각했습니다.
따라서 MySQL은 로컬 가상머신으로 분리하고, GCP 인스턴스에서는 PM2Nginx만 실행하도록 구조를 변경했습니다. 가상머신과 클라우드 간 통신을 위해 브리지 네트워크를 설정하고, 포트 포워딩을 적용해보면서 네트워크와 운영체제를 자연스럽게 학습하게 되었습니다.
이번 경험을 통해 코드뿐만 아니라, 서비스가 운영되는 환경 전체를 이해하는 것이 백엔드 개발자의 핵심 역량임을 느꼈습니다. 제한된 환경이었지만, 오히려 그 제약 덕분에 시스템 자원의 중요성을 학습할 수 있었던 한 주였습니다.

혼자만의 생각에 갇히지 않는 법

이번 주 화요일과 목요일에는 J003 강동훈님의 소개로 J086 김훈기님과 함께 인터벌 스프린트(스크럼)을 진행했습니다. 온라인 환경에서는 집중력을 오래 유지하기 어려웠는데, 2시간마다 만나서 현재 진행 상황과 다음 목표를 공유하며 몰입을 반복하는 방식이 큰 도움이 되었습니다.
특히 구현 과정에서 서로의 생각을 바로 공유하고 피드백을 주고받을 수 있었던 점이 가장 좋았습니다. 예를 들어, 컴포넌트 간 상태 전달 문제를 해결하기 위해 저는 Context API 활용을 고민했지만, 훈기님과 동훈님께서는 Context API는 전역으로 상태를 관리하는 느낌이 강해 오히려 URL 쿼리 파라미터를 통해 상태를 관리해보면 어떠겠냐고 제안해주셨습니다. 그와 함께 URL 쿼리 파라미터를 사용하게 됐을 경우 이점에 대해서 설명을 해주셨는데, ‘사용자의 현재 상태를 URL에 반영함으로써 새로고침이나 공유 시에도 동일한 상태를 유지할 수 있다’는 점이 가장 기억에 남았습니다.
그 덕분에 한 가지 접근 방식에만 머무르지 않고, 더 나은 방법을 함께 탐색할 수 있었습니다. 혼자 개발했다면 다른 선택지를 깊이 고민하지 못했을 텐데, 동료들과의 대화를 통해 새로운 관점을 배우고 기술적 시야를 넓힐 수 있었습니다.

 무엇이 아쉬웠나!

하루에 3가지 중요한 문제만 해결하기

지난 주 블로그 회고 글을 작성하면서 기존에 계획했던 Task 대비 실제 실제로 완수한 학습(구현)이 많지 않다는 점을 이야기했었는데요. 그 원인을 곰곰이 생각해보니, 하루 동안 너무 많은 문제를 해결하려다 보니 집중력이 분산되고 우선순위가 흐려졌던 것이 문제였습니다.
그래서 이번 주부터는 ‘하루에 반드시 해결해야 할 3가지 핵심 문제만 정하고 집중하기’ 라는 새로운 원칙을 세웠습니다. 예를 들어, 이번 주에는 ‘검색 화면’, ‘배포’ ‘테스트 코드’를 세 가지 주요 목표를 삼았고, 주요 목표를 해결하기 위해 각 요일 별로 하위 태스크를 분리하여 계획을 세웠습니다.
이렇게 큰 목표를 하루 단위의 구체적인 실행 계획으로 나누니 우선순위가 확실해 몰입하기가 좋았고, 문제를 해결할 때마다 성취감이 느껴져서 좋았던 것 같습니다. 하지만, 아쉬웠던 점은 문제를 해결하기 위해 계획하지 못했던 학습을 병행해야 하는 순간이 많았다는 점입니다. 이러한 학습은 분명 도움이 되었지만, 계획에 없던 시간이 소요되면서 당초 목표 일정이 밀리기도 했습니다.
그래서 다음 주에는 과감하게 하루에 2가지 중요한 문제만 해결해보는 것으로 목표를 조정해볼까 합니다! 돌이켜보면 하루에 무언가를 많이 했을 때보다는 어떤 문제의 원리를 이해하고 스스로 납득하면서 문제를 해결한 경험이 훨씬 오래 기억에 남았던 것 같습니다.

내 사고 과정을 AI에게 맡긴 점

종종 PR 문서 제출 마감 시간에 쫓겨서 혹은 피곤하다는 이유로 하루 동안 고민했던 것들을 AI에게 대신 정리하도록 맡겼던 적이 있었습니다. 문서를 작성하다가 그 다음 문장을 어떻게 작성해야 할지 생각이 잘 나지 않을 때, AI에게 이어서 작성하라고 부탁하곤 했습니다. (부끄럽네요 )
하지만 문장을 작성하다가 막히는 부분은 학습이 부족하다는 중요한 신호임에도 불구하고, 당장의 문서 작성을 위해 AI에 의존하다 보니 스스로 사고를 정리하고 이해하는 기회를 놓치게 되었습니다.
앞으로는 PR 문서를 작성할 때 AI 사용을 지양하고, 스스로 사고 과정을 글로 잘 표현할 수 있도록 충분한 시간을 확보하고, 스스로 사고하여 글을 완성한 뒤에 AI는 보조적으로 글을 다듬는 용도로 사용해야겠다고 생각했습니다.

 다음주 목표는!

다음 주는 양보다 질에 집중해, 각 문제를 더 깊이 파고들며 해결 과정을 정리하고 공유하는 데 더 많은 시간을 투자하려 합니다. 그리고 J073 김지효님께서 어제 슬랙 채널에 공유해주신 AI 활용 팁을 참고해서 학습 → 구현 → 정리 단계에서 AI를 어떻게 활용할 것인지 규칙을 정해보았습니다!
(너무 좋은 인사이트여서 도움이 많이 됐습니다. 공유해주셔서 감사합니다 지효님!!)
1.
학습 단계(Learning): 혼자만의 생각에 갇히지 않도록 AI와 함께 문제 해결을 위한 학습을 한다.
2.
구현 단계(Doing): ‘이 정도 학습이면 구현을 해볼 수 있겠다’ 라는 생각이 들 때 AI의 도움을 받지 않고 구현을 스스로 해본다.
3.
정리 단계(Review): PR 문서에 문제를 해결하기 위해 어떤 학습을 진행했고, 어떻게 해결했는지 그 과정을 AI의 도움 없이 나만의 언어로 작성해본다.
위 세 단계를 제대로 할 수 있다면 네부캠에서 강조하는 ‘Learning By Doing’과 ‘회고’ 문화를 잘 실천할 수 있지 않을까 생각이 드네요. (멤버십 9주차나 지나서 이제야 이걸 깨닫다니.. )

마치며

오랜만에 스스로 만족스러운 주간 회고를 작성한 것 같습니다.
그만큼 이번 주에 배운 점도 많았고 얻은 것도 많았던 한 주를 보낸게 아닌가 생각이 드네요.
이제 점점 어떤 선택을 할 때 저만의 기준을 하나씩 세울 수 있게 된 것 같습니다.
한 주를 어떻게 보낼지, 오늘은 어떤 문제를 해결할 것인지, AI를 어떻게 활용할 것인지 등을 스스로 계획하고 판단할 수 있게 되면서 하루하루를 더 주도적으로 보낼 수 있었습니다.
다음 주면 벌써 마지막 스프린트 기간인데, 이번 주에 얻었던 인사이트들을 최대한 활용해 하루하루를 의미 있게 보내고자 합니다!