2주간의 페어 프로그래밍 회고

1. 무지성 코딩을 하지 말자.

생각 없이 코드를 짜면 내가 이 코드를 다른사람에게 설명해야하는 순간이 올 때, 말문이 턱 ! 막혀버리게 된다.

“여기서 왜 이 메서드를 사용했나요?”

“왜 이 변수는 이곳에 위치해야하나요?”

“이 함수의 이름으로 봐선 이러이러한 함수같은데 그게 맞나요?”

  • 위와 같은 질문들을 받았을 때, 나의 기준과 코드를 작성하는 신념을 세워 코드를 짜야지만 앞으로도 계속해서 발전하는 코드를 작성할 수 있다.

무지성 코딩을 하지 않기 위한 팁

  1. 상대방에게 말로 설명하면서 코딩을 하자

상대방에게 말로 설명하면서 코딩을 하다보면 논리에 맞지 않는 코드를 짤 수 없게 된다.

상대방이 이해하지 못하면 이해시킨 뒤 코딩을 이어간다.

2. 틀에 잡힌 생각을 버려라

처음부터 MVC 패턴을 머릿속에 담아두고 그 틀대로 코드를 짜려고 하지 말자. 틀을 가지고 코드를 짜게되면 하나의 패턴에 국한되어 생각하는 힘을 기르는 것을 막는다.

수업 때 배운 state와 setState를 사용한 MVC 패턴은 분명 좋은 패턴이지만, 모든 기능 구현에 필요하진 않다. 그러므로 처음부터 틀에 밖힌 사고를 하지 말고 차근차근 짜보면서 필요한 것들이 생긴다면 추가하도록 한다.

3. 성능과 가독성의 딜레마

성능을 생각하면 코드의 가독성이 떨어지고,

코드의 가독성을 생각하면 성능이 떨어지는 경우가 다반사이다.

성능이 미비한 차이이니 무조건 가독성만 챙기는 것은 옳지 않다. 각각의 상황에 맞게 성능과 가독성 중 하나의 우선순위를 택했다면, 선택받지 못한 것을 사용하였을 때, 장점도 알아두고 넘어가자.

4. 되는 이유와 되지 않는 이유

코드를 작성하다보면 막히는 부분이 분명있을 것이다. 그럴 때 마다 우선 어떤 부분에서 문제가 발생하는지를 파악하는 것이 우선이다.

그리고 그 문제를 해결하기 위해 구글링을 하거나 시도를 해보는데, 그 때마다 코드가 작동해서 좋아할 것이 아니고, 왜 코드가 작동하고, 왜 코드가 작동하지 않는지를 명확히 파악하고 진행해야 한다.

소감

처음 페어 프로그래밍을 시작했을 때는 코드에 대한 두려움은 없었다. 일단 요구사항에서 언급한 기능을 구현하기 위해 코드를 작성해 나갔는데, 그렇게 의식의 흐름대로 따라가다 보니 어느 순간 막히는 부분이 분명 생겼다. 그 때 마다 발생한 문제를 직면하고 파악하려 하지 않고 어떻게 하면 작동하게 될지에 집중하였다. 하지만 이렇게 작동에만 집중하다보니 내가 무엇을 모르고 무엇을 아는 것인지 메타인지가 떨어지게 되어 학습에 별로 도움이 되지 않았다.

내가 어떤 기능을 구현하기 위한 방법을 모르는 것과 문제가 발생했을 때, 문제를 직면하지 않고 구현에만 집착하는 것은 완전히 별개의 문제이다.

전자는 처음에는 당연히 모를 수 밖에 없는 부분으로 개발을 해나가면서 구글링을 통해 지식을 습득해나가면 되는 부분이지만, 후자는 다음에 똑같은 문제가 발생했을 때 같은 실수를 반복하고 발전이 있는 코드를 작성할 수 없게 된다.

그러므로, 어떤 문제가 발생하면 왜 그런 문제가 발생했는지 근본적인 원인을 파악하고 현재 상황에서 해당 문제의 원인을 해결하기 위해 어떤 방법이 있는지를 찾아보고 시도해보면서 성공하게 되면 이것보다 더 좋은 방법은 없는지를 생각해보는 방향으로 코딩을 해야한다는 것을 느꼈다.