회고를 시작하며
회고를 시작하며
우아한테크코스, 그리고 회고
우아한테크코스(우테코)의 7기 교육생이 된지 어느덧 한 달이 흘렀다. 정신 없이 미션을 수행하고 다른 교육생들과 교류하며 적응하느라 바쁜 시간을 보냈다.
새로운 사람들과 규칙적인 루틴으로 학습하니 에너지 소모가 꽤 크지만, 혼자 학습하던 때보다 훨씬 재미있고 보람도 크다.
특히 우테코의 강점은 사람들과 함께 새로운 시도를 할 수 있다는 점이라고 생각하는데, 나에게는 회고글을 블로그에 작성하는 것이 그 첫 발디딤이 되었다.
사실 우테코를 시작한 이후로 짧게나마 데일리 회고를 노션에 작성하고 있었다. 하지만 3주쯤 지나자 글이 점점 단순해지고, 아예 작성을 건너뛰는 일도 생겼다.
내가 회고를 시작한 이유는 우테코 교육 기간 동안 내가 목표로 하는 방향으로 잘 나아가고 있는지 되돌아보고, 하루하루를 보내느라 놓치기 쉬운 전반적인 생활 흐름을 정리하기 위해서이다. 그러나 지금처럼 노션에 짤막하게 끄적이는 것만로는 스스로를 점검하기에 부족하다고 느꼈고, 따라서 새로운 방식이 필요하다고 생각했다.
회고 스터디
서론이 길었지만, 위와 같은 이유로 주간 회고글을 블로그에 올리는 스터디에 들어왔다!!
우테코에서 가까워진 크루(a.k.a 스터디장)의 영업으로, 매주 블로그에 회고글을 작성하고 피드백과 감상을 주고 받는 스터디에 합류하게 되었다.
회고글 작성에 강제성은 없지만, 그룹에 소속된 것만으로 좋은 습관이 생길 수 있을 것이라 생각했다. 또한 다른 스터디원의 회고를 읽으며 함께 고민을 해결하고 응원하는 긍정적인 상호작용도 얻을 수 있을 거라 생각했다.
무엇보다 스터디에 들어오면서 블로그에 글을 올리기 시작한 것 만으로 벌써 좋은 영향을 받고 있다.
페어 프로그래밍 - 페어와 함께 좌충우돌
새로운 페어
우테코의 level1 미션은 2~3인 1조로 과제를 수행하는 페어 프로그래밍으로 진행된다. 이미 3주 동안 2명의 페어와 함께 했고, 이번 ‘점심 뭐 먹지’ 미션에서 새로운 페어를 만나게 되었다.
새로운 페어는 데일리 미팅에서 같은 조에 속해 이미 이야기를 많이 나눈 크루였다. 우리는 페어 프로그래밍을 시작하자마자 말을 놓고 자연스럽게 대화했다. 이번 페어가 지금까지 만난 페어 중에 가장 수다를 많이 떤 페어가 아닐까 한다. 하지만 서로의 코딩 스타일이나 페어 프로그래밍 방식에 대해서는 잘 알지 못했기 때문에 이에 관해서만 간단히 이야기를 나누고 프로그래밍을 시작했다.
지금 생각하면, 교류가 많았던 페어라도 금지 3원칙을(페어 프로그래밍 중 사과 금지, 질문 망설이기 금지, 자책 금지) 제창하고 시작했으면 어땠을까 하는 아쉬움이 있다. 원래 이번 페어 프로그래밍부터 새로운 페어와 금지 3원칙을 합의하고 가려고 했었다. 그러나 아이스 브레이킹이 필요없을 만큼 친근한 크루와 페어가 되었기 때문에 이를 생략했다.
하지만 의외로 우리는 프로그래밍을 하면서 느린 속도에 대해 사과하거나 자신의 아이디어나 코드에 자신감 없는 모습을 보였다. 서로를 어려워 하는 페어와 같은 태도를 보인 것이다. (친해졌다 생각한 건 사실 나 뿐..?)
페어 프로그래밍이 끝나고 이 점이 아쉽게 느껴졌다. 페어와 함께 하면서 나는 답답함을 느낀 적이 전혀 없었기 때문이다. 오히려 페어가 매번 새로운 아이디어를 제시한 덕에 무사히 프로그래밍을 마쳤다고 생각했다. 따라서 상대가 누구든 다음 페어와는 금지 3원칙을 제창하기로 결심하였다. 하지만 더한 난관이 있었으니..
트러블슈팅과 따뜻한 크루들
이번 페어 프로그래밍에서 가장 기억에 남는 순간을 꼽으라면, 페어와 한 시간이 넘도록 매달렸던 오류 해결 경험일 것이다.
오류가 발생한 위치는 사용자가 음식점을 추가하는 기능을 수행하는 모달 형태의 form이었다. form의 일부 input 요소들에는 required 속성이 부여되어 있었다. 이에 따라 required인 입력란을 비어있으면 form을 제출할 수 없고 모달도 닫히지 않아야 한다. 그러나 우리가 구현한 form은 required 값을 채우지 않았음에도 모달이 닫히는 기이한 현상이 발생했다.
모달에 추가된 이벤트 리스너를 지워보거나 form reset 로직을 없애는 등 여러 방식을 시도했지만 문제를 해결할 수 없었다. 1시간이 넘게 씨름하고 있을 때, 같은 데일리 조의 크루가 다가와 함께 문제를 고민해주기 시작했다. 이렇게 한 명, 두 명씩 인원이 늘어나더니 어느덧 대략 7명의 크루들이 모여들어 오류 해결에 합류하게 되었다. 크루들은 유사한 오류 해결 경험과 시도했던 여러 방법을 공유해주었다. 아예 우리 페어의 코드를 직접 수정해보면서 해결을 시도하는 크루도 있었다.
함께 머리를 맞댄 끝에, 우리는 form 제출 버튼에 모달을 닫는 이벤트를 추가한 것이 원인이었음을 알게 되었다. 사실 정상적인 form이라면 제출 버튼에 굳이 닫기 이벤트를 추가하지 않아도 모달이 닫힌다. 그러나 우리는 이를 인지하지 못했기에 깨닫기까지 시간이 걸렸다.
만일 크루들이 발 벗고 나서서 도와주지 않았다면 페어와 더 많은 시간을 소모하였을지도 모른다는 무서운 상상이 들었다. 이것이 바로 우테코에서 지향하는 함께 자라기..? 라는 생각과 함께, 자신 일 처럼 나서준 크루들에게 고마움이 들었다.
한 주의 KPT
블로그에 회고글을 작성하기 시작하면서 한 주를 돌아본 후 KPT 형식으로 회고를 마무리하는 방식을 도입했다. 회고글이 나의 우테코 생활의 나침반이 되도록 만드는 것이 목표이다.
Keep
- 페어 프로그래밍에서 중간 회고 하기
이번 페어 프로그래밍에서 가장 의미 있는 시도라고 생각한다. 시간상 모든 기간동안 중간 회고를 하지는 못했지만 중간 회고를 통해 페어 프로그래밍의 현황을 정리하고 피드백이 필요한 부분을 바로 반영할 수 있었다. 따라서 중간 회고를 앞으로도 가져갈 Keep 항목으로 선정했다.
- 정규 학습 이외의 강연 적극 참석 하기
이번 주말에는 준이 주최한 AI Meet up에 참석했었다. 나의 경우, 챗지피티를 사용하는 수준 정도로만 AI에 대해 알고 있었기 때문에 참여 희망자 모집을 시작했을때 신청을 망설였다.
혹여, 나의 지식 수준보다 높은 내용으로 진행되어 이해하지 못할 가능성을 우려했기 때문이다. 그러나 우연히 다른 크루와 대화하며 안면 있는 여러 분들이 밋업에 참여할 예정임을 알게 되었고 나 또한 용기를 내어 신청하게 되었다.
결과적으로 후회 없는 선택이었다. 준을 포함하여 현직자 세 분이 발표하셨는데, AI의 활용 방법에 초점을 두셨기 때문에 AI 대한 깊은 배경지식이 없더라도 충분히 이해할 수 있었다. 이번에는 다른 크루들 덕분에 결정을 내렸지만, 다음에는 교육 외적인 지식과 경험을 얻게될 기회가 있으면 적극적으로 참여해도 좋을 것 같다는 생각이 들었다.
Problem
- 페어 프로그래밍에서 편안하게 의견을 교환할 환경을 사전에 조성하지 못한 점
이번 주에 가장 아쉬웠던 점은 페어 프로그래밍에서 페어가 사과하거나 의견을 말하는데 주저했던 점이다. 페어 프로그래밍을 시작하기 전에 사과 금지, 질문 주저하기 금지, 자책하기 금지를 합의했더라면 페어가 더 편안하게 의견을 표현할 수 있었을 거란 아쉬움이 남았다.
나 또한 낯을 많이 가리는 성격이라, 처음 만난 페어와 프로그래밍을 할 때 종종 ‘내가 제시하는 의견이 쓸모 없으면 어쩌지?’, ‘페어는 빠르게 미션을 수행하고 싶은데 내가 스몰 토크를 시도하면 잡담처럼 느껴질까?’와 같은 걱정을 많이했다. 나의 이러한 소심함은 상대와의 친밀도에 따라 달라지기 때문에, 페어도 비슷할 것이라 무의식적으로 생각했다. 그러나 페어는 나와 어느 정도 안면이 있는 사이였음에도 의견을 표현할 때 조심스러운 모습을 보였다.
Try
- 페어와 프로그래밍 전에 금지 3원칙 합의하기
다음에 시도해 볼 것은 페어와의 친분에 관계 없이 프로그래밍 전에 사과 금지, 질문 주저하기 금지, 자책하기 금지를 합의하는 것이다. 이를 토대로 페어가 최대한 의견을 편안하게 말할 수 있는 환경을 만들고 싶다.
또한 상대가 나와 비슷한 성향처럼 보인다고 하여, 그 사람의 생각이나 행동을 무의식적으로 예측하려는 태도를 버리고, 세심하게 대하는 자세가 필요하다고 느꼈다.