본문 바로가기

후기/강의 후기

[2주 차 회고] 우테코 프리코스 5기 (feat. 우아한테크코스)

728x90

-  총 4주 과정 (22.10.26 ~ 22.11.22)

-  100% 온라인 진행

-  수강료 무료

2주 차 학습일지 (22.11.03 ~ 11.09)


-  문제 1 (숫자 야구 게임)

 

 

GitHub - meena2003/java-baseball: 숫자 야구 게임 미션을 진행하는 저장소

숫자 야구 게임 미션을 진행하는 저장소. Contribute to meena2003/java-baseball development by creating an account on GitHub.

github.com

 

이번 주 미션은 '숫자 야구 게임'을 만드는 것이다! 사실 숫자 야구 게임을 한 번 만들어본 기억이 있어 내심 안심이 됐다. 하지만 시작부터 난관이었다. 왜냐하면 숫자 야구 게임을 구현하는 것보다 코드를 작성하는 순서와 형식을 지키는 것이 더 어려웠기 때문이다.

 

일단 README 문서를 작성하는 것부터 어려웠다. "기능을 구현하기 전 docs/README.md에 구현할 기능 목록을 정리해 둔다"는 요구 사항 앞에서 고민이 깊어졌다. 한 번도README 파일을 작성해 본 적도 없어서 어떤 내용을 어떻게 작성해야 할지 막막하기만 했다. '구현할 기능'을 메서드로 치환하면 결국 작성할 메서드를 쓰는 것으로 결론이 났다.

 

다음 질문으론 "어떤 기능을 구현할 것인가"였다. 처음 든 생각은 "어떻게 코드를 짜기 전에 모든 기능을 예측할 수 있지?"였다. 하나의 메서드를 동작시키려면 내부에 다른 메서드가 있는 경우가 많을 텐데 코드 작성하기 전 모든 기능들을 생각할 수 있는지 의문이었다. 이 단계부터 이미 많은 스트레스를 받았다.

 

그래도 꾸역꾸역 README 파일을 작성하고 코드를 짜기 시작했다. 여기서부터 이번 미션에서 가장 힘들었던 부분이 등장했다. 바로 '커밋'이었다. 

 

 

커밋 단위는 README 파일에 정리한 기능 목록 단위로 하라는 요구사항인데, 일단 README 파일에 정리한 기능 목록부터 제대로 작성이 되지 않았으며, 코드를 작성하면서 메서드가 추가되는 상황이 있을 땐 커밋 메시지를 어떻게 작성해야 할지 혼란스러웠다. 약간의 가이드라도 있으면 유추하면서 시도해볼 텐데 너무 막막했다. 이번 요구사항 중 인덴트를 2로 제한한 것은 여러 개의 메서드로 분리해야 한다는 의미로 받아들였다. 따라서 하나의 메서드를 완성하기 전에 새로운 메서드 생성이 필요한 상황이 많았다. 즉 하나의 기능을 깔끔하게 구현한 다음 커밋을 하는 경우가 적었다. A라는 메서드를 구현하는 과정에서 메서드 B, C가 필요하게 되고, A를 완성하지 못한 채 B와 C부터 구현하게 되니 커밋 메시지 작성 타이밍을 정하기가 무척 힘들었던 것이다.

 

그리고 단위 테스트에 대한 요구사항도 있었다. JUnit을 이용해 테스트 코드를 작성해야 했는데, 개념조차 몰라 어떻게 해야 할지 시름에 빠졌다. 이 밖에 AssertJ 등 낯선 용어가 힘들게 했다. 

 

아쉬움이 많이 남는 미션이었다. 비록 미션을 진행하는데 반영하진 못했지만, 이번에 느꼈던 어려움들은 키워드로 기록해 놓고 있다. 차근차근 하나씩 공부할 것이다.

 

2주 차를 마치면서...


2주 차 미션을 진행하면서 "내가 정말 준비가 안 돼있는구나..." 많이 느낀다. 처음 보는 낯선 용어와 개념들이 등장할수록 내가 얼마나 무지한지 깨우치고 또 깨닫는다. 사실 불쾌한 경험이다. 좋은 부트캠프에 입학하기 위한 수준에도 도달하지 못한 현실에 한숨이 나온다. 하지만 우물 안의 개구리로 내적 만족감을 느끼며 안주하는 것이 아니라, 오히려 얼마나 세상이 넓은지 볼 수 있다는 점이 다행이다. 비록 우테코 캠프엔 합격하지 못하겠지만, 이 경험을 토대로 내가 부족한 것이 무엇인지, 그동안 설정해온 학습의 방향성은 맞는지 가슴 아프게 고민할 수 있기 때문에 정말 감사한 경험이다.

 

멀리 보자. 멀리 보고 길게 보자.