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 -
신고
Posted by 노피디
간만에 MS 쪽 기술 Follow-Up 을 다시 시작했습니다. 그동안 회사 업무니 뭐니 바빴다가 이제 정신 좀 차리면서 따라 잡을거 따라잡고 하는 중이네요. 아직도 머릿속엔 alloc / init 이 가득차 있지만 이제는 멀티 트랙으로 움직여야 할 시기가 된 것 같네요 :-)

올해 초에 온라인으로 개최한 한국 마이크로소프트의 개발자 컨퍼런스 동영상 중 몇가지를 좀 공유할까 합니다. MSDN 에 있는 링크 영상이 너무 사이즈가 작아서... 조금만 더 키워 보고자 하는 것이 첫번째 이유지만 여튼... 좋은 것은 나눠야 배가 되니까요 :-)



- NoPD -
신고
Posted by 노피디
Development/Database2009.08.28 11:17

닷넷 환경에서 오라클을 개발하기 위한 방법은 크게 두가지이다. 오라클 클라이언트를 전체 설치할 때 따라오는 ODP.NET (Oracle Data Provider for .NET) 만을 이용하는 방법이 한가지이고, 다른 하나는 Visual Studio IDE 환경에 Plug-in 가능한 ODT.NET (Oracle Developer Tools for Visual Studio.NET) 을 설치해서 사용하는 방법이 다른 한가지이다.

복잡하지 않은 개발을 하는 상황이고 데이터베이스에 의존적인 개발이 적은 경우 (예>Stored Procedure 의 사용 등) 에는 전자의 방법을 사용하는 것이 간단하며, 그렇지 않은 경우는 ODT.NET 을 설치해서 사용하는 것이 디버깅, 개발 효율성 측면에서 훨씬 우수할 수 있다.

NoPD 의 경우 마이크로소프트가 닷넷 환경에서 제공하는 표준 Provider (System.Data.OracleClient) 를 사용하던 도중 오라클 Provider 로 교체를 하는 케이스를 경험했었는데, 구문이라던가 사용하는 방법이 크게 다르지 않기 때문에 마이그레이션을 하는 경우에도 전자의 방법을 강력하게 추천한다.

※ ODT.NET 다운로드 : http://tinyurl.com/lvcw56

- NoPD -
신고
Posted by 노피디

티스토리 툴바