본문 바로가기
우테코 프리코스/프리코스 오픈미션

객체를 분리하는 기준이 뭘까?

by sloth365 2025. 11. 7.

카테고리별로 정리하려고 클래스를 분리했다.

내 머릿속 설계는 객체가 스스로 일해야 하지 않나?
그러니 객체 만들어야지!

 

프로그램의 핵심 로직은 입력한 재고가 올바른 카테고리에 배치되는지 판단하는 것이다.

이제 클래스별로 내부 구현을 하려니 뭘해야할지 막막하다.

카테고리별 재고 개수말고는 이 클래스가 뭘 해야 하지..?

 

사용자로부터 입력을 받아서 올바른 카테고리에 잘 배치했는지 판단할 건데 비교를 해야 한다.

그러면 카테고리의 모든 클래스 객체를 만들고 하나하나 비교해야 하나?

 

초기 구현을 하며 카테고리를 추가려했는데 추가될수록 클래스가 너무 많아질 것 같다.

지금 뭔가 모르게 불편함이 자꾸 느껴진다.

설계가 잘못된 것 같다.

 

모두 객체로 바라보고 설계한 건데 왜 잘못된 거야?

무슨 차이로 나는 설계가 잘못된 방향으로 갈까?
객체를 분리하는 기준이 뭘까?

 

답답함을 해결해 줄 기준이 있었다!
객체는 행동을 기준으로 분리해야 하는 것이었다.

행동이 존재하고 다르다면 분리를 해줘야 한다.

 

카테고리에 있는 음료나 고기가 무슨 행동을 하나?

특별히 가지고 있어야 할 행동이 없다.

 

단순히 데이터를 객체로 바라보고 있는 것이다.

이제 2주 차 레이싱카 미션에서는 가능했고 지금은 불가능한지 이해가 된다.

 

2주 차에서는 우승자나 랜덤값 등을 클래스로 분리했다.

그때는 별도의 행동이 있었지만 지금 카테고리들은 별도의 행동이 없다.

지금 한 행동은 마치 2주차에서 경주할 자동차 이름별로 클래스를 만든 것이다.

 

앞으로 행동을 신경 쓰면서 객체를 분리해야겠다.