LINQ란?

졍잉·2025년 3월 27일

C#, VB.NET 같은 .NET 언어에서 데이터를 조회하고 조작할 수 있도록 지원하는 기능으로

"컬렉션(배열, 리스트, DataTable 등)에 대해 SQL처럼 쿼리를 작성할 수 있는 기능”

을 말한다.


특징은 다음과 같다.

  • 일관된 데이터 접근 방식
    • 다양한 데이터 소스(배열, 리스트, 데이터베이스, XML 등)에 대해 동일한 구문 사용
  • 타입 안전성(Type Safety)
    • 컴파일 시점에서 데이터 타입 오류를 확인하므로 런타임 오류 감소
  • 가독성 향상
    • 복잡한 데이터 조작 작업을 간단하고 직관적인 코드로 작성 가능
  • 지연 실행(Deferred Execution)
    • 실제 데이터 처리는 필요할 때 수행되므로 성능 최적화에 유리



SQL과 굉장히 유사하게 생겼는데 순서가 약간 다르다.

from <range variable> in <source>
where <조건>
group by <그룹 기준>
orderby <정렬 기준>
select <결과>

이렇게 생겼음.




LINQ는 두가지 방법으로 사용이 가능하다.

쿼리 구문(Query Syntax)

// 리스트에서 짝수만 추출
var numbers = new List<int> { 1, 2, 3, 4, 5, 6 };

var evenNumbers = from num in numbers
                  where num % 2 == 0
                  select num;

foreach (var n in evenNumbers)
{
    Console.WriteLine(n);
}

: from → where → select 순으로 작성 (SQL 방식으로 작성)

메서드 체이닝(Method Syntax)

// 리스트에서 짝수만 추출 (메서드 체이닝)
var evenNumbers = numbers
    .Where(num => num % 2 == 0)
    .Select(num => num);

foreach (var n in evenNumbers)
{
    Console.WriteLine(n);
}

람다식으로 작성한다.

( 어차피 메모리 사용이 불필요하기 때문에 그냥 메소드에 담아서 일회용으로 사용하는 듯 )

여러개의 메소드를 만들어서 연결하는 방식으로 기존 쿼리구문보다 쉽게 작성 가능하다.

현장에서는 걍 GPT 돌려서 사용하는 것 같은데 그래도 어떻게 써먹는지는 알아야할 것 같으니
미리 공부해서 여러 방법으로 사용해보도록 한다.

profile
군계일학으로 살아남기

0개의 댓글