이미 소장하고 있다면 판매해 보세요.
0장 들어가기 전에
1 읽는 순서 2 이 책의 표기법 2.1 용어 표기 2.2 웹 주소 표시 1장 OSGi 소개 1 OSGi란 무엇인가? 2 OSGi의 탄생과 발전 3 OSGi의 특징 4 OSGi 아키텍처 4.1 OSGi 프레임워크 4.2 OSGi Services 5 OSGi와 Equinox 2장 HelloOSGi 1 OSGi 개발 환경 준비 1.1 자바 개발 환경 1.2 이클립스 2 Hello OSGi 2.1 프로젝트 위자드로 번들 프로젝트 생성하기 2.2 OSGi 실행환경 이해하기 2.3 OSGi 커맨드라인 명령어 2.4 Activator.java 2.5 MANIFEST.MF 3장 번들 1 번들 : OSGi의 기본 모듈 2 모듈 레이어에서의 번들 2.1 번들 Manifest 3 라이프 사이클 레이어에서의 번들 3.1 번들 설치하기 3.2 번들 객체 3.3 Bundle State - INSTALLED - RESOLVED - STARTING - ACTIVE - STOPPING - UNINSTALLED 3.4 BundleActivator와 BundleContext - 새로운 번들 설치 - 번들정보 얻어오기 - 서비스 등록하기 및 서비스 가져오기 - 프레임워크 이벤트에 Subscribe 또는 Unsubscribe 하기 - 영구저장소에 파일 생성하기 - 시스템 프로퍼티 읽어오기 4 번들 자동 설치 프로그램 만들기 5 조각 번들 4장 서비스 1 SOA 1.1 서비스란? 2 OSGi에서의 서비스 2.1 OSGi 서비스 등록과 해지 2.2 OSGi 서비스 사용하기 2.3 OSGi 서비스 추적하기 2.4 여러 개의 서비스 사용하기 5장 OSGi 이벤트 시스템 1 OSGi상에서의 시스템 이벤트 1.1 BundleEvent 1.2 FrameworkEvent 1.3 ServiceEvent 2 OSGI의 애플리케이션 이벤트 2.1 화이트보드 패턴 3 Event Admin 서비스 3.1 Event Object 3.2 이벤트 핸들러로 이벤트 받기 3.3 Event Admin에게 이벤트 보내기 6장 Log 서비스 1 Logging for Debugging 2 Log4j 3 OSGi Log 서비스 4 Log4j vs. OSGi Log 서비스 5 OSGi Log 서비스 예제 5.1 TimeLogger 5.2 ConsoleLogger 5.3 RecentLogPrinter 5.4 Log4j Logger 5.4.1 라이브러리 JAR 파일을 번들 내에서 사용하기 5.4.2 일반 JAR 파일을 OSGi화하기 7장 Configuration Admin 서비스 1 Configuration Admin 서비스 1.1 Configuration 1.2 Configurator vs. Configurable 1.3 Managed Service vs. Managed Service Factory 2 Configuration Admin으로 Configuration 저장하기 2.1 Equinox OSGi 콘솔 확장하기 2.2 Configuration 콘솔 예제 3 Configurable 번들 만들기 3.1 Configurable with Managed Service 3.2 Configurable with Managed Service Factory 8장 Preferences 서비스 1 Persistent Area에 저장하기 2 Preferences 서비스 2.1 Preferences 데이터 저장하기 2.2 Preferences 데이터 읽어오기 9장 HTTP 서비스 1 HTTP 서비스 1.1 HelloWorld 서블릿 1.2 리소스 추가하기 2 OSGi용 웹 관리자 툴 만들기 10장 OSGi 콘솔 1 JAR 번들파일로 만들기 1.1 번들로 Export 하기 1.2 BND 1.2.1 .bnd 파일 1.2.2 bnd를 커맨드 라인에서 사용하기 2 Equinox를 콘솔에서 사용하기 2.1 config.ini 파일을 이용하여 OSGi 콘솔 실행 설정하기 11장 Spring Dynamic Modules for OSGi™ 1 스프링 프레임워크 2 Spring Dynamic Modules for OSGi 3 SpringDM 개발환경 설정 3.1 SpringIDE 설치 3.2 Maven 설치 4 타겟 플랫폼 설정 5 Hello SpringDM 6 OSGi 번들 개발과 SpringDM 번들 개발의 차이 6.1 개발 단위의 변화 6.2 초기화 순서의 변화 6.3 OSGi 서비스 등록/찾기 방법의 변화 6.4 웹 애플리케이션의 지원 12장 SpringDM을 이용한 OSGi 서비스 활용 1 SpringDM을 이용한 OSGi 서비스 등록과 가져오기 2 SpringDM으로 검색엔진 만들기 2.1 검색엔진 등록 2.2 한 개의 검색엔진을 사용하는 클라이언트 2.3 여러 개의 검색엔진을 사용하는 클라이언트 3 SpringDM의 OSGi 지원 옵션 13장 SpringDM으로 웹 애플리케이션 만들기 1 OSGi와 Web 지원 2 HelloSpringDM 웹 애플리케이션 만들기 |
이 책은 자바에 대해서 초급 이상의 지식이 있는 개발자를 대상으로 작성한 책이다. 하지만 OSGi가 아주 복잡하고 어려운 프레임워크가 아니기 때문에, 자바 언어 관련 책을 곁눈으로라도 한 번 본 개발자라면 쉽게 이해하고 따라 해 볼 수 있을 것이다. 또한 주 개발환경으로 이클립스를 사용하긴 하지만 2장에서 기초 사용법에 대해 간단히 설명하였고, 뒤에서 나오는 부분에도 가능한 쉽게 설명하였으니, 이클립스에 대한 지식이 많이 필요하지도 않다.
이 책을 쓰면서 우리 팀에 새로 배치된 개발자에게 OSGi를 가르친다는 마음으로 설명을 했다. 대학을 갓 졸업했거나, OSGi 관련 프로젝트 경력이 없는 자바 개발자가 처음으로 OSGi를 접했을 때 어떤 어려움이 있을까 예상해보고 그것에 대해 가능한 자세히 설명하려고 노력하였다. OSGi를 배우는 도중에 발생하는 문제들에 대해서 가능한 많이 설명하려고 했지만, 여러분이 실전에서 애플리케이션을 만들기 시작한다면 여기에서 설명한 것들보다 훨씬 더 다양한 문제를 접하게 될 것이다. 일반 자바 개발과는 다른 부분이 많고, 또 OSGi가 아주 널리 알려진 기술은 아니어서 문제가 생겼을 때 대처하는 방법을 찾기가 그리 쉽지 않을 것이다. 따라서 여러분도 어느 부분에서는 막혀서 난처해 할 부분이 분명히 있을 거라 생각한다. 이럴 때 다양한 경로로 시도를 해보라고 말하고 싶다. OSGi 소스코드도 한번 분석해보고, 다양한 OSGi 관련 오픈소스들도 참고해 보면 여러분이 원하는 해답을 의외로 쉽게 찾을 수 있을 것이다. 혹시 해결하기 어려운 문제가 있다면 아래 웹사이트에 도움을 요청하기 바란다. http://groups.google.com/group/osgi-springdm 이 책의 후반부에서는 SpringDM(Spring Dynamic Modules)을 활용하여 OSGi를 더욱 쉽고 강력하게 쓰는 방법을 설명하고 있다. OSGi와 Spring 프레임워크 그리고 SpringDM 이렇게 3가지 기술은, 각각만으로도 책을 몇 권씩 쓸 수 있을 만큼 복잡하고 방대한 기술이기 때문에 이 책에서 각 기술을 모두 자세히 다룰 수는 없다. 따라서 이 책에서는 Spring과 SpringDM 이 두 가지의 기술을 OSGi 프레임워크를 보다 쉽고 강력하게 사용하기 위한 도구 정도로 소개할 예정이다. 스프링 프레임워크에 대해서는 『프로 스프링 2.5』(위키북스, 2009) 를 참고하기 바란다. 개발서적을 읽는 방법은 개인마다 다르다. 어떤 개발자들은 목차만 보고 주요한 부분만을 가려내어 읽기도 한다. 아니면 개발서적은 다 사전형식의 레퍼런스처럼 생각하고, 자신이 필요한 부분만 원하는 때에 찾아서 보기도 한다. 하지만 여러분이 OSGi를 처음 접하는 개발자라면 가능하면 순서대로 읽어주길 바라며, 특히 1장부터 5장까지는 OSGi 프레임워크의 기본에 대해 설명하고 있으므로 꼭 정독하길 바란다. OSGi 개발 중 생기는 많은 문제들은 OSGi 프레임워크에 대해 잘못 이해하고 있어서 생기는 문제이다. 그리고 6장부터 9장까지는 OSGi에서 가장 필수로 사용되는 서비스를 설명하고 있다. 단순히 API 설명이라고 생각할 수도 있겠지만, 각각의 API들은 OSGi 환경에 맞게 독특하게 구성된 것이므로 각각의 구조를 이해하면서 다시 한 번 OSGi의 독특한 구성방식을 익힐 수 있다. 3장과 6장, 그리고 7장의 예제는 여러분이 실전에서 개발할 때 필요한 내용을 담고 있으므로, 꼭 한번 따라서 코딩해보고 파일로 저장해 두었다가 나중에 실무에서 사용하기 바란다. 11장부터 13장까지는 SpringDM에 대한 소개를 담았다. OSGi 기반 위에 만들어진 SpringDM은 스프링 프레임워크에 대한 기본지식이 있다면 훨씬 빠르게 이해할 수 있다. 여러분이 SpringDM을 프로젝트에서 쓸 예정이라면 11장을 보기 전에 스프링 프레임워크에 대한 소개자료를 더 참고하는 것이 좋을 것이다. 11장에서는 여러분이 사용하는 애플리케이션을 배포하고자 할 때 메이븐(Maven)을 이용해서 편하게 관리하는 방법을 소개하고 있다. SpringDM을 쓰지 않더라도 이 메이븐 자동화 부분은 꼭 읽어두기 바란다. --- '서문' 중에서 |
약 10년간 소수 분야에서 주로 사용되어 온 OSGi 기술은 이클립스의 내부 플랫폼으로 활용되면서 폭발적인 성장세를 보여주고 있다. 한 블로그에서는 2008년에 꼭 배워야 할 기술로 OSGi를 꼽기도 했다.
OSGi는 언젠가는 Java 플랫폼 자체에 포함될 것으로 예상되고 있으며, 이 책 후반부에서 언급하고 있는 SpringDM은 OSGi와 완벽한 결합을 보여주고 있어, OSGi의 차기 버전인 R 4.2부터 Blueprint Service라는 이름으로 추가될 것이 거의 확실시되고 있다. 따라서 OSGi와 SpringDM은 이제 얼마 안 있어 자바 개발자라면 누구나 배우고 사용할 기술이 될 것이다. 하지만 OSGi와 SpringDM은 자바를 많이 사용했던 개발자에게도 다소 생소한 개념들로 이루어져 있다. 완벽한 레이어 구조와 번들이라는 형태를 사용한 모듈 개념 등은 다소 불친절한 OSGi 스펙문서만으로는 이해하고 접근하는 데 한계가 있다. 이 책은 팀에 새로 배치된 개발자에게 OSGi를 가르친다는 마음으로 설명하고 있다. 대학을 갓 졸업했거나 OSGi 관련 프로젝트 경력이 없는 자바 개발자가 처음으로 OSGi를 접했을 때 어떤 어려움이 있을지 예상해보고 그에 대해서 가능한 자세히 설명한다. 곧 출시될 구글의 안드로이드 운영체제를 탑재한 안드로이드 폰에도 OSGi가 탑재될 것이라고 한다. 안드로이드 운영체제는 이제 휴대폰뿐만 아니라 넷북 등의 장비에도 적용될 것이라고 하니, OSGi를 익혀 두는 것은 분명 여러분의 미래를 대비한 확실한 투자가 될 것이다. |