본문 바로가기
공부 일지

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

by 그랴 2022. 11. 14.

정신없어서 이제야 쓰는 2주차 후기!

사실 지금은 월요일 낮으로.. 3주차 미션 제출 이틀 전인데 약간의 고민들이 있어서 일단 2주차 후기를 먼저 적어보려고 한다.

 

2주차 미션은 숫자 야구 게임을 구현해보는 것이었고, 미션의 목표는 다음과 같았다.

1주차에서 학습한 것에 더해 함수를 분리하고, 각 함수별로 테스트를 작성하는 것에 익숙해지는 것

 

1주차 미션은 백준이나 프로그래머스처럼 알고리즘을 푸는 문제였기 때문에 그리 많은 요구 사항이 있지는 않았지만, 이번에는 게임을 하나 구현하는 것이다보니 요구사항이 아주 많았다. (기능 요구 사항, 프로그래밍 요구 사항, 과제 진행 요구 사항) 문서를 한번 쫙 읽고 노션에도 정리해봤지만, 이런 식의 과제가 처음이라서 조금은 막막했다. (아니 사실은 많이)

 

README.md 작성하기

나는 README를 잘 작성하지 않는데,, 미션 시작과 함께 구현할 기능들을 정리해서 업로드 하고 변경이 있을 때도 계속 써달라고 하셨다. 이 파일은 소스코드에 앞서 해당 프로젝트가 어떤 프로젝트인지 마크다운으로 작성하는 문서라고 한다. 앞으로도 프로젝트 진행 시 README.md 파일을 잘 작성하고 업데이트하는 습관을 들여야겠다.

마크다운문법 

 

기능 단위로 커밋하기

사실 이번 2주차 미션을 통해서 배운 가장 큰 것이랄까? 

커밋을 매우 자주, 그리고 자세히 할 수 있는 습관을 들여주려고 하신 것 같다. 나는 평소에 대부분 혼자 공부하고 프로젝트를 진행했기 때문에, 커밋의 단위가 그냥 그날 작업 끝날 때 그리고 큰 단위로 메시지를 남겼었다. 하지만 이번 미션을 진행하면서 기능 단위로 나누어 커밋 메시지를 작성하는 법을 배울 수 있었다. 

feat: 새로운 기능 추가
fix : 버그 수정
docs: 문서 수정
style: 코드 포맷팅
refactor: 코드 리팩터링
test: 테스트 코드
design: css

 

테스트 코드 작성하기

이번 미션에서 새롭게 요구한 것 중 하나가, 테스트 코드를 직접 작성해보는 것이었다. 사용한 라이브러리는 Jest라는 것이었는데, 이는 페이스북에서 만들어서 React와 더불어 많은 자바스크립트 개발자들로부터 좋은 반응을 얻고 있는 테스팅 라이브러리라고 한다. 테스트 코드는 다음과 같은 형식으로 작성한다.

test("테스트 설명", () => {
  expect("검증 대상").toXxx("기대 결과");
});

하지만 내가 쓴 코드의 작은 단위마다 테스트 코드를 작성하는 것은 아직 어려웠다. 조금 더 연습이 필요한 부분 같다.

 

JavaScript의 클래스 개념

이번 미션에서 새롭게 요구한 것 중 하나가, 테스트 코드를 직접 작성해보는 것이었다. 나는 자바스크립트를 처음 배울 때 냅다 웹 개발을 시작하며 배웠기 때문에 기본 문법이 정말 부족하다는 것을 알고는 있었지만 그걸 뼈저리게 느낄 수 있는 기회였다. 클래스를 잘 다룰 줄 모르는 상태였는데 과제가 클래스를 사용하여 진행되다 보니 머리가 펑 터질뻔 했다. 아래 동영상이 클래스 문법을 이해하는 데 도움이 되었다. 

 

https://www.youtube.com/watch?v=dHrI-_xq1Vo 


2주차 피드백

  1. 구현할 기능 목록 관리
    1. README.md 상세히 작성하기
    2. 너무 상세하게 작성하지는 않기 (언제든 변경될 수 있기 때문)
    3. 예외 상황도 계속 추가하며 정리하기
    4. 업데이트 하기 (살아있는 문서를 만들기)
  2. 함수
    1. 한 함수가 한 가지 기능만 담당하게 하기
    2. 함수 길이를 너무 길게 하지 않기
  3. JavaScript에서 객체를 만드는 다양한 방법을 이해하고 사용해보기
    1. 클래스 말고도 여러 가지가 있다.
    2. JavaScipt 객체 기본
  4. 테스트
    1. 테스트 작성 이유 
    2. 테스트 코드를 통해 빠른 피드백 
    3. 처음부터 큰 단위의 테스트를 만들지 않기 : 문제를 작게 나누고, 그 중 핵심 기능에 가까운 부분부터 작게 테스트를 만들어 나가기

 


나의 고민...

사실 2주차 진행하면서 나의 부족함을 많이 느꼈다. 물론 내가 웹 개발 공부를 시작한지 얼마 안 되었기 때문에 배우지 못한 것들이 많은 것도 사실이었고, 일주일을 온전히 우테코에 쏟아부을 수 없었기에 시간적으로도 부족했다. 그래서 지금 3주차도 미루고 미루다가 제출 하루 전에 아무것도 못한 상태가 되었는데, 나의 현재 수준에 맞지 않는 것을 계속 해보는 게 좋을 지 아니면 여기까지 배운 것을 토대로 실력을 다시 높여보는 게 나을 지 고민 중이다.