본문 바로가기

IT기반지식/소프트웨어공학

SOA 정복하기

[출처:http://cafe.naver.com/delphian.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=1894]
2006년 2월 27일


SOA 입문

본 특집은 최근 들어 국내 IT 업계의 주요 화두가 되고 있는 서비스 지향 아키텍처(Service Oriented Architecture, 이하 SOA)를 주제로, 외국 developerWorks 사이트에 게재된 글 중 국내 개발자에게 도움이 될만한 글들을 모아 소개하고 있다.

각각의 기술문서에 대한 소개에 앞서, 잠시 SOA 가 대두된 배경을 살펴보자. (참고자료: SOA 입문)

"더이상 IT 환경은 비즈니스 환경과 무관하게 계획되고, 구축되며, 운영될 수 없다!" 기업 환경이 빠르게 변화함에 따라, 기업 내 IT 환경은 기업의 생존을 위한 기본 인프라로서, 기업의 흥망성쇠에 중요한 역할을 한다. 예전의 IT 환경은 장차의 변화를 예측하고, 이에 대한 체계적인 분석을 통해 예상된 변화에 대응할 수 있도록 설계되어 구축되곤 했다. 그러나, 이러한 과정은 여러 시행착오를 거치며 실제 운용에 이르기까지 설계와 구축에 상당한 기간이 소요되었다. 또한 변화된 요구에 대해서는 능동적으로 대처하기 어려운 한계가 있다.

그러나, 최근의 비즈니스 환경은 외부의 변화 및 내부의 요구사항에 대한 보다 빠른 대응을 필요로 하고 있다. 이는 기업의 성공적인 운영을 위해 예측되어진 변화외에 예측하지 못했던 변화에 대해서도 발빠르게 대응할 수 있는 능력이 강하게 요구되고 있으며, 기업의 인프라로서 IT 환경 또한 기업의 판단에 따른 비즈니스 변화에 대해 발빠르게 대처할 수 있도록 요청되고 있다. 그러나 기존의 방식으로 비즈니스 환경의 변화요구에 맞게 IT 환경을 재구성하기에는 너무 많은 시간과 비용이 소요된다. 따라서, 기존의 IT 패러다임으로는 이러한 변화에 제대로 대응할 수 없으며, 이로 인해 다른 기업과의 경쟁에서 뒤처지는 경우를 어렵지 않게 볼 수 있다. 이에 따라 IT 환경에 대한 새로운 패러다임이 강하게 요구되었으며, 이에 SOA 가 제시되었다.

SOA 의 가장 큰 특징은 바로 반복사용이 가능한 서비스이다. 웹서비스에 근간하여 기업내의 각 업무단위를 독립적이고 반복사용이 가능한 형태인 서비스라는 컴포넌트로 구현하여, ESB(Enterprise Service Bus)를 통해 이를 유연하게 연결함으로써 결과물을 산출한다. 웹서비스의 유연한 연결방식을 바탕으로, 각각의 서비스는 필요에 따라 새로운 형태로 연결되어 구성이 될 수 있으며, 이러한 변경을 통해 비즈니스 환경이나 요구사항의 변화에 발빠르게 대처할 수 있는 것이다. 즉, SOA 는 내부의 단위 업무를 서비스로 정의하고 이를 조합하여 ESB로 연결함으로써 하나의 애플리케이션을 구성한다. (이를 컴포지트 애플리케이션 이라고 한다.) 이렇게 구성된 애플리케이션은 기존 애플리케이션과는 달리 이미 정의된 서비스들을 조합하여 필요한 기능을 구현하며, 새로운 기능의 추가나 개선은 개발된 서비스중 일부를 변경하거나 재조합함으로써 구현할 수 있다.
바로 이러한 SOA 를 통해 기업은 비로소 외부의 변화에 빠르게 대응할 수 있으며, 내부의 새로운 요구사항을 적극적으로 수용할 수 있게 되는 것이다.

우선, 아래의 시리즈는 일반론적인 관점에서 SOA에 대한 고찰과 접근방식을 설명하고 있다. 첫번째 글에서 기업에서 SOA 를 적용하고 할 때의 다양한 구축 패턴을 비교하여 각각의 장점에 대해 살펴보며, 이를 기반으로 두번째 글에서 분석 및 설계과정을 통해 서비스를 구성하는 방법에 대해 살펴보고 있다.


좀더 체계적인 구축방법론은 아래의 기사들을 통해 살펴볼 수 있다. 아래의 기사들에서 저자는 SOA 를 구축하는 새로운 프로세스와 방법론을 설명하고, 성숙도 모델을 제시하여 각 기업의 성숙도 레벨을 평가하는 방법에 대해 설명하고 있다.


본격적인 SOA 프로그래밍 모델에 대한 설명은 아래 9편의 시리즈 글를 통해 살펴볼 수 있다. 이 시리즈를 통해 여러가지 새로운 SOA 관련 프로그래밍 모델을 살펴볼 수 있으며, 기업내에서 SOA를 어떻게 구축하여 활용할 수 있는지에 대해 설명하고 있다.


지금까지 조금은 지루한 내용었다면, 잠깐 쉬어가는 의미에서 관련 전문가 인터뷰를 살펴보자. 다음 글은 IBM에서 근무하는 기술전문가와의 인터뷰를 통해 SOA 에 대한 실질적인 이해의 면모를 잠깐이나마 살펴볼 수 있으며, IBM의 차세대 사용자 인터페이스의 추축이 되는 IBM WebSphere Portal 및 Workplace 를 통한 SOA 구축에 대해 알아볼 수 있다.


마지막으로 SOA 의 반패턴 연구를 통해, 일반적인 상황에서 발생하기 쉬운 오류들을 분석하여 이미 경험된 실수를 반복하지 않고 이를 피할 수 있는 방법을 살펴본다.


이상에서 developerWorks 에서 게시된 글을 통해 서비스 지향 아키텍처(SOA) 전반에 대해 살펴보았다. 위의 글을 읽으면서 일부 독자들은 여전히 부족한 무엇인가를 느꼈으리라 생각된다. 그 이유중의 하나는 서비스 지향 아키텍처는 여전히 성장하고 있으며, 계속해서 보완되고 있다는 점도 빠질 수 없을 것이다. 이러한 부족함을 메워나가기 위해 한국 developerWorks 는 웹사이트내 "SOA와 웹서비스" 영역을 통해, 이후에도 더 많은 서비스 지향 아키텍처(SOA)와 관련된 문서들을 국내 개발자들에게 제공할 것이다. 독자 여러분의 많은 성원을 기대한다.