어떻게 하면 모델링을 잘할 수 있을까?
<왜 소프트웨어가 유통업을 먹어치우고 있는가?라는 글을 쓴 일이 있습니다. 독자를 구체적으로 타게팅하고 쓴 글은 아닙니다. 그런데, 이번에는 제가 필요한 카지노 게임 추천를 하던 중에 커머스 소프트웨어 관련 직종 종사자에게 공유해도 좋을 내용 같아서 글로 씁니다.
출발은 입에 붙은 '카지노 게임 추천 소싱'이라는 말이 적절한 영어 표현인지 궁금해서 퍼플렉시티에게 물은 것에서 시작합니다. 일단 결론만 다루면 이렇습니다.
한국에서 말하는 '상품 소싱'의 맥락(생산자에게서 상품 판매 권한을 확보하는 유통 서비스의 카지노 게임 추천 전반)은 영어로 Product Sourcing이 가장 정확하게 대응합니다.
그런데, 또 다른 흥미로운 개념인 머천다이징이 눈에 띕니다.
머천다이징이 카지노 게임 추천 소싱을 포함하는 개념으로 볼 수 있군요. 한편, Merchandising은 카지노 게임 추천 소싱과 달리 위키피디아 페이지도 있습니다.
Merchandising is any practice which contributes to the sale of products("merch" colloquially) to a retail consumer.
머천다이징이란 말을 들었더니 유통업에 입문하던 때부터 수도 없이 들었던 MD란 말이 떠오르지 않을 수 없습니다. 그래서 다시 퍼플렉시티에게 물었습니다. 퍼플렉시티를 믿는다면결론은 이렇습니다.
정리하면, 한국의 'MD'는 미국의 'Merchandiser'에서 유래한 용어로, 카지노 게임 추천 기획과 운영을 총괄하는 직무를 의미하며, 일본을 거쳐 1970년대 후반부터 한국 유통·패션업계에 본격적으로 도입되어 정착한 개념입니다.
한국에서 개념을 도입한 여정은 다음과 같습니다.
한국에서는 1979년 제일모직이 머천다이저 제도를 도입한 것이 시초로 알려져 있으며, 이후 1980년대 대형 의류업체와 백화점, 1990년대 홈쇼핑, 2000년대 온라인 쇼핑몰 등 유통 전반으로 확산되었습니다. 초기에는 주로 패션·의류 업계에서 사용되었으나, 현재는 유통, 온라인, 홈쇼핑 등 다양한 산업에서 카지노 게임 추천 기획, 소싱, 운영, 재고 관리 등 카지노 게임 추천 관련 전반을 담당하는 직무로 자리 잡았습니다.
한편, Merchandising의 위키피디아 페이지를 보면 MD의 주요 카지노 게임 추천나 책임이 잘 정리되어 있습니다.
제가 하는 일은 국경을 넘어 물건을 파는 크로스보더 이커머스(Cross-border e-Commerce)[1] 분야이기 때문에 MD 카지노 게임 추천와 상품 소싱을 분리시키는 것이 더 나아 보입니다. 제 생각이 주도한 판단이 아니라 일이 벌어지는 양상을 관찰해 보니 MD가 상품 소싱을 주도하거나 중앙 통제할 필요가 거의 없어 보였습니다.
흥미로운 사실은 이를 모델링으로 추상화해 표현해도 일부를 드러낼 수 있다는 점이었습니다. 시도해 볼까요? 업계에서 보편적으로 통용되는 프랙티스를 개념으로 표현하면 다음과 같습니다. 머천다이징 카지노 게임 추천 기능의 하위에 상품 소싱이 있으니 포함 관계로 나타냈습니다.[2] 하지만, 단순 포함이 아니라 통제를 위해 지시하는 흐름이 있기 때문에 포함관계에 '지시'라는 이름을 붙였습니다.
그렇게 붙이고 나니 카지노 게임 추천 기능이 아니라 역할(business role)로 보는 편이 자연스럽게 느껴질 수도 있을 듯합니다. 혼자서 하는 중이니 아직 소통 대상이 분명하지 않아 둘 다 그대로 둡니다. 한편, 스테레오 타입도 영어나 한글 모두 쓸 수 있는 점을 표현하려고 통일시키지 않고 그대로 둡니다.
이제 앞선 내용과 달리 우리의 특수성을 적용한 내용을 객체로 표현해 봅니다.[3] 실선이 점선으로 바뀐 점을 유의하여 보세요.
프로그래밍에 적용하면 어떤 변화가 있는지를 이미 <의존Dependency와 연관을 잘 쓰기에서 다룬 바 있습니다. 하지만, 꼭 프로그래밍이 아니더라도 이렇게 관계를 바꾼 것은 명백한 차이가 있습니다. 실선과 점선은 관계의 강도를 나타냅니다. 또한, 포함 관계는 연관의 일종인데, 구조적으로 ProductSourcing 객체가 Merchandising에 속함을 뜻합니다. 예를 들어 회사의 조직으로 대입시켜 보면 MD 조직 안에 있는 카지노 게임 추천소싱과와 같은 하위 부서가 될 수 있죠.
반면에 점선의 의존 관계가 되면 구조적 영향을 끼치지는 않고 서로 역할을 위임하는 협력 관계가 됩니다. 이럴 때 서로 주체성을 침해하지 않아 시너지를 내려면 관계의 내용이 분명해야 합니다. 그래서, 점선 하나로 관계를 표현하는 대신에 명백하게 다른 관계는 별도로 드러내서 서로 협력하는 내용과 주체와 대상을 명확하게 한 것이죠.
한편, 이렇게 관계 설정을 다르게 하면 통상적인 업계의 현실과 달라집니다. 우리 서비스에 맞춰지게 되는 것이죠. 이럴 때 우리가 다루는 특수한 영역을 도메인(Domain)이라고 합니다. Domain이라는 개념이 워낙 널리 쓰이는 말이라 정확히 말하면 Domain-driven design의 도메인을 말합니다. 이와 같이 개념이 하나의 맥락으로 묶이는 상황을 칭하는 용어도 있는데, 바로 BoundedContext가 그것이죠.
도메인을 벗어나면 맥락이 달라 통하지 않을 수 있다는 말을 하고 싶어서 소개한 용어입니다.
[1] 위키피디아 E-commerce 페이지설명을 참고합니다.
[2] Plant UML입력한 내용은 다음과 같습니다.
@startuml
class Merchandising <<카지노 게임 추천 기능
class ProductSourcing <<카지노 게임 추천 기능
Merchandising *-- ProductSourcing : 지시
class Merchandiser <<business role
class SourcingAgent <<business role
Merchandiser *-- SourcingAgent : 지시
@enduml
[3] Plant UML입력한 내용은 다음과 같습니다.
@startuml
class Merchandising <<카지노 게임 추천 기능
class ProductSourcing <<카지노 게임 추천 기능
Merchandising .right. ProductSourcing : 판매 가능 카지노 게임 추천 목록 요청
Merchandising .. ProductSourcing : 공급조건협상요청
Merchandising <.. ProductSourcing : 판매 요청
@enduml
(16회 이후 링크만 표시합니다.)
16. 현상을 개념으로 포착한다
17. 그때그때 그려서 쓰는 모델링
18. 모델링을 계속하려면 어떻게 직무 환경을 설계해야 할까
19. 나는 프로그래밍에 인공 지능 역할을 이렇게 보고 있어요
20. 다른 맥락에서 글을 보다가 생각을 정제하여 문제 찾기
21. 모델링과 인터페이스의 상관관계
24. 관계(關係)라는 말과 연관(聯關)이라는 말의 차이
26. 모듈화: 다시 쓰는 동시에 유연성을 줄 수 있나?
28. UML 혹은 객체지향 관계 중 합성과 집합의 차이
29. 상태 관리에 대한 이해가 필요한 비대칭 분산 시스템
30. 복잡한 클래스를 엮어서 단순한 복합체를 만드는 OCP