[우테코] 7기 프리코스 1주차 회고 🌳

고쥐·2024년 10월 23일

1주차 과제 진행 결과물

1주차 미션 : 문자열 덧셈 계산기 PR링크
🤩 코드리뷰는 늘 감사히 받겠습니다 🤩

진행하기 전

이번 7기도 1주차는 '숫자 야구 게임'이 출제되려나 생각하고 있었는데 아예 다른 주제가 주어졌다. 새로운 마음으로 새로운 문제에 도전해보게 되어 차라리 잘 됐다 싶었고, 기대하며 과제 진행을 위한 세팅을 시작했다.

지난 기수에서 node 버젼을 미션에 맞게 세팅해본 경험이 있었던 덕분에 이번에는 그리 오래 헤메이지 않아도 되었다! 하지만 JavaScript Style Guide가 작성되어있는 Airbnb 문서가 무지막지하게 길고 영어로 되어있어서 이걸 읽는데 더 시간을 썼던 것 같다. 그래도 다행히 번역본 링크를 찾아서 조금 더 수월하게 읽을 수 있었고, 확실히 도움이 될 만한 문서라 여기에도 적어두고 필요할 때마다 참고하려고 한다.

https://github.com/ParkSB/javascript-style-guide

진행하면서 느낀점, 배운점

1) 미션을 위한 초기 세팅 후, 무엇을 먼저 시작할까 고민하다가 'README에 구현할 기능을 작성'하는 게 좋겠다고 생각해서 깃 컨벤션 문서를 참고해 커밋했다.
기능을 대략적으로 정리하고 시작하니, 신기하게도 머릿속에 흐름이 잡혔다. 그동안은 조급한 마음에 빨리 구현하려고 무작정 코드를 작성하고, 안 되면 지우고 다시 하는 식으로 공부했는데, 초반에 틀을 명확하게 잡는 게 더 효율적인 방법임을 깨달았다. (물론 그렇다고 과제가 쉬웠던 건 아니다 😇)
구현 전에 '어떤 기능을 구현할지, 어떤 흐름을 가질지'를 정리하고 시작하는 게 중요하다는 것을 직접 느끼며, 우아한테크코스의 요지를 단번에 이해한 순간이었다.

2) 미션 초반까진 꽤 수월하게 진행할 수 있을 거라 생각했는데, 막상 시작하고 보니 고려해야 할 예외 상황이 너무 많았다. 특히 커스텀 구분자를 어떻게 처리할지 고민하는 데 가장 많은 시간을 썼다. 예를 들어, '//:::\n2:::2:::2'가 입력된다면? 혹은 '////:\n\n2//:\n2//:\n2' 같은 경우도 구분자로 처리해야 할까? 이런 고민이 꼬리에 꼬리를 물었다.
그리고 중간에 어이없는 실수를 하기도 했다. 기본 구분자를 처리하는 함수를 만들고 테스트하는데, 입력한 값이 계속 '올바르지 않은 입력값'으로 처리됐다. 알고 보니 기본 구분자로 주어진 ':'가 아닌 ';'를 넣어서 테스트하고 있었던 거다. 이 경험 덕분에 다시 한 번 꼼꼼히 확인하는 습관을 길러야겠다고 다짐했다.

3) 이번 프리코스 목표로 두었던 '각 기능별 커밋하기'를 실행하기 위해 함수를 쪼개기 시작했다. 이 부분도 많은 시간을 투자한 부분 중 top2에 든다. 아무래도 기능별로 함수를 나누고 값을 받아 변수에 할당해서 사용하는 식으로 진행하다보니 return 처리가 번거롭게 느껴졌다. 게다가 함수형 프로그래밍만 주로 해왔던 나에게는 Class와 constructor를 사용해 전역변수를 두어야했던 부분이 조금 낯설었다. 그냥 App 클래스 안에 모두 넣어둘까 고민하기도 했지만, 한 번 분리하기 시작한 이상 끝을 봐야겠다는 생각에 포기하지는 않았다! 이 과정에서 전역 변수와 지역 변수가 어디까지 영향을 미치는지 아직 잘 모른다는 걸 깨달았다. 또, 단항 연산자 사용법을 배우고 적용하면서 if 문으로 처리하던 코드를 훨씬 간결하게 만들 수 있어 뿌듯했다.

다음 과제 목표

  • 다른 사람들과 코드리뷰 주고 받기 🔥
profile
미래의 고쥐를 위한 아하모먼트 기록 🥔

0개의 댓글