⭐️ 들어가는 말
우아한테크코스 레벨1의 세번째 미션은 사다리 타기 미션이다.
이번 미션의 목표는 클린 코드다.
클린 코드란 무엇일까??
내가 생각하는 클린 코드란 읽기 쉽고, 이해하기 쉬우며, 수정하기 쉬운 코드라고 생각한다.
이번 미션을 진행하면서 중점을 뒀던 부분은 다음과 같다.
- 명확한 이름 사용
- 간결함
- 재사용성
- 테스트 가능성
- 일관성
리뷰를 받으면서 코드가 좀 지저분해지긴 했지만 나름 지켰다고 생각한다.
이번 미션에서 아쉬운 점은 1차 리뷰에 대해서 제출 시간을 넘겨서 받지를 못했다. 빠르게 2차를 구현하고 리뷰를 받자는 마음에 너무 급하게 구현한 것도 조금 문제였던 것 같다. 개인적으로 생각할 시간을 너무 갖지 않았다.
물론 그 시간에 "오브젝트"라는 엄청난 책을 읽어서 많은 지식을 얻기는 했다.
⭐️ 도메인 지식
이번 미션은 블랙잭이라는 카드 게임을 바탕으로 만드는 것이었다.
미션 설명에서 블랙잭의 구체적인 룰을 적어주지 않아서 페어와 규칙에 대해서 많이 찾아봤던 기억이 있다.
아마 현업에서도 마찬가지로 도메인 지식이 없으면 스스로 찾아서 지식을 얻어야해서 좋은 경험이었던 것 같다.
⭐️ 상태 패턴
간간히 게임을 만드는 사람들의 코드를 봤어서 상태 패턴이 조금 익숙하다.
블랙잭을 상태 패턴으로 만들 수 있다고 생각은 했지만 디자인 패턴을 안쓰고 개발하기로 페어와 정했다.
모두 개발한 후 생각보다 복잡하지 않아서 상태 패턴이 꼭 필요한가 싶다.
그리고 특정 상태가 뭔지 알기 위해서는 isBlackjack, isBust, isStand 등이 필요했다. 네오의 2차 피드백을 보면 알 수 있을 것 같았는데 그 내용은 피드백에 들어가지 않았다. 어쩔 수 없이 써야할라나?
이번 미션에서는 굳이 상태 패턴을 사용하지 않아도 될 것 같지만
만약 상태의 개수가 늘어날 경우 확장이 쉬워서 좋을 것 같기도 하다.
⭐️ 캐싱
로또 미션을 진행하면서 캐싱에 대해서 이미 알고 있었다.
카드의 경우에도 총 52장이라 캐싱을 할까 생각했다.
하지만 단판 게임이고, 덱도 1개만 사용하기 때문에 처음에는 캐싱하지 않았다.
네오의 1차 피드백에 점수를 원시 값 포장하는 내용이 있었다.
다른 크루가 그 부분을 보고 점수도 31점까지만 나오니 캐싱을 했다.
나는 그 부분이 인상적이서 내 코드에도 캐싱을 추가했다.
이 정도 규모에서는 성능상 이점이 그렇게 크지 않겠지만 사용해 보는 경험을 가져서 좋았던 것 같다.
⭐️ 소프트 스킬
이번 미션에서 리뷰 요청을 할 때 내가 하지 않은 부분에 대한 설명을 다음과 같이 구체적으로 적었다.
- 내가 하지 않은 부분
- 하지 않았을 경우 단점
- 했을 경우의 단점
- 해결할 수 있는 방법
- 하지 않은 이유
또한 내가 궁금했던 부분에 대해서 다양한 경우를 예로 들고, 장단점을 적었다.
예를 들어, 아래와 같이 경우를 적고, 해당하는 장단점을 적은 후 리뷰어의 의견을 물어봤다.
플레이어를 상속 받은 딜러
행동에 관련된 인터페이스 생성
행동에 대한 클래스를 만들고 딜러와 플레이어에서 조합해서 사용
추상클래스를 상속 받은 플레이어와 딜러
이 2가지 방법을 통해 리뷰어에게 내 생각을 구체적으로 전달할 수 있었고, 피드백 또한 빠르게 받을 수 있었다.
⭐️ 끝내며
미션이 그렇게 바쁘지는 않은데 책을 읽는다고 블로그 글을 쓰는 것을 자꾸 미루는 것 같다. 블로그 글을 쓴다고 해도 너무 대충 쓰는 것 같다.
반성합니다...
다음은 체스 미션이다.
오브젝트에 정말 좋은 내용이 많아서 체스 미션에 적용할 생각에 벌써 두근두근하다.
우아한테크코스 생활도 벌써 한달째인데 파이팅해봐야겠다.
내가 작성한 코드는 링크에서 확인할 수 있다.
블랙잭 코드
'우아한테크코스 6기 백엔드' 카테고리의 다른 글
[우아한테크코스 6기 백엔드] 방탈출 예약 관리 회고 (0) | 2024.12.19 |
---|---|
[우아한테크코스 6기 백엔드] 체스 회고 (0) | 2024.12.19 |
[우아한테크코스 6기 백엔드] 사다리 타기 회고 (0) | 2024.12.19 |
[우아한테크코스 6기 백엔드] 자동차 경주 회고 (1) | 2024.12.19 |
[우아한테크코스 6기 백엔드] 최종 합격 후기 (4) | 2024.12.19 |