재미있는 것은 프리코스가 지날수록 제출하는 사람들이 줄어든다는 것이다.
이게 가시적으로 보이는데,
2주차 포크는 670명, 풀리퀘스트는 580명대이다.
이건 매주 반복되어 점점 줄어들게 된다.
2주차는 미션야구이다.
우리가 어릴때 해보았던 그 종이야구게임이다.
숫자를 3개 정하고,
서로 숫자를 불러가며 일치하는대로
"볼"과 "스트라이크"를 말하는 게임이다.
여기서 어려웠던 점은 readLine인데, 나는 콜백함수를 처음 알았다.
정말...정말.. 골치 아팠다..
뭐만 하면 코드가 죽어버렸다... 후.. 어떻게든 콜백 안에 넣었는데,
결국 내가 만든건 콜백지옥이 아닌가라는 생각도 들었다...
어찌되었든 구현은 했으니 제출하였다.
이 이상은 할 수 없었다고 자위해본다..
* 2주치 배운점
1. 환경설정
- prettier
> 혼자 코드를 짜는 것이 익숙하다보니 습관적으로 띄어쓰기를 하거나 내 눈에만 좋게 짜곤 했는데, 이런 부분이 수정되니 확실히 가독성이 좋아짐
> 다른 사람의 코드와 내 코드가 합쳐지며 생길 수 있는 혼란을 미연에 방지해줄 수 있다고 느낌
- 마크다운
> 처음에는 .md가 메모장 같은 파일으로 알았음
> 그보다 더 직관적으로 내용을 정리할 수 있고, 활용도가 높다는 것을 알게됨
2. 테스트
- 늘상 문제를 받고 이를 해결하기 위한 코드를 짰기 때문에 테스트를 위한 js를 만든다는 접근이 새로웠음
- 매번 주먹구구식으로 백준 방식을 이용해 문자열로 받아 테스트를 했었는데, 이는 배열 같이 문자열이 아닌 형태를 받는 것이 어렵다는 등 한계가 있었음
- 직접 테스트 코드를 만들어 검증하는 방법을 배워 더 복잡한 함수들을 각자 테스트할 수 있게 되었음
3. 기능 수행
- 클래스
> 클래스를 알고는 있었지만 직접 처음부터 만들어본 경험이 처음이었음
> 클래스 내에 여러곳에 사용해야하는 변수나 함수를 this.를 사용하여 오류와 불필요한 코드를 줄일 수 있었음
- 비동기방식
> 가장 오래 시간을 쏟은 부분이 readline(주어진 질문을 화면에 출력하고, 사용자가 답변을 입력할 때까지 기다린 다음 입력된 답변을 인수로 전달하는 콜백 함수를 호출)함수였음
> 코드를 순서대로 짜고 실행을 시켰을때, user가 숫자를 입력하기 전에 undefined로 답이되어 오류가 발생했음. 함수 내에서는 작동하던 것이 밖에 나오면 작동이 되지 않음을 알고, 이후 진행을 함수 내에서 할 수 있도록 수정함
> 해당 현상이 콜백함수를 호출하기 때문임을 알았고 관련하여 비동기방식이라는 개념을 알게 됨. 해당문제가 비동식 방식 중 콜백함수를 다루는 부분이라는 것을 알게되었고, 이를 위한 대안으로 promise, async await가 있다는 것을 배움
* 느낀점
- 그동안 무엇을 모르는지도 모르는채 공부하다보니 아예 새로운 것들을 배우는 것이 어려웠고, 어떤 것이 더 중요하고 좋은 건지를 몰랐다. 아직 배운 개념들을 마스터하지는 못했지만 무엇이 있는지, 무엇을 모르는지를 알게 된 점이 가장 배운 점이다.
* 아래는 내 미션 제출!
https://github.com/woowacourse-precourse/javascript-baseball/pull/10
[숫자 야구 게임] 최수현 미션 제출합니다. by chsua · Pull Request #10 · woowacourse-precourse/javascript-baseba
2주차 미션 제출합니다.
github.com
이건 내가 공부하며 참고했던 사이트/개념들이다
- ESLint : 자바스크립트 문법 중 에러가 있는 곳에 표시를 달아놓는 도구 (https://ingg.dev/eslint/)
- prettier: 개발자가 작성한 코드를 정해진 코딩 스타일을 따르도록 변환해주는 도구 (https://www.daleseo.com/js-prettier/)
- EOL(End Of Line): 최종 제출하는 코드에서 EOL을 확인한다. 환경에 따라 의도한 바와 다르게 개행 문자 처리가 되지 않도록 EOL 설정을 확인해야함.
- throw문으로 예외처리: https://velog.io/@nemo/throw
- 클래스: https://velog.io/@younoah/JS-자바스크립트-클래스와-객체-총정리
- CDN: https://www.alibabacloud.com/ko/knowledge/what-is-cdn
- Jest_기본적인 테스트 작성하기: https://www.daleseo.com/jest-basic/
- jest 사용법: https://velog.io/@modolee/jest-user-guide-04
- npm 명령어: https://www.zerocho.com/category/NodeJS/post/58285e4840a6d700184ebd87
- npm init -y 란?: https://juicyjerry.tistory.com/entry/npm-init-y-란
- 비동기함수: https://www.howdy-mj.me/javascript/async
- 프라미스와 async, await: https://ko.javascript.info/async
- 마크다운: https://gist.github.com/ihoneymon/652be052a0727ad59601
- 비동기함수 처리방법 유튜브: https://www.youtube.com/watch?v=aoQSOZfz3vQ
'2022우아한형제들_우테코' 카테고리의 다른 글
[우테코] 프리코스를 마치고 코테를 준비하며 (1) | 2022.12.21 |
---|---|
[우테코] 프리코스 4주차 (0) | 2022.12.21 |
[우테코] 프리코스 3주차 (0) | 2022.12.19 |
[우테코] 프리코스 1주차 (0) | 2022.12.19 |
[우테코] 5기 지원부터 프리코스 전까지 (0) | 2022.12.19 |