'var'에 해당되는 글 1건

  1. 2009/02/26 C#에서의 VAR 타입

C#에서의 VAR 타입

.NET 2009/02/26 16:31

각 언어마다 특징이 있겠지만 C#은 특히나 복합적이면서 독특한 기능을 많이 제공하는 것 같다. Visual studio 2003때 C#을 사용해봤으니 꽤나 오래 되었지만, 당시로서도 꽤나 능동적이면서 편리한 기능을 제공했다. 사실 당시 나는 C#보단 자바가 좋았다. 물론 그때 자바를 주로 사용했던 이유도 있겠지만, 자바는 이미 완성이 되어 있는 언어라면 C#은 아직 갈 길이 멀어 보이는 언어 같았기 때문이다.

어찌되었던 오랜만에 프로그래밍을 다시 시작하면서 잡은 언어가 C#이다. 뿐만 아니라 앞으로도 계속 공부 해야 할 분야가 .NET이다 보니 꽤나 바빠질 듯 하다.

그럼 C#을 특징들을 적어 보도록 하겠다.
What is “VAR” the type in new C#?? (http://msdn.microsoft.com/ko-kr/library/bb384061.aspx)

VAR 타입을 모르는건 아니지만 내가 C#을 했을 때 는 분명 없었던 타입이었다. 아니면 당시로서는 별로 관심이 없었거나.

이 VAR타입이 자바스크립트의 VAR타입과는 어떻게 다른지는 아직 모르겠지만 기본적으로 타입 뒤에 나오는 형식에 맞춰 타입이 정해지는 원리는 같으리라 본다.

그럼 왜 C#에서 이 VAR 타입이 갑자기 나온 것일까?
우선 var타입은 변수에 저장되는 값을 보고 타입형식이 정해지므로 사용성 면에서는 편하다. 그리고 배열값 같은 것을 바로 넣어서 foreach문에서 돌릴 수 있기 때문에 반복문 에서도 효과가 있다. 하지만 단순히 이런 이유 때문일까? 그래서 좀 알아 봤다.

What is the purpose of var type? (http://blogs.msdn.com/danielfe/archive/2005/09/22/472884.aspx)

우선 C# 개발자들은 저장되는 타입에 관계없이 언어에 통합된 쿼리라는 LINQ를 추가했다.
타입에 관계가 없다는 것은 그것이 OBJECT던 XML이던 SQL이던 관계없이 쿼리 문처럼 사용하겠다는 말이다.

근데 이 LINQ에는 문제가 있는데 그것이 LINQ로 조회한 값의 타입이 정형적이 안타는 것이다. 즉 프로그래밍 안에서 SQL의 쿼리 문처럼 사용해서 반환되는 것을 저장하려다 보니 프로그래머가 일일이 반환되는 타입에 맞춰 변수 타입을 설정 하기가 힘들다는 것이다. 그래서 나온 것이 VAR타입이란다.  반환되는 타입에 맞춰 컴파일러가 타입을 설정 하다보니, 사실 사용에는 무척 편하다. 변수 타입 생각 안하고 막 코딩 해도 되는 PHP같으니 말이다.
그런데 여기에는 단점이 있다. PHP를 해본 사람은 알겠지만 변수가 많아지고 처리해야 데이터가 많아지다 보면 가장 어려운 것이 자신이 만든 변수의 타입을 잊어 버린다는 것이다. 물론 큰 문제는 아닐지도 모르지만 코드 가독성 에서는 최소한 득보다는 실이 많다는 얘기다.

결과적으로 사용에는 편리성이라는 무기가 더 늘어 났지만, 자칫 VAR를 남발하여 프로그래밍을 하다 보면 가독성 및 일관성에는 문제가 될 것이다.


LINQ에 대해 더 자세히 알고 싶다면 아래 링크를 클릭~
LINQ 프로젝트: http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx

Posted by Jake Kim
TAG ,