일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 도커
- 주간회고
- InnoDB 버퍼 풀
- BalancedTree
- 기능별 구조
- N+1
- DeleteAll
- 회고
- mysql
- 월간회고
- useQuery
- Blue-Green
- ci/cd
- 블로그 병행
- 계층별 구조
- 백기선 스터디
- 카카오 2차 코딩테스트
- Jenkins
- jacoco
- 메서드명
- SQL 실행순서
- 어댑티브 해시 인덱스
- useMutation
- 멀티쓰레드 프로그래밍
- B+TREE
- db
- 우테코
- java
- 프리코스
- 클래스
- Today
- Total
Haneul's Blog
[우테코 프리코스] 4주차 회고 본문
회고를 시작하기 전에 4주차 미션에 대한 간단한 설명과 해당 미션에 대한 목표에 대해서 간단하게 설명하고 넘어가겠습니다.
4주차 미션 - 다리 건너기 게임
간단한 설명
위아래 둘 중 하나의 칸만 건널 수 있는 다리를 끝까지 건너가는 게임입니다.
이 미션은 설명을 하기보단 실행 예시를 보는 것이 이해하기 쉬울 것 같아서 아래를 보면 좋을 것 같습니다.
다리 건너기 게임을 시작합니다.
다리의 길이를 입력해주세요.
3
이동할 칸을 선택해주세요. (위: U, 아래: D)
U
[ O ]
[ ]
이동할 칸을 선택해주세요. (위: U, 아래: D)
U
[ O | X ]
[ | ]
게임을 다시 시도할지 여부를 입력해주세요. (재시도: R, 종료: Q)
R
이동할 칸을 선택해주세요. (위: U, 아래: D)
U
[ O ]
[ ]
이동할 칸을 선택해주세요. (위: U, 아래: D)
D
[ O | ]
[ | O ]
이동할 칸을 선택해주세요. (위: U, 아래: D)
D
[ O | | ]
[ | O | O ]
최종 게임 결과
[ O | | ]
[ | O | O ]
게임 성공 여부: 성공
총 시도한 횟수: 2
구현 목표
- 클래스(객체)를 분리하는 연습
- 리팩터링 연습
4주차 회고
클래스(객체) 분리 고민
2,3주차 미션에서도 고민했던 부분이지만 객체지향적인 코드를 짜기 위해서는 고려하지 않을 수 없는 부분이라서 이번 미션에서도 이를 고려하여 코드를 작성하였습니다.
사실 4주차 미션에서는 이전의 미션들과는 다르게 기본적인 틀이 주어져서 처음에는 클래스 분리에 대한 고민을 약간 덜 해도 되겠다는 생각을 했었습니다. 하지만 기본적인 틀이 주어지고, 어떤 부분들은 주어진 그대로 사용해야 하고 절대 수정하면 안된다는 제약 조건이 있다보니 오히려 클래스 분리에 대한 고민을 더 많이 해야 했습니다.
특히 이전에는 제가 생각한대로 클래스를 만들었기 때문에 객체간의 상호작용을 어떻게 하면 좋을지를 떠올리기가 비교적 수월했지만, 이번에는 이미 주어져 있는 클래스를 활용하고 부족하다면 추가하여 객체들간의 상호작용을 해야 했기 때문에 바로 구현을 하기는 힘들었고 일단 주어진 클래스의 코드를 분석하고 이를 어떻게 활용하면 좋을지를 생각해야 되서 약간 까다로웠습니다.
그래도 이렇게 미션을 진행하면서 좋았던 점은 이전 미션을 진행할 때는 제가 짠 코드에 대한 의구심이 항상 있었는데, 이번 미션은 어느정도 가이드라인이 있다보니 '이런 식으로 하면 되겠구나', '이런 방법이 있었네'라는 생각이 든 부분이 많았고, 이전 미션을 진행하면서 생겼던 의문점들을 많이 해소할 수 있어서 좋았습니다.
리팩토링 연습(feat: 테스트 코드)
2~3주차 미션을 했을 때는 실제 구현을 하기 전에 최대한 머리 속으로 시뮬레이션을 돌려보고 기능 목록을 작성하고 기능 목록대로 기능을 구현했기 때문에 리팩토링할 부분이 많지가 않았습니다.
하지만 이번 미션의 구현 목표 중 하나가 '리팩토링 연습'하기였기 때문에 최대한 간단하게 기능 목록을 작성하고 나중에 리팩토링을 해보자라는 생각으로 구현을 하게 되었습니다. 그러다보니 이전에 구현을 했을 때보다는 리팩토링할 것이 많이 나왔고, 리팩토링 과정을 거치면서 얻어갈 수 있는 부분도 많았습니다.
확실히 리팩토링하는 것이 그냥 구현하는 것보다 더 어려웠지만 다행히 테스트 코드를 미리 작성해둔 덕분에 리팩토링한 코드에 대한 의심은 조금 덜 할 수 있어서 리팩토링하는 시간을 단축할 수 있었습니다.
테스트 코드를 작성하지 않았을 때 리팩토링을 하게 되면 애플리케이션을 동작 시키고 어떤 에러가 날거 같은지 생각해보고 이를 하나 하나 다 확인해봤었는데, 테스트 코드를 작성하고 리팩토링을 하게 되니까 이런 과정들을 테스트 코드를 동작 시킴으로써 쉽게 확인할 수 있게 되어서 이번에도 테스트 코드의 유용함을 많이 알 수 있었습니다.
프리코스 마무리
이번 4주차 미션을 끝으로 프리코스가 마무리 되었는데 1~4주차 미션을 하면서 저의 부족함을 많이 느낄 수 있었습니다. 사실 마음 속 한 켠에서는 '그래도 이정도면 취업할 수 있는 실력 아닌가?'라는 건방진 생각을 하기도 했었는데, 이번에 미션을 진행하면서 저의 부족함을 뼈저리게 느꼈고, 해당 주차 미션이 끝나고 다른 사람들의 코드를 봤을 때 잘하는 분들이 정말 많구나라는 것을 알게 되어 자기 자신을 객관화할 수 있어서 좋았습니다.
프리코스에 참여하신 분들 및 기회를 제공해주신 분들 모두 고생하셨습니다!
'회고 및 생각정리' 카테고리의 다른 글
[2022.11] 월간회고 (0) | 2022.11.30 |
---|---|
[우테코 프리코스] 2, 3주차 통합 회고 (0) | 2022.11.18 |
[2022-11-07] 주간 회고 (0) | 2022.11.07 |
[2022.10] 첫 월간 회고 (0) | 2022.10.29 |
[생각정리] 개발 공부를 하면서 후회되는 것과 고쳐야 할 것 (0) | 2022.10.23 |