ITEM 30 :: EFFECTIVE C#
안녕하세요, 30번째 시간입니다. 앞자리수가 또 바뀌었군요.
이번 챕터는 루프보다 쿼리 구문이 낫다, 입니다. 루프문은 개발자라면 매우 자주 사용하는 기능 중 하나입니다. 그 루프문보다 쿼리 즉, LINQ문으로 작성하는 편이 좋다고 말하는 내용은 어떤 내용일지 궁금증이 생겨나네요.
설명
-
흐름을 제어할 수 있는 For, While, Do/While, Foreach 등의 다양한 반복구문을 C#은 제공하기 때문에 일상적인 개발에는 부족함이 없으나, 이는 쿼리 구문으로 작성하는 편이 더 나은 경우가 있다.
-
쿼리 구문을 사용하게되면 프로그램의 논리를 명령형 방식에서 선언적인 방식으로 전환할 수 있다.
-
쿼리 구문을 이용하면 질의의 내용을 구성할 수 있을 뿐만 아니라 개별 항목에 대해 수행하려는 작업의 수행 시기를 연기할 수도 있다.
-
쿼리구문이나 메서드 호출 구문 중 어떤 방식을 쓰더라도 이러한 장점은 동일하다.
-
쿼리 구문이나 메서드 호출 구문을 확장하여 사용하면 루프를 이용하는 것 보다 사용자의 의도를 더 명확하게 드러낼 수 있다는 부가적인 장점도 있다.
-
쿼리 구문은 문제의 유형(계산식)이 복잡해지더라도 단순함을 그대로 유지할 수 있는 장점이 있다.
-
쿼리 구문보다 명령형 구문이 가독성이 조금 더 어렵다.
쿼리 구문과 메소드 호출 구문은 비슷하나 스타일의 차이가 조금 있고, 상황에 따라 가독성이나 작성하는 난이도가 다를 수 있다.
결론
즉, 위와 같은 장단점이 있으므로, 쿼리구문이나 메서드 호출구문 둘 중 하나를 쓰거나 예전 방식을 고집해도 좋다. 이는 사용자의 스타일이라고 필자는 생각하기 때문이다. 다만, 책에 나와있는 예제를 감안했을 때, LINQ는 데이터의 수집과 가공이 일반 루프문에 비해 훨씬 더 간단해보이는 것도 사실이다.
실제로 실무에서도 자주 쓴다고 하니, 기회가 된다면 LINQ를 사용하는 것도 좋을 것이다.