우아한 테크코스 5기 프리코스 1주차 후기

POII·2022년 11월 2일
0

한 줄 평부터

내가 얼마나 부족한 지 알 수 있었다..


신경썼던 영역별로 느낀 점 !

클린코드

사실 처음부터 끝까지 클린코드를 지향하며 코딩을 한 것은 처음인 것 같다. 시간복잡도, 공간복잡도 정도만 생각해도 머리가 깨질 것 같다는 핑계로 코드 리팩토링은 항상 내가 알아볼 정도로만 했었다..
그렇게 하니 당장 내가 짠 코드를 3일만 있다가 봐도 무슨 코드인지 이해하는지 엄청 오래 걸렸었다.

하지만 이번 프리코스는 이 부분에 대해 시작부터 엄~청 강조하고 있기 때문에 나도 한 번 클린코드를 짜보자 하는 마음으로 열심히 리팩토링 했다.

코드 컨벤션은

https://myeonguni.tistory.com/1596

를 참고해서 지키려고 노력했다. 클래스 이름, 메소드 이름 규칙부터 세로 공백, 가로 공백같은 작은 부분도 나름 철저하게 지켜가며 코딩했다.

나중에 알게 된 건데 intelliJ에는 xml형태로 코드 스타일을 import하여 사용할 수 있는 기능이 있다..!! preference -> Editor -> Code Style -> Scheme 옆 톱니바퀴 -> import scheme 로 사용 가능하다.

기능적인 면에서는 하나의 메소드는 하나의 기능만 가져야한다 는 규칙을 제일 신경 썼던 것 같다. 그러다보니 코드의 depth 자체가 자연스레 작아지게 되었다.
사실 그 외에 객체지향적인 원칙들(SOLID 같은)은 잘 모르기도 해서 내가 잘 지켰는지, 아닌지에 대한 판단조차 잘 서지 않는다.. 조만간 다시 한 번 깔끔하게 정리해서 올려야겠다.

성능

기본적으로 1주차 미션은 쉬운 코딩테스트 문제 형식이어서 그런지, 성능에 대한 부분에 제일 먼저 눈이 가긴 했다.

문자열의 변환이 많이 일어나면 String 대신 StringBuilder를 사용한다던지, 데이터에 대한 전처리로 긴 배열에 대한 탐색횟수를 줄인다던지 하는 방법으로 성능을 개선했다.

사실 이번 미션은 입력 크기 자체가 크지 않아 성능적인 부분은 크게 신경쓰지 않아도 됐을지도 모른다.

몇 번이나 강조했던 유지보수하기 좋은 코드, 클린코드에 대한 부분에 더 신경 쓸 수 있게 배려해 준 것이 아닌가 싶다.

커밋 형식

이번 미션은 깃 허브 PR을 통해 과제를 제출하는 형식이기 때문에 커밋 로그가 그대로 남게된다.
또한 요구사항에 기능 단위로 커밋해달라는 말이 있어 기능을 잘 나누는 것도 중요했다. 어찌보면 클린코드와 연관되는 부분이 많다.

기능을 잘게 쪼게 작은 기능별로 테스트, 커밋을 반복하니 그렇게 하지 않은 경우보다 재활용, 수정하기 간편해지는 것을 느꼈다.

커밋 메시지도 github commit convention 을 지키려고 노력했다.

링크 :
https://gist.github.com/stephenparish/9941e89d80e2bc58a153


1주차 종료 후 느낀 점

1주차가 종료되고 참가자들끼리 서로 의견을 교환할 수 있는 커뮤니티가 github discussion으로 오픈됐다. 여기서 다른 분들의 코드를 조금 봤는데 정말 충격이었다.

어떻게보면 정말 간단한 문제풀이 미션이었는데 이런 것들에서조차 이 정도 차이가 날 줄은 몰랐다. 프로그램의 성능적인 면은 물론이고, 클래스/기능 분리, 커밋 메시지 작성 등 모든 부분에서 내 부족함을 느낄 수 있었다.

이런 실력으로 다른 분의 코드 리뷰를 하는 것 자체가 실례인 것 같다는 생각이 들 정도였다. 그래서 조용히 구경만 했다ㅠ

정말 갈 길이 멀다...

이렇게 써놓고 보니 그냥 나에 대한 실망만 한 것 같지만, 사실 그 만큼 의미있는 한 주 였다고 생각한다. 혼자 성장하는데에는 확실히 한계가 있다고 최근 느끼고 있는 만큼 이런 기회를 최대한 활용하고 싶다.

남은 3주도 의미있는 시간을 보낼 수 있도록 열심히 해봐야겠다.

profile
https://github.com/poi1649/learning

2개의 댓글

comment-user-thumbnail
2022년 11월 4일

잘보고갑니다!

1개의 답글