keep
- 피어세션 토론식 진행
- 1주차에는 그룹원 각자가 했던 설계와 구현코드를 간단하게 발표하고 피드백하는 방식으로 피어세션을 진행했다. 이번주 미션은 구현해야할 내용이 많고 1시간이라는 시간 내에 모든 그룹원들이 발표하기엔 시간이 부족할 것 같아서 토론식 피어세션을 그룹원들에게 제안했다. 제안한 방식은 각자 문제를 해결하는 과정에서 의문이 생기거나 어려웠던 부분을 주제로 던지고 그 주제에 대한 의견을 서로 주고받는 방식이었다. 감사하게도 그룹원들이 제안을 받아주었다.
- 미션을 수행하는 과정에서 어려움을 겪었던 부분이나 다른 사람들의 해석이 궁금한 부분을 기록해두고 다음날 피어세션에서 주제를 던졌다. 비슷하게 해석한 분들도 있었지만 전혀 다른 방향으로 해석하여 해결하신 분들도 계셔서 문제 해석 및 설계에 대한 시야를 넓힐 수 있었다. 토론을 진행하는 과정에서 주제를 파고들다보니 주제와 관련된 다양한 정보를 주고받을 수 있어서 개인적으로 토론식 피어세션이 정말 좋았다. 얼른 내일 아침이 되어 이 주제에 대한 그룹원들의 의견을 들어보고 싶어 피어세션이 기다려지기도 했다.
- 짝 설계 & 짝 프로그래밍
- 함께 문제를 해석하고 데이터 구조와 클래스 내부의 메소드 동작 방식까지 세세하게 설계를 하였다. 각자의 해석을 공유하고 구체적인 설계를 조율하다보니 시간이 훌쩍 지났지만 나만의 생각에 매몰되지 않고 방향을 긍정적으로 재설정할 수 있어서 만족스러웠다.
- 짝 프로그래밍은 설계를 넘어서 구현까지 함께 해야했기에 많은 약속이 필요했다. 열정적인 짝을 만나서 밤 늦게까지 함께할 수 있어서 1차적으로 좋았으며 점심시간, 쉬는시간 등을 조율하여 하루 일정을 공유하는 경험은 처음이었기에 힘들지만 값졌던 것 같다. 코드를 병렬적으로 작성하기 위해 vscode liveshare을 사용하였으며 slack의 허들을 통해 음성으로 소통하였다. 가장 좋았던 점은 이해가 안가는 부분이나 수정이 필요한 부분이 있으면 끊임없이 소통하며 설계를 수정했던 부분이다. 내가 이해되지 않은 부분을 도움을 받아 이해할수도 있었고, 내가 이해하고 설계한 부분을 짝에게 설명하며 학습한 내용이 잘 정리되는 느낌도 들었다.
problem
- 슬랙 활용
- 요구사항을 분석하는 과정에서 모호하게 표현된 부분을 해석할 때 발생하는 의문을 슬랙에 질문하여 해결하고 싶었다. 하지만 "이 정도는 스스로 해석해봐야지", "모두가 이미 다 알고있는 쉬운 내용이면 어쩌지?" 라는 생각이 들어 차마 질문글을 올리지 못했던 것 같다. 막히는 순간이 있으면 슬랙에 올라온 글들을 쭉 훑어보며 질문에 대한 나의 답을 생각해보고 다른 캠퍼들의 다양한 의견을 보며 학습하기도 했지만 정작 답글에 내 의견을 올리진 않았던 것 같다.
- 언어 숙련도
- 짝 프로그래밍 미션을 수행할 때 설계한 내용을 구현으로 옮기는 과정이 힘들었다. 설계 규모가 이전보다 커지고 고려해야할 부분이 많아지다보니 언어적 숙련도에 막힌듯한 느낌이 들었다. 머릿속으로는 정리가 된 부분도 코드로 작성하는데에 많은 시간이 들었고 그만큼 문제해결시간이 길어져 짝에게 미안함도 들었다.
- 학습 정리
- 체크포인트를 작성할 때 가장 먼저 했던것이 주어진 문제를 해결하기 위해 내가 학습해야하는 내용을 정하는 것이었다. 적어도 이 키워드들은 어느정도 학습을 해야 요구사항을 분석하고 설계를 할 수 있겠다는 생각을 하였고 1주차와 달리 학습하는 시간을 길게 가져갔다. 사실 학습이 필요한 부분이 너무나 방대했고 깊게 들어간다면 하루종일 학습만 하다가 끝나겠다는 생각도 들었다. 어느정도 깊이까지 학습하고 설계에 들어갈지 마지노선을 정하는 것도 꽤나 힘들었던 것 같다. 원래는 학습을 하는 과정에 학습 정리를 병행할 계획이었다. 학습한 내용을 글로 정리하면 머릿속에도 더 잘 정리되는건 분명하기 때문이다. 하지만 학습정리를 동시에 하기엔 시간이 너무 부족하다고 느꼈고 정신없이 필요한 내용만 학습하고 요구사항 분석 및 설계 단계로 넘어갔던 것 같다. 주말을 활용하여 학습 정리를 추가하고 복습해야겠다는 원영적 사고를 하기로 했다.
try
- 학습 정리 시간 정해두기
- 나에게 주어진 시간은 제한되어있기에 학습에 사용하는 시간을 정해두고 진행한다면 학습의 깊이를 결정하는 것이 수월할 것 같다. 설계와 구현에도 적절한 에너지 분배가 필요하니 시간을 정해두고 스스로를 컨트롤해보자
- 그룹 활동을 하며 내가 가져야 할 태도
- 사실 주어진 문제를 완벽하게 해결하기에는 무리가 있겠다는 생각이 들었다. 욕심내지 말고 팀원과 설계 포인트를 조율하고 힘들 것 같다면 어느정도 타협하자. 예를 들어 10가지의 메소드를 구현해야 한다면 유기적인 관계를 모두 고려하며 설계하기보단 꼭 필요한 5가지의 메소드를 먼저 타겟팅하고 설계해보자
- 설계를 구현으로 옮기는 과정에서 힘이 많이 들어간다고 느꼈다. 언어 숙련도가 부족한 탓이라고 생각하기에 언어 서적을 빌려 하루 최소 30분은 오로지 언어 숙련도를 높이는데에 사용하자. 예를 들어 여러 고차함수의 사용 예제를 읽어보거나 다양한 데이터 구조를 다루는 예제를 읽어보자