Bonjour and Zeroconf

Bonjour 란?

봉쥬르? 본져? 한국말로 어떻게 불러야할지 좀 거시기하군요. 많이 보신듯한 단어일겁니다.
원래는 Apple에서 랑데뷰로 불렸었는데 상표권문제로 봉쥬르로 명명되었다고합니다.
Bonjour는 Apple에서 만든 Zero Configuration Networking 프로토콜로써 IP 네트워크 상에서 컴퓨터, 주변기기 및 서비스를 자동으로 검색하는 서비스를 말합니다.
(참고, Zeroconf는 LGPL  이기때문에 다른 플랫폼/OS에서도 bonjour서비스를 볼수있다)

관련사이트 : http://docs.info.apple.com/article.html?path=Mac/10.4/ko/mh1670.html

위 링크의 내용을 보면 보다 친숙하게 느껴지실겁니다. 애플이 참 대단하긴합니다. 이런걸 개발하다니, Bonjour는 참으로 여러가지를 가능케 합니다.

Mac 컴퓨터뿐만 아니라  iPhone, iPad와의 파일공유, 네트워크 프린터, 기타등등 네트워크상에 존재하는 Bonjour 서비스를 찾아 자동으로 연결해줌으로써 새로운 맥 세상을 맛보게 해줍니다.

Zeorconf 란?

Zero Confiuration Networking으로 DNS 서버 설정이나 IP를 이용하지 않은 networking 즉 DHCP 환경이 없는 네트워크에서 peer to peer 연결이나 Wireless 환경에서 수동설정없이 자동으로 네트워킹 할수 있는 환경을 만들어주는것입니다.

관련사이트 : http://www.zeroconf.org/

ADC(Apple Developoment Center) Bonjour Overview 웹문서에 Bonjour 기능이 다음과 같이 나와있다.

  • addressing (allocating IP addresses to hosts)
  • naming (using names to refer to hosts instead of IP addresses)
  • service discovery (finding services on the network automatically)

MacOS X의 Printer Center, ITunes 등에서 Bonjour를 사용하고 있으며 윈도우용 Bonjour 프린터 마법사도 제공한다. 라이브러리는 Ruby/Objective-C/C/Java 기반 라이브러리를 제공하며 오픈소스로써 apache license 2.0을 따른다.

관련사이트 :
http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/NetServices/Introduction.html
http://developer.apple.com/opensource/

관련포럼:
http://www.appleforum.com/mac-column/40447-bonjour.html

아이폰, 아이패드용 어플에 이 기술을 적용해 멋진 어플을 만들어 보는것도 좋을거 같습니다. 소규모 내부 클라우드 시스템 구축도 가능하지 않을까요?

다음은 애플에서 제공하는 샘플코드입니다.
서버와 클라이언트 두 개의 소스로 나누어져 있고 서버 측의 이미지를 클라이언트에서 볼 수 있는 프로그램입니다.

샘플 코드
Picture Sharing
Picture Sharing Browser
http://www.macresearch.org/cocoa-scientists-part-xxviii-bonjour-and-how-do-you-do