페어 프로그래밍(짝 코딩)은 말 그대로 '짝꿍'과 함께 진행하는 코딩입니다.
페어 프로그래밍을 통해 실무에서 동료들과 함께 협업하는 것을 연습합니다.
페어 프로그래밍을 통해 개발자의 커뮤니케이션을 연습하고, 페어와 주고받는 피드백으로 서로의 좋은 점과 부족한 점을 파악하고 개선할 수 있습니다.
페어 프로그래밍을 통해 개발자의 커뮤니케이션을 연습하고, 페어와 주고받는 피드백으로 서로의 좋은 점과 부족한 점을 파악하고 개선할 수 있습니다.
실제로 2인으로 구성된 팀과 개인이 비슷한 규모의 프로젝트를 진행할 때, 페어 프로그래밍을 했던 2인으로 구성된 팀이 개인으로 작업한 팀보다 오류 수가 절반으로 줄었던 사례도 있습니다.
그리고 현업에서는 팀 내의 다른 개발자 외에도, 개발에 대한 이해도가 낮은 다른 직무와 소통을 하는 일이 자주 있습니다.
이때 상대방을 잘 이해시킬 수 있는 능력도 개발자가 갖추어야 하는 필수 역량입니다.
원래 페어 프로그래밍은 하나의 컴퓨터를 중간에 두고, 두 명의 개발자가 함께 같은 공간에서 작업을 하는 것을 뜻합니다.
하나의 컴퓨터를 중간에 두는 이유는 한 사람이 주도권을 잡기보다 두 명이 수평적인 관계로 작업을 하기 위해서입니다. 그 과정에서 일정 간격으로 한 명씩 키보드를 잡고 코딩을 합니다.
그러나 코드스테이츠는 온라인으로 모든 코스를 진행을 합니다. 따라서 각자의 컴퓨터를 사용하되, 일정 간격으로 번갈아가며 화면공유를 함으로써 원격으로도 하나의 모니터에서 작업을 하듯이 진행합니다.
네비게이터:
주로 두 명이 하나의 팀을 이루고, 한 명은 전체적인 방향을 제시하고 다른 한 명은 화면 공유를 하며 직접 코드를 입력합니다. 만약 세 명이 한 팀이 된다면, 두 명이 방향을 제시하고 나머지 한 명이 코드를 작성합니다.
페어 프로그래밍을 하는 도중, 문제마다 또는 일정 시간마다 역할을 번갈아가며 네비게이터와 드라이버 모두 수행해 보세요.
- 종이컵의 개수만큼, 종이컵을 하나씩 뒤집습니다.
- 뒤집은 종이컵에 사탕이 있다면,
- 먹습니다.
간단하죠?
이 의사코드를 컴퓨터가 이해할 수 있는 프로그래밍 언어로 작성한다면, 다음과 유사한 모양으로 작성할 수 있습니다. (설명을 위한 예시이므로 코드 자체보다는 의미에 집중하세요.)
for(let cupNumber=1; cupNumber<=4; cupNumber++){ // 4개의 컵을 하나씩 확인하면서
if (candy) { // 만약 사탕이 있다면
eat(); // 먹는다
}
}
의사코드를 왜 작성해야 할까요?
여러분이 수료 후 멋지게 커리어 전환에 성공하여, 넷플릭스 모바일 애플리케이션 개발팀에 취직했다고 가정해 보겠습니다. 넷플릭스라는 애플리케이션을 만들기 위해, 비어있는 코드 에디터에 바로 코드를 작성했을까요?
아마 디자인적인 요소부터 시작해서, 세세한 기능까지 전부 "계획"한 뒤에 그 계획을 코드로 옮기는 과정으로 개발을 진행할 겁니다. 물론 현업에서 몇 줄 밖에 되지 않는 간단한 코드를 위해, 한 줄 단위로 의사코드를 작성하지는 않습니다. 그러나 코드를 처음 학습하는 단계부터 큰 규모의 계획을 세울 일은 없습니다. 큰 규모의 계획을 코드로 옮기기 위해 먼저 가장 작은 단위의 계획을 코드로 옮기는 연습을 하듯이, 처음 학습할 때에는 작은 규모의 계획에도 의사코드를 작성합니다.
여러분의 선배 수강생과 수료생이 가장 많이 전달한 고민 중 하나는, "대충 어떻게 해야 하는지 알 것 같은데 막상 코드를 쓰려니 써지질 않아요"입니다.
이 고민의 원인은 단순합니다. 아직 어떻게 해야 하는지 정확히 모르기 때문입니다. 컴퓨터는 대충 생각하고 짜여진 코드는 이해하지 못합니다. 이해는커녕 오히려 에러 메시지를 표시합니다. 따라서, 작은 부분부터 계획과 순서를 작성하는 연습이 필요합니다. 이 연습을 반복하면, 정말 간단한 수준의 코드는 머릿속으로 정확히 정리된 채로 코드를 작성할 수 있고, 점점 그 범위를 넓힐 수 있습니다.
그러나 귀찮다는 이유로 작은 부분을 의사코드로 작성하는 연습을 게을리한다면, 나중에 큰 규모의 코드를 작성할 때 어려움을 겪을 수 있습니다.
페어와 함께 코드를 작성할 때, 코드를 짜기 전에 "의사코드부터 작성해 볼까요?"로 접근해 보길 권장합니다!