https://github.com/nbalance97/java-blackjack/tree/step1

 

GitHub - nbalance97/java-blackjack: 블랙잭 미션 저장소

블랙잭 미션 저장소. Contribute to nbalance97/java-blackjack development by creating an account on GitHub.

github.com

 

Lv 1의 세번째 미션은 블랙잭이었다. 블랙잭 또한 다른 미션들과 마찬가지로 1단계는 페어 프로그래밍으로 진행하였다. 페어나 본인이나 블랙잭 게임에 대해서 문외한이라 블랙잭 게임이 뭔지 알아보는데만 상당한 시간이 걸렸던 걸로 기억한다 😅

 

코드 구현을 하면서 기억에 남던 부분은 수업때 들었던 함수형 인터페이스를 너무 사용해보고 싶어서 결과를 구하는 부분에 직접 사용해 보았던 경험이었다😊 

처음 써본 함수형 인터페이스

 

유저와 딜러의 정보를 받아서 승/무/패를 구하도록 처음 시도해 보았는데 생각보다 잘 되서 좋았다😊

맹점이라면 뒤늦게 사람들의 이야기를 들어보니 블랙잭 승리는 조건이 조금 더 있다고 하더라.. 


피드백 및 리팩토링


받은 피드백 중 가장 기억에 남는 피드백은 게임 결과 부분이다.

기존까지는 OutputView에서 도메인에 직접 접근해서 출력을 해주도록 코드를 작성했었는데, 해당 부분에 대해서 리뷰어 던의 피드백을 받았다.😀

 

 

피드백에 따라 기존에 Users, Delaer, Deck을 모두 가지고 있는 구조를 BlackJack이라는 클래스로 빼고, 처음으로 View에서 사용하기 위한 클래스를 만들어서 진행하였다.

 

출력을 위해서 필요한 데이터는 유저의 이름카드의 정보, 카드의 합계 총 3개의 데이터가 필요하여서 3개의 데이터를 담고있는 DistributeResult 클래스를 만들어서 View에 전달하였다.

 

이러한 구조로 코드를 작성하니 기존에 Controller이 비대하던 문제점을 해결할 수 있었다😄

 

또한, 기존 View에서는 도메인에 직접 접근해서 게임 결과를 출력해주어야 했는데, 이러한 방식으로 구성하니 View에서는 도메인에게 직접 요청할 필요 없이 결과만을 전달받아서 출력할 수 있게 되었다🦝

 

전체적으로 블랙잭 1단계에서는 View에 데이터를 어떻게 전달해야 할 지에 초점을 맞추어서 고민을 많이 했던 것 같고, 실제로 코드가 더 명확해지는 경험을 해서 좋았다😏

+ Recent posts