회고

[우아한 테크코스 프리코스] 1주차 회고 - 숫자 야구 게임

코구리 2023. 10. 27. 21:07

우아한 테크코스 프리코스에 참여하게 되면서 1주차가 끝났다.

그래서 이번 미션에 대해 회고를 해보고자 한다!

 

배운점과 노력한 점

이번 미션은 숫자아구게임이었다.

요구사항을 꼼꼼히 읽고 요구사항대로 짜도록 노력했다. 

  • 미리 구현할 기능들을 정리해보니 메소드가 착착 만들어졌고 구조적으로 구현을 하려고 노력하게 되어서 신기했다.
  • 클린코드 규칙대로 들여쓰기 규칙을 1이상 가져가지 않도록 하다보니 자연스레 한 메소드에 한가지 기능만 작성할 수 있었다.

  • 변수 네이밍과 클래스 네이밍에 대해서 신경을 썼다.
    솔직히 진행중인 개인 프로젝트에서는 네이밍에 크게 신경을 안썼는데 이번에는 다른 사람들이 본다는 생각에 이름만으로 기능을 유추하기 쉽게 짓고자 노력했다.

  • 그리고 예외처리 부분도 부끄럽지만 거의 처음으로 해봤는데 별거 아니어서 좋았다.

  • 가장 많이 배운점은 Promise 이다.
    원래도 비동기에 대해 약했지만 프로젝트를 하면서 많이 극복한 부분이었다. 하지만 Promise 객체에 대해서는 이해가 부족해서 의도적으로 프로젝트에서도 사용을 안하고 공부하기를 피해왔던 부분이다. 근데 테스트코드에서 계속 실패하는 부분에 대해 원인을 파악하면서 비동기로 처리해야 하는 코드를 Promise 객체로 받아줘야 한다는 부분을 알았다. 이걸몰라서 계속해서 삽질하면서 고생했는데 해결하고 나니 정말 바보같다는 생각이 들었다. 나는 기본중에 기본도 안되어있던 것 같다.

아쉬웠던 점

  • 클래스로 작성하는 것이 익숙치 않아 메인 클래스에 모든 기능을 집어넣었다.
    이건 클래스를 분리하려고 노력했는데 어떻게 하는지 잘 모르겠고 사실 시간도 없어서 하나의 클래스에 만들었다. 메소드가 꽤 많이 나와서 클래스가 거대해졌다ㅠㅠ

  • 기능 분리를 잘 못한 것 같다.
    기능 분리를 어디까지 해야하는지 정하는 게 조금 어려웠는데 그로 인해 좀 지저분한 구조가 되어버린 것 같다. 특히 나는 메인 메소드에 아예 다른 메소드를 가져와야 하는 줄 알았는데 제이슨님 해설 강의 보니 그런 것도 아닌것 같다.

  • 테스트 코드를 작성하지 못한게 있다. 모든 기능과 예외처리 부분에 대해서 테스트 코드를 작성하는 것이 목표였는데 테스트가 통과하지 못하는 부분이 있어서 일부만 테스트를 짰다. 이건 너무 아쉬운 부분이다.

  • 요구사항대로 하지못한점
    가장 중요한게 주어진 요구사항대로 하는 것이라고 강조하셨는데 1주차에서 강조했던 기능 구현 전에 기능 목록을 정리해서 리드미에 올리라고 하신 부분을 지키지 못했다. 아니 정확히는 올리기는 했는데 기능 올릴 때 같이 올렸다 ㅠ 감점이 많이 되었을 것 같아 너무 아쉽다..

다음 주차 때 개선할 점

  • 요구사항에 충실하게 하기!!!
    이게 정말 중요하다. 그리고 '특히' 라고 강조하신 기능 나누고, 기능 단위로 커밋하는 것은 꼭 할 것을 다짐한다. 그리고 이왕이면 좀더 깔끔하게 코드를 짤 수 있도록 해봐야겠다. 메인 함수에도 print 같은 거는 작성하는 방향으로다가..
    어쨌든 받은 메일이랑 리드미를 읽고 또 읽을 것이다.

  • 클래스 잘 나누기
    클래스를 어떻게 나눠야할지 좀 막막했는데 제이슨님 강의 보고 도움이 많이 되었다. 그리고 딥다이브책도 있으니 클래스를 한번 복습하고 구글링도 활용해서 이번에는 꼭 클래스를 적절하게 잘 나누도록 해보자. 사실 객체지향 코드를 짜보자고 하고 싶지만 그렇게 자신은 없으니 클래스 나누는 거라도 꼭 제대로 해야겠다.

  • 클린코드 지향
    자바스크립트 코드 컨벤션 보면서 최대한 반영할 수 있도록 해보자! 특히 변수명 규칙!

  • 예외처리 알잘딱 확실ㄹㄹㄹㄹ!!!하게
    1주차 때 예외처리 알면서 못한 부분도 있으니 꼭 꼭 모든 예외 다 잘 처리해보자!!!
  • 테스트코드 빼먹지 말고 기능별, 예외처리별로 하기

 

느낀점

이번 미션 기간은 시험기간에 완벽하게 겹쳐버렸다. 제출일 다음날이 시험 마지막날이라서 제출일날 시험공부를 못하고 밤 12시까지 이걸 하다가 제출했고, 그덕분에 12시부터 그 과목 시험을 밤새 벼락치기하느라 너무 힘들기도 했다. 우테코 프리코스는 너무 어렵다더라, 이미 잘하는 사람만 뽑아간다더라는 말을 들었기 때문에 사실 시작 전부터 할까말까 고민도 했고 내가 과연 뽑힐 수 있을까 싶은 생각이 들었다. 심지어 지원서를 제출하고 나서도 같은 고민을 했다. 

하지만 1주차 미션을 받고 기능 목록을 고민하기 시작하자마자 아 이건 끝까지 해야겠다 싶었다. 뽑히지 않더라도 많은 것을 배워갈 수 있겠다는 생각이 들었다.(그치만 사실은 무조건 뽑히고 싶다...)

숫자야구게임 자체는 그냥 학교 과제에서도 했었던 쉬운 것이라고 생각했는데 막상 해보니 내 실력으로는 쉽지는 않았다.

일단 처음으로 구현 전에 미리 구조를 생각해보았고 클래스를 활용해서 구현을 시도했다.

그리고 원래도 테스트 코드 작성에 대해 프로젝트에 적용해보고 싶었는데 미루고 미루기만 했었다. 

근데 여기서는 테스트코드에 대해서 모르면 아예 테스트를 할수가 없고 테스트 통과를 못하면 0점이라고 하니까 강제적으로라도 테스트코드를 공부하게 되었다. 사실 해보니 별로 어려운 부분도 아닌 것 같다. 

또한 객체지향 코드, 클린 코드를 짜기 위해 노력할 수 있는 이 시간이 정말 소중한 것 같다. 이런 기회가 없으면 그동안 막연하게 생각했던 '구현능력 기르기' 라는 목표를 달성할 수 없었을 것 같다.

남은 시간 과제를 성실하게 최선을 다하고 싶다는 생각이 든다! 그럼 2주차 기능 구현 가보자고~