프로그래밍/실버라이트

[실버라이트] LINQ ( Language Integrated Query)

쿠샨 2010. 12. 31. 01:26

LINQ 를 들어 가기 전에 Collection 과 Array 의 차이를 먼저 살펴 보자.

Collection Class들은 삽입, 삭제, 수정, 검색 등의 기능을 한다.
Collection 과 Array의 차이점은 Array는 첨자로 배열을 생성하고, 데이터를 할당 할 때에는 첨자 범위 내에서는 할당이 가능 하나 Collection은 동적으로 메모리 할당이 가능 하다.(쉽게 Array 와 ArrayList / HashTable 생성법을 비교해 보면 이해가 될 것이다.)

그럼 LINQ는 무엇 인가?
L - Language
IN - Integrated
Q - Query

나는 언어 통합 쿼리로 직역하고, 이해 했다;;
즉,'프로그래밍 언어에 상관 없이 일괄적이고, 독립적으로 동작하는 쿼리' 라고 이해 했다.
쿼리 대상은 Database, XML , Object , Text 파일 등 거의 제한이 없다.


LINQ를 기능 별로 분류해 보면 다음과 같다.
LINQ To Object
LINQ To Dataset
LINQ To SQL
LINQ To Entities
LINQ To XML

여기서 나온 것들은 쿼리를 실행 하는 대상만 다르고 문법은 동일 하다.

그렇다면 LINQ가 갖는 장점을 살펴 보자.

- 개발자가 이해하기 쉬운 간결한 구문
        (From 변수명 in 컬렉션 select 셀렉트) 구문으로 쉽게 쿼리 할 수 있다.

- 일관된 쿼리 문법
        (위에서 말했다 싶이 쿼리 실행 대상만 다르고 문법은 동일 하다.)

- 객체 지향적
        ( 이건 나도 모르겠다.... 왜???왜?? 아시는분 계시면 맆흘 을..)

- 개발 속도가 빠르다.
        ( 예를 들어 전체 학생 성적에서 80점 이상인 학생의 성적을 뽑을때 학생 한명 한명의 성적을 불러와 80점 이상
          비교를 하고 데이터를 추가 해야 하는 복잡한 작업을 LINQ 사용시 한줄로 끝낼 수 있다)


이렇게 좋은 LINQ도 사용 조건이 따른다.
바로 데이터들이 IEnumerable 인터페이스를 지원해야 한다.
이는 ArrayCollection이면 LINQ 사용이 가능 하다.


짧은 시간에 간력하게 정리 했다. 필요한 부분 보충은 내일을 기약하며..


속이 안좋아 일찍 잤다가 새벽에 깼다.. 다시 어찌 잠을 청할지 고민이...
속이 안좋은게 조금 걱정 된다..설마 신종플루?? 아니겠지 -ㄴ-;;
2010년도 이제 오늘 하루 뿐이라는 현실이 가슴이 아프다.
다들 한 해 마무리 잘하고 식상 하지만 2011년은 다들 좋은 한 해를 보냈으면 한다.