주말에 블랙잭 미션 하느라 운동도 못 가고 블랙잭 끝나자마자 바로 체스 미션을 돌입해서 숨 막히는 한 주였다.

그래도 주드랑 원활하게 페어프로그래밍이 진행되어서 체스 미션을 빨리 끝낼 수 있었다.

한 가지 걸림돌이 있었다면 맥으로 진행한 첫 페어프로그래밍이었고 나는 맥의 단축키를 잘 몰라서 주드가 좀 답답했을지도 모른다.

그래도 친절하게 물어보면 다 알려줘서 금방 적응할 수 있었다.

체스 미션에서의 고민

Pawn은 검정색이면 아래로 움직이고, 흰색이면 위로 움직인다.

지나가던 어떤 아저씨가 그렇다면 BlackPawnWhitePawn을 나누는 것이 객체지향적이지 않냐고 했다.

Pawn의 상태는 흰색 또는 검정색인 Color이고 상태에 따라 움직임이 달라지는 것이기 때문에 하나의 Pawn에서 담당하는 것이 맞지 않나...? 라는 생각을 했으나, 서로 다른 역할들이 계속 생긴다면 감당할 수 없을 것이다. Pawn을 분리하는 것도 고려해 보자.


프로모션, 앙파상과 같은 행동을 구현한다고 했을 때 설계가 바뀌어야 할까?

프로모션

  • 위치에 따라서 Piece의 인스턴스인 Pawn이 다른 Piece의 구현체로 바뀐다.

앙파상

  • 위치와 몇 번째로 움직였는지에 따라서 Pawn의 행동이 바뀐다.

위치는 파라미터로 받으면 해결 가능하고, 몇 번째로 움직였는지는 Pawn이 가지고 있어야 할 것 같다.

'회고 > 우아한테크코스' 카테고리의 다른 글

2023.03.20 일일 회고  (0) 2023.03.21
[레벨 1] 사다리 미션 회고  (0) 2023.03.20
2023.03.15 일일 회고  (0) 2023.03.16
2023.03.14 일일 회고  (0) 2023.03.15
2023.03.13 일일 회고  (0) 2023.03.14

+ Recent posts