hayou
dev5min read0

[우테코] 프론트엔드 프리코스 2주차 후기

[우테코] 프론트엔드 프리코스 2주차 후기

미션을 진행하며 느낀 점 🙋‍♂️

조금은 가벼웠던(?) 1주차 온보딩을 마무리하고 드디어 2주차 숫자 야구 게임을 진행했습니다. 기존에 한 번 풀어봤던 문제라 로직을 짜는 것은 어렵지 않았으나, 비동기적 프로그램을 동기적으로 작동하게 만드는 과정이 매우 험난했습니다. 처음으로 접한 C언어는 절차지향적 언어였고, 이후 python 언어 또한 동기적 프로그래밍만을 다뤄봤기에 비동기적 프로그래밍은 조금 이해하기 어려운 패러다임이었습니다. console에서 입력도 받지 않고 빈 값이 출력되는 경우도 있었고, 게임이 종료되었는데도 계속 실행되는 등 해당 패러다임와 관련된 많은 시행착오가 있었습니다. 덕분에 미션을 진행하며 Javascript의 비동기적 특성을 이해하고 콜백 함수와 Promise 객체, 그리고 async/await 문법 활용 등 비동기 프로그램을 동기적으로 실행하는 방식에 대해 배울 수 있었습니다.

또한 2주차는 1주차와 달리 엄격히 코드 및 커밋 컨벤션을 제한하였습니다. 그 과정에서 반복문과 제어문을 최대한 줄이고, 하드코딩을 지양했습니다. Javascript의 내장 method를 활용하려고 노력했으며 가장 작은 단위로 함수를 만드려고 노력했습니다. README를 작성하고 수정하는데 더 많은 시간을 투자했으며 커밋 한번 한번이 의미있는 커밋으로 남기 위해 기능 단위별 커밋 시행을 지키려했습니다.

기능 구현이 완료된 이후 테스트 코드를 통과하지 못해 정말 많은 시간을 쏟았습니다. 문제의 종료 조건을 잘못 이해해 불필요한 기능이 1줄 추가되어 있었고, 다른 분의 코드 리뷰를 통해 해당 오류를 잡아낼 수 있었습니다. 이 과정에서 다양한 시각의 필요성을 뼈저리게 느낄 수 있었습니다.

마지막으로 아쉽게도 해당 오류를 잡느라 너무 많은 시간을 소비해 리팩토링 및 다양한 케이스의 테스트를 실행해볼 수 없었습니다. 3주차부터는 테스팅과 리팩토링을 할 수 있는 시간을 확보할 수 있도록 노력하겠습니다.

배운 점 👨‍💻

  • 동기적 프로그래밍을 위한 문법
    • Prmoise 객체 활용
    • async/await 활용
  • 다양한 Javascript 기본 내장 method 활용
    • array method 활용(map, forEach, filter, ...)
    • string method 활용(split, splice, ...)

아쉬운 점 🤦‍♂️

  • Class 활용
    • module의 활용이 안되어(못해서?) 코드 세분화에 어려움이 있었다. 결국에는 수많은 function들의 향연... 가독성 0.
    • 객체 지향적 프로그래밍을 통해 더 가독성 있고 추상화된 코드 작성을 해보자.
  • Refactoring
    • 이번 미션에는 '어떤 코드가 더 클린한/효율적인 코드인가'에 대한 고민을 담지 못했다.
    • 더 많은 시간 쏟기.
  • 불필요한 console.log 작성
    • 급하게 제출하느라 마지막으로 넣어놨던 console log를 깜빡 잊고 지우지 못했다.
    • PR 전 체크리스트 꼼꼼히 확인하기

앞으로의 목표 🏃‍♂️

  1. Javascript Object에 대한 이해도 높이기
  2. 가독성 높은 소스 작성
  3. 코딩 컨벤션 및 커밋 컨벤션 정확하게 지키기
  4. 최종 제출 전 PR 체크리스트 확인
share

comments

loading…