728x90
어제 애플의 신제품 발표회가 진행되었습니다. 우리나라 입장에서는 애플TV 보다도 아이팟터치 4세대에 더 많은 관심이 가는게 사실입니다 :-) 보통 이런 이벤트 행사가 한번 진행되면 새로운 SDK 나 개발자도구... 뭐 그런 것들이 공개되곤 했는데요 아니나 다를까 개발자용 SDK 4.1 GM 이 오픈되었습니다.


자자~ 개발자 등록된 분들은 http://developer.apple.com 으로 고고씽입니다 :-)

- NoPD -
728x90
728x90
이미 아시는 분들은 패스하셔도 되는 포스팅입니다. ^^ OAuth 라고 들어보신 분들 많으시죠? 하지만 관련한 도큐멘테이션을 하나씩 읽으려고 하다 보면 몇 장 못넘기고 포기하신 분들도 꽤 많을 것 같습니다. 트위터 서드파티 라이브러리를 검색하다가 많은 라이브러리들이 LinkedIn 의 에반젤리스트가 작성한 OAuth 에 대한 가이드를 올려둔 슬라이드 쉐어를 많이 공유하고 있더군요. 그래서 가볍게 업어 왔습니다 ^^ 한번 읽으면 잘 이해 안되는 부분도 많겠지만 두번, 세번 읽으면 감이 좀 오실지도 모르겠습니다! (사실 저도 감잡고 있다는 ㅋ)


어떠신가요? 그래도 간단하게 설명된 축에 속하는 문서라고 생각됩니다. 실제로 OAuth 인증을 받는 코드를 만들어 가시면서 보다 세세한 부분들을 보게 되시겠지만 큰 흐름을 먼저 잡는 용도로 안성 맞춤입니다. 뒷부분 슬라이드는 LinkedIn 의 API 에 대한 것들이니 앞서 얻은 Key 과 String 들을 어떻게 쓰는지를 중심으로 보시면 됩니다.


OAuth 의 흐름도는 위와 같습니다. 트위터에서 업어온 그림인데 조금 작습니다 ^^; 크게 3가지 단계로 나뉜 인증 과정을 숙지하고 어떤 Key 가 어떤 상황에서 사용하는지를 중심으로 한번 보시면 되겠습니다. 위의 슬라이드 쉐어에서 이야기한 내용들을 이 흐름도에 한 번 매핑해 보시면 좋을 것 같습니다.


- NoPD -
728x90
728x90
C# 3.0 에서 새롭게 도입된 Lambda 표현식을 사용하면 코드를 정말 간단하게 표시할 수 있는 장점이 있습니다. 델리게이트가 세상에 처음 나타난 이래 이는 정말 많은 프로그램과 개발자들에게 형언할 수 없는 아름다운 생활을 할 수 있는 "기회"를 주었습니다. 물론... 기회에는 반대급부가 따랐지만 말이죠.. 쿨럭... 여튼... 아래의 간단한 세가지 코드를 보면서 코드가 아름다워지는 광경을 한번 보도록 하겠습니다.

Named 메서드의 사용
IEnumerable<string> filteredList = cities.Where(StartsWithL);

public bool StartsWithL(string name)
{
    return name.StartsWith("L");
}

자주 보시던 스타일의 코드입니다. cities 어레이에 들어 있는 값들 중 L 로 시작하는 값을 얻어오는 코드지요. string 클래스의 확장 메서드인 Where 의 도움을 받아 StartsWithL 메서드가 Where 절의 역할을 하고 있습니다.

익명 Delegate의 사용

별도로 메서드를 만들어서 호출하는 것도 나쁘지 않습니다만 이왕이면 코드를 간결하게 유지하기 위해 익명 Delegate를 많이들 사용하실 겁니다. Named 메서드 사용하던걸 익명 Delegate 로 바꿔보겠습니다.

IEnumerable<string> filteredList = cities.Where(
            delegate(string s)
            {
                return s.StartsWith("L");
            }
일단 메서드가 하나 줄어서 기분이 좋습니다 ^^; 익명 Delegate 를 이용해서 위처럼 간단하게 inline 으로 처리를 할 수 있습니다. 그런데 코드가 지저분한 것이 별로 보기가 좋지 않습니다. 이를 람다 표현식으로 바꾸어 보도록 하겠습니다

Lambda 표현식의 사용

IEnumerable<string> filteredList = cities.Where(s => s.StartsWith("L"));
아주 깔끔하게 한줄러 코드를 줄였습니다. 닷넷이 제공하는 컴파일러는 생각보다 똑똑해서 s 라는 변수가 당연히 cities의 타입을 따라간다는 것을 알고 있습니다. 인텔리센스도 실시간으로 당연히 잘 동작하겠지요.

- NoPD -
728x90
728x90
빠릅니다 :-) 한국 시간으로 오늘 새벽 SDK 4.1 버전의 세번째 베타가 발표되었습니다. 요즘 Objective C 와 Xcode 그리고 아이폰 개발 관련하여 닷넷쪽 F/U 건이 많아 조금 소강상태인데요, SDK 는 주구장창 버전이 올라가고 있어서 조금 조바심이 나네요 ㅎ.


자, 애플 개발자 사이트로 달려가 봅시다! (http://developer.apple.com)

- NoPD -
728x90

+ Recent posts