Week 08: 탐험 준비
웹서버와 Proxy 만들기, 네트워크 정리, 협업 방식 바꾸기
핵심 역량 목표
정글 과정을 통해 길러야 할 10가지 핵심 역량(문제해결, 설계, 구현, 품질, 유지보수, 협업, 태도, 비즈니스 이해, AI 활용, 학습 민첩성)을 기준으로 이번 주의 목표를 설정하고, 실제 과정과 결과를 돌아봅니다.
목표 1. 기초 설명보다 관심 있는 주제를 깊게 파고 공유하기
관련 역량: 학습 민첩성, 문제해결, 협업
계획
지난주 회고에서 기본 개념 정리보다 내가 더 깊게 파고든 내용이나 관점을 공유하는 게 더 도움이 될 수 있다는 의견이 있었다.
AI가 기본 설명을 잘 해주는 만큼 사람이 공유할 때는 AI로 닿기 어려운 깊이나 관점이 더 가치 있다는 이야기였다.
이 의견에 공감해서, 이번 주에는 과제 범위를 조금 벗어나더라도 관심이 생긴 부분을 파보고 공유해 보려 한다.
과정
과제에서 요구하는 네트워크 프로그래밍만 공부하기보다, TCP까지 이어지는 전체 네트워크 흐름을 정리해 보았다.
네트워크 넓게 알아보기 문서로 정리했다.
이전부터 머릿속에만 있던 네트워크 흐름을 인프라, OS, 유저 레벨 등 여러 관점에서 다시 묶어 보았다.
다만 예상보다 오래 걸려 월요일 아침까지 이어졌고, 그만큼 본 과제에 쓰는 시간은 줄어들었다.
결과 및 피드백
관심 있는 주제를 공유한다는 목표는 비교적 잘 달성했다.
개별 개념만 보는 것이 아니라 전체 네트워크 흐름을 그려보는 감각도 조금 나아진 것 같다. 팀원과 같은 반 사람들에게 공유하며 설명할 기회도 있었다.
다만 깊게 파는 데 시간을 많이 쓴 만큼 과제 진행에는 약간 소홀해진 면이 있었다.
과제의 하루 최소 목표를 먼저 잡고, 남는 시간에 다른 작업을 하는 편이 더 나았을 것 같다.
목표 2. 다른 사람이 주도하는 흐름을 따라가 보기
관련 역량: 협업, 태도, 학습 민첩성
계획
최근에 팀 프로젝트에서 리드하는 걸 많이 했는데, 리드하는 걸 좋아하는 것도 아니고, 이전 팀원들에게서 힘들어 보인다는 피드백을 받기도 했다.
매번 같은 방식으로만 협업하면 다른 사람의 방식을 배울 기회도 줄어드는 것 같아, 이번 주에는 팀원이 주도하는 흐름을 따라가 보려 한다.
과정
이번 주에는 먼저 방향을 제시하기보다, 팀원의 의견이 나오면 가능한 한 그 흐름을 따라가 보려고 했다.
기술적인 부분에서는 내가 어느 정도 의견을 내고 리드한 순간도 있었지만, 진행 방식이나 팀 분위기에서는 이전처럼 전부 끌고 가려 하지 않았다.
결과 및 피드백
팀 활동의 결과는 팀원 성향에 따라 달라지는 부분이 커서, 이번 방식만 따로 평가하기는 어려운 것 같다.
결과와 별개로, 모든 흐름을 직접 끌고 가려고 하지 않으니 확실히 마음이 편했다. 스트레스나 정신적 피로도 확실히 덜했다. 개인적으로 이런 부담은 당시보다 역체감으로 인식하기 쉬운 것 같다.
그 외 작업
핵심 역량 목표와 직접 연결되지는 않지만, 이번 주에 따로 진행했거나 정리할 만한 활동을 작성합니다.
협업 자료 공유
팀원들에게 앞서 정리했던 네트워크 넓게 알아보기 문서와 다음 자료를 Gist로 공유했다.
강요하지 않고, 내가 찾아보며 도움이 됐던 자료를 가볍게 공유하는 정도로 했다.
운동
화요일과 수요일에는 바빠서 하지 못했고, 목요일에는 로잉머신 대신 반 사람들 일부와 러닝을 했는데 처음이여서 3km 조금 넘게 뛰다 막바지 쯤에서 걸어서 돌아왔다.
그 외의 날에는 계획대로 로잉머신을 했다.
체성분 변화
(앞으로는 주 단위로 찍을듯 하다)
3월 8일
- 체중: 62.3kg
- 골격근량: 25.7kg
- 체지방율: 25.3%
4월 23일
- 체중: 62.8kg (+0.5kg)
- 골격근량: 26.7kg (+1.0kg)
- 체지방율: 23.1% (-2.2%)
Jungle Bell 작업
PostHog 이벤트 정리, 트레이 메뉴의 피드백 항목과 최소 폭 개선, 릴리스용 skill 정리 등을 진행했다.
WIL (What I Learned)
04/21 이동석 코치님 커피챗
팀원 성향을 파악하는 방법과 협업에서 개인의 성향을 어떻게 바라봐야 하는지 이야기했다.
공유할 만한 핵심 내용만 간단히 남긴다.
대화 배경
지난주 수요코딩회 회고에서 몇몇 팀원이 서로의 성향과 특징을 자세히 보고 있다는 점이 인상 깊었다.
나는 그런 관점으로 사람을 의식해서 본 적이 거의 없었다. 팀 프로젝트를 하려면 이런 능력도 필요하다는 생각이 들어, 이 감각을 어떻게 키울 수 있을지 코치님께 이야기해 봤다.
핵심 정리
- 사람 이해는 경험으로 쌓는 영역이다
- 팀원 성향이나 분위기를 읽는 능력에는 명확한 방법론이 없다.
- 사람을 많이 만나고 대화하면서 경험으로 쌓아야 하는 영역에 가깝다.
- 협업 규모가 커질수록 조율이 중요해진다
- 작은 팀에서는 기능 완성과 개인 간의 관계가 중심이지만, 규모가 커질수록 개발팀, QA, 운영팀처럼 조직 간 이해관계가 생긴다.
- 이때는 코드만 보는 능력보다 전체 상황을 보고 조율하는 정무적 감각이 더 중요해진다.
- 강점을 중심으로 성장하는 선택지도 있다
- 깊게 파고들고 문제에 집중하는 능력은 개발자로서 큰 강점일 수 있다.
- 약점을 보완할지, 강점을 극대화할지는 스스로 생각해야 한다.
- 개인의 성향은 팀 조합으로 보완될 수 있다
- 어떤 사람이 강점이 뚜렷해도, 주변에 그 성향을 이해하고 보완해 주는 사람이 있으면 팀이 잘 굴러갈 수 있다.
- 반대로 비슷한 성향의 사람만 모이거나 서로를 이해하지 못하면 협업이 어려워질 수 있다.
- 피드백은 먼저 요청하기
- 정글처럼 팀이 자주 바뀌는 환경에서는 다양한 사람과 일하고 피드백을 받을 기회가 많다.
- 회고 때만 기다리지 말고, 평소에도 먼저 물어보는 편이 좋다.
느낀 점
정글 안에서 협업에 관한 피드백과 경험을 더 많이 쌓아야겠다.
기술적인 성향은 강점으로 가져가되, 다른 성향의 사람과 무리 없이 일할 수 있는 정도의 감각은 의식적으로 키워야겠다.
AI 없이 직접 타이핑하는 연습이 필요하다
이번 주에는 월요일까지 공부에 시간을 많이 써서 실제 구현 시간은 월요일 저녁과 화요일 정도밖에 없었다. 그래서 구현 과정에서 AI를 꽤 많이 썼다.
AI가 만든 코드를 수정하거나 직접 이어서 작성하다 보니, 손으로 익혀야 할 감각이 부족하다는 것을 느꼈다. 예를 들어 버퍼와 길이를 함께 넘기거나, 문자열과 길이를 같이 다루는 C의 패턴을 직접 작성하려고 할 때 꽤 막혔다.
이런 반복적인 패턴을 몸에 익히는 시간이 줄어들면, 나중에 코드를 직접 수정하거나 관리하기 어려워질 수 있겠다고 느꼈다.
회사에서는 이미 익숙한 기술과 언어 위에서 AI를 썼기 때문에 수정이 가능했지만, 이번처럼 언어와 기술이 모두 낯선 상황에서는 AI가 만든 코드를 따라가는 것부터 어려워질 수 있다.
Graphviz DOT 사용해 보기
이번 수요코딩회에서 Mermaid를 대신할 수 있는 Graphviz DOT를 시도해 봤다.
CmdProcessor 전체 아키텍처와 요청 흐름에 들어간 다이어그램은 모두 DOT으로 만들었다.
Mermaid는 간단한 다이어그램을 빠르게 그리기에는 좋지만, 레이아웃을 원하는 방식으로 제어하기가 답답했다.
DOT은 문법이 더 복잡하지만 노드 배치와 흐름이 훨씬 직관적으로 나왔다.
처음 결과물이 좋게 생성되지는 않지만, 반복 구현 자체는 AI가 해주고, 결과물이 SVG라 AI가 읽고 개선할 수 있는 부분도 좋아서 앞으로 자주 쓸 것 같다.
회고
수요코딩회 후기
수요코딩회는 할수록 정답이 없다고 느낀다. 과제와 팀원이 매번 달라지고, 팀원들의 역량과 협업 방식도 계속 달라진다.
이번에는 함수 포인터를 인터페이스처럼 사용해 작업 단위를 나누었고, 덕분에 사소한 파일 하나를 제외하면 충돌이 거의 나지 않았다. 이번 과제와 팀 상황에는 꽤 잘 맞았다.
다만 구현에 AI를 많이 썼고, 기존 코드베이스도 복잡해서 내부를 깊게 뜯어보지는 못했다. 그래서 동작 이해도는 낮은 편이었다.
코어타임 / 협업 회고
이번 주 코어타임은 따로 할 일을 정하지 않고, 각자 한 일을 공유하는 정도로 진행했다.
학습이나 과제 이해를 깊게 만드는 시간으로는 조금 약했지만, 이번 팀 분위기에는 느슨하게 맞춰 가는 방식이 성향에 잘 맞았던 것 같다.
핵심 역량 목표 회고
잘 된 점
이번 주에 세운 목표는 전반적으로 계획대로 진행됐다.
네트워크를 전체 흐름으로 다시 정리하면서, 내가 설명하고 싶은 관점도 어느 정도 잡을 수 있었다.
다른 사람이 주도하는 흐름을 따라가 보는 것도 생각보다 의미가 있었다. 이전에는 내가 리드해야 한다는 부담이 있었는데, 이번에는 팀 분위기에 맞춰 조금 느슨하게 움직이니 훨씬 편했다.
다음 주차에 시도할 것
다음 주부터는 Pintos 주차가 시작된다. 4주 동안 Pintos 전체 과정을 끝까지 따라가는 것이 큰 목표다.
아마 이번에는 다른 공부나 별도 정리 작업은 최대한 줄이고, Pintos 코드 작성과 과제 진행에 집중하려고 한다.
AI는 코드 에이전트처럼 쓰기보다는 검색 기능이나 구글링(개념, 예시 코드 확인)을 대체하는 챗봇 정도로 제한해서 사용할 생각이다.
협업 면에서는 팀원의 흐름을 따라가고 싶지만, GitHub 기반 협업은 조금 더 적극적으로 제안해 보고 싶다. 다 같이 PR, 리뷰, 이슈 기반으로 협업하는 경험을 더 해 보면 좋을 것 같다.
Jungle Bell도 같은 반 사용자가 아닌 사용자들도 모아보려고 한다. 또, 기여자도 모아보고 싶은데, 메인 기능은 아니지만 설치 편의성이나, 오픈소스 기여 방법 등으로 여러 방식으로 편의/홍보 포인트를 찾고 있다.
다만 핵심 목표는 아니므로 Pintos에 지장이 가지 않는 선에서만 진행할 예정이다.