O.T_4회차

Eugenius1st·2022년 6월 23일
0

SEB-FrontEnd

목록 보기
4/8

1. 페어 프로그래밍이란?

페어 프로그래밍(짝 코딩)은 말 그대로 '짝꿍'과 함께 진행하는 코딩입니다.
페어 프로그래밍을 통해 실무에서 동료들과 함께 협업하는 것을 연습합니다.

  1. 페어 프로그래밍을 왜 할까요?
    현업의 개발자는 팀 단위의 프로젝트를 진행합니다.
    팀의 모든 구성원이 같은 의견일 수는 없기 때문에, 서로의 의견을 공유하고 조율해야 합니다.
    협업을 하는 과정에서 팀원들과의 소통이 잘 이루어지는 것이 코딩 실력보다 더 우선시 되는 경우도 많습니다.

페어 프로그래밍을 통해 개발자의 커뮤니케이션을 연습하고, 페어와 주고받는 피드백으로 서로의 좋은 점과 부족한 점을 파악하고 개선할 수 있습니다.

2. 페어 프로그래밍을 왜 할까요?

페어 프로그래밍을 통해 개발자의 커뮤니케이션을 연습하고, 페어와 주고받는 피드백으로 서로의 좋은 점과 부족한 점을 파악하고 개선할 수 있습니다.
실제로 2인으로 구성된 팀과 개인이 비슷한 규모의 프로젝트를 진행할 때, 페어 프로그래밍을 했던 2인으로 구성된 팀이 개인으로 작업한 팀보다 오류 수가 절반으로 줄었던 사례도 있습니다.

그리고 현업에서는 팀 내의 다른 개발자 외에도, 개발에 대한 이해도가 낮은 다른 직무와 소통을 하는 일이 자주 있습니다.
이때 상대방을 잘 이해시킬 수 있는 능력도 개발자가 갖추어야 하는 필수 역량입니다.

3. 페어 프로그래밍은 어떻게 할까요?

원래 페어 프로그래밍은 하나의 컴퓨터를 중간에 두고, 두 명의 개발자가 함께 같은 공간에서 작업을 하는 것을 뜻합니다.
하나의 컴퓨터를 중간에 두는 이유는 한 사람이 주도권을 잡기보다 두 명이 수평적인 관계로 작업을 하기 위해서입니다. 그 과정에서 일정 간격으로 한 명씩 키보드를 잡고 코딩을 합니다.
그러나 코드스테이츠는 온라인으로 모든 코스를 진행을 합니다. 따라서 각자의 컴퓨터를 사용하되, 일정 간격으로 번갈아가며 화면공유를 함으로써 원격으로도 하나의 모니터에서 작업을 하듯이 진행합니다.

4. 네비게이터와 드라이버의 역할은 어떻게 다른가요?

네비게이터:

  • 숲을 보는 역할
  • 문제를 해결하기 위한 전체적인 방향을 제시합니다.
  • 드라이버에게 작성해야 할 코드를 직접적으로 알려주기 보다, 질문을 계속 던지면서 드라이버 스스로 해답을 찾을 수 있도록 돕습니다.
  • 드라이버가 적는 코드 중 실수(오타, syntax 에러 등)가 있다면 바로바로 피드백합니다.
    드라이버:
    나무를 보는 역할
  • 네비게이터와 함께 문제를 해결할 수 있는 방향을 고민합니다.
  • 네비게이터가 제안하는 방향에 따라, 구체적인 문제해결 방법을 생각해 보고 코드 작성을 합니다.
  • 이때 드라이버는 자신이 작성한 코드를 네비게이터에게 설명할 수 있어야 합니다.
  • 네비게이터의 의견에 동의하지 않더라도 자신의 의견을 숨기거나 강하게 내세우기보다는, 좋은 커뮤니케이션을 통해 합의점을 찾을 수 있도록 네비게이터와 충분히 소통합니다.

주로 두 명이 하나의 팀을 이루고, 한 명은 전체적인 방향을 제시하고 다른 한 명은 화면 공유를 하며 직접 코드를 입력합니다. 만약 세 명이 한 팀이 된다면, 두 명이 방향을 제시하고 나머지 한 명이 코드를 작성합니다.
페어 프로그래밍을 하는 도중, 문제마다 또는 일정 시간마다 역할을 번갈아가며 네비게이터와 드라이버 모두 수행해 보세요.

의사 코드 작성법

  1. 종이컵의 개수만큼, 종이컵을 하나씩 뒤집습니다.
  2. 뒤집은 종이컵에 사탕이 있다면,
  3. 먹습니다.

간단하죠?

이 의사코드를 컴퓨터가 이해할 수 있는 프로그래밍 언어로 작성한다면, 다음과 유사한 모양으로 작성할 수 있습니다. (설명을 위한 예시이므로 코드 자체보다는 의미에 집중하세요.)

for(let cupNumber=1; cupNumber<=4; cupNumber++){ // 4개의 컵을 하나씩 확인하면서
	if (candy) { // 만약 사탕이 있다면
		eat(); // 먹는다
	}
}

의사코드를 왜 작성해야 할까요?
여러분이 수료 후 멋지게 커리어 전환에 성공하여, 넷플릭스 모바일 애플리케이션 개발팀에 취직했다고 가정해 보겠습니다. 넷플릭스라는 애플리케이션을 만들기 위해, 비어있는 코드 에디터에 바로 코드를 작성했을까요?

아마 디자인적인 요소부터 시작해서, 세세한 기능까지 전부 "계획"한 뒤에 그 계획을 코드로 옮기는 과정으로 개발을 진행할 겁니다. 물론 현업에서 몇 줄 밖에 되지 않는 간단한 코드를 위해, 한 줄 단위로 의사코드를 작성하지는 않습니다. 그러나 코드를 처음 학습하는 단계부터 큰 규모의 계획을 세울 일은 없습니다. 큰 규모의 계획을 코드로 옮기기 위해 먼저 가장 작은 단위의 계획을 코드로 옮기는 연습을 하듯이, 처음 학습할 때에는 작은 규모의 계획에도 의사코드를 작성합니다.

여러분의 선배 수강생과 수료생이 가장 많이 전달한 고민 중 하나는, "대충 어떻게 해야 하는지 알 것 같은데 막상 코드를 쓰려니 써지질 않아요"입니다.

이 고민의 원인은 단순합니다. 아직 어떻게 해야 하는지 정확히 모르기 때문입니다. 컴퓨터는 대충 생각하고 짜여진 코드는 이해하지 못합니다. 이해는커녕 오히려 에러 메시지를 표시합니다. 따라서, 작은 부분부터 계획과 순서를 작성하는 연습이 필요합니다. 이 연습을 반복하면, 정말 간단한 수준의 코드는 머릿속으로 정확히 정리된 채로 코드를 작성할 수 있고, 점점 그 범위를 넓힐 수 있습니다.

그러나 귀찮다는 이유로 작은 부분을 의사코드로 작성하는 연습을 게을리한다면, 나중에 큰 규모의 코드를 작성할 때 어려움을 겪을 수 있습니다.

페어와 함께 코드를 작성할 때, 코드를 짜기 전에 "의사코드부터 작성해 볼까요?"로 접근해 보길 권장합니다!

profile
최강 프론트엔드 개발자가 되고싶은 안유진 입니다

0개의 댓글