아이폰어플개발정보2010. 6. 21. 23:55
[번역] Getting started with Networking and Internet.

원본 링크: http://developer.apple.com/iphone/library/referencelibrary/GettingStarted/GS_Networking_iPhone/index.html

네트웍과 인터넷으로 시작하기

개요

iPhone 의 O/S 는 몇가지의 프레임웍과 라이브러리를 갖고 있으며, 이것은 네트웍과 인터넷을 기반으로 하는 여러분들의 어플리케이션에서 사용하도록 제공하는 것입니다. 따라서 여러분들은 Foundation 과 Core Foundation 또한 CFNetwork 과 BSD 소켓들을 이용하여 일반적인 네트웍 프로토콜과 서비스에 접근할 수 있습니다.

[] Foundation 은 Objective-C 기반의 프레임웍이며, CFNetwork 의 API 사용을 위한 객체 지향형의 추상화(abstraction)를 제공합니다.

[] Core Foundation 은 C 기반의 프레임웍이며, URL 자원을 생성, 접근, 갱신 또는 삭제하기 위한 편리하고(다른 것들에 비해서) 시스템에 독립적인 방법을 제공합니다.

[] CFNetwork 은 C 기반의 프레임웍이며, 여러분들의 어플리케이션의 다양한 네트웍 처리를 위해서 제공된 것입니다. 가령, 실행 루프를 갖는 소켓들의 통합과 HTTP 와 FTP 서버들과의 의사 소통이 예가 될 수 있습니다.

[] CFNetServices 는 C 기반의 API 이며, 이것으로 여러분은 Bonjour 네트웍 서비스를 찾거나 등록할 수 있습니다; 가령 프린터나 파일 서버 등을 말합니다.

[] BSD 네트웍 API (libSystem 의 일부인) 들은 저수준의 소켓 함수들이며, 만일 여러분들이 이미 다른 플랫폼을 경험해 본 적이 있다며, 이것은 여러분에게 어렵지 않을 것입니다.

여러분이 이러한 인터페이스를 사용할 때, 여러분은 Wi-Fi 또는 모바일 기반의 신호를 선택할지 고민할 필요가 없습니다.

이 인터페이스들은 자동적으로 기본적인 하드웨어 장치에 접근하며, 최적의 신호를 선택하고, 필요에 따라 신호들 사이에서 끊김없이 부드럽게 왔다갔다 할 수 있습니다.

기본

여러분이 코드를 작성하기 이전에 아래 사항을..

[] iPhone OS 환경 위에서의 네트웍 어플리케이션을 개발할 때,
고려해야 할 문제들에 언급하고 있는 [Document Transfer Strategies]
를 읽으시기 바랍니다.

[] 여러분의 네트웍 관련 코드를 작성하기 위해 여러분이 선호하는 언어를 선택합니다. iPhone OS 는 C 와 Objective-C 로 작성된 네트웍 코드를 지원합니다. 여러분의 선택은 여러분이 가장 편안하게 느끼는 언어에 따라 결정하는 것과 다른 플랫폼으로 부터 기존 네트웍 코드를 가져올 것이냐에 따라 결정됩니다.

[] 여러분이 소켓을 통해 직접 작업할 것인지, 추상 계층을 사용할 것인지 결정합니다.

[] iPhone OS 는 소켓을 통해 직접 작업하는 것을 불필요하게 만드는 것으로 대부분의 소켓 상호 작용 기능을 위해서 편리한 추상 계층을 제공합니다.

[] 기존 네트웍 서비스를 찾기 위해서 Bonjour 를 사용할 것인지 새로운 것들을 등록할 것인지를 결정합니다.

여러분이 위의 과정을 거친 다음에는, 여러분은 어떤 네트웍 API (기존 또는 여러분이 원하는 것들 중에서) 을 선택할 것인지 알 수 있게 됩니다.

다음 과정들
만일 여러분이 네트웍 위에서 작동하는 어플리케이션을 개발한다면, 여러분은 네트웍 프로토콜과 서비스를 이용하기 위해서 iPhone OS 가 제공하는 API 들에 익숙해지기를 원할 것입니다. 만일 여러분이 웹서버와 연동되는 어플리케이션을 개발한다면, 예를들어, 여러분은 Core Foundation 또는 Foundation 에 포함된 애플의 HTTP 기반의 API 를 선택할 것입니다. 만일 소켓을 직접 사용하는 어플리케이션을 개발한다면, 여러분은 다양한 소켓 API 를 이해해야만 합니다. 이러한 과정이 서로 분리된 것처럼 보임에도 불구하고, 이러한 것들은 필수적으로 상호 독립적이지는 않습니다.(역주: 서로가 상당히 연관이 있을 수 밖에 없다는 얘기인것 같네요.)

URL 을 이용하여 리소스를 다운로드하기
Cor Foundation URL 접근 유틸리티, 즉 CFURL 과 NSURL API 는 가장 기본적으로 제공되며, 이들은 웹서버 또는 FTP 서버로 부터 개개의 파일들 또는 다른 리소스들의 다운로드를 위해 쉬운 방법을 제공하고 있습니다.

[] C 기반의 CFURL 은 Core Foundation 프레임웍 중의 일부입니다. 여러분은 [CFURL Reference] 에서 자세한 내용을 배울 수 있습니다.
[] Objective-C 기반의 NSURL 은 Foundation 프레임웍 중이 일부입니다. 여러분은 [NSURL Class Objective-C Reference] 에서 자세한 내용을 배울 수 있습니다.

HTTP 와 FTP Stream 을 이용한 웹과 파일 서버와 연동하기
만일 여러분의 어플리케이션이 CFURL 또는 NSURL 에 의해 제공되는 기능을 통해 웹서버 또는 FTP 서버와 연동하는 것이 필요하다면, 여러분은 CFHTTPStream 과 CFFTPStream API 들을 사용해야 할 것입니다. 이들은 HTTP 의 GET, POST 요청, HTTP 의 쿠키와 요청 헤더 관리, FTP 의 디렉토리 조회, FTP 의 파일 업로딩과 같이 복잡한 HTTP 와 FTP 의 요청에 대한 지원을 제공합니다.

일반적으로 이러한 API 를 배우기 위해서는, [CFNetwork Programming Guide] 를 참고해야 합니다. 자세한 API 관련 문서는 [CFHTTPStream Reference] and [CFFTPStream Reference] 를 참고하시기 바랍니다.

소켓을 이용하여 통신하기

만일 여러분이 소켓을 사용한다면, iPhone OS 에서 제공하는 실행-루프 소켓의 통합 API 를 사용할 수 있으며 또한 이러한 API 에 있는 BSD 소켓으로의 직접 접근을 사용할 수 있습니다.

[] 만일 여러분이 맥 OS X 기반의 네트웍 어플리케이션을 계획하고 또한 iPhone OS 기반의 네트웍 어플리케이션을 만들고 싶다면, 여러분은 동일한 네트웍 API 들을 이용할 수 있습니다.

만일 소켓 수준의 CFNetwork API 로 작업하기로 결정한다면, 여러분은 [CFNetwork Programming Guide] 와 [CFNetwork Framework Reference] 을 반드시 참고해야 합니다.

[] iPhone OS 에서 BSD (POSIX) 네트웍 API 제공됨에도 불구하고, 여러분은 이들을 사용하지 말아야한다. 만일 소켓으로 직접 통신한다면, 즉 On-demand 방식의 VPN 과 같은 iPhone OS 의 특정 네트웍 기능, 이러한 직접 통신을 사용하지 않기를 바랍니다. 대신 [CFStream Socket Additions] 에서 제공되는 API 를 사용해야 합니다.

BSD (POSIX) 네트웍에 대해 알기 위해서는,  예제 코드와 일반적인 정보를 위해서 [UNIX Socket FAQ] 웹사이트를 참고해야 합니다. API 에 대한 자세한 내용은 [iPhone OS 의 메뉴얼 페이지]에서 소켓(2) 를 읽어주기 바랍니다.

네트웍 서비스를 등록하기와 찾기

여러분은 Bonjour 를 사용하여 네트웍 서비스를 찾거나 네트웍 서비스를 등록할 수 있습니다.
이것을 하기 위해서는, C 기반의 CFNetServices 또는 Objective-C 기반의 NSNetServices API 를 사용해야 합니다.

이러한 API 들은 [NSNetServices and CFNetServices Programming Guide] 에 설명되어 있습니다. 이러한 API 의 CFNetwork 과 Foundation 형식에 대해 각각  [CFNetServices Reference] and [NSNetService Class Reference] 을 읽어 주시기 바랍니다.

역자주: 제가 아직 개발을 시작하지 않아서, 위에서 네트웍 서비스를 discover, register 한다는 의미가 크게 와닿지를 않네요. 오역이 안되었기를 바라며, 혹시 오역이라면 댓글 부탁합니다.

2010년 2월 27일 00:16 경부고속도로 아래에서..



출처 : http://blog.naver.com/PostView.nhn?blogId=dontbeshy&logNo=90082142378
Posted by 오늘마감

댓글을 달아 주세요