https://github.com/nbalance97/java-blackjack/tree/step1
Lv 1의 세번째 미션은 블랙잭이었다. 블랙잭 또한 다른 미션들과 마찬가지로 1단계는 페어 프로그래밍으로 진행하였다. 페어나 본인이나 블랙잭 게임에 대해서 문외한이라 블랙잭 게임이 뭔지 알아보는데만 상당한 시간이 걸렸던 걸로 기억한다 😅
코드 구현을 하면서 기억에 남던 부분은 수업때 들었던 함수형 인터페이스를 너무 사용해보고 싶어서 결과를 구하는 부분에 직접 사용해 보았던 경험이었다😊
유저와 딜러의 정보를 받아서 승/무/패를 구하도록 처음 시도해 보았는데 생각보다 잘 되서 좋았다😊
맹점이라면 뒤늦게 사람들의 이야기를 들어보니 블랙잭 승리는 조건이 조금 더 있다고 하더라..
피드백 및 리팩토링
받은 피드백 중 가장 기억에 남는 피드백은 게임 결과 부분이다.
기존까지는 OutputView에서 도메인에 직접 접근해서 출력을 해주도록 코드를 작성했었는데, 해당 부분에 대해서 리뷰어 던의 피드백을 받았다.😀
피드백에 따라 기존에 Users, Delaer, Deck을 모두 가지고 있는 구조를 BlackJack이라는 클래스로 빼고, 처음으로 View에서 사용하기 위한 클래스를 만들어서 진행하였다.
출력을 위해서 필요한 데이터는 유저의 이름과 카드의 정보, 카드의 합계 총 3개의 데이터가 필요하여서 3개의 데이터를 담고있는 DistributeResult 클래스를 만들어서 View에 전달하였다.
이러한 구조로 코드를 작성하니 기존에 Controller이 비대하던 문제점을 해결할 수 있었다😄
또한, 기존 View에서는 도메인에 직접 접근해서 게임 결과를 출력해주어야 했는데, 이러한 방식으로 구성하니 View에서는 도메인에게 직접 요청할 필요 없이 결과만을 전달받아서 출력할 수 있게 되었다🦝
전체적으로 블랙잭 1단계에서는 View에 데이터를 어떻게 전달해야 할 지에 초점을 맞추어서 고민을 많이 했던 것 같고, 실제로 코드가 더 명확해지는 경험을 해서 좋았다😏
'활동 > 우아한 테크코스' 카테고리의 다른 글
[ Lv 1 ] 체스 미션 1,2,3단계 (0) | 2022.04.16 |
---|---|
[ Lv 1 ] 블랙잭 미션 2단계 후기 (0) | 2022.04.15 |
[ Lv 1 ] 로또 미션 2단계 후기 (0) | 2022.03.14 |
[ Lv 1 ] 로또 미션 1단계 후기 (0) | 2022.03.03 |
[ Lv 1 ] 자동차 경주 구현 2단계 후기 (0) | 2022.02.21 |