본문 바로가기

IBM developerWorks, KSUG의 OSGi 강좌1

작년 나는 블로그 통한 오프라인 활동도 지금에 비해서는 활발하게 했다. 그 중에는 자바 개발자로 한국 스프링 사용자 모임(KSUG) 활동도 했다. 사실은 활동을 했다~ 라는 표현보다는 그냥 강의를 들으러 갔다~ 가 맞는 말이다.

작년에 KSUG 강의를 들은 것은 행운이었다. 자바 얼라이덥터(=신기술 습득을 좋아하는) 개발자~ 친구 따라서 우연히 세미나~ 참석한 덕분에 스프링 프레임워크에 관심이 생겼고, 우리 회사 스프링 적용하는데 도움이 되었으며, 내 블로그를 자바 블로그로도 키우는데 도움이 되었다.

KSUG에는 자바 스프링 전문가이면서 자바 관련 유명 블로거인 안영회님이 활동하고 계신다. IBM developerWorks안영회님의 스크린캐스트 강좌가 올라왔다. OSGi에 대한 설명이다. 문득 예전 KSUG 세미나 통한 강의 들을때가 떠올라 스크린 캐스트 강의를 들었다.

강의를 듣고 OSGi는 어려운 신기술이라기 보다는 개발 및 유지보수를 엄청나게~ 편하게 해주는 기술이라는 생각이 들었다. 서버 재시작을 하지 않아도 동적으로 모듈이 적용될수 있다는 것은 평소 서버 재시작의 답답함을 경험한 나에게 획기적이다. 그래서 이 소개글을 통해 안영회님의 OSGi 강의를 소개한다.



스크린 캐스트 강의를 듣고 좀더 자세한 OSGi 소개를 위해 위키 백과를 찾아보았다. 

OSGi(Open Service Gateway initiative) Alliance는 1999년에 썬 마이크로시스템즈, IBM, 에릭손 등이 구성한 개방형 표준 단체이다. (OSGi Alliance는 처음에 Connected Alliance라고 불렸음) 그 뒤 여러 해 동안 OSGi Alliance는 원격 관리 될 수 있는 자바 기반의 서비스 플랫폼을 제정해왔다. 이 표준 사양의 핵심은 응용 프로그램의 생명주기(Life cycle) 모델과 서비스 레지스트리(Service Registry)를 정의하는 프레임워크(Framework)이다. OSGi 표준 사양에는 이 프레임워크에 기반하여 매우 다양한 OSGi 서비스가 정의되어 있다.

OSGi 프레임워크는 독립적인 자바/가상 머신 환경에서 제공하고 있지 못한 세련되고, 완전하며 동적인 컴포넌트 모델을 구현한다. 응용 프로그램 또는 구성 요소(번들, Bundle)는 다시 시동 과정 없이 원격지를 통해 설치(installed), 시작(started), 정지(stopped), 업데이트(updated) 그리고 제거(uninstalled)할 수 있다.

OSGi는 Embeddable(응용 프로그램 내부로 포함될수 있는) SOA를 구현하고 있다. 이를 통해 응용 프로그램 개발에서 가장 복잡하고 관리하기가 어려운, 모듈간의 동적(Dynamic) 관계와 의존을 매우 효과적으로 관리할수 있게 한다. (Web service based SOA가 네트워크를 중심으로 하는 SOA라면 OSGi는 Java Object based SOA이다.)
출처 : http://ko.wikipedia.org/wiki/OSGi

위키 설명이 이해하기 어려웠다. 다시 나름대로 정리해본 결과,

OSGi는 원격 관리 될 수 있는 자바 기반의 서비스 플랫폼을 제정하는 '개방형 표준 단체' 또는 응용 프로그램의 생명주기(Life cycle) 모델과 서비스 레지스트리(Service Registry)를 정의하는 프레임워크(Framework)다.

OSGi 프레임워크는 독립적인 자바/가상 머신 환경에서 제공하고 있지 못한 세련되고, 완전하며 동적인 컴포넌트 모델을 구현하고 있다.

예를 들어 다시 시동 과정 없이도 원격지를 통해 설치(installed), 시작(started), 정지(stopped), 업데이트(updated) 그리고 제거(uninstalled)할 수 있는 일을 수행한다.

그래서 응용 프로그램 개발에서 가장 복잡하고 관리하기가 어려운, 모듈간의 동적(Dynamic) 관계와 의존을 매우 효과적으로 관리할수 있게 한다.

한마디로 서버 재시작을 하지 않아도 새로 업데이트한 모듈을 적용 및 관리할 수 있다는 것이다.

OSGi는 스프링 프레임워크 SpringDM을 통해서도 지원하고 있으며 현재 KSUG 맴버들이 이 분야를 깊이 파고들고 있는 것으로 알고 있다. 그만한 가치가 있으니 그분들이 공부하고 연구하리라는 생각이며 그분들이 쌓은 지식을 알기 쉽게 전달해주는
스크린캐스트 강좌가 시리즈로 이루어진다고 하니 자바 개발자들이 관심을 갖고 강의를 들으면 유익할 것으로 기대된다.

> 관련 사이트

KSUG 포럼 : http://forum.ksug.org/
KSUG 블로그 : http://www.ksug.org/
이일민님 블로그 : http://toby.epril.com/
안영회님 블로그 : http://younghoe.info/
백기선님 블로그 : http://whiteship.tistory.com
박찬욱님 블로그 : http://chanwook.tistory.com/

> 덧1
저도 OSGi는 아직 잘 모른 상태로 소개글을 정리하였으니, OSGi에 대한 자세하고 깊이있는 설명은 꼭 스크린캐스트 강좌나 위 사이트를 통해 알아보시기 바랍니다.