두 번째 미션, 출석
Level1의 두 번째 미션은 출석이었다.
출석은 우아한 테크코스 최종 코딩테스트의 문제였고, 두 번째 미션에서 다시 한번 구현하게 되었다.
우테코 미션에서는 총 2가지의 step을 거친다
step1. 페어와 함께 구현하기 + 구현이 종료되면 리뷰어의 피드백을 토대로 리팩토링 진행하기
step2: 혼자서 구현하기
우선 step1에서는 수업 때 배운 TDD를 적용해보기로 결정했다. 다만, 페어와 나 둘 다 TDD를 처음 사용해 봤고 그 과정에서 많은 어려움이 있었다.
정말 기초적인 기능명세서만 작성한 후, 바로 코드를 작성했다. 그 과정에서 설계가 수시로 바꼈고, 리팩토링 하는데 시간을 많이 사용한 것 같다. TDD의 모호성 또한 많이 느꼈다. 예를 들어, 객체 생성에 대한 테스트 코드 또한 작성해야 할까? 와 같은 의문점이 생기기도 했다.
이번 미션에서 만난 페어는 레오였고, 구현 능력이 엄청 좋았다. 내가 개떡같이 설명해도 찰떡같이 알아줬다. 의도를 알아채는 능력이 엄청 뛰어나서 부러웠다.
초반에는 레오와 열정적으로 토론하며 효율성에 대해 논의하기도 했다. 좋지 않은 의견을 말할 때는 레오가 ~~~ 한 부분에서 별로일 것 같다고 명확하게 말해줬고, 코드를 효율적으로 수정할 수 있을 때에는 적극적으로 내 의견을 반영해 줬다. 이런 부분에서 레오의 의사소통 능력에 대해 속으로 감탄하기도 했다.
레오는 내 모든 의견에 대해 경청하고, 장단점에 대해 같이 생각해줬다. 그 과정에서 ~~ 한 단점이 있다면 나에게 설명해 주며 다른 방법을 유도했는데, 이 과정이 매우 합리적이었다.
나는 내가 맞다고 생각하면 강하게 주장하는 경향이 있다. 물론 막무가내로 밀어붙이지는 않고 근거를 대면서 주장한다. 하지만 상대방의 논리가 이해가 되지 않는다면, 내 의견을 다시 주장하는 편인데 레오의 논리는 이해가 안 되는 부분이 하나도 없었다. 상대방을 설득하며 의견 조율을 하는 능력... 대단하다고 생각했다. 페어 프로그래밍을 진행하면서 나름 친해졌다고 생각하는데, 의사소통 노하우 좀 알려달라고 해야겠다ㅎ
사실 이번 출석 미션은 나에게 있어 많이 어려웠다. 초반에 TDD를 도입하다가 시간이 너무 오래 걸려, 미션 중반쯤에 그냥 일반 구현으로 바꿔서 진행했다. 호다닥 구현을 하나씩 해나가고 있었지만, 코드는 점점 복잡해졌고 어느 순간부터 이해가 안 되기 시작했다. 페어프로그래밍은 훈수 두는 사람, 구현하는 사람으로 나눠져 있다. 레오가 구현을 할 때 나는 옆에서 방향을 알려줘야 하는데, 이해가 잘 되지 않아 딱히 말을 못 하고 있었다. 또, 내가 구현할 때는 또 이해가 되지 않아 레오에게 책임을 떠넘기기도 했다. 이런 상황이 반복되었고, 결국 레오에게 내 책임을 전부 떠넘기는 상황이 발생했다.
많이 미안했다. 그래서 쉬는게 맞겠다고 생각해 다음 날 다시 하기로 했다. 대신, 나는 집에서 코드를 살펴보며 개선사항을 알아오겠다고 말했다. 이후에 코드를 살펴보며 왜 코드가 헷갈렸는지에 대한 이유를 찾아보기 시작했다. 가장 큰 원인은 클래스명이었고, 이를 수정하는 동시에 다른 개선사항도 노트에 적었다.
다음 날 레오에게 내 의견을 전달했고, 적극적으로 반영해 줬다. 그 덕에 이해하기 훨씬 편해졌다. 하지만 이후 구현에서 또 어려움을 느꼈고, 책임을 전부 떠넘기는 상황은 다시 발생했다. 그 상황에서 레오에게 계속해서 미안함을 느꼈고 결국 끝까지 책임을 떠넘기며 페어 프로그래밍을 종료했다. 이런 상황에 대해 레오에게 미안하다고 말했지만, 레오는 전혀 신경 쓰지 않았다. 같이 효율성에 대해 토론하며 코드를 개선해 나가는 게 너무 재밌었다고 해줬다. 뭘 미안하냐고 하며 신경 쓰지도 않았다. 내가 레오 입장이었다면 조금은 짜증 났었을 것 같은데... 그렇게 말해주니 너무 고마웠다.
리사와의 커피챗
이 문제점을 해결하기 위해 리사에게 커피챗을 요청했다. 커피챗 주제는 "실력 차이가 많이 나는 페어에게 미안함을 느껴요" 와 같은 내용으로 상담 신청을 했던 것 같다.
이 문제는 앞으로 우테코 활동에 있어 자주 발생할 것 같았다. 우테코 활동뿐만 아니라 추후에 개발자로 살아가는 데 있어 계속해서 맞닥뜨릴 문제라고 판단해 꼭 해결해야겠다고 생각했다. 리사는 내 이야기를 잘 들어줬고, 여러 가지 해결방안을 제시해 줬다. 그중 기억에 남는 건 페어에게 솔직하게 말하기였다.
예를 들어, 내가 책임을 떠넘기고 있다고 느낄 때 "내가 구현 능력이 부족해서 코드에 대해서 전부 이해를 못 하고 있어. 내가 도와줄 부분이 어떤 게 있을까?"와 같이 솔직하게 물어보라고 했다. 페어가 ~~~ 한 부분을 너가 할 수 있을 것 같은데? 라고 제시해주면, ~~~한 부분에 대해 책임을 가지고 진행해보라고 했다. 나아가, ~~~한 부분 + ~~~ 까지도 내가 할 수 있을 것 같은데 내가 해봐도 될까? 와 같이 이야기하면서, 내가 할 수 있는 일을 하나씩 늘려 가보라고 조언해 줬다.
만약 내가 레오 같은 상황이라면 (그런 상황이 있을지 의문이긴 하지만... 우테코 사람들 넘 잘해요ㅜ) 역으로 제안을 해줄 수 있을 것 같아 조금 더 원활하게 페어프로그래밍을 진행할 수 있지 않을까? 생각이 들었다. 리사의 조언은 많은 도움이 될 것 같았다(리사 최고~~!!).
출석 미션에서 배운 부분
step2에서 특히 TDD에 집중했다.
내 모든 commit을 매우 잘게 쪼개 리뷰어에게 내 TDD 흐름이 올바른지 확인해달라고 했다.

초반에는 TDD을 왜 사용해야하는지 이해가 안 되었지만, 쓰다보니까 어떤 장점이 있고, 어떤 단점이 있고, 언제 사용하면 좋겠다 라는 나만의 근거가 하나씩 생기는 것 같다.
내가 느낀 TDD의 큰 장점은
1) 집중을 잘 할 수 있다
요구사항을 작게 쪼개고 하나씩 작은 단위로 구현하니 작은거 구현하고 쉬고, 다시 작은거 구현하고 쉬고 이런 흐름으로 코딩할 수 있다.
2) 실수를 안 할 수 있다
요구사항이 복잡해질 수록 코드 작성에서 실수를 할 수 있다. 하지만 TDD을 통해 하나씩 작은 단위로 개발하다보면 실수할 확률이 적어지고, 테스트코드로 즉각적인 피드백을 받을 수 있어 오히려 빠르게 구현을 할 수 있다고 느꼈다.
2가지의 장점을 느꼈다. 단점은 손에 익지 않아 익숙하지 않다는 것과, 시간이 좀 오래걸린다는 단점이 있다.
TDD의 사용은 선택이라고 생각한다. 하지만, 선택을 하려면 우선 해당 기술을 사용할 수 있는 사람이 되어야 한다. 나중에 내가 현업에서 TDD를 사용하고 있을지는 모르겠지만, 우선 선택할 수 있는 사람이 되어야하니 익숙해지도록 계속 연습해보자!
Level1 목표 근황
코딩테스트
코딩테스트는 포기했다. 여러 가지 이유가 있는데, 가장 큰 이유는 지금 해야 할 상황이 아니라고 판단했다.
Level1에서만 해도 수많은 지식들이 들어왔다. ex) TDD, 함수형 인터페이스, Stream, 클린코드 등등... 이걸 담기에도 벅차다. 코테 준비가 들어올 자리는 내 머릿속엔 없는 것 같다. 그거까지 할 여유는 없다.
우테코에는 코딩 정말 잘하는 크루들이 많다. 그 사람들을 무작정 따라가면, 본질을 놓칠 수도 있다고 생각했다. 크루들이 코테 준비를 한다고 해서 무작정 하는 게 아닌, 나에게 필요한 공부를 하기로 결정했다. 여러 가지를 얕게 시도하는 것보다, 우테코에서 요구하는걸 확실히 나만의 기술로 이해하고 넘어가자. (이번 미션에서는 TDD였음)
운동
중간에 하다가 어느 순간 아침에 운동 대신에 잠을 선택하는 내 모습을 발견했다. 이대로는 안 되겠다 싶어 데일리 조원인 포포랑 내기를 했다. 매일 아침 운동 인증을 하고, 인증 안 하면 벌금 5,000원을 내기로 했다. 이후에 아직까지 한 번도 안 빠졌다ㅎ (5일 안 가면 35,000원;;) 그래서 거의 반강제적으로 운동을 하는 중이다!
영어공부
하고 싶은데... 안 한다ㅋ..
뭐랄까... 동기부여가 부족하달까? 영어공부 할 시간에 코드 한 줄 더 쳐보며 코드 이해는 게 좋지 않나... 싶기도 하다. 사실 출퇴근 하면서 영어 애니메이션 볼 수 있긴 한데 의지가 안 생긴다. Delivery Hero 합격한 5, 6기 선배들한테 연봉이랑 워라밸 물어보면 어느 정도 동기부여가 생길까? 싶다ㅎ
'우아한테크코스' 카테고리의 다른 글
| 유연성 강화 스터디 회고록 (0) | 2025.04.06 | 
|---|---|
| 우테코 Level1 미션3(블랙잭) 및 한 달차 회고 (5) | 2025.03.15 | 
| 우테코 Level1 1주차 회고 (5) | 2025.02.16 | 
| 우테코[BE 7기] 최종 합격 후기 (22) | 2024.12.28 | 
| 우테코 프리코스[BE 7기] 4주차 회고 및 종료 (4) | 2024.12.28 | 
 
                    
                   
                    
                   
                    
                  