디지털 변혁 시대의 생존을 위한 ‘마이크로 서비스’

0

모바일, 소셜, IoT… 디지털을 중심으로 비즈니스 환경이 극적으로 변화하고 있다. 기업이라면 고객의 변화를 재빨리 캐치하고 그 니즈를 파악해야 한다. 이전처럼 모든 요건을 정리해서 오랜 개발 기간을 거쳐 시스템 개발을 하는 ‘워터폴’형 방법으로는 이런 변화의 흐름에 대응할 수 없다. 그런 상황하에서 정보 시스템 분야에는 짧은 기간에 반복 개발이나 테스트를 진행하는 ‘애자일 개발’형 프로젝트 진행이 요구되고 있다.

사회의 급격한 변화, 개발 기간 단축 등의 환경으로 인해 주목 받게 된 소프트웨어 아키텍처가 바로 ‘마이크로 서비스(Microservices)’다. 미국의 유명한 소프트웨어 엔지니어인 마틴 파울러가 2014년에 기고한 ‘Microservices’라는 기사가 이 아키텍처를 널리 알리는 계기가 되었다. ‘마이크로 서비스’는 해외에선 아마존 등 이커머스 기업이나 넷플릭스 등 신흥 온라인 기업에 많이 채용되고 있다.

기존에는 어떤 목적을 위해 아키텍처가 통채로 서비스되었다. 하지만 마이크로 서비스는 개별로 개발된 작은 서비스를 조합해 하나의 서비스를 제공한다. 예를 들어 유저가 온라인 쇼핑을 하고자 할 경우 온라인 쇼핑 전체는 하나의 큰 서비스다. 이 큰 서비스를 실행시키기 위해 마이크로 서비스로 다음의 작은 서비스들을 개발해 Web API를 통해 각 서비스를 불러내어 연계시킨다.

  • 인증 서비스(ID나 패스워드)
  • 로직 : 데이터의 필터링 서비스(크기나 색상)
  • 로직 : 추천 서비스
  • 액세스 허가 : 재고 관리 시스템 연계 서비스
  • 데이터 : 판매 실적, 배송 상황 관리 서비스

이렇게 함으로써 마이크로 서비스로는 다음과 같은 이점을 얻을 수 있다.

  • 개발팀이 서비스별로 나뉘어져 익숙한 언어를 이용해 각 서비스의 개발을 진행할 수 있다
  • 변경을 하고 싶을 때는 시스템 전체가 아니라 작은 서비스별로 처리할 수 있다
  • 작은 서비스로 개발 단위를 진행하므로 빌드나 테스트 기간이 짧아지고 개발 효율이 올라간다
  • 문제가 생겼을 때 루트 구조를 더듬어가는 데 시간이 걸리지만 원인을 찾아내기가 비교적 용이하다

즉, 용도 및 목적별로 작은(마이크로한) 서비스를 만들어둠으로써 ‘변화에 강하고 유연성이 높은 애플리케이션 개발을 하자’는 것이 마이크로 서비스다.

이처럼 마이크로 서비스는 훌륭한 개념이지만, 이미 많은 기업들이 하나로 된 아키텍처로 시스템을 개발해 놓은 상태라 다시 시스템을 분할시키는 것이 어렵다는 얘기를 자주 한다. 그럴 경우 유연하고 신속한 시싀템 개발을 가능하게 하는 솔루션은 세일즈포스의 앱 클라우드를 포함해 다수 공개되어 있다. 지금이라도 마이크로 서비스에 관심이 있다면 처음 개발시 혹은 기존 시스템에 솔루션을 이용해 적용해보는 것이 장기적으로 도움이 될 것이다.

fb_app_click_400

 

 

Facebook Comments

About Author

월간 app의 프로필 사진

국내 모바일 산업과 창업 생태계를 응원합니다. 모바일 트렌드에 대한 전문 컬럼을 기고하거나 유망한 스타트업을 소개하고 싶으시면 연락바랍니다. 적극 수용하겠습니다~♥

댓글 남기기