녕의 학습 기록
레벨 1 - 로또 회고 본문
우아한테크코스 들어와서 처음으로 진행한 미션이자, 나의 첫 페어 프로그래밍이었다. 페어는 랜덤으로 배정을 받았는데, 우연히도 같은 데일리&연극조인 듀이랑 매칭 됐다. 이미 서로에 대해서 많이 알고 있었기 때문에 비교적 편한 환경에서 1단계를 마칠 수 있었다.
사실 이전부터 페어프로그래밍이 어디에 어떻게 좋은건지 궁금했었는데, 이번 경험을 통해 깨달은 바가 있다.
우선 다른 크루와 같이 코드를 작성하다보니 내가 몰랐던, 기존의 내 코드와 다른 코드들을 접해볼 수 있어 좋았다. 그리고 무엇보다도 하나의 문제를 두고 같이 의논하며 한가지 결론을 도출하는 과정이 좋았다. 우아한테크코스에 들어오기 전, 혼자 학습하고 혼자 고민하며 결론을 짓는 것을 힘들어했던 나였기에. 이러한 점이 페어 프로그래밍의 큰 장점으로 다가왔다. 사실 이 점은 페어 프로그래밍뿐만 아니라 우아한테크코스라는 교육 프로그램 자체의 장점이기도 하다. 몇십대 일의 경쟁을 뚫고 온. 개발을 좋아하는 사람들만 모여서 그런지, 쉴 때도 밥먹을 때도 서로가 고민하는 것을 나누고 의논하기도 하며 결국 무엇인가를 배워간다. 아무튼 페어 프로그래밍은 다른 사람과 더 맞닿아서 고민하고 학습하니 그러한 이점이 더 크게 느껴졌다.
내가 직접 느낀 것은 아니지만 다른 데일리 크루와 얘기하다가 인지하게된 또 다른 페어 프로그래밍의 장점이 있다. 바로 소프트 스킬 강화다. 우아한테크코스 내부에서는 소프트스킬 강화를 위해 별도의 과정들을 마련해놓지만 어떻게 보면 페어도 이에 해당한다고 본다. 처음 대화해보는 크루와 간단한 아이스브레이킹을 가지고 바로 미션을 해결하기 위해 서로 힘을 모아야한다. 그 과정에서는 상대방을 존중하면서도 내 주장을 잘 전달할 수 있는 언어를 구사해야한다. 물론 듀이가 처음 본 크루는 아니었지만, 결국 서로를 존중하기위해 노력해야만 했다. 이러한 과정으로부터 얻을 수 있는 소프트 스킬이야말로 협업에 필요한. 우아한테크코스에서 배워갈 수 있는. 그러한 기술이라고 생각한다.
물론 페어 프로그래밍은 체력 소모가 크다는 단점이 있다. 아무래도 페어랑 계속 의논하면서 코드를 작성하다보니, 평소보다 3배는 더 피곤한 것 같았다. 하지만 그런 단점보다도 이점이 훨씬 크다고 느껴졌다.
첫 페어 프로그래밍이다보니 아쉬웠던 점도 있었다. 듀이와 나는 몇개의 커밋을 기준으로 네비게이터와 드라이버를 번갈아 맡았다. 하지만 네비게이터와 드라이버 역할의 차이는 그저 누가 키보드를 잡느냐에 불과했다. 당시에도 듀이와 이런 부분에 대해 얘기했지만 둘 다 페어가 처음이다 보니 별 다른 해결책을 내지는 못했었다. 이후 데일리 미팅 시간에 다른 크루가 진행한 페어 프로그래밍 방식을 듣게 되었는데 , 그 크루는 드라이버가 키보드를 잡는 동안 네비게이터는 약간의 방향성만 제시하고 옆에서 지켜보기만 했다고 했다. 그리고 20분을 타이머로 재며 시간이 되면 코드를 작성하는 중간에도 칼같이 역할을 바꿨다고 한다. 해당 방식은 역할의 책임에 따라 더 협력적으로 코드를 작성할 수 있다는 장점이 있었다. 그리고 언제 키보드를 잡게 될 지 모르기 때문에 네비게이터도 드라이버의 구현에 집중을 해야만 한다. 그런 점에서 듀이와 나도 각자의 역할을 조금 더 의식하면서 페어를 진행했으면 더 좋지 않았을까하는 아쉬움이 남기도 했다.
그래서 다음 페어 프로그래밍에서는 내가 드라이버일 때 네비게이터에게 어떻게 하면 될지 자주 물어보고, 내가 네비게이터일 때 드라이버에게 내가 생각하는 방향성을 명확하게 제시해주면 좋겠다고 생각했다. 당연하게도 그 과정에서 생기는 의논(혹은 토론 혹은 싸움)은 모두 환영이다.
다음은 페어인 듀이가 내게 작성한 피드백의 일부이다.
페어를 끝내고 다시 보니 그냥 내가 혼자 작성한 코드인 것 마냥 내 스타일의 코드가 가득했다. 그래서 내가 내 코드를 강요하고 듀이는 최대한 나를 배려 해주었구나라고 생각했었는데, 듀이도 똑같은 생각을 했다. 그래서 듀이와 나의 코드 스타일이 원래 비슷했다거나 둘 다 서로를 잘 배려해준 것이라고 여겼다. 어찌 됐든 듀이와의 첫 페어프로그래밍은 내게 좋은 인상을 심어주었다.
다음은 현직 리뷰어인 로키가 내게 준 피드백이다.
좋은 말로 작성해주셨지만(기분 좋다) 로키의 리뷰를 받아보면서 확실히 객체 간의 책임 분리와 협력을 구현하는 데에 있어 아직 많이 모자르다는 것을 인지할 수 있었다.
그리고 우아한테크코스에 들어오면서 내가 작성한 코드에 대한 근거들을 명확하게 하기를 목표로 삼았다. 그래서 아무리 남들이 좋다고 쓰는 방식이어도 나만의 이유를 찾지 못했다면 최대한 사용하지 않으려고 노력했다. 이를 위해 내가 작성한 코드에 대해서는 나만의 근거를 최소 한개 이상을 가지려고 했다. 그러한 점을 로키가 정말 알아주신 것인지는 모르겠지만 어느 정도 캐치해주신 것 같아 기뻤다.
마지막으로는 리뷰 과정 중 아쉬웠던 점이다.
사실 로키가 주신 대부분의 피드백이 너무나도 납득할만 했다. 그래서 반론할 생각은 하지 못했다. 하지만 다시 돌아보면 몇개 정도는 내 의견을 고수하며 반론하고 로키와 몇번 더 의견을 주고 받을 수 있었지 않았을까 싶기도 하다. 아무래도 현직자에게 이처럼 세세하게 코드 리뷰를 받아 보는 것이 처음이다 보니 그것이 맞다고 생각하고 수정하는데 급급했을 수도 있다. 그런 점에서는 우테코가 항상 말하는 반란군 기질을 조금 더 길러볼 필요가 있다고 생각했다. 그래도 로키가 세심하게 잘봐주셔서 배워갈 점이 많았다는 것은 변하지 않는다. 첫 리뷰어가 로키라 좋았달까..
어쩌다 보니 미션의 회고가 페어 프로그래밍의 회고가 되어버렸다. 그만큼이나 이번 로또 미션에서는 코드보다 페어를 통해 얻어가는 배움이 더 컸던 것 같다.
사실 나는 스스로를 고집이 세고 협업과는 거리가 먼 사람이라고 생각해왔었다. 그렇기 때문에 우테코에 속한 기간 동안에는 여러 사람들과 페어 및 다양한 활동들을 하며 의견을 조율하고, 한 발 양보하기도 해보며 같이 협업하고 싶은 사람으로 성장하고 싶다.
쓰다보니 길어졌는데, 다음 미션인 출석도 잘 마무리하고 또 회고를 작성해보도록 하자..!
https://github.com/kjyyjk/java-lotto
GitHub - kjyyjk/java-lotto: 우아한테크코스 BE | 레벨 1 | 자바로 구현하는 로또
우아한테크코스 BE | 레벨 1 | 자바로 구현하는 로또. Contribute to kjyyjk/java-lotto development by creating an account on GitHub.
github.com
'대외활동 > 우아한테크코스 7기' 카테고리의 다른 글
레벨 1 - 블랙잭 회고 (2) | 2025.03.16 |
---|---|
레벨 1 - 출석 회고 (4) | 2025.03.03 |
우아한테크코스 7기 웹 백엔드 최종 합격 후기 (4) | 2024.12.30 |
우테코 7기 1차 합격 및 최종 코딩테스트 후기 (4) | 2024.12.17 |
[프리코스 2주차] gitignore 분석하기 (0) | 2024.10.24 |