새오의 개발 기록

우테코 5기 프리코스 : 1주차 회고 본문

우테코 프리코스

우테코 5기 프리코스 : 1주차 회고

새오: 2022. 10. 26. 19:05

 

 

1주차를 시작하며

 

이번 우테코는 프리코스에 지원자 모두가 참여할 수 있다.

프리코스 참여만으로도 배우는 게 많았다는 이전 기수 참여자들의 의견에 따라 진행 방식을 변경했다고 한다.

 

프리코스가 시작하는 10/26(수) 15시에 메일로 1주차 미션이 도착했다.

우테코의 저장소를 fork 해와서 pull request를 남기는 방식으로 진행된다.

 

일주일 동안 7문제를 풀어서 제출하면 되는데 첫문제부터 여태껏 외면해온 나의 안 좋은 습관들을 마주하게 된다.

일단 코드 써보고 수정하는거.. 나중에 수정? 절대 안함..

미션이라는 말 때문에 변수명, 커밋 메시지 하나하나 작성하는데 조심스러워지고 있는 김에 나쁜 습관 고쳐보자

구현할 기능 목록부터 작성하고 구현해 나가자

 

미션 설명을 보면 기능 단위로 커밋해달라고 되어 있는데

보통 하나의 기능안에 여러 개의 작은 기능들로 이루어져 있는 것들이 많아서

어디까지 쪼개서 커밋해야 하는 지 고민이다.

 

우아한형제들의 코드리뷰 방식도 찾아보고 해봐야겠다.

 

 

 


 

 

1주차를 마치고

 

기능 목록을 작성하고, 기능 단위로 커밋하라는 과제의 요구사항을 받고

막연히 회원 가입 기능, 게시글 작성 기능처럼 큰 단위로 생각했다.

기능이 문제 단위인지 아니면 문제의 세부 기능인지를 두고 슬랙에서 사람들이 고민하는 모습을 보고서야 아차 싶었다.

평소에 vue.js로 개발하면서 컴포넌트를 얼마나 작게 쪼개야 하나를 두고 자주 고민했었는데 같은 맥락이지 싶었다.

이 고민에 대한 답은 하나의 컴포넌트에서 시작한 뒤에 필요에 따라 쪼개어 가자로 내렸는데 기능 구현에 대한 고민은 반대였다.

주어진 기능 요구사항을 만족하는 데 필요한 기능들을 고민한 후에 기능 목록 체크리스트를 작성하였다.

고민을 충분히 한 후에 기능 목록을 작성하니 어떤 순서로 코드를 작성하면 좋을지 큰 그림이 그려졌고

코드 작성에 드는 시간이 오히려 단축되었다.

또 커밋 단위가 작아지니까 리팩토링을 위해 코드를 읽을 때도 가독성이 좋아 훨씬 수월했다.

 

 

코드 작성을 시작하면서 고민한 부분은 변수와 함수 네이밍에 대한 부분이었다.

많지 않은 협업 경험 중에서도 프론트엔드 개발자끼리의 협업 경험은 없어서 내가 작성한 코드는 대부분 나를 위한 코드였고

직관적인 이름을 지어보겠다고 고민은 했지만 당장 주어진 기능 구현에 더 많은 시간을 투자 했던 것 같다.

이번 프리코스에서는 복수형을 붙일지 말지, 약어를 쓸지 말지, 단어 순서는 어떻게 할지 등 가독성 좋은 이름을 짓기 위해 많이 고민했는데 그중에서도 가장 고민한 변수명은 바로 i였다. 반복문과 인덱스를 많이 사용하다 보니 i, j, k, l, m 까지 사용 하는 일이 있었는데

이러한 이름을 사용해도 되는가였다.

 

검색도 해보고 고민해 본 결론은 그대로 쓰자는 것이었다. 해당 변수가 유효한 범위가 좁고 누가 봐도 인덱스로 사용하고자 함을 알 수 있다면 굳이 인덱스 변수를 길게 지을 필요가 없다고 생각했다. 효율적으로 하고자 하는 일에 구별할 필요가 없는 이름에 대해 고민을 하는 것은 불필요하다. 지금 와서 드는 생각은 슬랙 커뮤니티에 질문해 볼 걸이다. 간단한 질문엔 나도 용기 내 의견을 남겼었고 여기야말로 어떤 질문이든 허용되는 공간인데 다음 미션부터는 마음껏 이야기 나눠봐야겠다는 생각이다.

 

 

마지막으로 테스트 코드는 이번에 처음으로 사용해봤는데

몇 줄의 코드로 효율적이고 정확하게 체크할 수 있는 부분을 여태껏 브라우저에서 직접 일일이 테스트해왔구나 싶었다. 시간이 많이 드는 데다 놓칠 수 있는 부분도 많다. 또 기능을 다 구현하고 주어진 테스트 케이스를 실행해보면서 기능구현이 완료된 줄 알았는데 슬랙에 공유된 테스트 케이스들을 추가해서 해보니 미처 처리하지 못한 예외 사항들도 발견되었다. 기능의 요구사항을 제대로 테스트할 수 있는 테스트 코드를 작성하는 방법에 관해서도 공부해봐야겠다. 1주차인데 여태껏 프로그래밍을 혼자 하면서 고민해야지 하고 우선순위에 밀려 미뤄졌던 기능구현 외의 부분에 대한 고민을 장려하고, 서로 경쟁 상대가 아닌 배움을 주고받는 상대로 여겨지는 환경에 속하게 되니 스스로에게도 계속 질문하고 고민하고 스스로 성장하는 방법을 배우고 있다는 게 벌써 느껴져서 앞으로의 프리코스의 시간이 더욱 기대된다.