첫 주차가 끝났다. 이번주는 자동차 경주 미션을 구현했다. 1단계, 2단계가 있었고, 1단계는 페어 프로그래밍으로 진행했다. 미션 자체는 이미 해봤던 문제라서 미션 프로그래스에 적응하는 기간이었다.
레벨 1의 목표를 리마인드 해보자.
"막연하다면, 9명이니까 3명으로 나눠서 주제를 정해보세요. 그리고 다시 9명이 모여서 합쳐보세요."
데일리 미팅을 처음해서 막연할 때, 코치인 준이 한 말이다. 막연하게 큰 문제를 작게 쪼개서 해결한 것이다. 일상에서도 프로그래밍 적으로 문제를 해결할 수 있다는 것을 느꼈다.
우테코에서 제공해주는 모든 강의, 자료, 조언에 정답은 없다. 심지어 코치마다 해주는 조언이 다르다. 결국에 이 모든 것을 가지고 나만의 방식을 찾는 게 나의 임무이다.
충분한 시행착오를 겪으며 '내 기준에서는 이게 좋은 것 같다'라는 기준을 만들자.
코드 리뷰 과정에서 리뷰어, 페어의 의견을 절대적으로 수용하지 말자. '왜 그렇지?'라는 의문을 가지며 설득도 해보고 설득도 당해보자.
'내가 테스트코드를 쓰면서 느꼈던 가장 중요한 강점은 뭘까?' '나는 테스트 코드를 짤 때 무엇을 가장 신경쓸까?' 라는 질문을 스스로에게 던지면서 나만의 정답을 찾아가면 되겠다.
get을 지양하라는 말을 자주 들었다. 그 이유가 무엇일까 고민해봤다.
우선, 클래스 내 변수를 public으로 선언하면 외부에서 직접 접근할 수 있지만, private으로 선언하면 직접 접근이 불가능하고 get 메서드를 통해서만 값을 가져올 수 있다. 그렇다면 private을 유지하면서도 외부에 값을 안전하게 전달하는 방법은 무엇일까?
어떤 값이든 외부로 노출해야 하는 상황이 분명히 존재한다. 그렇다면 단순히 get을 사용하면 되는 것 아닐까? 무조건 막을 이유가 있을까?
내가 생각하는 핵심 조건은 두 가지다.
해당 변수를 포함한 클래스가 본연의 역할을 다한다.
해당 값이 불변성을 보장한다.
이 두 가지 조건을 만족한다면 get을 통해 값을 제공하는 것도 충분히 합리적이라고 생각한다.
나는 회고를 좋아한다. 그래서 이렇게 회고 글도 쓴다. 야생학습은 '내가 할 수 있는 모든 수단을 해보는 것'이다. 회고를 위해서 야생학습 정신으로 이번 달에는 코치인 크론에게 원오원을 신청해보겠다.
리뷰어(동료)는 바쁘다. 그러니 셀프체크를 하고 리뷰를 요청하고, 친절하게 하고, 명확하게 설명이 필요하다.
실행 방법, 실행 결과, 기능 명세서, 고민했던 점, 질문 등을 첨부해서 리뷰어가 바쁜 상황에서도 빠르게 리뷰할 수 있도록 한다.
오늘 준과 함께 점심을 먹었다. 준을 통해 프로그래머의 길을 걷기 시작했기 때문에 역사적인 날이었다. 존경하는 사람 밑에서 배울 수 있다는 게 너무 행복하다.
나의 올해 목표는 '나에게 다정하기, 남에게 다정하기'이다.
그래서 나의 팀원, 페어, 코치, 모두에게 다정하고 싶다. 예를 들어, 페어가 PR을 잘 제출했는지 챙겨주고, 생일인 팀원이 있으면 먼저 축하해주고, 코치님께 먼저 인사하고. 조금의 센스로 모두를 따뜻하게 할 것이다. 그리고 다정은 체력에서 나온다는 말이 있으니 운동도 계속 꾸준히 할 생각이다.
나에게 다정할 수 있는 방법은 아직 찾고 있지만, 나를 타인으로 생각하고 함부로 대하지 않을 것이다. 칭찬하고 격려하고 존중하며 지켜줄 것이다.