본문 바로가기
우아한테크코스 프리코스

우테코 6기 프리코스 1주 차 숫자야구 회고

by 준형코딩 2023. 10. 26.

들어가면서

(기존 작성하였던 글의 내용이 날라가서 다시 작성하게 되었습니다 흑흑)

 

 

1주 차에 무엇을 공부했나?

 

1. 기능명세를 잘 작성하는 방법에 대해서 알아보았습니다.

본격적으로 과제를 풀기 전에 어떤 식으로 견고하게 기능명세를 작성 해야 하는지에 대해서 고민을 많이 하였습니다. 그러다가 최근에 읽게 된 객체지향의 사실과 오해라는 책에서 복잡한 시계를 작은 부품으로 구성된 안정적인 형태의 중간 부품을 이용해서 복잡한 시계를 효율적으로 조립하는 내용을 떠올리게 되었고 이 내용을 기능명세에 적용하여 기능요구사항을 최대한 잘게 쪼개고 그것을 큰 범주로 묶어나가는 형식으로 기능명세를 작성할 수 있었습니다. 최근 자바 공부를 시작하면서 책에서 읽었던 내용이 우테코 프리코스에서 실제로 쓰이는 것을 보면서 쾌감을 느낄 수 있었던 순간이었습니다.
 

 

2. MVC 패턴에 관해서 공부하였습니다.

과제를 수행하면서 아무래도 자바에 대한 이해도가 낮은 상태였기 때문에 일단 다양한 패턴에 관해서는 조사만 해보고 하나의 클래스에서 기능을 구현해보자 라는 생각을 가지고 있었는데 MVC 패턴에 대해서 자료를 찾아보니 로직이 분리되어있지 않은 하나의 애플리케이션에서는 유지 보수하기가 굉장히 힘들어서 많은 시행착오를 거쳐 모델,뷰,컨트롤러를 분리한 MVC패턴이 나오게 되었다는 것을 알게 되었고 몇 주차가 되었든 MVC패턴은 어차피 넘어야 할 산이기 때문에 조금이라도 우테코 프리코스를 의미 있게 보내고 싶어서 MVC패턴을 과제에 도입하게 되었습니다. 패턴을 한 번도 제대로 공부를 해본 적이 없었기 때문에 개념을 잡기 위해서 다양한 자료들을 찾아보았고 특히 유튜브에 있는 우테코 선배님들의 테코톡을 많이 참고하였습니다. 처음으로 MVC패턴에 관해서 공부하고 과제에 적용을 시켜 보면서 어려움도 많았지만 모델을 설계하기 위해서 숫자 야구게임의 객체를 분석하고 설계하면서 개념만 배웠던 객체지향의 원리들을 실제로 코드로 적용해보게 되었고 이런 경험은 더욱더 자바에 대해 재미를 느끼게 해주었습니다.

 

3. 클린코드와 객체지향 5원칙 SOLID에 관해서 공부하고 적용해보고자 노력하였습니다.

이번 1주차 과제에서는 자바 프로그래밍에 대한 지식이 많이 부족한 상태에서 MVC 패턴을 도입하고자 하니 많은 어려움에 부딪히게 되었고 진도가 나가지 않아 어떻게 과제를 풀어 나아가야 할지에 대한 고민을 많이 하게 되었습니다. 그래서 일단은 코드의 퀄리티에 대해서 고민을 하지 말고 제가 할 수 있는 만큼 MVC 패턴을 통해서 최대한 과제를 구현해낸 이후에 클린코드와 객체지향 5원칙에 대해서 공부를 해서 리팩토링을 진행하자 라는 결론을 내리게 되었습니다. 결국에는 고생 끝에 MVC 패턴을 적용해서 과제 테스트를 통과할 수 있었고 그 이후로는 클린코드와 객체지향 5원칙에 대해서 공부를 하고 리팩토링을 진행하였습니다. 그러자 코드를 짜면서 이 부분이 좋은 코드일까? 라는 고민을 많이 하면서 일단은 그냥 넘어갔던 부분들이 점점 코드가 간결하고 견고해지는 것을 느꼈고 이전에는 코드 한 줄 한 줄에 자신감이 없었다면 점점 코드에 자신감이 붙기 시작하는 걸 느끼게 되었습니다. 아직 1주차를 진행하고 있어서 클린코드와 객체지향 5원칙 개념들을 완벽하게 숙지하지는 못했지만 프리코스의 과정을 성실하게 모두 끝내고 나면 제가 그토록 원하던 자신의 코드에 자신감을 가진 프로그래머가 될 수 있겠다는 생각이 들어서 매우 기뻤습니다.

 

4. 프리코스 참여 목표 중 하나였던 토론을 진행해보았습니다.

MVC 패턴에 관해서 공부하고 적용을 해보면서 MVC 패턴에서 Validation은 어디서 관리하는 것이 가장 최적의 방식일까? 라는 것에 대한 의문이 생기게 되었고 자료를 계속해서 찾아보니 전 세계의 많은 개발자가 이 부분에 대해서 명확한 정답이 없어 다양한 의견이 있다는 것을 알게 되었습니다. 그래서 프리코스를 진행하고 있는 다른 크루분들과 프리코스 커뮤니티를 통해서 이 주제로 토론을 해보면 다양한 의견을 주고받으면서 MVC 패턴에 대해서 서로 더 깊이 있게 배울 수 있겠다는 생각으로 토론글을 올리게 되었습니다. 저는 MVC 패턴에서 가장 최적의 validation 위치는 Controller라고 생각을 했으나 프리코스에 참여하고 있는 크루분들의 다양한 의견들을 보면서 이 주제에 대한 완벽한 정답은 없지만 MVC 패턴에 대해서 혼자서는 절대로 얻을 수 없는 다양한 의견을 통한 넓은 시야를 얻을 수 있게 되었습니다.

 

 

끝으로

새로운 것들을 스스로 학습하고 적용하는데 정신없는 시간을 보냈지만 깊이 있게 몰입해서 MVC 패턴과 자바에 관해 공부를 할 수 있었고 그 과정에서 힘듦보단 학습의 즐거움을 많이 느낄 수 있었습니다. 또한 기존처럼 혼자서 외롭게 공부하는 것이 아니라 프리코스 커뮤니티를 통해서 같은 고민을 하는 분들과 같이 정보도 공유하고 토론을 하다 보니 시간 가는 줄 모르고 1주일이 지나갔던 것 같습니다. 이번 1주차를 통해서 MVC 패턴이라는 산을 넘었으니 앞으로 남은 3주 동안은 자바기본기, TDD나 클린코드, 객체지향 5원칙 등등 제가 아직 많이 부족한 부분들을 열심히 학습해서 끝날 때쯤에는 더 많은 것을 얻어갈 수 있었으면 좋겠습니다. 감사합니다.

 

+ 1주 차 숫자 야구 게임 풀리퀘스트

https://github.com/woowacourse-precourse/java-baseball-6/pull/1354