 |  |
|
난이도 : 중급 Kunal Mittal, Director, Domestic TV IT, Sony Pictures Entertainment
2006 년 11 월 21 일 SOA 거버넌스는 큰 이슈가 되고 있습니다. 엔터프라이즈 IT 그룹과 CIO들은 SOA, 엔터프라이즈 아키텍처, 소프트웨어 개발 라이프 사이클(SDLC)과 관련한 새로운 거버넌스 정책들을 만들고 있습니다. 거버넌스와 관련된 문제, 거버넌스의 중요성, 생산성을 높이는 방법 등, 개발자의 관점에서 거버넌스를 검토합니다. 이러한 관점을 이해함으로써, 개발 팀들과의 마찰을 피하는 방법도 알게 됩니다.
거버넌스와 관련된 글들은 일반적으로, 기업들의 서비스 지향 아키텍처 (SOA)가 성숙해 가면서, 거버넌스의 역할 변화에 초점을 맞춰 설명하고 있다. 엔터프라이즈 아키텍처(EA) 그룹들이 거버넌스 정책과 절차들을 개발하고, CIO는 위원회를 구성하여 거버넌스를 실행하게 되면서, 애플리케이션 개발 그룹들은 이러한 것이 자신들에게 어떤 영향을 미치는지 궁금해 하고 있다. 애플리케이션 그룹들은 적대적인 태도를 취하고 있다. “기업 관리자란 사람들은 내 일이나, 내 일의 우선순위를 이해 못하고 있다. 나는 이것을 다룰 시간과 돈이 없다!”
이 글에서는 애플리케이션 개발 팀에 거버넌스가 어떤 가치가 있는지를 조명해 본다. 아키텍처가 개발 그룹의 시각을 이해할 수 있도록 돕고, 개발 그룹이 큰 저항 없이 거버넌스를 받아들일 수 있도록 한다.
거버넌스란 무엇인가?
최신 developerWorks 기술자료 "SOA 거버넌스 소개" (참고자료)에서는 거버넌스에 대해 상세히 다루고 있다. 그룹이 협업하는 방식을 정의하고 실행하는 수단으로서 거버넌스를 정의하고 있다.
거버넌스는 권한 위임(empowerment)에 관한 것이다. IT 결정을 내릴 권한을 가진 사람을 지정할 수 있는 정책 프레임웍과 베스트 프랙티스를 제공한다. 또한, 그러한 결정에 책임을 지는 사람들도 보유하는데도 도움이 된다. 많은 분석가들은 거버넌스와 관리(management)를 명확히 분리하고 있고, 그 차이를 유지하는 것이 중요하다.
거버넌스는 구체적인 IT 결정에 관한 것이 아니다. 오히려, 그러한 결정을 내리는 능력을 가진 사람들의 역할을 결정한다. 거버넌스 가이드라인을 사용하여 권한이 위임된 관리(Management)는 구체적인 IT 결정을 내린다.
헷갈리는가? SOA 프로젝트를 생각해보자. 그 프로젝트에서 거버넌스는 전통적인 프로젝트에서의 거버넌스 보다 복잡하다. 지금 여러분은 모든 사람들이 재사용 해야 하는 더 작은 서비스들을 구현하고 있다. 거버넌스 정책들은 그러한 서비스들의 라이프 사이클을 제어하여 재사용을 극대화 하도록 정의된다. 여러분은 서비스를 만드는 사람이 누구인지, 이것이 어떻게 디자인 및 구현되는지, 누가 이것을 사용하는지, 보안 관리자는 누구인지를 지속적으로 감시해야 한다.
거버넌스는 SOA 프로젝트 성공의 열쇠이다. 거버넌스 없이는, SOA의 가치를 충분히 실현할 수 없다. 거버넌스가 없다면, 결국 혼란만 생길 것이다.
 |
표준 기업들이 SOA 거버넌스의 가치와 중요성을 인식하게 되면서 SOA 거버넌스 표준들을 채택하고 있다. 두 개의 대표적인 표준으로, Governance Interoperability Framework (GIF)과 SOA Link가 있다. (참고자료) |
|
왜 거버넌스인가?
거버넌스의 가치는 명확하게 느껴지지는 않는다. 첫 번째의 SOA 프로젝트가 끝나기 전 까지는 거버넌스 정책의 중요성을 깨닫지 못할 수도 있다. 하지만, 많은 SOA 전문가들은 첫 프로젝트를 시작하기 전에 정책을 미리 만들어야 한다는 것을 알고 있다.
거버넌스는 서비스 생성, 서비스 발견, 서비스 규명, 재사용과 관련하여 규칙과 정책들을 만들어서 혼돈을 방지한다. 서비스가 수행하는 방식에 대해 서비스 레벨 계약(SLA)를 정의하여, 고객과 공급자가 한계와 기대를 알 수 있도록 한다. 거버넌스는 공급자와 소비자에게 서비스 품질에 대한 같은 시각을 제공한다. 거버넌스는 또한, 엔터프라이즈에 서비스를 등록하고 발견하는 과정을 정의함으로써, 서비스와 노력의 중복되는 부분들을 줄인다.
거버넌스 정책들은 여러분이 표준 프로세스를 따르고, 프로세스의 각 단계 별로 해당 문서를 갖추도록 하고 있다. 이로써, Sarbanes-Oxley 같은 법적, 규제적, 기타 순응성 문제들에 적용한다.
거버넌스 구조를 구현할 때 일반적인 실수 피하기
애플리케이션 개발 팀들과 EA 그룹들은, EA 그룹이 프로세스, 절차, 가이드라인 등을 독자적으로 제안한다는 사실 때문에 종종 대립한다. 많은 경우, 자신들의 독자적인 프로젝트 요구 사항, 타임라인, 비즈니스 드라이버를 이해할 수 있게끔, 모든 프로젝트 팀들과 자세히 이야기 하지 않는다. 이전 문장에서 키워드는 모든(all) 프로젝트 팀들이다. EA 그룹들은 다음과 같은 프로젝트 그룹들하고만 논의하는 것으로 충분하다고 생각한다.
- 가장 큰 프로젝트에서 작업하는 그룹
- 가장 높은 가시성 프로젝트에서 작업하는 그룹
- 가장 쉽게 작업할 수 있는 그룹
이 그룹에 끼지 않은 애플리케이션 팀들은 소외된 느낌을 받는다. 이러한 그룹들은 거버넌스의 구현에 강한 저항을 보이며, 이는 결과적으로 SOA 이니셔티브의 성공에 걸림돌이 된다.
EA 그룹들은 작은 프로젝트로 시작하여, 그 프로젝트에 있어 거버넌스의 가치를 증명하는 것이다. 이러한 방식을 사용하여, 가치를 빠르게 나타내고, 그러한 효용성을 더 큰 프로젝트와 다른 모든 그룹들에게 적용할 수 있다.
정책 결정자와 실행자들을 그러한 EA 그룹들과 분리하는 것이 좋다. EA 그룹들은 멘토(mentor)의 역할을 해야 한다. 애플리케이션 그룹들에게 더 나은 가이드라인을 설계하는 방법과 표준 프랙티스를 따르는 방법들을 설명하고, 거버넌스 정책들을 설명해야 한다. 애플리케이션 그룹들이 모든 거버넌스 가이드라인을 따르도록 하는 “단속” 기능으로만 채워서는 안된다. 거버넌스 정책의 실행은 위원회나 거버넌스 기구에 권한을 위임하여 자신들의 역할을 수행할 수 있도록 해야 한다. 그림 1은 CIO가 이와 같은 조직을 구성하는 방법을 묘사한 것이다.
그림 1. 거버넌스 구조
그림 1의 다양한 참여자들(player)은 SOA의 성공과 개별 프로젝트의 성공을 위해 협동해야 한다. 거버넌스 리뷰 위원회는 정책 정의 그룹이고, 엔터프라이즈 아키텍트는 이 그룹과 LOB(line-of-business) IT 그룹(애플리케이션 아키텍트와 개발자)간 접착제 역할을 한다. 이러한 그룹들 간 끊임없는 줄다리기가 발생한다면 SOA는 성공할 수 없다. 이제부터는, 엔터프라이즈 아키텍트, 애플리케이션 아키텍트, 개발자들이 프로젝트에서 어떤 역할을 해야 하는지에 대해 살펴보도록 하겠다.
엔터프라이즈 아키텍트를 위한 거버넌스
여러분이 어떤 기업 구조에 있든지 상관 없이, 그림 1처럼 거버넌스가 정의되었다고 가정해 보자. 엔터프라이즈 아키텍트인 당신은 거버넌스 정책의 정의에 개입했거나 그렇지 않을 수 있다. 다음에 해야 할 일은?
SOA 거버넌스는 사회적 변화이다. 엔터프라이즈 아키텍트는 감시관이 아닌 교사의 역할을 한다. 감독(policing)은 리뷰 위원회에서 수행될 수 있다. 애플리케이션 팀의 멘토로서 당신의 역할은 그들에게 거버넌스의 가치를 보여주는 것이다. 거버넌스 프로세스, 정책, 툴이 적재적소에 배치되어 있을 때 어떤 효과를 누릴 수 있는지를 보여주는 것이다. 그리고, 후속 정책들에 개입된 부가 작업들의 생산성을 도모하고, 더 나은 비즈니스 가치를 전달할 수 있는 방법을 보여준다. 당신은 이러한 새로운 정책들을 애플리케이션 팀이 받아들일 때의 고통을 이해하려고 애쓰고, 그들이 거버넌스를 프로세스에 적용시킬 수 있도록 도와야 한다. 그들이 느끼는 부분에 충분히 공감하면서, 과격한 질문들에 대한 답도 준비해야 한다. 다른 사람들을 돕기 전에 당신이 먼저 거버넌스의 가치를 충분히 이해하고 있어야 한다.
엔터프라이즈 아키텍트의 또 다른 역할은 SOA 거버넌스 정책들을 지속적으로 감시하는 것이다. 어떤 정책들이 실행되는지, 어떤 정책이 실행되지 않는지, 무엇을 바꿔야 할지를 지속적으로 감시해야 한다. 리뷰 위원회와 연결하여 필요할 때 정책들을 수정 또는 만들어야 한다. 또한, 정책들이 명확하게 문서화 되고 있는지, 애플리케이션 아키텍트와 개발자 커뮤니티가 최신 정책들을 순응하고 있는지를 확인해야 한다.
거버넌스 프로그램의 성공은 엔터프라이즈 아키텍트의 어깨에 달려있다. 애플리케이션 아키텍트와 개발자들의 인터랙션이 그릇된 방향으로 흘러가면, 전체 프로젝트가 보다 원활한 방향으로 진행될 수 있도록 도와야 한다.
애플리케이션 아키텍트를 위한 거버넌스
거버넌스에 직면할 때, 대부분의 애플리케이션 아키텍트들의 첫 반응은 "누군가가 당신을 감시하고 있다” 이다. 이러한 반응은 당연한 것이다. 하지만, 애플리케이션 아키텍트라면, 그 거버넌스가 가져오는 가치를 이해할 수 있어야 한다. 거버넌스는 사람들과 프로세스간 차이를 메워, 애플리케이션이나 프로젝트에 국한된 초점을 확장시킬 수 있다. 여러분의 역할은 모든 거버넌스 정책과 프로세스들에 순응하는 것 이상이다. 이러한 정책들이 효과적인지의 여부와, 팀이 이 정책을 이해하고 효과를 거둘 수 있는 방법을 제시해야 한다. 애플리케이션이나 서비스들을 보다 효과적인 방법으로 전달할 수 있도록 이 툴을 적소에 배치해야 한다.
거버넌스를 통해 애플리케이션 아키텍트는 프로세스와 컨트롤을 배치하는 수고에서 해방되고, 비즈니스와 아키텍처 문제에 더욱 집중하여, 더 나은 비즈니스 솔루션과 서비스들을 구명할 수 있다. 협업과 커뮤니케이션은 여러분의 화두이다.
그렇다고 해서 거버넌스가 여러분의 일을 다 떠맡는 것은 아니다. 여러분은 애플리케이션이나 서비스를 디자인하는 아키텍트로서의 역할을 여전히 수행해야 한다. 거버넌스는 단지 디자인을 돕는 가이드라인을 제공할 뿐이다. 확장성, 가용성 같은 질문에 대한 답을 해주는 것뿐이다.
개발자를 위한 거버넌스
개발자에게 있어서, 거버넌스는 최소한의 영향만 미친다. 매일 신경을 써야 할 필요는 없다. 거버넌스는 기술 보다 한 차원 더 높은 것이다. 여러분의 아키텍트나 프로젝트 매니저가 정치적인 문제를 다루고, 거버넌스 정책들은 솔루션이나 서비스들을 보다 효과적으로 전달하는데 필요한 툴, 베스트 프랙티스, 가이드라인을 제공한다. 이러한 정책들은 서비스를 구현하고 관리할 때 일관성을 유지하여 작업의 스트레스를 줄인다.
거버넌스 정책들은 서비스를 구현하는 방법, 다른 사람이 구현한 서비스들을 찾아 사용하는 방법, 자신의 서비스가 순응해야 하는 SLA 등을 보여준다. 또한, 이 모든 것을 수행하는데 필요한 툴을 제공한다. 거버넌스는 SOA를 구현에 수반되는 불확실성을 줄여준다. 따라서, 거버넌스를 통해서, 표준과 정책들을 명확히 규명하여 오류를 피할 수 있는 것이다.
요약
SOA는 서비스 기반 또는 서비스 지향 EA이다. 거버넌스와 관련된 문제들은 새로운 것은 아니다. IT 기업에서 거버넌스의 첫 징조는 EA 그룹 또는 프로젝트 관리 오피스(PMO)의 형성이었다. 여기에는 혜택과 도전 과제가 함께 수반된다. 하지만, IT 기업의 SOA가 성숙해 가면서, 거버넌스는 점점 더 중요해지고 있다. IT 팀 멤버-아키텍트 또는 개발자-는 거버넌스를 두려워할 필요가 없다. 오히려, 이것은 여러분의 작업의 스트레스를 줄여주기 때문에 포용해야 한다. 거버넌스는 불확실성을 없애고, SOA에 대한 기본적인 의문점에 답을 제시하기 때문에 보다 생산적일 수 있다. 또한, Sarbanes-Oxley 순응 같은 법적 요구 사항들도 다룬다.
거버넌스와 SOA 모두 팀웍(teamwork)을 필요로 한다. 개입된 모든 종류의 사람들은 SOA와 프로젝트의 성공을 위해 협동해야 한다.
기사의 원문보기
참고자료 교육
제품 및 기술 얻기
토론
필자소개  | 
|  | Kunal Mittal은 자바, J2EE, 웹 서비스 전문 컨설턴트이다. 이 분야의 책을 공동 집필했으며, 기고 활동도 펼치고 있다. Sony Pictures Entertainment의 Domestic TV IT 그룹의 디렉터이며, 기술 아키텍처와 애플리케이션 관리 책임을 맡고 있다. www.kunalmittal.com을 참조하라. (kunal@kunalmittal.com) |
기사에 대한 평가
|  |