객체(3)
-
[장기 미션] 회고 : 객체
미션 시작 당일 아침에 체스가 아닌 장기로 변경됐다! 객체 객체지향이란 무엇일까? 단순히는 객체를 중심으로 문제를 해결하는 방식이라고 말할 수 있다. 그렇다면 여기서 말하는 '객체'란 무엇을 의미할까? 흔히 객체는 상태와 행동을 가진 존재라고 설명되지만, 나는 조금 더 넓은 시각에서 접근하고자 한다.객체란 책임을 다하는 존재라고 생각한다. 문제를 해결하기 위해 객체들은 서로 협력하며, 이 협력 속에서 각 객체는 자신에게 주어진 역할을 수행한다. 이 역할을 수행하려면 객체는 반드시 책임을 다해야 한다. 이런 관점에서 객체는 단지 상태(데이터)와 행동(메서드)을 묶어둔 것 이상의 의미를 가진다.한 걸음 더 나아가 '상태가 없는 객체'라는 개념을 생각해 볼 수 있다. 상태가 없다는 것은 내부적으로 데이터..
2025.04.05 -
[블랙잭 미션] 회고 : Ace, Hit, SRP
ACE 블랙잭에서 ACE 카드는 특별한 존재다. 상황에 따라 1점 혹은 11점으로 점수가 달라질 수 있기 때문이다. ACE 카드의 점수 결정 책임을 어느 객체가 관리해야할까?ACE의 점수 결정 책임은 게임이 관리카드는 자신이 ACE인지 아닌지만을 알고, ACE가 1점이나 11점 중 어느 값을 가질지는 Hand(Cards), Participants, Game과 같은 상위 객체가 관리 게임의 현재 상황이나 점수에 따라 ACE의 값이 결정되어야 하기 때문이다. 장점카드의 책임이 명확하고 단순해진다.ACE의 점수 결정 로직이 게임 흐름과 밀접하게 위치하므로, 게임 전체 흐름 파악이 용이할 수 있다.단점ACE 카드의 특별한 속성이 ACE 카드 클래스 코드에 명확히 드러나지 않는다.게임 로직 내부에서 ACE 점수..
2025.03.17 -
[로또 미션] 회고 : 수동적인 객체
수동적인 객체는 항상 잘못된 것인가? 로또 시스템을 설계하는 과정에서 로또 객체는 스스로 당첨 여부를 판단해야 하는가? 라는 고민을 하게 되었다. 처음에는 현실 세계의 로또 티켓을 떠올렸고, 로또 티켓은 단순히 1 ~ 45의 숫자가 적힌 종이일 뿐이라고 생각했다. 현실에서는 당첨 여부를 판별하는 시스템이 따로 존재하므로, 로또 객체는 숫자만을 가지고, 당첨 여부 판단은 별도의 객체가 수행하는 것이 더 적절하다고 판단했다. 로또 객체는 숫자들을 저장하는 역할, 당첨 확인 객체는 당첨 여부를 판별하는 역할을 수행하게 되니 객체 간의 책임이 명확해지고, 유지보수가 쉬워지는 장점이 있다고 생각했다. 이 설계에 대해 크루와 논의하는 과정에서 이대로는 로또 객체가 너무 수동적인 존재가 되는 것이 아닌가? 라는 피드..
2025.02.19