들어가면서
레벨2에서 가장 어렵다고 여겨지는 지하철 미션이 모두 끝났다. 페어미션인 step1 때부터 지금까지 폭풍처럼 시간이 지나갔던 것 같다. step2, 3는 생각보다 쉽게 구현할 수 있었다. 오히려 리팩토링 기간에 가장 시간을 많이 투자한 부분은 step1 에서 설계했던 도메인 객체인 sections였다. 처음 설계할 때 외부 라이브러리인 jGrapht를 사용할 것을 염두에 두고 설계를 했었는데 이게 결과적으로 독이 되었던 것 같다. 개인적으로 당장 필요하지 않은 기능을 고려해서 설계를 진행하는 것이 오히려 더 큰 복잡함을 낳을 수 있다는 것을 새삼 깨닫게 되었다.
그리고 객체지향의 목적에 대해 다시 한 번 생각하게 되는 계기가 되는 미션이었던 것 같다. 여태까지 객체지향을 현실의 객체들에 대한 직관을 잘 표현하면서도 딱 떨어지는 이쁜 코드라고 막연하게 추상적으로 생각해왔다. 이번 미션을 계기로 우리가 객체지향을 해야하는 목적은 유지보수를 용이하게 하기 위함임을 깨닫게 되었다. 그리고 이는 객체지향이 언제나 만능적으로 옳은 것만은 아니라는 것을 알려준다. 만약 객체지향이 오히려 코드 가독성을 해치고 유지보수성을 저해한다면 절차지향적인 코드가 더 나을 수도 있다는 관점은 적잖은 충격으로 다가왔다.
언제나 정답은 없고 상황에 맞게 코드를 구현할 수 있어야 함을 체감하고 있는 요즘이다. 그리고 개발자는 이 중요한 고민들을 하기 위해서 지금까지 겪었던 과거의 고민들에 대해서 확실한 본인만의 기준을 확립해둬야 한다. 레벨2에 들어와서 스프링의 사용방법에 익숙해지는데만 집중하다보니 이를 망각하고 지내지 않았나 반성하게 되었다. 앞으로도 할 게 정말 많지만 무엇이 중요한지 잊지 않도록 의식적으로 노력해보자.
공부한 개념들
(포스팅이 작성되는 대로 업로드할 예정입니다.)
셀프 회고
[3단계 페어 프로그래밍]
길고 길었지만 시간만큼은 항상 촉박했던 지하철 미션 마지막 리뷰요청이 끝났다. step2, 3 요구사항을 모두 구현해서 제출했지만 마음이 그리 편하지만은 않았다. 일단 주말 내내 운동도 하루밖에 가지 못했고 잠도 하루 평균 5시간 이내로 밖에 자지 못했다. 매우 피곤한 상태였는데 3일 동안 다음 단계 구현 + 1단계 리팩토링을 해야 한다는 부담감이 굉장히 심했던 것 같다. 당장 1단계에서 하고있던 고민들이 해결이 되지 않아 많이 괴로웠는데 3단계는 시도조차 못해보겠구나 하는 아쉬움도 엄청 남았던 것 같다.
피로가 많이 누적되어 있던 터라 3단계에 대한 미련을 버려야 겠다고 생각하던 찰나였다. 옆자리 헙크가 2단계를 제출했는데 바로 merge 되었다고 얘기를 해줬다. 3단계를 바로 진행할 거냐고 물었는데 이미 merge가 되서 3단계를 진행하겠다고 요청을 할지 말지 고민이 된다고 말했다. 그래서 헙크에게 주말에 3단계에 대해 같이 페어 프로그래밍으로 진행해보는 것은 어떻냐고 제안을 했다. 헙크는 꽤나 흔쾌히 수락해주었고 주말에 집 앞 카페에서 만나 3단계를 같이 진행해보기로 했다.
당시 아직 1단계 제출 사항에 대한 리뷰조차 오지 않은 상황이었기에 나름대로 배수의 진을 친 격이 되었던 것 같다. 토요일에 운동을 다녀오면서 1단계 리뷰가 도착했고 그날 새벽 5시까지 달려서 일부 1단계 수정사항을 반영하고 step2 구현을 빠르게 마무리 했던 것 같다. 그리고 다음날 점심에 바로 헙크와 3단계 미션을 페어로 진행했다. 3단계 마무리까지 대략 5시간 정도 걸렸는데 피곤한 걸 잠시나마 잊을 수 있을 정도로 헙크와 페어 미션 진행이 즐거웠던 것 같다. 레벨 2에 들어와서 잊고 지내던 객체지향적인 설계에 대해서도 많이 고민하며 적용해볼 수 있었던 점이 가장 좋았다. 헙크 덕분에 팔자에 없던 3단계까지 엄청난 속도로 마무리할 수 있었다. 이후에 고마움을 표현하기 위해 맛있는 덮밥을 저녁으로 사줬다 ㅎㅎ… 우테코 들어오기 전에는 페어 프로그래밍하면 공포의 대상이었는데 어느덧 다른 사람에게 먼저 해보자고 말을 건넬 수 있다는 사실에 새삼 회고를 하며 놀라게 되었다.
헙크와 즐거운 3단계까지의 구현이 끝나고 남은 건 step1 리팩토링이었다. 하지만 체력적으로 벅찬 상황에서 한 고민이 끝까지 해결이 안됐다. 제출하는 월요일 5시까지 붙잡고 있었어도 해결이 안되길래 포기하고 돌아가는 코드로 제출을 하게 되었다. 아쉬운 마음에 코멘트로 고민했던 과정을 주절주절 작성해서 올렸는데 그 내용이 너무 길어서 리뷰어 분께서 읽는데 부담을 느끼시진 않을까 걱정도 됐었던 것 같다.
회고 작성을 마무리하는 지금 시점은 24일 수요일 캠퍼스에 출근하는 지하철이다. 어제 밤에 리뷰를 달아주셨는데 다음과 같이 dm이 왔다.
정말 다행히도 즐겁게 읽어주셨다고 말씀해주셨다. 그리고 고민 내용에 대한 피드백도 정말 상세하게 코멘트를 달아주셨다. 해당 고민에 시간적, 정신적 리소스를 너무 많이 소비했던 건 아닐까 싶었는데 기우였었던 것 같다. 이제 남은 건 협업 미션하면서 지하철 리팩토링을 끝내는 것이다… 힘들겠지만 조금만 더 힘내서 해보려고 한다. 힘내자!
'우아한테크코스 > 회고' 카테고리의 다른 글
[우아한테크코스] LV3 - 1차 스프린트 회고 (2) | 2023.07.09 |
---|---|
[우아한테크코스] 중간 회고 (2) | 2023.07.02 |
[우아한테크코스] LV2 - 웹 지하철 미션 Step1 회고 (0) | 2023.05.12 |
[우아한테크코스] LV2 - 웹 장바구니 미션 Step2 회고 (0) | 2023.05.07 |
[우아한테크코스] LV2 - 웹 자동차 경주 미션 회고 (0) | 2023.04.27 |