[우아한 테크코스 프리코스] 3주차 회고

박세진·2023년 11월 10일
0
post-thumbnail

우아한 테크코스 프리코스

3주차 회고

3주차에는 로또 미션이었다. 2주차까지는 일단 크게 어렵지 않게 진행했다. 아직 리팩토링이나 클래스, 함수나 메서드의 역할을 작게 분리하는 작업이 서툴고 어려울 뿐이지 많이 힘들지는 않았다. 그래서 "로또 과제 만들어서 이 번호로 로또 해야지~" 이러면서 시작했는데, 정말 너무 힘들었다.

좋았던 점

클래스의 역할에 대해서 조금 더 생각해볼 수 있었다.

이번 과제에서는 Lotto 클래스가 선언이 되어 있는 상태였기 때문에 Lotto 클래스의 역할에 대해서 생각을 해보았다. 처음에는 Lotto 클래스의 역할이 로또를 구매하면 나오는 번호 한 줄일까? 이런 생각을 하게 되었다. 근데 6자리인지 유효성 검사를 하길래 입력받는 당첨번호 Lotto 클래스인가 생각하게 되었다. 하지만 조금 더 생각해보았다면 둘 다 사용할 수 있었을텐데... 미리 과제에서 분리를 해놓았기 때문에 생각해 볼 수 있었던 부분이었다.

(참고로 나는 나중에 Lotto 클래스의 역할을 구매했을 때 나오는 번호들로 다시 바꾸게 되었다... 조금 더 역할을 고민해봤더라면 이렇게 나중에 바꾸는 일은 없었을텐데...)

힘들었던 점

요구사항을 꼼꼼하게 읽어보자

분명히 요구사항을 꼼꼼하게 읽어봤다고 생각했는데 에러 처리 이후에 다시 입력받는 부분에 대한 걸 놓쳤었다. 계속 테스트가 실패하길래 디스코드 채널에 들어가서 보니, 어떤 분께서 요구사항을 꼼꼼하게 읽어봐야 된다는 대화를 보게 되었다. 그래서 요구사항을 꼼꼼하게 읽어보니 에러 메시지를 던져주고 다시 입력받을 수 있게끔 구현해야 됐다. 이런 요구사항을 뒤늦게 보고 구현해주려고 하니 생각처럼 쉽지 않았다. 정말 요구사항을 꼼꼼하게 읽어야지...

테스트가 왜 실패했는지 몰라서...

Application test가 계속 실패했다. 이렇게 계속 실패한 상태였다.

기능 테스트 부분에 있는 테스트는 계속 실패하길래... 테스트 안에 있는 내용을 바꿔보고 해봤는데 계속 실패했었다. 흑흑...

해결하는 과정에서 배열과 문자열은 테스트 에러에서 비슷하게 보인다는 얘기를 듣게 되었다. 그래서 문자열로 바꾸었더니 쉼표 뒤 공백이 없어졌고, 쉼표 뒤에 공백을 추가해주니 테스트를 통과할 수 있었다. 테스트가 실패해도 왜 실패했는지 모른다는 것은 굉장히 고통스러웠다.

배우게 된 점

상수나 에러 메시지를 분리하여 파일로 관리

2주차 회고 앞으로 바라는 점에 다른 사람들의 코드를 리뷰해보면 좋을 것 같다고 했었다. 그래서 다른 사람들이 올린 코드를 구경해보았다. 하지만... 내가 코드 리뷰할 수 있는 코드가 없었다. 내가 본 참가자들의 코드는 내가 구현한 코드보다 훨씬 잘 분리되어 있었다. 나는 입력 기능, 출력 기능 그정도만 분리했을 뿐이었는데, 상수와 에러 메시지 등을 분리하여 파일로 관리하는 경우도 보게 되었다. 파일로 관리를 하니 상수 값을 변경할 때도 편리하고, 상수값을 사용할 때도 재사용성이 좋아보였다.

앞으로 바라는 점

이제 마지막 4주차 과제밖에 안 남았다. 4주차 과제에서는 클래스(객체)를 분리하는 부분에 조금 더 중점을 두고 싶다. 클래스의 역할과 책임에 대해서 조금 더 깊게 고민을 해봐야겠다. 항상 내가 만든 클래스에는 많은 역할과 책임이 있지 않았나 싶다. (내 클래스는 어깨가 많이 무거웠겠군,,,) 3주차에는 테스트 실패로 인해 리팩토링 할 시간이 없었는데 4주차에는 리팩토링을 하고 싶다... 테스트 코드에도...!!!

그럼 남은 한 주도 화이팅~~~!!

profile
경험한 것을 기록

0개의 댓글