You can make anything
by writing

C.S.Lewis

by 안영회 습작 May 02. 2025

입차와 출차를 바탕으로 객체 설계의 꽃인 상태도 활용

어떻게 하면 모델링을 잘할 수 있을까?

<사용자 경험과 연결되는 도메인 이벤트 설계 품질에 이어서 다시 동료의 남은 의문 세 개를 순서대로 살펴보겠습니다.


무엇을 중심으로 온라인 카지노 게임 출차를 관리할까?

차량을 중심으로 온라인 카지노 게임 출차를 관리한다는 말은 무슨 말일까요? 상태 관리는 객체를 단위로 합니다.[1] 그렇게 가정하면 상태 관리의 기준이 되는 객체를 차량으로 선택하는 것에 대한 질문이라 하겠습니다.

온라인 카지노 게임

각 단어의 뜻부터 따져 보고 나서 논리적으로 가능한 선택을 하나씩 살펴보겠습니다. 입차란 말은 직관적으로 무슨 말인지 알 수 있지만, 모델링을 할 때 위키피디아나 사전을 찾는 일은 꼭 해 보시길 권합니다. 이에 대해 궁금한 분들은 <낱말의 뜻을 깊고 넓게 묻고 따지는 일의 소중함을 읽으실 수 있습니다.


아무튼 온라인 카지노 게임를 사전에서 찾아보니차고에 차량을 넣는 일을 뜻합니다. 출차는 반대겠죠.

온라인 카지노 게임


해당 도메인 지식 추출의 결정적인 포인트

온라인 카지노 게임의 풀이에 등장한 차고의 뜻을 다시 살펴보다가 경험적으로숙련된 모델러를 그렇지 않은 사람과 구분하는 결정적 지점을 포착한 느낌을 받았습니다. 동료에게 제 경험을 전한다면 이 예시에서 가장 결정적인 것은 무엇일까요? 저는 '곳'을 뜻하는 자를 보다가 여기서는(해당 도메인) 2차원 혹은 2단계로 '곳'을 관리할 필요가 있다는 사실을 핵심이란 생각을 하게 되었습니다.

온라인 카지노 게임

무슨 말인지 차분히 설명하겠습니다. 개인 차고가 아니기 때문에 주차장에 들어선 순간도 입차라 할 수 있고, 주차 구획 안에 차를 주차하는 행위 역시 입차라 할 수 있습니다. 둘 중 무엇을 입차라 해야 할까요? 둘 중 하나만 관리할 수도 있고, 둘 다 관리할 수도 있습니다. 관리 수준은 프로그램의 복잡도를 결정합니다. 그리고, 관리를 어떻게 할 것인지 관점이 바로 프로그램의 개념을 설정합니다. 모델링은 특히 후자의 문제를 주로 다룹니다.[2]


객체 설계의 꽃인 상태도 활용하기

결정적 지식을 찾았으니 다른 선택지를 다루는 대신에 상태도[3]로 이를 표현해 보겠습니다. 개인적으로 <상태도는 객체 설계의 꽃이다라고 생각합니다. 머리는 아프지만, 그렸을 때 그만큼 얻는 부분이 많기 때문입니다.

그런데 그리면서 흥미로운 사실을 발견했습니다. 앞서 결정적이라고 했던 지식 즉, 장소를 두 단계로 관리해야 한다는 점은 생각보다 결정적인 아니란 사실이죠. 여기서 정말 중요한 교훈을 얻습니다. 경험적으로답은 현장에 있어서 현장 실사와 답사가 엄밀한 분석보다 중요하다는 점입니다. 여기에 더하여 릴리즈의 중요성도 말할 수 있습니다. 실제 사용자가 아닌 개발자(기획자도 포함)가 느낄 수 있는 부분과 실제 사용자의 반응은 다를 수밖에 없으니까요.


상태도 정제 과정에서 비즈니스 로직 표현하기

두 번째 질문을 보니 앞선 상태도로 어느 정도 갈음이 된 듯 보입니다.

다만, 상태도에 담지 못한 부분이 있어 조금 더 정제합니다. 꽤 복잡해지는군요. 먼저 통상적으로 주차하지 않고 돌아가는 차량도 있기 때문에 그에 대한 처리를 추가했습니다. 제 경우는 실제 예시는 아니기 때문에 정책 결정을 위해 퍼플렉시티에게 통상적인 기준을 물어서30분으로 적용합니다. 그리고, 사전 정산을 하고 오지 않는 분들은 출차 전에 정산해야 하기 때문에 해당 로직도 추가했습니다.


아직 가야 할 길이 남았는데, 글이 길어져서 여기서 잠깐 멈춥니다. 다음 글에서 계속하도록 하겠습니다.


주석

[1] 이 글은 객체 지향 사고/설계를 기본 전제로 합니다.

[2] 모델링은 계량에 대한 문제가 아니라 내용 그 자체인 질을 다루는 것입니다.

[3] PlantUML에서 사용한 상태도소스는 다음과 같습니다.

@startuml

[*] -right- a

state a as "온라인 카지노 게임 요청" : 입구 측 차단기 앞 차량번호 인식

state 출차 : 출구 측 차단기 통과

a -right- 온라인 카지노 게임

state c as "주차장 체류" {

state 온라인 카지노 게임 : 입구 측 차단기 통과

state z as "출차 요청" : 출구 측 차단기 앞 차량번호 인식

온라인 카지노 게임 -right- 정산

온라인 카지노 게임 -down- z

정산 -right- z

z -right- 출차

}

출차 -right- [*]

@enduml

[4] PlantUML에서 사용한 상태도소스는 다음과 같습니다.

@startuml

[*] -right- a

state a as "온라인 카지노 게임 요청" : 입구 측 차단기 앞 차량번호 인식

a -right- 온라인 카지노 게임

state c as "주차장 체류" {

state 온라인 카지노 게임 : 입구 측 차단기 통과

state z as "출차 요청" : 출구 측 차단기 앞 차량번호 인식

state d1 <<choice

state d2 <<choice

state j <<join

state p as "정산 요청"

state 출차 : 출구 측 차단기 통과

온라인 카지노 게임 -right- 정산

온라인 카지노 게임 -- z

정산 -- z

z -- d1 : 정산 여부 파악

z -- d2 : 체류 시간 계산

d1 -- 출차 : [사전 정산 완료]

d1 -- j : [미정산]

d2 -- 출차 : [체류 시간 <= 30분]

d2 -- j : [체류 시간 30분]

j -right- p

p -right- 출차 : [차단기 앞 정산 완료]

}

출차 -right- [*]

@enduml


지난 어떻게 하면 모델링을 잘할 수 있을까? 연재

(26회 이후 링크만 표시합니다.)

26. 온라인 카지노 게임: 온라인 카지노 게임 온라인 카지노

27. 카지노 쿠폰 카지노 쿠폰 소프트웨어에 구현할 수

28. UML 혹은 객체지향 관계 중 합성과 집합의 차이

29. 상태 관리에 대한 이해가 필요한 비대칭 분산 시스템

30. 복잡한 클래스를 엮어서 카지노 게임 복합체를 만드는 OCP

31. 사건을 포착하여 객체로 만드는 이벤트에 대한 설명

32. UI 디자이너가 만든 기획서로 객체 지향 모델링하기

33. Domain-driven 카지노 게임 추천 소통: 카지노

34. ECB 카지노 게임 추천과 2025년의

35. 온라인 카지노 게임 발생을 이벤트 정의와 발행으로

36. 사건이라는 개념을 프로그래밍 카지노 게임 사이트

37. 프로그래밍에서 카지노 게임 모듈화를 위해 도입한 개념

38. 사용자 경험과 연결되는 도메인 이벤트 설계 품질

39. ​커피숍무료 카지노 게임 우연히 만난 도메인 이벤트

브런치는 최신 브라우저에 최적화 되어있습니다.