TIL (Today I Learned)
11월 2일 (월)
학습 내용
캠프 시작 전에 진행한 구구단 과제를 바탕으로 상호 코드 리뷰와 짝 프로그래밍을 진행하였다. 상호 코드 리뷰를 할때, 하지말아야할 것과 지켜야할 것들을 잘 숙지하는게 중요하다. 리뷰를 하는 입장이면, 잘못 지적함으로써 상대의 감정을 상하게 하거나 무례하게 말을 해서는 안된다. 리뷰를 받는 입장이면, 상대의 지적이 나를 공격하는게 아니라는것을 숙지하고 기죽을 필요가 없다.
짝프로그래밍은 정해진 시간마다 내비게이터와 드라이버의 역할을 바꿔가면서 프로그래밍을 하는 활동이다. 내비게이터는 작성할 코드에 대해 한 줄, 한 단어씩 자세하게 설명하여 드라이버가 본인의 의도에 맞게 코딩하도록 지시한다. 드라이버는 내비게이터의 지시에 맞게 코드를 잘 작성해야하며, 이를 위해 내비게이터가 말을 잘 듣고 의도를 명확하게 이해해야한다.
상호 리뷰를 하면서, 다른 사람의 코드를 보면서 나와 다른 방식으로 생각할 수 있다는 것을 깨달을 수 있었다. 상대가 작성한 코드의 장점을 배워서 다음에 코드를 작성할 때 활용할 수 있다.
짝 프로그래밍은 내비게이터의 생각을 직접 내가 코드로 작성해봄으로써 타인의 생각을 더 직접적으로 느낄 수 있다. 내비게이터 역할일때는 드라이버가 잘 이해할 수 있도록 한번 더 생각하고 말하게 된다.
문제점 / 고민한 점
- 처음 보는 사람과 활동을 해야한다는 점이 어려웠다. 긴장하다 보니 할 말이 잘 떠오르지 않았다.
- readLine()으로 받은 입력에 대해서 옵셔널 추출을 어떻게 할 것인가?
- 짝 프로그래밍을 하면서 작성한 반복문을 고차함수와 순환함수로 대체할 때 어떻게 할 것인가?
해결 방법
- 나에 대해서 집중하기 보다 활동 그 자체에 집중한다. 활동에 대해서 얘기하다보면 다소 어색함이 사라진다.
- ! 키워드를 사용한 강제 언래핑 또는 if let을 이용한 옵셔널 바인딩을 통해 입력값을 처리.
- for i in 1…9라는 반복문을 [1, … ,9] 배열을 선언하고 고차함수 map을 사용하여 대체하였다. 숫자를 계속해서 입력받는 부분을 함수로 만들어서 함수가 끝날때마다 자기 자신을 재 호출함으로써(순환함수) 반복문을 대체할 수 있다.