Toolbox

C# JavaScript, Eric Lippert의 블로그 및 기타 정보

Scott Mitchell

모든 가격은 2008년 11월 19일을 기준으로 확인된 가격이며 변경될 수 있습니다. 이 칼럼에 제시된 의견은 필자의 개인적인 의견이며 Microsoft의 입장과 다를 수 있습니다.

목차

C# 및 Visual Studio를 사용하여 AJAX 응용 프로그램용 JavaScript 작성
관심을 끄는 블로그
주석, 문자열, 태그 및 리소스 파일의 맞춤법 검사
관련 서적

C# 및 Visual Studio를 사용하여 AJAX 응용 프로그램용 JavaScript 작성

과거 JavaScript는 간단한 입력 유효성 검사와 DOM(문서 개체 모델) 조작에 유용한 가벼운 언어로 취급되었습니다. 그러나 사실 JavaScript는 현재의 AJAX 지원 웹 사이트를 움직이는, 강력하고 기능이 풍부한 언어입니다.

지난 몇 년 사이에 최신 웹 응용 프로그램에서 JavaScript의 보급과 역할이 크게 확장되었지만 JavaScript 코드를 작성할 때의 디자인 타임 환경은 C# 코드를 작성할 때와 여전히 차이가 큽니다.

Visual Studio는 JavaScript에 대해 IntelliSense 및 디버깅 지원을 제공하지만 많은 JavaScript 오류 및 경고는 런타임 전에는 탐지할 수 없습니다. 반면 C#은 컴파일 타임 형식 검사 기능, 보다 견실한 개체 지향 구문, 그리고 리팩터링, 기술 문서 작성 및 클래스 탐색을 위한 도구를 제공합니다. 또한 대부분의 ASP.NET 개발자는 JavaScript보다 C#에 더 익숙합니다.

JavaScript 대신 C# 코드를 작성할 수 있다면 좋지 않을까요? Microsoft 소프트웨어 설계자 Nikhil Kothari가 만든 무료 컴파일러, 런타임 및 프레임워크인 Script#(버전 0.5.1)을 사용하면 됩니다. Script# 컴파일러는 C# 코드를 받아 상응하는 JavaScript 코드로 변환합니다.

Script#을 사용하여 간단한 1회용 JavaScript 함수 또는 이벤트 처리기는 물론 큰 규모의 JavaScript 라이브러리도 만들 수 있습니다. 또한 ASP.NET AJAX 구성 요소 및 동작이나 Windows Vista 사이드바 가젯을 만들 수도 있습니다. Script# 컴파일러는 .resx 파일을 사용하여 지역화된 스크립트 파일을 만들고 릴리스 또는 디버그 스크립트를 생성하도록 구성할 수 있습니다. (디버그 스크립트에는 가독성을 위해 공백과 설명적인 변수 이름이 포함되는 반면 릴리스 스크립트에는 불필요한 공백이 제거되고 변수 이름은 간결하게 바뀝니다.) 간단히 말해 Script#은 웹 응용 프로그램 또는 사이드바 가젯에 필요한 JavaScript 코드를 생성할 때 C# 코드로 작업할 때의 모든 이점, 즉 컴파일 타임 오류, 익숙한 C# OOP 구문 및 의미 체계, 뛰어난 도구 지원을 제공합니다.

컴파일러 외에 Script#에는 런타임 및 프레임워크도 포함되어 있습니다. 런타임과 프레임워크에는 모두 C# 코드를 작성할 때 프로그래밍하는 서버 측 구현과 Script# 컴파일러에서 생성한 JavaScript 코드에 사용되는 클라이언트 측 구현이 포함됩니다.

런타임은 형식 시스템을 정의하며 필수 요소입니다. 프레임워크는 옵션이지만 HTTP 요청, JSON 직렬화, 브라우저 탐지 등의 일반적인 작업을 수행하기 위한 API를 제공합니다. 또한 프레임워크에는 브라우저에서 Silverlight 컨트롤과 함께 동작하여 Internet Explorer 7의 RSS 저장소에 액세스하고 브라우저 내에서 Microsoft Virtual Earth에 액세스하기 위한 사용자 인터페이스 컨트롤과 API도 포함됩니다.

Script#은 기존 C# 응용 프로그램을 AJAX 지원 웹 응용 프로그램으로 변환하기 위한 소프트웨어가 아닙니다. Script#은 개발자에게 이후 JavaScript 코드로 변환되는 C# 코드를 작성하여 웹 응용 프로그램 또는 사이드바 가젯을 만들 수 있는 기능을 제공합니다.

그러나 C#과 JavaScript는 일 대 일로 대응하지 않으므로 Script#에서 일부 C# 언어 기능은 사용할 수 없습니다. 예를 들어 쓰기 전용 속성, 그리고 goto, lock, sizeof를 포함한 특정 키워드 및 구문은 사용할 수 없습니다.

가격: 무료

projects.nikhilk.net/ScriptSharp

관심을 끄는 블로그

우수한 기술 관련 블로그의 가장 중요한 요소는 지식을 전달하고 주제가 명확하며 자주 올라오는 게시물, 중요한 기술 및 개념에 대한 심층적인 탐구, 그리고 독자적인 문체입니다. Eric Lippert의 블로그는 이러한 요소들이 적절한 비율로 배합되어 있습니다.

Eric은 Microsoft의 선임 소프트웨어 디자인 엔지니어로, 스크립팅 언어 팀과 C# 팀 모두에서 일한 경험이 있습니다. Eric의 블로그에는 보안, 성능 및 코드 품질에 대한 유용한 게시물을 많고, 람다 식, 불변성, 공변성(Covariance) 및 반공변성(Contravariance)과 같은 언어 의미 체계와 기능에 대한 정보도 풍부합니다. 그는 이러한 다양한 주제에 대해 심층적으로, 많은 경우 몇 회에 걸쳐 탐구합니다.

람다 식과 무명 메서드를 비교하는 5부작 시리즈, C#의 불변성에 대한 11부작 시리즈, 그리고 protected 멤버 의미 체계에 대한 5부작 시리즈가 있습니다. 또한 다양한 언어 기능을 사용하는(또는 사용하지 않는) 방법에 대한 Eric의 생각과 의견도 볼 수 있습니다. "코딩 대모험"에서 배열에 대한 그의 의견을 읽어 보십시오.

블로그에는 복잡한 주제를 다루는 항목이 많지만 Eric은 개념과 이론을 단순하고 현실적인 언어로 설명하는 재능을 타고났습니다.

blogs.msdn.com/ericlippert

ericlippert.gif

코드 보안, 성능 및 품질에 대한 Eric Lippert 블로그(더 크게 보려면 이미지를 클릭하십시오.)

주석, 문자열, 태그 및 리소스 파일의 맞춤법 검사

컴파일러는 일종의 맞춤법 검사기 역할을 합니다. 메서드 이름에서 두 글자의 위치가 바뀌거나 변수 이름이 잘못 입력되면 컴파일러는 빌드 오류를 보고합니다. Visual Studio에서는 틀린 부분에 물결 모양의 밑줄이 표시되기 때문에 이러한 오류를 찾기는 쉽습니다.

그러나 컴파일러는 소스 코드 주석, 코드 또는 리소스 파일의 문자열이나 HTML, XML, XAML 태그에 대해서는 맞춤법 검사기 역할을 하지 않습니다. 흔히 기술 문서에 맞춤법이 틀린 주석이 포함되거나, 더 나쁜 경우 맞춤법이 틀린 문자열이 QA를 통과하여 프로덕션으로 들어가기도 합니다.

다행히 문자열, 주석, 태그 및 기타 컴파일러에서 인식하지 못하는 부분에 대해 맞춤법을 검사하는 도구가 있습니다. ComponentOne의 IntelliSpell 2.0은 이러한 도구 중 하나입니다. IntelliSpell의 동작 방식은 Microsoft Office Word의 맞춤법 검사와 비슷합니다. IntelliSpell은 맞춤법이 틀린 단어 밑에 물결 모양의 밑줄을 표시합니다. 맞춤법이 틀린 단어를 마우스 오른쪽 단추로 클릭하면 가능한 교정 목록을 볼 수 있습니다. 맞춤범 오류는 Task List 창에도 열거됩니다.

Task List에서 바로 맞춤법 오류를 수정할 수도 있고 Task List에서 단어를 두 번 클릭하여 해당 단어로 이동할 수도 있습니다. Tools 메뉴 또는 IntelliSpell 도구 모음에서 메뉴 옵션을 선택하여 언제든 맞춤법 검사기를 실행할 수 있습니다. IntelliSpell은 자동으로 입력과 동시에 맞춤법을 검사하거나 각 빌드 후에 맞춤법 검사기를 실행하도록 구성할 수 있습니다.

기본적으로 IntelliSpell은 모든 코드 파일, 웹 페이지, XML 파일(구성 파일 포함), 리소스 파일 및 텍스트 파일에서 맞춤법을 검사합니다. 대/소문자가 섞인 단어, 숫자가 포함된 단어, 인터넷 및 파일 주소는 무시되지만 이러한 규칙 및 맞춤법을 검사할 파일 형식은 구성이 가능합니다. 또한 IntelliSpell은 16개 언어로 된 맞춤법 사전을 제공합니다. 이 사전은 독자적으로 사용할 수도 있고 지역화된 프로젝트에서 맞춤법 검사를 할 때 연계하여 사용할 수도 있습니다.

IntelliSpell은 무료 Community Edition과 $79.99에 판매되는 Professional Edition의 두 가지 버전으로 제공됩니다. Community Edition은 핵심 기능(Visual Studio 통합, 맞춤법이 틀린 단어에 밑줄 표시, 컨텍스트 메뉴를 통한 맞춤법 제시 등)을 제공하지만 Professional Edition에서 제공하는 몇 가지 기능이 빠져 있습니다.

Community Edition을 사용하면 한 번에 하나의 파일에서만 맞춤법을 검사할 수 있습니다. Professional Edition은 전체 프로젝트 또는 솔루션에 대해 맞춤법을 검사할 수 있습니다. 또한 입력과 동시에 맞춤법 검사, 지역화된 프로젝트의 맞춤법 검사, 사용자 지정 사전 만들기와 같은 기능은 Community Edition에는 포함되지 않습니다.

가격: Community Edition은 무료이며 Professional Edition은 $79.99입니다.

componentone.com/

intellispell.gif

IntelliSpell로 문자열, 주석 및 태그의 맞춤법 검사 (더 크게 보려면 이미지를 클릭하십시오.)

관련 서적

모든 직업과 취미에는 경험에 관계없이 누구나 공부해야 하는 부분이 있습니다. 예를 들어 모든 골프 선수는 기술 수준에 관계없이 쇼트 게임 연습을 통해 실력을 높일 수 있습니다.

소프트웨어 개발자라면 SQL 구문 및 기능에 대한 지식을 끊임없이 쌓아야 합니다. SQL 팁과 트릭을 소개하는 온라인 기사는 많지만 필자의 경험으로 보면 SQL 기술을 연마하기 위한 가장 좋은 방법은 관련 서적을 꼼꼼히 공부하는 것입니다.

필자는 최근 Michael Coles의 Pro T-SQL 2008 Programmer's Guide(Apress)를 읽었습니다. 이 책은 T-SQL 구문 및 언어 기능을 샅샅이 살펴봅니다. 책의 시작 부분에는 MERGE 문, 새로운 데이터 형식과 같은 T-SQL 2008의 새로운 기능에 대한 내용이 나옵니다. 그런 다음 핵심 T-SQL 구조인 사용자 정의 함수, 저장 프로시저, 트리거, XML, XQuery 및 XPath 지원에 대해 설명합니다. 이후 암호화, 공용 테이블 식과 기간 이동 함수, SQL CLR 프로그래밍, 오류 처리 등에 대한 내용이 이어집니다. 이러한 각 항목에는 심층적인 설명과 예제로 구성된 별도의 장이 할애됩니다. 그리고 각 장의 마지막 부분에는 일련의 연습 문제가 나와 있으며 답은 부록에 있습니다.

특히 성능 조정에 대한 장이 재미있습니다. 이 장은 SQL Server가 디스크에 데이터를 배치하는 방법과 이러한 배치가 성능에 미치는 영향을 살펴보고, 디스크 공간을 절약하고 스파스 데이터를 저장하기 위한 팁을 제공합니다. 그런 다음 인덱스의 성능 이점을 설명하고 클러스터형, 비클러스터형, 필터링된 인덱스를 비교 설명합니다. 이 장의 마지막 부분에는 쿼리 계획 분석에 대한 설명과 쿼리 최적화 팁이 나옵니다.

Pro T-SQL 2008 Programmer's Guide는 독자가 이미 T-SQL의 기본 사항에 익숙하다고 가정하므로 SELECT, INSERT, UPDATE 또는 DELETE 문에 대한 초보자 수준의 설명은 제공하지 않습니다. 또한 SQL Server Management Studio, SQL Profiler, SQLCMD 및 BCP와 같은 도구를 간략히 설명하는 장이 있긴 하지만 이 책은 T-SQL에만 집중하며, 데이터베이스 관리에 대해서는 자세히 설명하지 않습니다. 또한 Microsoft .NET Framework 클라이언트 응용 프로그램에서 SQL Server와 상호 작용하기 위한 두 가지 방법으로 ADO.NET SqlClient 공급자를 사용하는 방법과 LINQ to SQL을 사용하는 방법을 보여 주는 장도 있습니다.

새로운 SQL 기술을 익히고 기존 기술을 연습하는 데 투자한 시간에는 항상 그만한 가치가 있습니다. Pro T-SQL 2008 Programmer's Guide의 간소한 문체, 막대한 수의 샘플, 각 장의 끝에 제공되는 연습 문제는 SQL Server 2008의 최신 기능을 익히고 현재 가진 SQL 기술을 더욱 강화하는 데 큰 도움이 됩니다.

가격: 52.99달러.

apress.com/

bookcov.gif

Scott에게 질문이나 의견이 있으면 toolsmm@microsoft.com으로 보내시기 바랍니다.

Scott Mitchell은 수많은 서적의 저자이자 4GuysFromRolla.com의 설립자이며 1998년부터 Microsoft MVP로서 웹 기술에 관련된 많은 작업에 참여했습니다. Scott은 현재 독립 컨설턴트, 강사, 그리고 저자로 활동하고 있습니다. 문의 사항이 있으면 Mitchell@4guysfromrolla.com으로 전자 메일을 보내거나 ScottOnWriting.NET에 있는 저자의 블로그를 방문하십시오.