본문 바로가기
우테코 6기 프리코스

[우테코] 1주차 회고

by ♡˖GYURI˖♡ 2023. 10. 29.

우선 스스로에게 수고했다는 말을 하고 싶다!

이렇게 무언가에 몰입해 본 것이 처음이었다. 일주일 내내 우테코 과제만 생각할 정도로🥹

 

1주차 미션

1주차 미션은 숫자 야구였다. '그렇게 어렵지는 않은데?'라고 생각했지만 환경 설정, 요구사항 지키기 등 개발에 필요한 다른 능력들을 기르고 익숙해지기 위한 미션이란 생각이 들었다.

 

 

소감문

1주차에서 가장 아쉬운 점이 이 소감문이었다. 나는 단순히 소감만을 적었는데 다음 주차부터는 무엇을 알게 되었는지, 무엇을 느꼈는지를 더 자세히 적어야겠다는 생각이 들었다!

 

 

기능 목록

이 부분도 아쉬운 점이 많다. 사실 개발을 하며 기능 목록을 스스로 이렇게 정리해 본 것은 거의 처음이었다. 그래서인지 처음부터 감을 잡기가 어려웠다. 스터디카페에서 노트를 하나 펼쳐놓고 각 기능을 생각하고 정리하는데에만 몇 시간이 걸렸다. 어려운 기능이 아니라고 생각했음에도 말이다.  PR 리뷰를 하면서도 다른 분들이 기능 목록을 어떻게 정리하셨는지 살펴보는 것이 주 목적이었다. 그러면서 깨달은 점이 있다.

  • 각 기능별로 자세하게 쪼갤 것
  • 어느 한 클래스의 책임을 너무 크게 만들지 말 것
  • 기능의 흐름도를 정리해 볼 것
  • 각 기능목록을 만들고 목록에 있는 기능을 구현할 때마다 GitHub에 commit할 것!

이 외에도 정말 많은 점을 배웠다. 커밋 메시지 작성법이라던가... 다음 주차부터는 이런 점들을 꼭 지켜가며 미션을 수행해 나가야겠다!

 

 

PR 리뷰

처음 든 생각은 '내가 어떻게 남의 코드를 리뷰하지? 난 아는 게 없는데?' 였다.

그러던 차에 디스코드 커뮤니티에 올라온 수많은 PR 리뷰 방법에 관한 글들을 둘러보며 방법을 익혀나갔다. 

내가 생각했던 것보다 PR 리뷰의 힘은 컸다! 내가 리뷰를 받는 것도, 다른 분들께 리뷰글을 남기는 것도 너무 즐거웠기 때문이다. 같이 공부한다는 것이 이런거구나 하고 느끼기도 하였다. 

 

내가 받은 리뷰들이다.

public 메서드를 위로 올리고 private 메서드는 밑으로 내리는건 어떤가요?
코드를 읽을 때 큰 흐름인 public 메서드 먼저 읽으면 가독성이 좋아진다고 생각해서요
validate 대신 validateBallList 로 메서드 명을 변경하고 주석을 제거하는건 어떨까요?
다른 코드들을 보면 주석 없이도 코드를 읽기 쉽게 메서드명을 잘 작성하신것 같아요!
저는 Set 에서 List로 변경하여 생성하려다 순서가 섞이지 않아 if문을 사용해서 중복제거를 했는데 List를 Set으로 바꾸는 방법은 좋은 방법이네요..
Game 클래스가 다양한 책임을 가지고 있는것 같아요.
출력 메서드의 경우 클래스 분리를 해보는 것은 어떨까요?
한 클래스에 책임이 너무 많은 것 같습니다.
클래스와 메서드의 책임과 역할에 대해 알아보시면 좋을 것 같습니다!
자바 라이브러리를 재정의해서 사용하신 이유가 있나요?? 기능에 변화가 없다면 기존 라이브러리를 쓰는 것이 가독성이 좋을 것 같아요
저는 Set 에서 List로 변경하여 생성하려다 순서가 섞이지 않아 if문을 사용해서 중복제거를 했는데 List를 Set으로 바꾸는 방법은 좋은 방법이네요..
중복되지 않게 ballList를 생성하셨는데 위에 중복검사를 하는 이유가 없지 않나요..?
객체 생성자는 다른 생성자가 없다면 자동으로 비어있는 생성자를 생성해주기 때문에 해당 비어있는 생성자를 생략해도 될 것 같아요!
불변 변수를 명시해두시는 것도 좋고 Ball과 Strike를 관리하는 객체를 쓰신 방법이 좋은 것 같습니다! 저도 관리하는 객체를 생성하는 것이 좋았을 것 같네요..
취향의 영역일 것 같지만, 개인적인 의견 드리자면 단순히 하나의 print문만 존재할 경우 해당 코드만으로도 가독성은 충분히 좋다고 생각합니다. 메서드를 따로 분리하신 이유가 있으실까요?
원래 Collection에서 동일 함수를 제공함에도 따로 메서드를 구현하신 이유가 있으실까요?
Collection마다 편리한 API를 다양하게 제공하니 잘 알아두시면 많이 편할거에요!!
비교 대상이 ball 객체인지 확인하는 단계가 있으면 더 좋을 것 같습니다.
instanceof 를 사용해서 확인할 수 있을 것 같아요.
null 을 직접 사용하는 것 보단, ballList 가 비었는지 확인하는 함수를 만들고 do-while 문을 활용하는게 좋을것 같다는 생각을 했습니다.
null은 위험한 친구여서 이렇게 다루면 어디로 튈지 모른다 생각해서요!
for문 안에 조건에 맞으면 strike나 ball이 증가하는 비슷한 로직을 메서드를 따로 분리해보는 것도 한번 고민해보는건 어떨까요?

 

전부 읽어보고 적용해나갈 생각에 너무 신이 난다! 좋은 리뷰를 남겨주신 스터디원분들께 감동...❤️

다른 분들의 코드를 보면서도 많은 공부가 되었다. 내가 전혀 생각하지 못했던 방법이라던가, 아주 다른 함수를 사용하셨다던가... 하나하나 알아가며 가슴이 벅찼다. 처음에 겁을 먹었던 것이 무색할 정도로 정말 즐겁게 해나간 것 같다.

 

[숫자 야구 게임] 임규리 미션 제출합니다. by IM-GYURI · Pull Request #1573 · woowacourse-precourse/java-basebal

 

github.com

 

 

 

스스로에게 하는 피드백

  1. 남들과 비교하며 움츠러들지 말 것! 나는 나의 공부를 한다!
  2. MVC 패턴에 대해 알아보자!
  3. 예외 테스트에 대해 고민해보자!
  4. 다른 사람들이 보기에도 쉽고 깔끔한 코드를 작성해보자!
  5. 책임을 분리해보자!
  6. 프리코스 과정에 몰입하고 즐기자!

 

 

우테코 프리코스에 참여하기를 정말 잘했다는 생각이 든다. 앞으로 내가 어떻게 성장해 나갈지가 기대된다!