dohun.log

부스트캠프 멤버십 6~7주차 회고 본문

회고/부스트캠프 7기

부스트캠프 멤버십 6~7주차 회고

dohun31 2022. 10. 28. 20:31

페어 프로그래밍

챌린지, 멤버십 때 그룹을 같이 했던 승현님과 페어가 되어 2주 동안 페어 프로그래밍을 진행했다.
간단하게 설명하면 전략을 제시하는 Navigator와, 실제 코드를 작성하는 Driver로 역할을 나눠서 개발을 진행하게 된다.


week 06

목표 정하기

승현님이랑 미리 알고 있던 사이어서 아이스 브레이킹 시간을 아끼고 후다닥 개발 환경 세팅을 시작했다.


이번 프로젝트에서 공동의 목표를 설정하기 위해서, 서로의 목표에 대해서 얘기하는 시간을 가졌다.
나는 저번 프로젝트에서 OAuth와 채팅을 제대로 못해서 이번엔 꼭 해보고 싶었고,
승현님도 마찬가지로 OAuth, 채팅을 꼭 해보고 싶다고 하셨다.

 

그래서 이번 프로젝트에서 꼭 해야 할 것을 OAuth, 채팅, canvas로 정하고 프로젝트를 시작했다.

그라운드 룰

  1. 하루에 2~3시간은 페어 프로그래밍하기
  2. 그 이후엔 모각코 하면서 분업하기
  3. 페어 프로그래밍 외의 작업은 코드 리뷰 꼭 하고, 받기

하루 일과

페어로 하다보니 2주 동안 하루를 매일매일 똑같은 패턴으로 보냈다.

  • 아침 스크럼
  • 오늘 할 일 정하기 (이슈 등록)
  • 점심
  • 페어 프로그래밍
  • 분업

Day 01

페어 프로그래밍이 너무 낯설어서 일단 해보자! 하고 페어 프로그래밍으로 프로젝트 세팅을 했다.

 

다들 그거 아시죠 프로젝트 하면 시작하는 게 젤 어려운 거


뭐 설치하고 환경 세팅하는 게 제일 힘든 거였는데 승현님이랑 쿵작이 너무 잘 맞아서 2시간 만에 뚝딱 성공했다.

Day 02

socket을 뚫어놔야 분업이나 앞으로의 작업에서 편하겠다고 생각을 해서 이 날의 페어 프로그래밍 주제는 소켓 연결로 정했다.

 

socket을 main 페이지가 mount 되었을 때 연결할 수 있게 코드를 작성했는데 소켓 연결은 잘 되는 게 문제가 생겼다.
React에서 <React.StrictMode>때문에 useEffect가 2번 실행이 되어서 소켓 연결이 2번이나 되는 이슈였는데, StrictMode를 그냥 지우면 해결(?)되지만 우리는 지우지 않고 해결할 수 있는 방법을 계속 찾았다.

 

그러다가 cleanUp함수의 존재를 발견했고, unmount 될 때 socket 연결을 해지할 수 있게 했다. (승현 님 맞죠..?)

 

혼자였으면 무시하거나 StrictMode를 지우고 지나갔을 것 같은데 같이해서 뭔가 도전할 수 있었던 거 같다.

Day 03

어느 캠퍼분이 전국적으로 스터디(캐럿 스터디)를 만들어주셨다.
그렇게 해서 #캐럿 스터디-부산이 만들어졌고, 이 날 오프라인 만남을 가졌다.

 

오프라인으로 캠퍼분들을 만나는 게 처음이어서 너무 설렜고, 긴장됐다.

그리고 해 떠있을 때 항상 집안에만 있었는데 밖에 나가 있다는 게 너무 신이 났다.

다 같이 밥을 먹고, 카페에서 모각 코를 했다.

 

이 날은 내가 밖에 나오게 돼서 승현 님께 양해를 구하고 저녁에 페어 프로그래밍을 진행했다.


페어 프로그래밍 전에 각자 소켓으로 canvas 연결을 하고 와서 페어 프로그래밍 때 각자의 생각과 고민, 코드를 나누면서 합치기로 했는데
신기하게 승현 님은 백엔드 소켓 쪽 코드를 정리해오셨고, 나는 프런트에서 canvas를 해와서 밸런스 있게 진행이 되었다.

그리고 저녁에 페어 프로그래밍을 하면서 승현 님이 해두신 서버와 canvas를 합쳐서 원하는 기능을 바로 구현했다.

Day 04

전날에 했던 canvas 작업과 소켓 작업이 정말 날 것 그대로여서 이 날엔 코드 리팩터링을 진행했다.

한 파일에 몰려있던 코드들을 각자 책임에 맞게 나누고, 상수화시킬 수 있는 건 상수화 하는 등 코드를 정리했다.


그리고 계속 승현 님이랑 고민했던 부분이 움직인다의 책임을 누가 가져야 하나 였었는데, 움직인다자체는 플레이어의 책임이지만 움직이기 위해선 지도 정보를 알아야 해서 너무 고민이 됐다.

 

한참 고민하다 결론은 움직일 수 있나는 지도가, 움직인다는 플레이어가 책임을 가지게 했다.

Day 05

피어 세션

피그 잼으로 회고를 진행했다.

다들 페어 프로그래밍이 처음이어서 그런지 같은 고민을 하고 있는 게 너무 느껴졌고, 서로 위로와 격려를 해줬다.

어려웠던 점 / 좋았던 점

코드 리뷰

요즘 코드 리뷰 방식이 다음 상대를 지목하는 방식으로 메타가 바뀌어서 코드 리뷰가 끝나기 전까지 항상 손이 떨리고 심장이 두근두근 거린다.
시작이 접점이 없던 캠퍼분이셔서 안심하고 있었는데 한 번씩 랜덤 픽을 하시고, 점점 아는 분으로 바뀌어서 진짜 손에 땀이 났다.

 

시간이 흐르고 5주 차에 같은 팀이었던 정민님이 코드 리뷰에 당첨되셨길래 채팅으로 응원해드리려다가 괜히 어그로 끌릴까 봐 가만히 있었다.
그리고 정민님의 시간이 끝나고 긴장하고 있었는데 정민님 입에서 내 이름이 나왔다.
(걸릴까 봐 응원을 안 했던 나쁜 마음 때문에 걸린 걸까..? 오늘의 교훈 착하게 살자)

 

아무튼 바들바들 떨면서 코드 리뷰를 진행했다.
그런데 진짜 머릿속이 새하얘졌다.

지난주까지만 해도 걸리면 뭐 질문하지? 다 고민해놨었는데 그땐 생각이 하나도 안 났다.


Q. 움직인다의 책임과 지도 정보를 플레이어가 알아야 하는지?

상황마다 다를 수 있다.
플레이어가 총을 쏴야한다면?
총알이 어디로 날아가야하는지 알기 위해선 어떻게?
만약에 튕길 수 있다면?

이런 것처럼 지금 서비스 성격에 맞게 유동적으로 고르는 게 맞다.

Q. 팀원의 코드를 막 고쳐도 되는가?

코드와 사람을 일치시킬 필요가 없다. 코드가 그 사람의 인격을 대변하는 게 아니다.
코드는 코드일 뿐!

이건 그라운드 룰의 영역이니까 팀원이랑 잘 정해보는 게 좋다.

Q. 한 줄짜리 if문을 선언형으로 하는 게 나을지, 명령형으로 하는 게 나을지

이건 취향 차이이다.
 함수 이름으로 뭘 하는지 알려주는 것


코드 리뷰 걸릴 거라곤 생각도 못했는데 진짜 이 사진이랑 똑같은 기분이었다.

그래도 언제 조은님이랑 송요창 님한테 코드 리뷰를 받아보겠어~

 

코드 리뷰였다.여름이었다.


방학

방학엔 정말 푹 쉬었고 중간에 콘퍼런스도 다녀왔다.
https://dohun31.tistory.com/30


week 07

연휴 때 너무 푹 쉬어서 그런지 정말 공부할 맛이 안 났다.

그리고 왠지 모르겠는데 날씨가 추워지더니 잠이 많아졌다.

아마 과학적으로 연관이 있지 않을까 싶다.

day 01

그룹에 다른 캠퍼분들이 OAuth 성공했다고 하셔서 위기감(?)을 느끼고 얼른 OAuth를 진행했다.
둘 다 저번 프로젝트에서 OAuth를 못해서 두려워했는데 생각했던 것보다 어렵지 않게 해결을 했다.

 

중간중간 승현 님이 해치웠나 플래그를 세우셔서 불안했는데 진짜로 해치워 버렸다!

 

그리고 승현 님이 OAuth 부분을 마무리하시면서 기존에 코드들을 리팩터링 하시고, 나는 채팅 부분을 구현했다.

day 02 ~ day 03

살짝 암흑기였다.

집중이 계속 안되고, 하루 종일 삽질을 계속했다.
그런데 승현 님은 계속 엄청난 결과물을 가져오셔서 미안한 마음이 계속 들었다.


나 도움이 되고 있나? 이런 생각이 계속 들어서 더 집중이 안됐다.

day 04

이날은 다른 개발은 제쳐두고 배포를 했다.


배포를 성공하니까 뭔가 막혀있던 게 뻥 뚫린 기분이 들고 이때부터 점점 기분이 좋아져서 할 맛이 났다.

 

socket 통신이어서 혼자 테스트해보기엔 무리가 있었는데 배포를 하고 승현 님이랑 같이 테스트해보니까 어디가 부족한지 쉽게 파악할 수 있어서 너무 좋았다.

day 05

day 05는 개발 시간이 부족해서 다른 개발은 못하고 Github Action으로 CI/CD 하는 방법을 찾아봤다.
계속해보니까 이건 프로젝트 끝나고 할게 아니라 프로젝트 시작할 때 설정해두는 게 맞겠다는 생각이 들었고, 조금 일찍 적용을 했으면 정말 좋았겠다는 아쉬움이 있었다.

피어 세션

피어 세션 그룹에 #캐럿 스터디_부산에서 만났던 호올스님이 계셨다. 

 

이번 주에 각자 진행 상황을 먼저 공유하고, 다 같이 피그 잼에서 회고를 진행했다.

 

우리는 신나서 배포한 거 자랑하고 다 같이 놀았다.


그리고 다른 팀들도 얼마나 진행했는지, 어떤 부분에 초점을 맞추셨는지 공유해주셨다.


호올스님은 정말 오늘 피어 세션을 위해서 자료를 준비하신 것처럼 계속 계속 발표자료를 들고 오셔서 발표해주셨다. CI/CD, 도커 정말 유익한 정보를 공유해주셔서 너무 좋았다.

 

그리고 또 다른 그룹 캠퍼분들은 JWT에 대한 고민을 공유해주셨다. Refresh Token을 어떻게 관리해야 하는지, 결국엔 어떻게 관리하셨는지, 어떤 문제점이 있는지 차근차근 알려주셨는데 고민을 같이 하게 되었다.

이전에 JWT를 공부할 때 항상 Refresh Token을 어디에 저장해야 하고, 어떻게 관리해야 하는지가 뜨거운 감 자였었는데 고민 고민해봐도 딱 답을 내기가 어려운 것 같다.

 

항상 똑같은 그룹에서 스크럼을 하니까 같은 결의 고민만 하게 됐는데, 다른 팀들의 고민을 들으니까 아! 이런 부분을 놓치고 있었구나. 오~ 이렇게 생각했어도 되네 하는 부분이 많았다.

 

CI/CD 부분만 해도 오늘 승현 님이랑 CD 쪽은 어떻게 해야 하지? 한참 고민했는데 호올스님 그룹은 ssh로 서버에 접속해서 script를 돌리는 식으로 CD를 하신걸 보고 아! 맞네 하고 생각을 했다. 둘이서 생각할 땐 어디에 매몰되어 있어서 그 생각 밖으로 빠져나오기가 어려웠는데 너무 좋은 방법을 알게 되어서 속이 후련했다.


그리고 다 같이 피그 잼에서 회고를 진행했다.

분위기가 너무 좋았고 다들 짤 욕심이 많으셔서 짤을 어디서 주워오셨다.

아쉬웠던 점 / 잘한점

다 같이 깃허브 팔로우도 하고, 블로그 링크도 공유하고, 롤 닉네임도 공유했다(?)

정말 유쾌하게 피어 세션을 진행했다. 다들 너무 재밌었어요


2주(사실은 3주) 동안 협업을 했는데 생각보다 힘들었다. 그런데 힘든 것보다 배우고 느낀 게 더 많았다.

 

앞으로 1주일 더 하게 되는데 승현 님! 열심히 하겠습니다! 

 

요즘 학습 정리를 잘 못했는데 주말 동안 밀린 학습 정리를 해볼까 한다.

 

조금 있으면 그룹 프로젝트가 시작되는데 엄청 엄청 기대된다.

 

다음 주도 파이팅!!

Comments