우아한테크코스

우아한테크코스 6기 안드로이드 프리코스 1주차 회고

김 안개 2023. 10. 26. 21:36

 

벌써 첫 주가 지나가고 새로운 미션이 주어졌다! 이렇게 시간이 빠를수가

 

1주차 미션은 아래와 같은 부분을 중점으로 두었기에 가벼운 미션이 주어진다고했다. (조금씩 난이도가 높아진다고함ㅠ)

1) 개발 환경 세팅
2) GitHub 에 익숙해지기

 

일단 지금 1주차 과제 마무리가된 시점에서 PR 수는 219

이제 219명이랑 싸워야하는 상황임

 

아무튼 과제 회고를 해보자고

[1] 기능 목록 작성

기능을 구현하기 전에 기능 목록을 만든다.

지금까지 프로젝트를 진행해왔지만, 먼저 기능 목록을 작성했던 적은 선인장 프로젝트 외에는 없었다.

혼자 프로젝트를 진행할때는 아예 그러지 않았다는 얘기 ..

그래서 문어발식으로 a 기능을 만들었다가 b 기능이 생각나면 b 기능을 만들었다가 다시 a 로 돌아오고 이런 식이었다.

그렇기에 기능 목록을 먼저 작성하는 것이 익숙하지 않았기에 기능 목록을 작성하는 것에 1~2일정도 소모했던 것 같다.

 

내가 작성한 기능 목록

이것도 어떻게 작성해야할지 방법을 몰라서 그냥 말머리? 를 사용했고, 나와있는 순서는 내가 생각했던 게임의 플로우를 나열했다.

나중에는 체크박스를 사용해서 하나의 기능을 구현하면 완성표시를 하는 것도 나쁘지않을 것 같다!

 

[2] 기능 구현

Application.kt 파일에 기능들을 함수로 만들어서 작성했다.

클래스를 따로 만들 생각은 들지도 않았다 .. 왜지 ..?

매번 인텔리제이에서 코틀린을 사용할때는 코딩테스트를 할 때뿐이라 그냥 fun main() 에 작성했어서 아무 생각없이 하나의 파일에 모든 함수를 때려부었다.

이번에는 300줄내의 기능이었기에 망정이었지, 그 이상의 기능 요구였으면 난 죽었겠지

이번에 하나의 파일에 다 때려넣고나니, 과제를 제출하고나서 리팩토링할때 가독성이 떨어진다는 것을 느꼈다.

함수가 어디에있는지 보이질 않았음; 숨어있는줄;

이번 2주차부터는 클래스를 사용할 예정이다!

 

메서드/변수명 고민 .. 정말 어렵다.

이번엔 챗지피티 도움을 받아보았는데 아무튼 어렵다.

 

 

게임을 시작하고 종료하는 함수이다.

이 부분에서 스트라이크가 3인 경우에 대한 처리를 진행하는데, 따로 메서드를 만들어 진행할 수 있을 것 같은데 방법이 떠오르지 않는다 ..

 

 

결과를 출력하는 함수이다!

이 부분도 원래는 if가 3뎁스나 하는 곳이었지만 .. when 으로 수정해주었다. (뿌듯)

나중에 다른 분들의 코드를 살펴보니 object 를 통해 출력을 관리하는 것을 보게되었는데 좋은 방법인 것 같다!

 

[3] 피드백

 

몇몇분의 코드리뷰를 받게되었는데 받은 피드백을 기록하고, 다음 미션에도 적용할 예정이다!

1) 상수는 const 변수를 통해 치환하자!

2) 변수/메서드명 더 직관적으로 쓰기

사실 가장 어려운 부분ㅠ 사용자에게 숫자를 입력받는건데도 random 으로 쓰고 앉아있었음;

3) 코틀린 컨벤션 정독하기

미션 제출 마지막날에 컨벤션을 보면서 적용하였는데 빠진 부분이 있었던 것 같다. 자동 포맷팅을 통해서도 반영이 안되는 부분이니 신경쓸 것!

 

[4] 느낀점

디스코드 커뮤니티를 통해 다른 지원자분들이 질문하거나 지식을 공유하는 것을 볼 수 있는데 대단한 사람들이 많아보였다. 귯잡 ..

아! 그리고 사실 테스트는 이번에 처음 접해보는거라 신기했다. 내가 놓쳤던 부분을 잡아주어서 덕분에 예외 처리를 할 수 있었다.

이래서 테스트를 작성하는거구나 싶었다 .. 

다른 사람의 코드를 정독하며 리뷰하는 것도 사실상 처음인데, 시간이 생각보다 많이 소모된다는 것을 알게되었다.

그런데 재밌고 .. 몰랐던 부분을 알게되면 감사하고 .. 내가 아는 지식에서 코멘트를 날릴 수 있다면 또 짜릿해 ..