아래 글은 javaservice.net의 soa관련 글타래에 calmglow가 올린 글이다.
저는 요새 '조엘이 엄선한 소프트웨어 블로그 베스트 29선'이라는 책을 매우 재미나게 읽고 있습니다. 여기에 엄선된 글 중 그레고르 호페의 글이 유독 제 시선을 끌었는데요, 스타벅스의 음료 주문 처리 방식을 IT관점에서 바라본 것이죠. 저는 이 메타포에 의한 접근을 이용하여 SOA Governance를 풀어가는 것도 재밌겠다는 생각을 해보게 되었습니다.
스타벅스 커피숍에 등장하는 직군은 크게 네 분류로 나뉩니다. 바리스타와 캐시어 그리고 이들을 지휘하는 커피숍 팀장과 사장입니다. 그레고르 호페는 스타벅스에서 음료 주문을 처리하는 방식에 주목해보았습니다. 스타벅스는 다른 모든 사업체와 마찬가지로 주문 처리량을 극대화하는 데 집중했습니다. 주문을 더 많이 처리할 수록 수익이 늘어나기 때문이죠. 그렇기 때문에 스타벅스에서는 비동기적 프로세스를 사용합니다. 고객이 주문을 하면 캐시어는 커피 컵에 주문을 표시해서 대기열에 올려놓습니다. 이 대기열은 말 그대로 에스프레소 기계 위에서 커피컵이 대기하고 있는 줄입니다.
이 대기열은 캐이어와 바리스타를 구분해주는 역할을 하며, 바리스타의 일손이 부족해서 잠시 도움을 받는 한이 있더라도 캐시어가 계속 주문을 받을 수 있게 해줍니다.
스타벅스는 비동기 방식의 장점을 채택하는 동시에 비동기 방식에서 필연적으로 나타날 수밖에 없는 문제점을 해결해야만 했습니다. 예를 들자면 상관관계(correlation)같은 것이죠. 음료가 반드시 주문한 순서대로 나오지는 않습니다. 그 이유는 두 가지입니다. 우선 첫째, 바리스타가 여러 명 있는 경우에는 각 바리스타가 서로 다른 장비를 사용해서 주문을 처리하기 때문입니다. 블렌드 음료는 드립 커피보다 만드는 데 시간이 더 오래 걸리지요. 둘째 이유로는 바리스타들이 주문 처리 시간을 최적화하기 위해 음료 여러 잔을 동시에 만든다는 것을 들 수 있습니다. 결과적으로 스타벅스에서는 상관 관계에 따른 문제가 발생할 수 있습니다. 음료는 주문 순서와 다른 순서로 나올 수도 있지만 주문한 사람에게 반드시 제대로 전달돼야 한다는 것입니다. 스타벅스는 이 문제를 우리가 메시지 구조에서 사용하는 것과 동일한 "패턴"으로 해결했습니다. 즉 상관 관계 식별자(Correlation Identifier)를 사용한 것이지요. 미국에 있는 대부분의 스타벅스 매장에서는 컵에 고객의 이름을 써 넣는 식으로 상관 관계 식별자를 사용하고, 음료가 나오면 고객의 이름을 크게 부름으로써 상관 관계에 따른 문제를 해결합니다. 다른 나라에서는 일반적으로 주문한 음료의 종류로 주문자를 식별합니다.
여기까지가 제가 읽은 글의 요약입니다. 한마디로 스타벅스의 음료 주문 처리 방식은 우리가 익히 알고 있는 비동기 방식의 메시징 처리 시스템과 유사합니다. 비록 무리가 있겠지만 이러한 스타벅스 음료 주문 시스템을 한 기업의 전산 시스템이라고 생각해보지요. 그러면 커피숍 팀장은 전산과장 정도 되는 사람이라 할 수 있겠습니다. 커피숍 팀장은 이들 바리스타와 캐시어가 정해진 스타벅스의 음료 주문 시스템에 따라 제대로 업무를 진행하고 있는지를 감시(Resource Monitoring)하고 조율(Deploy and Integration)하는 일을 맡고 있습니다. 즉 커피숍 팀장의 관심은 오로지 Business Process 자체에 관심이 많고 그것을 예의 주시하면서 자원 부족 상태등을 해결하는 데 관심을 가지고 있습니다. 커피숍 팀장의 이러한 관심을 충족시키는 솔루션이 기존 EAI제품이 되었건 ESB+BPM이 되었건 커피숍 팀장의 관점은 오로지 자원 관리와 인력 투입을 만족하는 기능에만 있겠죠.
자 그럼 이제 관점을 커피숍 사장으로 돌려보겠습니다. 스타벅스 커피숍 사장은 당연히 가장 적은 투자로 가장 높은 수익을 발생시킬 방법을 찾는데 혈안이 되어있습니다. 사장이 가장 관심을 갖고 있는, 혹은 관심을 보이는 부분이 어떤 것일지 제가 비록 사장이 되본 적은 없지만 한번 유추해보도록 하겠습니다.
- 직원들 노는 꼴은 절대 못본다. 그들의 월급은 최소한으로 줄여야만 한다.
- 하루 중 고객이 붐비는 시간 대는 정해져 있다.
- 고객이 붐비는 날은 요일마다 다르고 계절마다 또 다르다.
- 아무리 고객이 붐비더라도 그들이 짜증을 내지 않도록 음료 주문 시간은 최소화 해야만 한다.
대충 이러한 관심 사항이 보입니다. 그리고 최종적으로 사장이 관심을 보이는 목표가 ROI라고 할 때 투자와 수익 항목을 보다 단순화해서 보자면 직원들의 월급은 투자에 해당되고 수익은 고객 수에 비례할 것입니다. 즉 고객이 최대한 불편해하지 않는 선에서 직원들 수는 최소화하는 것이 스타벅스 커피숍 사장이 관심을 가지는 항목이 되겠습니다. 여기서 고객이 최대한 불편해하지 않는다는 기준이 매우 애매모호 하므로 보다 수치화해서 생각해보면 고객이 커피를 기다리는 시간이 최대 2분 이하일 경우에 만족할 수 있다는 가정을 하겠습니다. 그리고 아무리 고객의 만족이 최우선이라 할지라도 무한대의 투자를 할 수는 없으므로 직원들 월급 역시 한달에 천만원 이상은 지불할 수 없다고 가정할 수도 있습니다.
그럼 이제 이렇게 정해진 몇 개의 커피숍 운영 목표 달성을 위한 수치들이 정의되었으므로 이 수치들에 맞추어 사장은 스타벅스 커피숍을 둘러싼 여러 상황을 분석할겁니다. 일단 커피숍 이익을 둘러싼, 커피숍 상황을 한 눈에 바라볼 수 있는 차트가 필요할 겁니다. 여기에는 감히 커피숍 팀장은 관심가질 수 없는 여러가지 요소들, 직원 월급이나 임대료, 고객 기호나 고객 만족도등을 포함하고 있어야겠죠. 이것을 운영을 위한 프로세스 모델이라고 일단 부릅시다. 사장은 끊임없이 이 프로세스모델을 통해 하루 중 고객 peak time과 계절과 요일별 peak time등에 따라 적절한 직원 분배를 하여 이익을 극대화하려고 할 겁니다.
문제는 시장 상황이 항상 변한다는 겁니다. 앞서 언급했던 계절별 요일별 고객의 반응도 항상 달라지고 경쟁사와의 관계에 따라서도 전체 매출 자체가 달라질 수가 있습니다. 따라서 프로세스 모델은 커피숍 운영 전략에 따라 계속 변경이 되어야 하고 바뀐 프로세스 모델에 따라 실제 운영 역시 반영이 바로 바로 되어야 겠습니다.
위에서 제가 스타벅스 커피숍 메타포를 통해서 SOA의 life cycle인 monitoring -> modeling -> integration -> deploy -> monitoring...를 이야기했습니다. 즉 사장은 끊임없이 자신이 원하는 기업 성과 수치와 모델을 바탕으로 기업 상황을 Monitoring하고 자신이 원하는 방식으로 비즈니스 적인 상황을 Model에 반영합니다. 이 Model은 별도의 수동적인 변환없이 운영 환경에 반영되어서 새로운 자원의 투입이나 기존 자원의 통합이 자유롭고 이것에 대한 최종 반영 역시 부드럽게 이어지는 그 lifecycle. 이것이 SOA가 지향하는 유연한 IT Governance라고 할 수 있을 것 같습니다. 뭐 사실 integration과 deploy부분만 따로 떼놓고 생각해보면 ESB나 EAI솔루션들이나 거기서 거기인 듯 싶습니다만, 기업 운영자 관점의 성과 수치등을 모델에 반영하고 이것이 다시 IT 운영 환경에 즉각적으로 반영될 수 있는 유연한 IT Governance 환경까지를 놓고 보자면 ESB와 EAI솔루션은 목표 자체에 있어 차이를 가지고 있다고 생각합니다.
저는 요새 '조엘이 엄선한 소프트웨어 블로그 베스트 29선'이라는 책을 매우 재미나게 읽고 있습니다. 여기에 엄선된 글 중 그레고르 호페의 글이 유독 제 시선을 끌었는데요, 스타벅스의 음료 주문 처리 방식을 IT관점에서 바라본 것이죠. 저는 이 메타포에 의한 접근을 이용하여 SOA Governance를 풀어가는 것도 재밌겠다는 생각을 해보게 되었습니다.
스타벅스 커피숍에 등장하는 직군은 크게 네 분류로 나뉩니다. 바리스타와 캐시어 그리고 이들을 지휘하는 커피숍 팀장과 사장입니다. 그레고르 호페는 스타벅스에서 음료 주문을 처리하는 방식에 주목해보았습니다. 스타벅스는 다른 모든 사업체와 마찬가지로 주문 처리량을 극대화하는 데 집중했습니다. 주문을 더 많이 처리할 수록 수익이 늘어나기 때문이죠. 그렇기 때문에 스타벅스에서는 비동기적 프로세스를 사용합니다. 고객이 주문을 하면 캐시어는 커피 컵에 주문을 표시해서 대기열에 올려놓습니다. 이 대기열은 말 그대로 에스프레소 기계 위에서 커피컵이 대기하고 있는 줄입니다.
이 대기열은 캐이어와 바리스타를 구분해주는 역할을 하며, 바리스타의 일손이 부족해서 잠시 도움을 받는 한이 있더라도 캐시어가 계속 주문을 받을 수 있게 해줍니다.
스타벅스는 비동기 방식의 장점을 채택하는 동시에 비동기 방식에서 필연적으로 나타날 수밖에 없는 문제점을 해결해야만 했습니다. 예를 들자면 상관관계(correlation)같은 것이죠. 음료가 반드시 주문한 순서대로 나오지는 않습니다. 그 이유는 두 가지입니다. 우선 첫째, 바리스타가 여러 명 있는 경우에는 각 바리스타가 서로 다른 장비를 사용해서 주문을 처리하기 때문입니다. 블렌드 음료는 드립 커피보다 만드는 데 시간이 더 오래 걸리지요. 둘째 이유로는 바리스타들이 주문 처리 시간을 최적화하기 위해 음료 여러 잔을 동시에 만든다는 것을 들 수 있습니다. 결과적으로 스타벅스에서는 상관 관계에 따른 문제가 발생할 수 있습니다. 음료는 주문 순서와 다른 순서로 나올 수도 있지만 주문한 사람에게 반드시 제대로 전달돼야 한다는 것입니다. 스타벅스는 이 문제를 우리가 메시지 구조에서 사용하는 것과 동일한 "패턴"으로 해결했습니다. 즉 상관 관계 식별자(Correlation Identifier)를 사용한 것이지요. 미국에 있는 대부분의 스타벅스 매장에서는 컵에 고객의 이름을 써 넣는 식으로 상관 관계 식별자를 사용하고, 음료가 나오면 고객의 이름을 크게 부름으로써 상관 관계에 따른 문제를 해결합니다. 다른 나라에서는 일반적으로 주문한 음료의 종류로 주문자를 식별합니다.
여기까지가 제가 읽은 글의 요약입니다. 한마디로 스타벅스의 음료 주문 처리 방식은 우리가 익히 알고 있는 비동기 방식의 메시징 처리 시스템과 유사합니다. 비록 무리가 있겠지만 이러한 스타벅스 음료 주문 시스템을 한 기업의 전산 시스템이라고 생각해보지요. 그러면 커피숍 팀장은 전산과장 정도 되는 사람이라 할 수 있겠습니다. 커피숍 팀장은 이들 바리스타와 캐시어가 정해진 스타벅스의 음료 주문 시스템에 따라 제대로 업무를 진행하고 있는지를 감시(Resource Monitoring)하고 조율(Deploy and Integration)하는 일을 맡고 있습니다. 즉 커피숍 팀장의 관심은 오로지 Business Process 자체에 관심이 많고 그것을 예의 주시하면서 자원 부족 상태등을 해결하는 데 관심을 가지고 있습니다. 커피숍 팀장의 이러한 관심을 충족시키는 솔루션이 기존 EAI제품이 되었건 ESB+BPM이 되었건 커피숍 팀장의 관점은 오로지 자원 관리와 인력 투입을 만족하는 기능에만 있겠죠.
자 그럼 이제 관점을 커피숍 사장으로 돌려보겠습니다. 스타벅스 커피숍 사장은 당연히 가장 적은 투자로 가장 높은 수익을 발생시킬 방법을 찾는데 혈안이 되어있습니다. 사장이 가장 관심을 갖고 있는, 혹은 관심을 보이는 부분이 어떤 것일지 제가 비록 사장이 되본 적은 없지만 한번 유추해보도록 하겠습니다.
- 직원들 노는 꼴은 절대 못본다. 그들의 월급은 최소한으로 줄여야만 한다.
- 하루 중 고객이 붐비는 시간 대는 정해져 있다.
- 고객이 붐비는 날은 요일마다 다르고 계절마다 또 다르다.
- 아무리 고객이 붐비더라도 그들이 짜증을 내지 않도록 음료 주문 시간은 최소화 해야만 한다.
대충 이러한 관심 사항이 보입니다. 그리고 최종적으로 사장이 관심을 보이는 목표가 ROI라고 할 때 투자와 수익 항목을 보다 단순화해서 보자면 직원들의 월급은 투자에 해당되고 수익은 고객 수에 비례할 것입니다. 즉 고객이 최대한 불편해하지 않는 선에서 직원들 수는 최소화하는 것이 스타벅스 커피숍 사장이 관심을 가지는 항목이 되겠습니다. 여기서 고객이 최대한 불편해하지 않는다는 기준이 매우 애매모호 하므로 보다 수치화해서 생각해보면 고객이 커피를 기다리는 시간이 최대 2분 이하일 경우에 만족할 수 있다는 가정을 하겠습니다. 그리고 아무리 고객의 만족이 최우선이라 할지라도 무한대의 투자를 할 수는 없으므로 직원들 월급 역시 한달에 천만원 이상은 지불할 수 없다고 가정할 수도 있습니다.
그럼 이제 이렇게 정해진 몇 개의 커피숍 운영 목표 달성을 위한 수치들이 정의되었으므로 이 수치들에 맞추어 사장은 스타벅스 커피숍을 둘러싼 여러 상황을 분석할겁니다. 일단 커피숍 이익을 둘러싼, 커피숍 상황을 한 눈에 바라볼 수 있는 차트가 필요할 겁니다. 여기에는 감히 커피숍 팀장은 관심가질 수 없는 여러가지 요소들, 직원 월급이나 임대료, 고객 기호나 고객 만족도등을 포함하고 있어야겠죠. 이것을 운영을 위한 프로세스 모델이라고 일단 부릅시다. 사장은 끊임없이 이 프로세스모델을 통해 하루 중 고객 peak time과 계절과 요일별 peak time등에 따라 적절한 직원 분배를 하여 이익을 극대화하려고 할 겁니다.
문제는 시장 상황이 항상 변한다는 겁니다. 앞서 언급했던 계절별 요일별 고객의 반응도 항상 달라지고 경쟁사와의 관계에 따라서도 전체 매출 자체가 달라질 수가 있습니다. 따라서 프로세스 모델은 커피숍 운영 전략에 따라 계속 변경이 되어야 하고 바뀐 프로세스 모델에 따라 실제 운영 역시 반영이 바로 바로 되어야 겠습니다.
위에서 제가 스타벅스 커피숍 메타포를 통해서 SOA의 life cycle인 monitoring -> modeling -> integration -> deploy -> monitoring...를 이야기했습니다. 즉 사장은 끊임없이 자신이 원하는 기업 성과 수치와 모델을 바탕으로 기업 상황을 Monitoring하고 자신이 원하는 방식으로 비즈니스 적인 상황을 Model에 반영합니다. 이 Model은 별도의 수동적인 변환없이 운영 환경에 반영되어서 새로운 자원의 투입이나 기존 자원의 통합이 자유롭고 이것에 대한 최종 반영 역시 부드럽게 이어지는 그 lifecycle. 이것이 SOA가 지향하는 유연한 IT Governance라고 할 수 있을 것 같습니다. 뭐 사실 integration과 deploy부분만 따로 떼놓고 생각해보면 ESB나 EAI솔루션들이나 거기서 거기인 듯 싶습니다만, 기업 운영자 관점의 성과 수치등을 모델에 반영하고 이것이 다시 IT 운영 환경에 즉각적으로 반영될 수 있는 유연한 IT Governance 환경까지를 놓고 보자면 ESB와 EAI솔루션은 목표 자체에 있어 차이를 가지고 있다고 생각합니다.
공유하기 버튼
|
|




최근 덧글