우아한테크코스

[우아한테크코스] 우테코에서 1주일간 페어 프로그래밍을 해 본 후기

hectick 2023. 2. 21. 22:30

#2023년 2월 7일부터 13일까지 깃짱과 페어 프로그래밍을 했다

 

나는 그동안 원시시대에 살고있었음을 알았다.

 

 

🐣 우테코의 첫날, 페어를 처음 만났다.

 

페어와는 공통점이 상당히 많았다. 근데 나랑 노트북 기종과 화면 크기까지 같을 줄은 몰랐다. 내가 대학교에 입학할 시절에는 대부분이 LG그램을 쓰고 있었고 삼성을 쓰는 사람들은 그 해 새로 나온 화면 터치가 되는 노트북인 펜S를 썼다. 맥북? 우리 과에서는 맥북쓰면 독고다이의 길을 걸어야 했다. 내 삼성 노트북과 같은 시리즈를 쓰는 사람은 동기 중에 딱 한명 봤는데, 그 아이는 13인치 하얀색 노트북이었다. 나는 15인치 실버, 페어는 15인치 화이트였다. 우테코가 내 노트북 기종을 훔쳐보는데 수고를 했을리는 없다. 운명인가? 페어는 나랑 학번이 똑같은데, 자기도 같은 노트북은 처음 본다고 했다. 아무튼 덕분에 페어의 노트북으로 페어 프로그래밍 하는데 위화감이 1도 없게 되었다.

 

우리는 급속도로 친해졌다. 내 페어의 무한 긍정 에너지 덕분인 듯 하다. 누가 먼저 스타트를 끊었는지 모를 반말도 한 몫했다. 하지만 나와 이런 논쟁을 하는 부류는 나와 짱친이 되는 경향이 있다. 이쯤되면 내가 상습범일지도 모른다.

코딩 좀 하려고 했더니, 우리 둘은 모두 머리가 백지가 되었음을 실감했다. 나는 프리코스 이후 최종 코테가 끝남과 동시에 프로그래밍에서 손을 떼고 우테코 시작까지 신나게 놀았고, 페어도 비슷한 듯 했다. 우리는 자동차 경주 미션은 시작조차 못하고 다음날까지 프리코스하던 머리를 복구해오기로 했다.

 

 

 

🐣 나는 불편하면 불편한 대로 사는 편인가 보다.

 

내 페어는 단축키 전문가였다. 

ctrl + alt + m : 드래그로 블록 씌운 부분을 외부에 메소드로 빼냄

 

신세계가 열리는 줄 알았다. 나는 왜 그동안 메소드 시그니처를 일일이 타이핑을 하고 있었는가? 덕분에 단축키 공부를 해야겠다는 생각을 하게 되었다.

 

 

리팩터링 할 때도 나는 변수명을 수정할 때 변수 하나 하나 일일이 찾아서 바꿔왔다.

shift + F6 : 이름 똑같은 변수들을 한번에 rename

 

 

한 줄을 통으로 지워야 할때는 그 줄이 지워질때까지 계속 Backspace를 누르고 있었다.

ctrl + x : 한 줄을 통으로 지움

 

 

주석을 달 일이 있을 때도 한줄 한줄 //를 쳐줬다

여러 줄 한번에 주석처리
ctrl + / :  // 형태
ctrl + shift + / : /* */ 형태

 

아, 정말 나는 현대인이 맞나 싶었다.

 

 

인텔리제이에서 더 간단한 코드로 바꿔주는 기능이 있음도 알았다. 코딩을 하다보면 아래처럼 노란 블럭이 갑자기 생길 때가 있는데, 여기에 마우스를 갖다 대면 Replace로 시작하는 파란 글자가 나온다. 그걸 누르면 코드를 알아서 간단하게 바꿔준다.

 

대체 전
대체 후

대충 이런 느낌?

 

 

페어 덕분에 중간 중간 커밋할 때 다음 단축키들을 눌러주는 습관이 생겼다. 아직 매번은 아니고 생각날 때마다 눌러 주는 편이다.

ctrl + alt + l : 코드 자동 정렬
ctrl + alt + o : 사용하지 않는 import 정리

 

 

그리고 어제는 인텔리제이의 창들을 하나 빼고 한번에 지우는 법도 배웠다.

alt 를 누른 상태에서 남기고 싶은 창의 닫기(x)를 클릭

 

 

그리고 다음은 페어가 직접 알려준 건 아니지만, 내가 이 짓을 하는데에 페어가 불편함을 호소함으로 인해 내가 주말에 집에서 구글링을 해본 내용이다. 주변인이 불편해 함으로써, 나는 내가 불편한 행위를 하고 있다는 것을 깨달은 것이다.

 

아무튼 나는 드디어 Git Bash에서 복사 붙여넣기 하는 방법을 터득했다. Git Bash를 쓰기 시작한지 반년가량 경과한 뒤에서야 안 것이다. 나는 인텔리제이를 켜서 터미널에서 커밋할때 말고는 Git Bash를 켜서 깃 명령어를 치는 편이다. Git Bash를 쓰면 내가 지금 어느 브랜치에 위치해있는지 잘 보였기 때문이다. 특히, 프리코스를 하면서 'git clone (저장소 주소)' 명령어를 자주 쳤는데, 저장소 주소를 그대로 보고 치거나 외워서 치는 편이었다. 이는 ctrl+v, ctrl+c가 Git Bash에서는 먹히지 않았기 때문이었다.

ctrl + insert : 복사
shift + insert : 붙여넣기

 

 

혹시 이 글이 당신의 뒷목을 부여잡게 했다면 미안하게 생각한다. 혹시 유용한 단축키가 있다면 공유해주면 두팔 벌려 환영해 줄 생각이다.

 

 

 

🐣 나는 의문을 갖는 연습이 필요하다.

 

나는 평소에 뭐든 '그렇군' 하고 깊게 생각을 안하는 편인데, 이게 코딩할 때도 적용이 되어버리니 굉장한 단점으로 작용하는 것 같다. 페어 프로그래밍은 자고로 페어끼리 불꽃 토론을 하면서 의견을 조율해 나가야 비로소 페어 프로그래밍의 장점을 온몸으로 느낄 수 있을텐데, 돌이켜 생각해보면 나는 페어와 별다른 충돌 없이 원만하게 페어 프로그래밍을 한 것 같다.

 

또, '그렇군' 하는 습관 때문에 상대방의 코드에 대한 질문이 잘 생기지 않는 것 같다. 남들은 모르는 것을 적극적으로 질문 못하는게 걱정이라는데, 나는 질문이 안생기는게 걱정이다. 

 

그리고 코딩할 때 별다른 의문 없이 '그렇군' 하고 적용을 해버리니 내가 작성한 코드에 대한 근거도 부족하다. 누가 나에게 왜 이렇게 작성했어? 물어보면 아직은 명확히 대답해 줄 자신이 없다.

 

아무래도 나는 의식적으로 의문을 가지는 연습을 많이, 아주 많이 해야 할 것 같다.

 

 

 

🐣 나는 내가 뭘 모르는 지 모른다.

 

여러모로, 내가 우테코에 들어오게 되서 다행이라고 생각한다. 페어 프로그래밍을 통해 다른 사람들이 뭘 알고 있는지 알게되고, 리뷰어로부터 리뷰를 받을 수 있음에 감사함을 느끼고 있다. 1주차는 머릿속에 새로운 것들이 마구마구 들어온 한 주였다. 내가 모르는 것들을 자꾸 상기 시켜주는 것이 정말 마음에 든다. 우테코가 아니라면 나는 아마 계속 구닥다리 프로그래밍을 하고 있었을 것이다.