[Memoir] Pair Programming 1 회고

dee·2022년 7월 31일
2

memoir

목록 보기
1/5
post-thumbnail

팀원과 같이 작성했던 회고록있지만 모든 내용을 담지 못해 따로 또 회고록을 남겨본다. 2022.07.18 ~ 2022.07.27 약 10일간 두 명이서 내비게이터와 드라이버 역할을 바꿔가며 11가지의 과제를 구현하였다. 그리고 이 Pair Programming을 통해 느낀 점을 아래와 같이 정리해보았다.

1. 다양한 방법을 익히고 다져가는 시간.

혼자서 프로그래밍을 하다보면 익숙한 방식으로만 문제를 바라보고 해결하게 된다. 똑같은 메서드나 문법으로만 코드가 이루어지게 되고 사고 방식이 갇혀있는 느낌이 든다. 하지만 페어를 하면서 다른 사람의 시각으로 문제를 바라보게 되면서 평소에 잘 생각나지 않던 문법들을 적극적으로 활용하는 시간이 되었다. 그 중 기억에 남았던 문법들을 적어본다.

  • spread 문법 : parilndrome인지를 원본 문자와 비교할 때, 문자열은 이터러블이기에 spread 문법을 사용하여 배열로 만들어 reverse 메서드를 적용하여 원본과 비교할 수 있다.

    🤔이 문제를 map이나 split를 사용하여 풀려고만 생각했었는데 spread 문법을 사용하니 명확하게 한 줄로 구현이 가능했다.

  • 옵셔널 체이닝 : e.target.nextElementSibling이 있으면 focus하고 없으면 focus하지 않도록 구현하려고 할때 e.target.nextElementSibling?.focus()와 같이 사용하면 next Element가 없어도 오류가 나지 않는다.

    🤔 옵셔널 체이닝을 생각하지 못했을 때는 if문으로 e.target.nextElementSibling이 null인지 체크를 해야했고 코드량이 길어서 가독성이 좋지 않았다.

  • 배열 디스트럭처링 : map에서 첫번째 인수로 배열의 값을 가져올 수 있는데 이 값도 배열일 경우 example[0] 처럼 인덱스로 선택하여 값을 가져왔었다. 하지만 [name, age]와 같이 디스트럭처링을 해주면 가져오는 값의 정보를 명확히 알 수 있어 코드의 가독성을 높일 수 있다.

    🤔 객체의 경우 키: 값으로 이루어져 있다보니 디스트럭처링이 쉽게 생각났는데, 배열의 경우 눈에 보이는 것이 값밖에 없다보니 디스트럭처링을 생각해보지 못한 것 같다.


2. 원활한 의사소통으로 코드에 재미를 더해가는 시간.

처음에 내비게이터나 드라이버의 역할이 익숙하지 않아 의사소통이 원할하지 않았다. map 메서드로 첫번째 인수로 받는 값을 디스트럭처링하려고 했을 때 방금 글처럼 명확하게 설명하기보단 '여기, 이거'라는 지시대명사가 더 많이 나왔기 때문이다. 그래서 용어를 명확하게 말하려고 했으며 그림이나 글로 먼저 전체적인 설계를 하고 정리를 했더니 의사소통이 훨씬 수월했다.

또한 이해가 안되거나 막히는 알고리즘을 팀원과 이야기하니 명확하게 이해가 되었고 그에 따라 해결 방법을 생각해 볼 수 있었다. 그러다보니 집중도가 높아졌고 시간 가는 줄 모르고 코드를 구현했었다.


3. 리팩토링의 의미를 알아가는 시간.

항상 코드는 효율적인 코드가 좋다고 생각했다. 효율적이 코드는 길이가 짧아져 읽어야할 코드량이 줄어들기 때문이다. 하지만 데이터, 기능들고 얽히고 설키는 코드를 보니 효율적인 코드가 항상 좋은 것이 아님을 느끼게 되었다.
그래서 리팩토링을 하면 할 수록 다른 사람이 책 읽듯이 구조가 파악되어지는 코드가 되어야 한다고 생각하게 되었다. 그 방법 중 하나는 함수에 많은 데이터를 전달하지 않고 되도록 하나의 기능을 담고 있도록 구현하는 것이다. 또한 변수명, 함수명도 책 읽듯이 읽히는 코드를 만드는 하나의 방법이다. 개인적으로 이 이름 짓는 것을 리팩토링할 때 가장 신경을 썼다. 이 이름 하나가 함수 몸체를 들여다보기 전에 어떤 코드인지를 알려주기 때문이다.


🍑 : 지금까지 하나의 문제를 여러 번 들여다보는 경우가 거의 없었는데, 첫번째 Pair Programming을 통해 하나하나의 문제에 대해서 고민을 해본 것이 머리가 깨어나는 느낌이라 코드 구현하는 것에 재미를 느끼게 해주었다. 그래서 Pair Programming 2가 궁금하고 어떤 것을 배우게 될지 기대가 된다.



팀원과 같이 작성했던 회고록 [나 : 🍑]
https://velog.io/@dessin/%ED%8E%98%EC%96%B4-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%9A%8C%EA%B3%A0

profile
웹 프론트엔드 개발자

0개의 댓글