마이크로소프트 - 해당되는 글 12건

개발자를 위한 파워셸

 

저자 더글라스 핑크

역자 김태영, 성지용

출판사 비제이퍼블릭

출간예정일 2014429()

 

정가 22,000

페이지 260

판형 173 * 230

ISBN 978-89-94774-66-4 (93000)

원서정보 Windows PowerShell for Developers

예약구매 [YES24]  [교보문고]  [알라딘]  [인터파크]

 

 

책 소개

 

개발자를 위한 Windows PowerShell

 

프로그래밍 작업을 더욱 빠르고, 단순하고, 훌륭하게 수행하고 싶은가? 더불어 그러한 작업들을 반복 가능하게 만들고 싶은가? 그렇다면 Windows PowerShell 기술에 관심을 갖고 이러한 분산 자동화 플랫폼이 어떤 일을 할 수 있는지 살펴보기 바란다. 여러분이 .NET 프로그래머든 IT 전문가든 이 책에서 제공하는 간결한 지침을 따른다면, PowerShell의 스크립팅 언어가 여러분의 일상적인 작업들을 얼마다 더 생산적이게 만들어줄 수 있는지를 깨달을 수 있을 것이다.

 

이 책에서는 PowerShell 스크립트를 만드는 방법과 기존 응용프로그램에 이를 삽입하는 방법 및 특정 문제를 해결하기 위해서 리틀 언어를 작성하는 방법과 여러분의 코드를 관리하는 방법에 대해 다루고 있다. 또한 여러 가지 예제 스크립트를 제공하고 있어서 원한다면 필요한 부분만을 떼어내어 여러분의 상황에 맞게 개조할 수 있을 뿐만 아니라 자체 .NET 솔루션이나 자체 PowerShell 안에서 활용할 수도 있다.

 

 

이 책에서 다루는 내용

 

--텍스트, XML, CSV, JSON을 좀 더 쉽게 다루기

--C# 응용프로그램에 스크립팅 기능들을 제공하는 내장(Embed) PowerShell

--GUI 응용프로그램을 더 적은 코드를 사용하여 5~10배 정도 빠르게 만들기

--PowerShell 기능을 활용하여 인터넷 다루기

--활성화된 세션 안에서 DLL을 사용하여 개체를 생성하고, 자동으로 속성들을 출력하고,

   메서드 호출하기

--솔루션을 좀 더 명확하게 표현하기 위해 DSL(Domain-specific Language) 구축하기

--COM(Component Object Model)을 통해서 Microsoft Office 다루기

--Windows 8Windows Server 2012에 포함되어 있는 PowerShell v3 살펴보기

--Windows 8.1에 포함되어 있는 PowerShell v4 살펴보기

 

 

독자 대상 초중급

 

소스 코드 다운로드

https://github.com/dfinke/powershell-for-developers

 

 

저자 소개

 

더글라스 핑크 (Douglas Finke)

PowerShell MVP(Microsoft Most Valuable Professional)인 저자는 금융 서비스와 관련된 고급 응용프로그램을 개발하는 기업인 Lab49의 소프트웨어 개발자로 근무하고 있다. 지난 20년 동안 다양한 기술들을 이용하는 개발자 및 저자로 활동해왔다. 더글라스에 대해서는 그의 개발 블로그인 http://dougfinke.com/blog/를 참고하기 바란다.

 

 

역자 소개

 

김태영

태오(Taeyo)란 필명으로 국내 최장수 ASP.NET 커뮤니티인 Taeyo.NET 17년째 운영하고 있다. 다양한 Microsoft 기술 세미나의 스피커로 활동했으며, 국내에서는 최초로 Microsoft MVP Insider를 수상하기도 하였다. 다양한 책을 집필 및 번역하였으며 가장 최근에 번역한 서적으로는 『프로페셔널 TFS』가 있다. 현재는 한국 Microsoft에서 ALM/TFS 기술 전도 역할을 담당하고 있다.

 

성지용

마이크로소프트 Premier Field Engineer로 근무하고 있다. 『실전 SQL Server MVP 53, 『실전 SQL Server MVP 61, Vol 2』 외에 다수의 서적을 집필 및 번역하였다. Taeyo.net의 공동 운영자이면서, mssql.org의 운영자로 활동하고 있다.

 

 

목차

 

1. 개요

2. 시작하기

3. 둘러보기

4. 구현 강화하기

5. GUI PowerShell 통합하기

6. PowerShell과 인터넷

7. PowerShell에서 GUI 응용프로그램 만들기

8. DLL, 형식, 속성, 메서드, Microsoft Roslyn

9. PowerShell에서 리틀 언어 작성하기

10. PowerShell COM 그리고...

11. PowerShell Version 3

부록 A. 능률적인 PowerShell

부록 B. .NET 4.0 런타임에서 PowerShell 실행하기

 

* 상세목차는 다음 링크를 클릭해주세요*

상세목차 보기

 

이 책의 구성

 

1에서는 플랫폼에 대한 개요와 PowerShell이어야만 하나?”라는 의문에 대한 해답을 제공한다.

 

2에서는 PowerShell을 실행하기 위한 준비 단계에 대해서 설명한다.

 

3에서는 PowerShell 플랫폼에서 할 수 있음에도 불구하고, 미처 알지 못했던 내용들에 대해서 훑어본다.

 

4에서는 템플릿 엔진 작성 방법과 PowerShell v3의 새로운 기능인 추상 계층 트리 인터페이스를 이용하여 PowerShell 스크립트로부터 정보를 추출하는 방법을 설명한다.

 

5에서는 수준을 한 단계 높여보게 된다. 특히 PowerShellC#(WPF) 응용프로그램에 포함시키는 작업이 스크립트 기능을 이용하면 얼마나 간단해지는지를 살펴본다.

 

6에서는 PowerShell의 강력한 기능인 인터넷을 이용한 작업에 대해서 보여주게 된다. JSON, XML, HTTP 나 트위터를 이용하려는 경우라면, 같은 방법을 적용할 수 있다.

 

7에서는 PowerShell이 어떤 방식으로 .NET에 기반을 두고 있는지를 보여준다. 적은 코드만으로 GUI 응용프로그램을 개발하고 싶다면 이 장을 읽어보기 바란다.

 

8에서는 PowerShell.NET의 연관성에 대해서 좀 더 살펴보고, 이를 이용하여 Microsoft의 다른 프레임워크와 원활하게 통합하는 방법에 대해서 살펴본다.

 

9은 필자가 가장 좋아하는 주제 중에 하나인 리틀 언어를 작성하는 방법과 PowerShell을 이용하면 얼마나 간단하게 처리할 수 있는지를 설명한다. DSL(domain-specific languages) 또는 DSV(domain-specific vocabularies)에 관심이 있다면, PowerShell을 이용하여 어떻게 처리할 수 있는지 확인해보기 바란다.

 

10에서는 PowerShell을 사용하여 Microsoft Excel과 같은 응용프로그램과 Microsoft COM(Component Object Model) 응용프로그램을 제어하는 방법에 대해서 살펴본다.

 

11에서는 PowerShell v3에서 제공하는 새로운 기능과 흥미로운 기능들의 일부를 살펴본다. PowerShell v3Windows 8Windows Server 2012에 기본적으로 장착되어 제공되며, Windows 7에서는 베타 버전을 사용할 수 있다.

 

부록 A에서는 개발자의 생산성을 알아본다. PowerShell의 가장 큰 장점은 생산성으로, 이번 장에서는 거의 모든 플랫폼에서 생산성을 향상 시키는 방법에 대해서 보여주고 있다.

 

부록 B에서는 PowerShell v2를 이용하여 .NET 4.0 DLL들을 읽어서 작업하는 방법에 대해서 설명한다. 이 기능은 PowerShell v3에서는 기본적으로 동작한다.

 

 

출판사 리뷰

 

Windows PowerShell은 감탄하지 않을 수 없을 만큼 잘 만들어진 도구로, .NET 개발자, IT 전문가는 물론이고, Windows를 이용하는 사람이라면 누구든지 반드시 알고 있어야만 하는 언어라고 할 수 있다.

 

PowerShell은 단위 테스트를 좀 더 강력하게 해주거나, XML을 읽거나 데이터를 가져오는 것과 같은 스크립트 작업, .NET 응용프로그램과 통합할 수 있는 접점을 최종 사용자에게 제공하여 자신만의 스크립트로 수정하거나 확장할 수 있도록 해줄 뿐만 아니라, 짧은 스크립트만으로도 업무 규칙을 읽기 쉽고 단순하게 표현할 수 있도록 해준다.

 

누가 이 책을 읽어야 하는가?

 

이 책은 PowerShell에 대해서 좀 더 알고자 하는 독자를 대상으로 하고 있다. PowerShell의 사용을 심각하게 고려하고 있다면, 반드시 읽어보기 바란다. 또한 PowerShell의 초보자를 위한 지침서는 아니지만, 전문 개발자이거나 IT 전문가라면 PowerShell을 이용하여 가능한 작업들에 대한 통찰력을 얻을 수 있을 것이다.

 

『개발자를 위한 파워셸』은 PowerShell을 이용하여 어떤 것이 가능한지를 상세하게 설명한다. 예를 들어 이런 작업들을 좀 더 나은 방법으로, 빠르게 또는 간단하게 처리할 수 있나?” 또는 이런 작업들을 반복적으로 처리할 수 있나?”와 같은 의문에 대한 해답을 찾을 수 있도록 해준다. 또한 PowerShell을 새로운 분산 자동화 플랫폼에 적용할 수 있는 시금석과 같은 내용을 제공하고 있다.

 

책에서 사용된 예제들은 그대로 사용할 수 있다. 스크립트가 어떻게 동작하고 어떤 작업을 하는지를 확인해볼 수 있다. 여러분도 잘 알고 있는 것처럼, 예제를 검토하는 것은 새로운 패러다임을 배워가는 검증된 방법이기도 하다. 일부 예제에서는 C#을 사용하고 있지만 그를 이해하기 이해서 반드시 C#을 알고 있어야 할 필요는 없다.

 

각 예제들은 독립적이기 때문에 실행해서 어떤 작업이 이루어지는지 살펴보기 바란다. 그런 다음 일부를 떼어서 수정하여 여러분의 PowerShell.NET으로 이루어진 솔루션으로 통합시켜보길 바란다.

 

신고
Trackback 0 | Comment 0

 

 

이제 시작이야! 키넥트 프로그래밍

 

 

저자: 자렛 웹, 제임스 애쉴리

역자: 김태경, 정해권

 

출간예정일: 20121211()

정가: 27,000

페이지: 387p

 

판형: 190 x 245

ISBN: 978-89-94774-26-8 (93560)

 

원서정보: Beginning Kinect Programming with the Microsoft Kinect SDK

 

 

 

책 소개

 

 

이 책을 읽는 데 딱 30분만 투자해도 여러분은 키넥트 프로그래밍을 할 수 있는 기본 지식과 능력을 익힐 수 있을 것이다. 1장의 시작하기를 따라 진행하다 보면 SDK과 툴들을 쉽게 설치할 수 있고, 그 이후 장들을 통해 3D 비전, 스켈레톤 트래킹, 오디오 처리, 음성 인식과 제스처 인식 등을 쉽게 익힐 수 있다. 또한 MS에서 제공하는 SDK과 써드 파티 라이브러리들의 조합을 통해 여러 효과를 내는 방법도 알아볼 것이고, 다양한 예제들을 통해 플레이어의 움직임에 반응하는 간단한 게임들을 살펴보면서 기본적인 개념에 대해 알아볼 것이다.

 

이 책과 함께 여러분은 아래와 같은 내용을 배울 수 있다:

 

- 개발 환경 구축하기

- 키넥트 센서를 이용해서 데이터 스트림 관리하기

- 인터랙티브한 어플리케이션에 스켈레톤 트레킹 적용하기

- 키넥트 센서로 음성 인식 구현하기

- 키넥트 센서로 PC에서 작동하는 게임 만들기

- 3D 프로그래밍을 위한 다양한 수학 공식 활용하기

 

《이제 시작이야! 키넥트 프로그래밍》은 미디어아트, 인터랙티브 게임, 3D 모델링, 오피스 자동화 등 여러 분야에 키넥트를 적용할 수 있도록 여러분에게 혁신적인 아이디어를 제공할 것이다.

 

소스코드 다운로드

http://www.apress.com/9781430241041

 

독자 대상

초급

 

 

 

추천사

 

 

세상에서 가장 빨리 팔린 제품으로 기네스북에 오른 전자 제품이 바로 키넥트다. XBOX 360용으로키넥트가 출시되었을 때 키넥트 자체가 세상에 던지는 충격은 대단했다. 세 개의 센서가 만들어내는 데이터를 이용해서 ‘사람을 이해하는 기계’로서 키넥트는 기존의 어떤 물건과도 다르면서도 또 충분히 혁신적이었다.

 

이 키넥트 충격은 게임업계를 넘어서서 UX, NUI 등 다양한 분야에서도 집중적인 관심을 받게 되었는데, 학술적으로나 상업적으로 사용할 수 있는 개발툴킷의 정식버전의 출시는 업계와 학회의 열렬한 환영을 받았다. 이렇게 키넥트가 많은 이들의 열정을 이끌어 낼 수 있었던 이유는 사람이 특별하게 준비된 행동이나 센서를 부착하지 않고도 컴퓨터와 인터랙션할 수 있는 가능성을 많은 분야에서 찾을 수 있게 되어서일 것이다. 물론 이미 오픈 소스 기반의 프레임워크가 제공되고 있었지만, 그럼에도 불구하고 공식 발표된 개발툴킷은 공식이라는 그 이유만으로도 활용과 기술지원에 대한 충분한 이유가 된다.

 

그런 면에서 이번에 번역된 본 개발서는 UX NUI를 연구하는 학회뿐만 아니라 수많은 프로 개발자들과 업체들에게 훌륭한 시작점이 될 것이라고 믿어 의심치 않는다. 특히 이번에 번역한 역자들은 이전에도 WPF Silverlight와 같이 Microsoft의 기술에 대한 경험과 활동이력을 가지고 있기에 더더욱 이 책의 결과물에 두터운 신뢰가 간다.

 

키넥트는 아날로그적인 감성을 가진 인간을 디지털로 구성된 컴퓨터와 연결해주는 멋진 기술이다.국내의 여러 전시회에서 키넥트를 사용하고 있는 사례를 쉽게 찾아볼 수 있을 정도로 이미 충분한 관심을 받고 있다. 다만 간단한 소개 자료를 제외하고는 모두 영문으로 되어있고 또 이마저도 인터넷에 단편적으로 펼쳐져 있어서 이를 참조해서 결과물을 만드는 데 많은 시행착오를 겪으며 개발해온 것도 사실이다. 그런 면에서 본서는 키넥트에 관심을 가지고 있는 모든 이에게 정말 고마운 첫 시작을 열어줄 것이다. , 이제 아폴로 13호를 타고 달나라에 도착한 암스트롱의 말처럼 이 책을 통해서 새로운 세상을 꿈꾸는 모든 이에게 위대한 Hello World를 만들어보기로 하자. 마지막으로, 번역이라는 어려운 길을 선택한 역자들에게 깊은 감사를 드린다.

 

- 한국마이크로소프트 개발자 및 플랫폼 사업총괄, 김영욱 부장

 

 

 

저자소개

 

 

자렛 웹 (Jarrett Webb)

 

상상력이 풍부하고 역동적이며 상호작용하고 몰입도 있는 인터페이스를 다양한 멀티 터치 환경과 키넥트를 활용하여 만들고 있다. 현재 텍사스의 오스틴에 거주하고 있다.

 

제임스 애쉴리 (James Ashley)

 

15년 동안 마이크로소프트의 기술을 이용한 소프트웨어를 개발해왔다. 최근에는 www.imaginativeuniversal.com이라는 블로그를 운영하고 있다. 그리고 2년 동안 Atlanta XAML이라는 모임을 운영하는 것을 도왔고 아틀란타에서 reMIX 컨퍼런스를 기획하였다. 현재는 Razorfish 사의 Emerging Experiences Group에서 Presentation Layer Architect로 근무하면서 최신 기술들을 응용하여 구현하기 불가능할 것만 같은 다양한 애플리케이션에 도전하고 있다. 그는 아내와 세 아이들(소피아, , 사샤)과 함께 조지아의 아틀란타에 살고 있다.

 

 

 

역자소개

 

 

김태경

 

PRO WPF IN C# 2008》의 역자이며, 현재 모바일 플랫폼에 관심을 가지고 공부하고 있다.

 

정해권

 

인디애나 주립대에서 컴퓨터 사이언스를 공부했고 현재 클라우드 기반의 글로벌 모바일 메신저 서비스를 개발 및 운영하고 있다.

 

 

 

목차

 

 

CHAPTER 1. 시작하기

 

키넥트 탄생 이야기

배경

마이너리티 리포트

마이크로소프트의 비밀 프로젝트

Microsoft Research(MSR)

키넥트 해킹 경쟁

Kinect for Windows SDK

하드웨어 살펴보기

SDK 설치를 위한 하드웨어, 소프트웨어 요구사항

Step-By-Step 설치하기

키넥트 Visual Studio 프로젝트의 구성요소

키넥트 SDK 샘플 애플리케이션

Kinect Explorer

Shape Game

Record Audio

Speech 샘플

정리하기

 

 

CHAPTER 2. 애플리케이션 개발하기

 

키넥트 센서

연결된 센서 발견하기

센서 시작하기

센서 정지시키기

컬러 이미지 스트림

이미지 스트림 성능 향상시키기

간단한 이미지 조작하기

스냅샷 얻어오기

객체 모델로 컬러 이미지 스트림 살펴보기

데이터 획득하기: 이벤트 방식과 폴링 방식

정리하기

 

 

CHAPTER 3. 깊이 이미지 프로세싱

 

키넥트의 눈으로 바라보기

깊이 측정하기

개선된 깊이 이미지

나아진 그레이 스케일 음영처리

깊이 이미지에 색 입히기

간단한 깊이 이미지 프로세싱

히스토그램

참고사항

깊이값과 플레이어 인덱스

수치 측정하기

깊이 이미지와 비디오 이미지 정렬하기

깊이 Near 모드

정리하기

 

 

CHAPTER 4. 스켈레톤 트래킹

 

스켈레톤 얻어오기

스켈레톤 객체 모델

SkeletonStream

SkeletonFrame

Skeleton

Joint 119

Kinect the Dots

사용자 인터페이스

손 트래킹

퍼즐 그리기

퍼즐 풀기

게임 확장하기

공간과 변환

공간 변환

거울을 통해 보기

SkeletonViewer 유저 컨트롤

정리하기

 

 

CHAPTER 5. 어드밴스드 스켈레톤 트래킹

 

사용자 상호작용

WPF 입력 시스템의 간략한 이해

사용자 상호작용 감지하기

Simon Says

Simon Says, UI를 디자인하라”

Simon Says, “기반을 구축하라”

Simon Says, “게임 플레이 기반을 추가하라”

새 게임 시작하기

Simon Says 발전시키기

Simon Says 다시 보기

깊이 기반의 사용자 상호작용

포즈

포즈 감지하기

포즈에 반응하기

Simon Says에 포즈 적용하기

Simon Says 정리하기

정리하기

 

 

CHAPTER 6. 제스처

 

제스처 정의하기

NUI

제스처는 어디에서 오는가?

제스처 구현하기

알고리즘을 사용한 인식

뉴럴 네트워크

표본기반 인식

흔히 사용되는 제스처 인식하기

손 흔들기(Wave)

기본적인 손 트래킹

호버 버튼(Hover Button)

푸시 버튼(Push Button)

자석 버튼(Magnet Button)

스와이프(Swipe)

자석 슬라이드(Magnetic Slide)

수직 스크롤(Vertical Scroll)

유니버설 일시정지(Universal Pause)

제스처의 미래

정리하기

 

 

CHAPTER 7. 음성

 

마이크 배열 기초

MSR 키넥트 오디오

음성 인식

오디오 캡처

사운드 스트림 작업하기

잡음 제거하기

음향 반향 제거하기

빔 트래킹으로 지향성 마이크 구현하기

음성 인식

정리하기

 

 

CHAPTER 8. 중급 과정 맛보기

 

이미지 조작 헬퍼 메서드

Coding4Fun Kinect Toolkit

확장 메서드 만들기

근접 감지

간단한 근접 감지 구현하기

깊이 데이터로 근접 감지 구현하기

근접 감지 개선하기

모션 감지하기

영상 저장하기

얼굴 감지하기

홀로그램

살펴봐야 할 라이브러리

정리하기

 

 

APPENDIX. 키넥트 수학

 

측정 단위

비트 조작

비트 필드

비트 논리합(Bitwise OR)

비트 논리곱(Bitwise AND)

비트 논리 부정(Bitwise NOT) / 보수연산(Complement)

비트 시프트(Bit Shifting)

기하학과 삼각법(Geometry and Trigonometry)

 

 

 

이 책의 구성

 

 

Chapter 1: 시작하기

 

여러분은 당장이라도 키넥트를 이용하여 머릿속에 그렸던 인터페이스를 현실로 구현하고, 애플리케이션을 위한 아키텍처 디자인을 하고 싶을 것이다. 하지만 그보다 먼저 알아야 할 것이 있다. 1장에서는 Kinect for Windows SDK가 나오기까지의 오랜 역사를 설명하고 있다. 그리고 SDK 사용시 필요한 라이브러리와 툴들을 다운로드하고 설치할 수 있도록 친절하게 안내할 것이다.

 

 

Chapter 2: 애플리케이션 개발하기

 

2장에서는 키넥트를 처음 접하는 여러분이 애플리케이션을 만들어볼 수 있도록 안내할 것이다. 2장이 끝날 때쯤에는 키넥트 SDK를 이용하여 더 복잡한 애플리케이션을 만들 수 있는 기초가 완성될 것이다. 그리고 키넥트에서 이미지 스트림을 통해 데이터를 얻어와 실시간으로 이미지를 화면에 보여주는 애플리케이션을 만들어볼 것이다. 여기에 소개되는 코드는 이후에 소개할 샘플들의 기초가 될 것이다.

 

 

Chapter 3: 깊이 이미지 프로세싱

 

깊이 스트림은 키넥트 기술의 핵심이다. 3장에서 나오는 코드들을 통해 깊이 스트림을 자세히 알아볼 것이다. 즉 키넥트가 제공하는 데이터에 대해 알아보고, 이 데이터를 어떻게 사용하는지 알아볼 것이다. 예제에서는 사용자들을 인식하고, 간단한 트릭을 통해 사용자의 실루엣에 색을 입혀 깊이 정보를 시각적으로 보이게 할 것이다.

 

 

Chapter 4: 스켈레톤 트래킹

 

키넥트 SDK는 깊이 스트림에서 얻은 데이터를 이용하여 사람의 형태를 구별해낼 수 있었다. 바로 이것이 스켈레톤 트래킹이다. 여러분은 어떻게 스켈레톤 트래킹 데이터를 얻는지, 데이터가 어떠한 의미를 갖는지, 어떻게 사용해야 하는지 배우게 될 것이다. 여러분은 관절과 뼈를 트래킹하여 게임을 만들어보면서 재미를 느낄 것이다.

 

 

Chapter 5: 어드밴스드 스켈레톤 트래킹

 

단순히 아바타를 생성하고 스켈레톤을 생성하는 것보다 더 다양한 스켈레톤 트래킹의 응용 예에 대해 알아볼 것이다. 스켈레톤 데이터는 휘발성이고, 예측하기 힘들다는 특성을 지니고 있다. 5장에서는 데이터를 스무딩 처리하여 좀 더 멋진 애플리케이션을 만들 수 있는 팁과 트릭을 소개할 것이다. 이 장에서는 깊이 이미지뿐만 아니라 실시간으로 얻는 RGB 이미지를 조합하여 더 나은 결과를 만들 것이다. 깊이 이미지와 RGB 실시간 이미지를 통해 생성된 데이터를 이용하여 증강 현실 애플리케이션을 만들어볼 것이다.

 

 

Chapter 6: 제스처

 

키넥트 개발의 다음 단계는 스켈레톤 트래킹 데이터를 이용하여 제스처를 인식하는 것이다. 제스처 인식은 여러분의 애플리케이션이 더 자연스럽게 상호작용할 수 있도록 도와줄 것이다. 6장에서는 NUI를 소개하고 어떻게 애플리케이션 개발에 적용 가능한지 알아볼 것이다. 키넥트는 워낙 새로운 기술이기 때문에 잘 확립된 제스처 라이브러리와 도구들이 아직도 부족한 상황이다. 이 장에서는 어떻게 제스처를 정의하고, 어떻게 기초적인 제스처 라이브러리를 만드는지 안내할 것이다.

 

 

Chapter 7: 음성

 

키넥트는 세상을 보는 기능 이상을 제공하는 센서이다. 세상을 듣는 기능도 제공하는 센서이기 때문이다. 키넥트는 마이크 배열을 갖고 있어 소리를 감지하고 오디오 프로세싱을 할 수 있도록 도와준다. 그럼으로써 여러분은 음성 명령을 이용할 수 있고, 더 발전시켜 제스처 인식과 조합하

여 여러분의 애플리케이션의 사용자 경험을 더 풍부하게 할 수 있다. 7장에서는 Microsoft Speech

Recognition SDK에 대해 알아보고, 어떻게 키넥트의 마이크 배열과 조합하여 사용할 수 있는지 알아볼 것이다.

 

 

Chapter 8: 중급 과정 맛보기

 

8장에서는 키넥트를 사용하여 할 수 있는 더 복잡한 작업에 대해 알아볼 것이다. 그리고 다양한 라이브러리와 툴을 이용하여 키넥트에서 생성된 데이터를 조작하여 발전된 키넥트 애플리케이션을 만드는 방법을 알아볼 것이다.

 

 

Appendix A: 키넥트 수학

 

키넥트를 이용하여 개발할 때 필요한 수학 지식과 공식을 소개할 것이다. 실용적인 정보를 제공하여 개발에 도움을 줄 것이다.

 

 

신고
Trackback 1 | Comment 0

XNA를 이용한 Windows Phone 7 게임

프로그래밍

*저자: 이승훈, 김대호, 김응두, 임준철, 정병근

*출판사: 비제이퍼블릭

*출간일: 2011328()

*정가: 25,000

*페이지: 430p

*판형: 190 x 245

*ISBN: 978-89-94774-01-5(13560)

 

 

 

*책 소개

 

“누구나 쉽게 게임을 개발하고 공유하는 것이 XNA

철학이다.

 

- Microsoft

 

2004 XNA 처음 언급되었을 , Microsoft “누구나 쉽게 게임을 개발하고 공유한다.”가 XNA 철학이라고 소개했다. 2006 XNA 1.0 처음 발표된 , XNA 4.0부터는 PC Xbox 360, Windows Phone 7 이르는 다중 환경 게임개발의 기회를 제공하고 있다.

 

책에서, 다년간 XNA 대한 강의 게임제작 경험을 가지고 있는 저자들은 Microsoft에서 제공하는 자료와 게임개발 경험을 바탕으로 초보자가 XNA Windows Phone 이해하고 활용할 있도록 샘플 코드를 통해 자세하게 설명하고 있으며, Windows Phone 7 게임을 개발하는 필요한 기초적인 내용부터 실제 적용에 대한 부분까지 자세하게 다루고 있다.

 

책의 전반부에서는 기본적인 그래픽처리와 문자 출력 등에 대한 기초적인 부분과 터치, G 센서, 진동 등의 입력 장치와 네트워크 기능 구현 제작 방법들에 대한 부분까지도 자세히 다루고 있다. 후반부에서는 실제 Windows Phone 7 게임 제작 사례를 중심으로 기초 이론에 대한 적용을 설명하고, 최종적으로 성능향상을 위해 필요한 최적화에 대한 여러 가지 방법들에 대해 설명한다.

 

 

주요 내용

 

n  Windows Phone 7 개발환경 XNA Game Studio 중요 개념의 이해

n  게임 제작을 위한 기반 지식과 이론, 구현 방법에 대한 학습

n  그래픽, 사운드, 문자 출력에 대한 기반 지식과 실제 사용 방법

n  터치, G 센서, 진동 등의 입력장치 활용 방법

n  네트워크 기능 구현 제작 방법

n  성능 향상을 위한 다양한 최적한 방법에 대해 학습

n  예제 게임 제작을 통해 이론을 복습하고 실제 사용 방법에 대한 학습

 

 

최대한 많은 부분을 다루기 위해 노력했지만, 이번에 다루지 못한 부분 또는 책 내용에 대한 질문은 저자 블로그(blog.naver.com/mswhite73)를 통해 추가적인 정보를 얻을 수 있다.

 

 

 

 

*예약 구매

[YES 24]  [강컴]  [알라딘] [인터파크] [교보문고] [11번가]

 

 

 

*출판사 리뷰

 

기존 스마트폰들이 디자인이나 UI 등 기본적인 구성을 AppleiPhone과 유사하게 구성하는 것에 비해, MicrosoftWindows Phone 7은 차별화되는 새로운 디자인과 UI, 사용자의 경험을 기반으로 하는 UX 구성으로 아이콘을 중심으로 정적인 형태의 인터페이스를 제공하는 틀에서 벗어나 Live-tiles 인터페이스와 6개의 Windows Phone Hubs를 통한 화면 구성으로 보다 쉽고 편리하게 스마트폰을 사용할 수 있는 환경을 제공한다. 또한 운영체제 수준에서 제공하는 소셜 네트워크 기능은 다른 스마트폰과 가장 차별화 되는 기능이라고 할 수 있다.

 

이 책을 통해 설명하고자 하는 게임에 대한 부분이 Windows Phone 7이 가지는 가장 큰 강점이라고 할 수 있다. Microsoft2006년부터 누구나 쉽게 게임을 개발하고 공유한다는 철학을 바탕으로 XNA를 배포하고 있다. 200612XNA 1.0 버전 발표를 시작으로 XNA 3.0에서는 PC, Xbox 360, Zune 등 크로스플랫폼(Corss Platform) 게임 개발 기술을 제일 먼저 지원했고, XNA 4.0부터는 Windows Phone 7의 게임 개발 환경을 지원하고 있다. 또한 Xbox Live를 내장하고 있는데, AppleAppStore에 등록된 App80%가 게임이라는 것을 감안할 때 앞으로 모바일 시장에서 Windows Phone 7이 경쟁력을 확보하는 데 있어 중요한 역할을 할 것이다.

 

이 책은 XNA를 활용하여 Windows Phone 72D 게임을 한 학기 또는 하나의 과정에서 사용할 수 있도록 총 14개의 장들로 내용을 구성하고 있다. 중간고사 또는 전반부에는 1장에서 7장을 통해 XNA에 대한 기초 이론과 Windows Phone 7의 디바이스 등의 사용에 대한 부분을 예제를 중심으로 소개하고 있으며, 기말고사 또는 후반부의 8장에서 14장을 통해 실제 2D 게임에 적용할 수 있는 모든 기능들을 따라 하기 형태로 자세하게 설명하고 있다.

 

 

 

 

 

*저자소개


이승훈

()한국게임개발자협회 회장 XNA/DirectX MVP 활동하며 게임개발 기술에 대한 교류와 아마추어 개발자 지원에 많은 관심을 가지고 있다. 2008 XNA Game Studio 3.0 발표 때부터 대학 교육기관에서 “누구나 쉽게 게임을 개발하고 공유한다”는 XNA 철학을 전달하기 위해 노력하고 있다. XNA 활용해 Windows Phone 7 게임을 개발할 있도록 작성한 책을 통해 더욱 새로운 경험과 재미를 전달할 있는 많은 게임들이 만들어지기를 기대한다.

 

김대호

대학 시절 공모전 참가를 위해 만나게 Windows Phone 7 매력에 빠진 것이 계기가 되어 지금은 셀빅인터렉티브에서 스마트폰 기획자로 일하고 있다. Windows Phone 7 게임개발에 필요한 핵심 내용들을 중심으로 책을 집필하였으며, 게임개발을 꿈꾸는 모든 이에게 많은 도움이 되기를 바란다.

 

김응두

넥슨모바일에서 프로그래머로 근무하고 있으며, The Fool[어느 바보 이야기](http://blog.thefool.kr)라는 블로그를 운영 중이다. 대학시절 게임제작 동아리 『하눌신폭』에서 멀티플랫폼이라면 사족을 쓰던 엉뚱한 개발자이다. 스마트폰용 소셜네트워크 게임인 SwingQ 제작 이후 스마트폰에 빠져버렸다. 아마 지금 순간에도 모니터 앞에 스마트폰을 놓고 언제 어디서나 PC 스마트폰에서 함께 즐길 있는 그런 게임을 꿈꾸며 열혈코딩 중일지 모른다.

 

임준철

넥스토릭에서 기획자로 일하고 있으며, 지난 1년간 Windows Phone 7 게임을 제작하며 겪은 여러 역경을 이겨낸 경험을 중심으로 책을 집필하였다. 앞으로 많은 사람들이 관심을 가지게 분야라고 확신하지만, 아직 Windows Phone 7 출시되지 않았고 관련 정보나 기술들이 공개되지 않아 어디서 어떻게 시작해야할지 모르는 것이 현실이다. 이러한 상황에서 한권의 책이 아직 방향을 잡지 못하고 헤매는 독자들에게 새로운 플랫폼을 접하는 과정의 등대가 되어주길 바란다.

 

정병근

휴대용 게임기 개발회사인 ()지피에이치에서 CAANOO 플랫폼 기반 게임 및 애플리케이션을 개발하는 회사와 개인 개발자에 대한 기술 지원 업무를 담당하고 있다. 네오위즈 아카데미에 근무 당시 XNA 교재 개발 및 강의를 담당한 경험이 있으며, 아마추어 게임 개발자를 위한 세미나 및 특강 등에서 강사로 활동하고 있다.

 

 

 

*목차

 

추천의 글

저자의 글

 

1. Windows Phone 7

1.1 Windows Phone 7 소개

1.1.1 Windows Phone 7 사양

1.1.2 Windows Phone 7 특징

1.1.3 Windows Phone 플랫폼 아키텍처

1.1.4 Windows Phone 7 프레임워크

1.1.5 App Hub Marketplace

1.2 Windows Phone 7 개발환경 구축

1.2.1 Windows Phone 7 개발환경 소개

1.2.2 Windows Phone 7 개발환경 설치

1.2.3 Windows Phone 7 개발환경 업데이트 및 패치

 

2. XNA Game Studio 4.0

2.1 XNA Game Studio 소개

2.1.1 XNA 프레임워크 라이브러리

2.1.2 XNA Game Studio 템플릿

2.1.3 XNA Framework Game Loop

2.2 HelloWP7 프로젝트 따라하기

2.2.1 프로젝트 생성

2.2.2 문자열 출력 코드 입력

 

3. 그래픽 출력

3.1 화면 좌표계

3.1.1 화면 좌표계란?

3.1.2 화면좌표계에 영향을 미치는 요소

3.1.3 화면 해상도 설정

3.1.4 SupportedOrientations 설정

3.1.5 FullScreen 모드 설정

3.2 리소스

3.2.1 이미지 리소스 등록

3.2.2 지원 이미지 포맷

3.2.3 이미지 리소스 속성

3.2.4 이미지 리소스 로드

3.3 스프라이트(Sprite) 그리기

3.3.1 SpriteBatch.Begin 메서드

3.3.2 SpriteBatch.Begin 메서드 사용

3.3.3 SpriteBatch.End 메서드

3.3.4 SpriteBatch.Draw 메서드 동작 방식

 

4. 문자 출력

4.1 True Type Font

4.1.1 SpriteFont 파일 생성

4.1.2 SpriteFont 파일 작성

4.2 Bitmap Font

4.2.1 Bitmap Font 제작

4.2.2 Bitmap Font 등록

4.2.3 Bitmap Font 설정

4.3 SpriteFont

4.3.1 SpriteFont 로드

4.3.2 DrawString 메서드 동작 방식

4.4 Localization

4.4.1 문자 범위 변경

4.4.2 Localization Pipline

 

5. 사운드

5.1 사운드

5.1.1 사운드 생성

5.1.2 사운드 처리

5.1.3 사운드 리소스 등록

5.1.4 사운드 리소스 설정

5.2 Sound Effect

5.2.1 사운드 로드

5.2.2 사운드 재생

5.2.3 사운드 재생 변형

5.3 SoundEffectInstance

5.3.1 사운드 로드

5.3.2 사운드 재생

5.3.3 사운드 재생 변형

5.4 Song

5.4.1 사운드 로드

5.4.2 사운드 재생

5.4.3 사운드 재생 변형

5.5 3D 사운드 효과

5.5.1 3D 사운드 이해

5.5.2 3D 사운드 사용

 

6. 입력 장치

6.1 키보드

6.1.1 하드웨어 키보드

6.1.2 소프트웨어 키보드

6.2 터치 스크린

6.2.1 TouchLocation

6.2.2 GestureSample

6.3 카메라

6.4 G 센서

6.5 GPS

6.6 진동

 

7. 네트워크

7.1 WCF

7.1.1 WCF?

7.1.2 WCF 구조

7.1.3 WCF ABC

7.1.4 종점의 개념

7.1.5 서비스 호스트와 클라이언트

7.1.6 WCF 방식 예제

7.2 HttpWebRequest

7.2.1 HttpWebRequest?

7.2.2 HttpWebRequset 방식 예제

7.3 WebClient

7.3.1 WebClient?

7.3.2 WebClient의 메서드

7.3.3 WebClient방식의 예제

7.4 Cross-Domain 정책 파일 정책

7.4.1 Cross-Domain 정책 파일 정책 이란?

7.5 Push Notification

7.5.1 Push Notification이란?

7.6 Push Notification 방식 예제

7.6.1 서버 구성

7.6.2 클라이언트 생성

 

8. 배경 화면 제작

8.1 배경화면 클래스

8.1.1 화면 출력

8.1.2 업데이트

8.2 배경화면 클래스 적용

8.3 시차 스크롤

 

9. 객체 추가

9.1 플레이어

9.1.1 게임 오브젝트 클래스 작성 및 활용

9.1.2 객체 조작

9.1.3 객체 이동 제한

9.2 총탄

9.2.1 게임 오브젝트 클래스 수정 및 활용

9.2.2 화면 충돌 처리

9.2.3 객체 조작

9.3 적기

9.3.1 게임 오브젝트 클래스 활용

9.3.2 업데이트

9.3.3 화면 출력

9.3.4 화면 충돌 처리

9.3.5 랜덤 생성 처리

 

10. 게임 개선

10.1 셀 애니메이션

10.1.1 애니메이션 정보 클래스 제작

10.1.2 텍스처 정보 통합 관리

10.1.3 셀애니메이션 정보 보관소 클래스 제작

10.1.4 셀애니메이션 재생기 제작

10.2 플레이어 개선

10.2.1 플레이어 클래스 제작 및 활용

10.3 총탄 개선

10.3.1 총탄 클래스 제작 및 활용

10.3.2 총탄 클래스 무한 발사 추가

10.3.3 총탄 클래스 연속 발사 추가

10.3.4 총탄 클래스 다중 발사 추가

10.4 스프라이트시트

10.4.1 스프라이트시트 클래스 제작 및 적용

 

11. 충돌 처리 제거

11.1 도형 충돌 처리

11.1.1 도형 충돌 처리 활용

11.2 색상 충돌 처리

11.2.1 색상 충돌 처리 적용

 

12. UI 구성

12.1 화면 구성

12.1.1 메인에서 게임 분리

12.1.2 시작화면 추가

12.1.3 메뉴 추가

12.2 스코어

12.2.1 게임 스코어 출력

12.2.2 스코어 저장/로드

12.2.3 스코어 화면 구성

12.3 키패드(ThumbStick)

12.3.1 키패드(ThumbStick) 생성

12.3.2 키패드(ThumbStick) 적용

12.4 화면 전환(Tombstone)

12.4.1 화면 전환(Tombstone) 추가

12.4.2 화면 전환(Tombstone) 적용

 

13. 효과 추가

13.1 사운드 효과

13.1.1 사운드 활용

13.1.2 사운드 주의 사항(DRM에러 처리)

13.2 진동 효과

13.2.1 진동 활용

13.3 파티클(폭발) 효과

13.3.1 파티클 클래스 제작

13.3.2 파티클 관리자 클래스 제작

13.3.3 폭발효과 클래스 제작

13.3.4 연기효과 클래스 제작

13.3.5 파티클 클래스 활용

 

14. 최적화

14.1 시간 단축

14.1.1 FPS측정

14.1.2 리소스 최적화

14.1.3 해상동 조절

14.1.4 로직 흐름 최적화

14.2 CPU 성능 향상

14.2.1 GabageCollector 호출 회피

14.2.2 WeakReference 이용

 

찾아보기

 

 

  

*추천사

 

이제 게임은 스마트폰에서 가장 널리 인기 있는 App 중 하나가 되었다. 작년 1028, Windows Phone 7이 북미 및 유럽에 출시된 이후 Marketplace에 올라가 있는 App의 개수가 2월말 약 9천개가 넘어가고 있다. 그리고 그 중 13% 이상을 게임이 차지하는 것을 보면 알 수가 있다.

 

2010, MWC에서 Windows Phone 7이 전 세계적으로 처음 공개되었고 ‘A different Kinds of Phone’이라는 슬로건으로 차별화된 사용자 경험을 선보였다. 이것은 이전의 Windows Mobile과 차원이 다른 경험을 선사했고 많은 소비자, 제조사, 이통사가 이 독특한 사용자 경험이 반해 버렸다.

 

Windows Phone 7의 독특한 사용자 경험은 ‘메트로(Metro)’라고 부르는 새로운 Microsoft의 컨셉을 도입하여 적용했다. 우리가 흔히 보는 도시의 푯말 등을 스마트폰에 옮겨 놓은 것이다. 예를 들어, 지하철에서 내려 몇 번 출구로 나가야할지를 우리는 안내 푯말을 보고 나갈 수 있다. 이 안내 푯말을 Windows Phone 7에서는 Live-tiles이라고 부르며, App을 실행해주거나 웹이나 클라우드 서비스 정보를 실시간 업데이트해준다.

 

애플리케이션 아키텍처 부문도 혁신적으로 변경하게 되었는데, 기존의 C/C++ 언어를 이용하는 방법을 배제하고 관리형 언어인 .NET(C#VB.NET 언어를 주로 사용함)을 도입하여 SilverlightXNA를 제공하기 시작했다.

 

XNA는 원래 관리형 DirectX에서 발전한 게임 개발 프레임워크로서 PC상의 캐주얼 게임을 개발하려는 목표에서 발전하여 XBOX 360, Zune에서 게임을 즐길 수 있도록 발전해 왔다.

 

마침내 Windows Phone 7에서는 XNA 4.0 버전으로 Windows Phone 개발 도구에 통합되어 무료로 제공할 뿐만 아니라 XBOX Live 허브에서 내장되어 XBOX 360 키넥트에서의 아바타, 목표 점수와 실행 점수 등을 공유할 수 있고 친구들에게 메시지를 보낼 수 있도록 제공해준다.

 

이러한 XNA의 엄청난 잠재력 때문에, Windows Phone 7 게임 개발에 대한 관심이 이렇게 높은지 이해할 수 있을 것이다. 그리고 여러분들이 이 책을 펴든 이유가 될 것이다. 이 책은 한국게임개발자협회 이승훈 회장을 포함한 저자들이 심혈을 기울여 그 동안의 게임 개발 경험을 토대로 XNA를 처음 배우는 분들에게 쉽게 접근할 수 있도록 저술하였다.

 

따라서 전반적인 XNA 프레임워크 아키텍처뿐만 아니라 Windows Phone 7에서의 입력 장치 컨트롤, 그리고 신나고 재미있는 게임 요소 등을 구성하기 위한 콘텐츠 파이프라인 사용법, 게임의 핵심 요소인 충돌 감지 및 이펙트 그리고 멀티 플레이어 네트워크 게임 개발을 위한 HTTPWCF 네트워킹을 다루는 법까지 차근차근 설명해 놓았다.

 

게임 개발자는 인간의 상상력을 실제 구현해 주는 사람이라고 생각한다. 상상 속에서 솟아난 아이디어를 모아 게임 장치와 사람들 사이에 상호 작용을 돕고 흥미를 느낄 수 있는 것이 진정한 사람들이 하고 싶어 하는 게임이라고 생각한다.

 

이제 이 책을 찬찬히 읽으며 무한한 Windows Phone 7 게임 개발을 시작하자!

 

 

어느 삼성동 카페에서, 서진호 부장

 

Microsoft, Windows Phone 7 개발자 전도사

http://www.facebook.com/windowsphonekorea



신고
Trackback 0 | Comments 2
















제목:
실전 SQL Server MVP 53

부제: 53인의 MVP가 알려주는 SQL 서버의 모든 것

저자: MVP 커뮤니티

역자: 성지용, 한대성

출간일: 20101118(목)

정가: 44,000

페이지: 970p

판형: 190 x 245

ISBN: 978-89-962765-8-6(13560)

원서정보: SQL SERVER MVP: DEEP DIVES

도서구입

[YES24]  [인터파크]  [교보문고]  [강컴]  [알라딘]  [도서11번가]


[실전 SQL Server MVP 53: 53인의 MVP가 알려주는 SQL 서버의 모든 것]이 드디어 출간되었습니다. 제작 사고로 인해 출간일이 조금 연기가 되긴 했지만, YES24와 인터파크의 메인에 떡!하니 추천도서로 올라왔습니다. 독자분들의 많은 성원에 정말 감사드립니다.

자세한 도서 정보는 다음 링크에서 확인이 가능합니다.

http://bjpublic.tistory.com/108








신고
Trackback 0 | Comment 0

비제이퍼블릭의 트위터 이벤트, [IT 열정 이벤트]팔로우+RT하고 [프로 ASP.NET MVC 프레임워크: Taeyo's Choice] 받자![10명 추첨]의 당첨자를 발표해 드립니다. http://bjpublic.tistory.com/73

혹시 이번 기회에 당첨이 되지 못하신 응모자분은 너무 상심하시지 마시고 다음 이벤트를 기대해 주시길 바라겠습니다~^^

당첨자 명단
@barry_lee
@june1004
@letter20
@momoniki
@comet1004
@kangjin
@KellyShim
@cogitur
@prily
@utpsoft

*당첨자분들은 아래 내용을 DM으로 @bjpub에게  발송 부탁드리겠습니다.
1. 이름
2. 도서 받으실 주소
3. 전화번호(택배 배송시 연락 받을 번호)

도서는 월요일 택배로 발송될 예정입니다.
모두 진심으로 축하드리며 다른 이벤트로 또 찾아뵙도록 하겠습니다.
많은 성원 감사드립니다~!


신고
Trackback 0 | Comment 0

오늘 드디어 비제이퍼블릭의 첫 두 도서(프로 ASP.NET MVC 프레임워크 + 오브젝티브-C 2.0)의 광고가 실린 마이크로소프트웨어(이하 '마소')의 10월호가 도착했습니다. 우려했던 것과는 달리 정말 짧은 시간에 만들어낸 것에 비해 만족할만한 상태로 당당히 실려 있었습니다.

 


이 광고를 보고 많은 개발자분들께서 저희 비제이퍼블릭 출판사에 조금이나마 관심을 가지고, 꾸준히 지켜봐주셨으면 하는 바램입니다.

참고로 비제이퍼블릭의 홈페이지에서는 IT/컴퓨터 도서 관련 집필/번역을 원하시는 개발자분들께서 제안을 하실 수 있도록 출간제의를 받고 있습니다. 다음 링크를 통해 정보를 기입해 주시면 확인하는대로 즉시 연락을 드리도록 하겠습니다.

[번역제의] [집필제의]

어느분에게나 활짝! 문이 열려있으니 언제라도 궁금하신 사항이 있으시면 부담없이 편하게 연락주시길 바랍니다.
junepk@bjpublic.co.kr
02-739-0739
김범준 실장

프로 ASP.NET MVC 프레임워크
카테고리 컴퓨터/IT
지은이 스티븐 샌더슨 (비제이퍼블릭, 2009년)
상세보기

Objective-C 2.0(오브젝티브-C 2.0)
카테고리 컴퓨터/IT
지은이 마크 달림플 (비제이퍼블릭, 2009년)
상세보기

신고
Trackback 0 | Comment 0


Apress의 Pro ASP.NET MVC Framework의 번역서인 『프로 ASP.NET MVC 프레임워크』가 10월 13일 출간 예정입니다.

현재 다음의 서점에서 예약 판매를 진행중에 있으나 오늘 부터 시작이 되어 도서의 서지정보가 아직 기입이 안된 사이트도 있는 점을 양해 부탁드립니다.


출간 예정일: 2009년 10월 13일
예약 판매일: 2009년 9월 25일 ~ 2009년 10월 12일
저자: 스티븐 샌더슨
역자: 김태영, 송원석
가격: 33,000원
ISBN: 978-89-962765-2-4
페이지: 700





[아마존 소개 보러가기]
[아마존 랭킹 보러가기]





예전 글(2009/09/14 - [출간예정]프로 ASP.NET MVC 프레임워크(Pro ASP.NET MVC Framework))에서도 알려드렸었지만, 이 책은 taeyo.net의 운영자이신 김태영(taeyo)님과 시삽이신 송원석(songgun)님께서 번역을 맡아 주셨습니다. 따라서, 도서를 읽고 궁금하신 점이 있으시면 언제든지 taeyo.net의 "ASP 게시판"에 올려주시면 여러 관계자분들께서 친절히 답변해 주시길 것입니다.

오늘은 도서와 저/역자분들의 간단한 소개를 먼저 해드리고 다음주 안으로 이 책의 4장인 "스포츠스토어: 실무 응용 프로그램" 부분을 공개해 드리도록 하겠습니다. 감사합니다.

책소개

이 책은 Apress의 Pro ASP.NET Framework(Sanderson 저)의 번역서로, 원서는 아마존(Amazon) 사이트의 프로그래밍/ASP 분야에서 출간 당시부터 베스트셀러에 속하여 현재까지 당당히 1위를 차지하고 있는 도서이다.

새로운 ASP.NET MVC 프레임워크는 마이크로소프트 웹 개발에 있어서 ASP.NET이 처음으로 공개된 2002년 이후 가장 큰 변화를 의미한다. ASP.NET MVC 프레임워크는 HTML 마크업, URL 스키마, 그리고 요청 및 응답의 사용을 매우 훌륭하게 제어할 수 있도록 지원해주고 있을 뿐만 아니라 깔끔한 응용 프로그램 아키텍처를 권장하고 단위 테스트에 대한 풍부한 지원을 제공해주며, 써드 파티 자바스크립트 라이브러리 및 Ajax 툴킷과도 손쉽게 통합할 수 있도록 지원해 주고 있다.
이 책은 단순히 ASP.NET MVC에서 어떤 기능들이 제공되는지, 그리고 그 기능들을 어떻게 사용하는지를 설명할 뿐만 아니라 그런 방식으로 설계된 이유는 무엇이며, 그 원리를 적용하여 여러분의 코드를 향상시킬 수 있는 방법은 무엇인지에 대해서도 깊게 이해할 수 있게 해준다.
또한 정상적으로 동작하는 기능들은 물론이고 여러분이 직면하게 될 제약 사항들과 대안들, 그리고 여러분이 사용하면 좋을 만한 오픈 소스 도구들에 대해서도 자유롭게 분석하고 검토하고 있다.

이 책의 설명과 따라하기 형식의 튜토리얼 등을 통해서 여러분은 다음과 같은 내용들을 알 수 있게 될 것이다.

  • 라우팅, 컨트롤러, 필터, 뷰, 모델 바인딩 등을 포함한 MVC 프레임워크의 강력한 기능들
  • 아키텍처: 모델-뷰-컨트롤러(MVC, Model-View-Controller) 패턴, 느슨한 결합, 테스트 용이성, 테스트 주도 개발(TDD, Test-Driven Development), 그리고 관련 디자인 패턴들
  • MVC 프레임워크의 요청 처리 파이프라인 확장 및 사용자 정의
  • MVC 응용 프로그램 보호 및 윈도우 서버로의 배포
  • MVC 응용 프로그램에서 ASP.NET 핵심 플랫폼 기능 사용하기
  • 기존 ASP.NET 응용 프로그램과의 통합 또는 ASP.NET MVC로의 마이그레이션

    http://taeyo.net
    책을 읽다가 궁금하거나 의아한 내용이 있다면 태오 사이트의 ‘ASP.NET 게시판’을 통해서 같이 이야기를 나누길 바란다. 내게 궁금한 것은 일반적으로 남에게도 궁금한 것이곤 하기에, 나중에라도 동일한 내용을 궁금해 하는 사람이 쉽게 찾아볼 수 있도록 하기 위해 역자는 그러한 궁금증을 게시판을 통해서 공유하길 좋아한다.


    독자대상: 초중급
    이 책은 ASP.NET과 C#에 어느 정도의 기본 지식을 가지고 있으면서 새로운 ASP.NET MVC 프레임워크를 사용하기 원하는 개발자들을 위한 책이다. 만약 여러분들이 웹폼으로 알려진 기존의 ASP.NET을 사용해 본 경험이 있다면 더욱 도움이 될 것이다.
    그러나 이 책은 초보자에게도 여전히 매우 유용하다. 예제들은 따라하기 방식으로 필요한 과정을 모두 친절히 설명하고 있으며, 아무 문제없이 작동되어 진다. 모든 코드들은 제대로 설명이 되어 있고 실용적이므로, ASP.NET MVC의 기초를 알기 원하는 모두에게 이 책을 권한다.


    *출판사 리뷰

    ASP.NET MVC는 모델-뷰-컨트롤러(MVC, Model-View-Controller) 아키텍처의 효율성과 깔끔함, 애자일 개발(Agile Development)의 최신 개념과 기술, 그리고 기존 ASP.NET 플랫폼에서 가장 뛰어난 부분들만을 결합한 마이크로소프트의 웹 개발 프레임워크이며, 웹 개발 프로젝트의 아주 사소한 부분들을 제외한 거의 모든 부분에 있어 상당한 이점들을 제공하는 "기존 ASP.NET 웹폼"에 대한 완벽한 대안이기도 하다.

    지난 몇 년 동안 우리들이 직접 경험해 왔던 것처럼, 마이크로소프트의 웹 개발 플랫폼들은 그 기능과 함께 (불행하게도) 복잡성도 점차 증가하고 있고 새로운 플랫폼들은 언제나 이전 플랫폼이 갖고 있던 단점들을 해소하고자 노력해왔다. 마찬가지로 ASP.NET MVC도 기존 ASP.NET 웹폼의 단점들을 해결하려는 목표를 갖고 설계되었으며, 특히 이번에는 간결함을 강조하고 있다.

    기존의 ASP.NET은 상당히 좋은 발상이었으며 처음에는 굉장한 기대를 모았으나, 현실은 예상했던 것보다 훨씬 더 복잡했다. 지난 몇 년간 실무에서 웹폼이 사용된 결과, ViewState, 페이지 수명 주기, HTML 기반의 콘트롤에 대한 제약, 관계 분리의 취약성, 테스트의 어려움 등에서 많은 문제점들이 발견되었다.

    마이크로소프트와 같은 거대 기업은 잠시 동안은 현재의 영광에 만족할 수 있겠지만, 언제까지나 그 상태로 안주할 수만은 없다. ASP.NET은 지금까지 큰 상업적 성공을 거뒀으나 그 동안 다른 웹 개발 업계는 계속 변화해왔으며, 비록 마이크로소프트가 꾸준히 웹폼의 문제점들을 해결해 나간다 하더라도 이미 웹폼의 주요 설계는 시대에 많이 뒤쳐진 것처럼 보인다.

    2007년 10월, 텍사스 오스틴에서 개최된 첫 번째 ALT.NET 컨퍼런스에서 마이크로소프트의 부사장 스콧 구스리(Scott Guthrie)는 지금까지 살펴본 비난들에 대한 직접적인 응답으로 명확하게 설계된 ASP.NET 기반의 새로운 MVC 웹 개발 플랫폼을 소개하고 시연했다. 이 새로운 플랫폼이 어떻게 ASP.NET이 갖고 있는 제약들을 극복하고 마이크로소프트의 플랫폼을 다시 첨단 기술로 복귀시킬 것인지 이 책을 통해서 함께 살펴보도록 하자.

    저자: 스티븐 샌더슨(STEVEN SANDERSON)

    그는 코모도어(Commodore) VIC-20 사용 설명서에 기재된 BASIC 프로그램을 따라 해보면서 처음 컴퓨터 프로그램을 접했다. 그리고 이것이 그가 처음 읽기를 배운 방법이기도 하다. 스티브는 영국의 셰필드(Sheffield)에서 태어났으며 캠브리지 대학에서 수학을 공부했고, 지금은 브리스톨(Bristol)에 거주하고 있다. 그는 거대 투자 은행과 조그마한 신생 기업에서 일했으며, 그 뒤로 독립하기 전까지 프리랜서 웹 개발자, 컨설턴트 및 트레이너로 중간 규모의 ISV에서 근무했다. 스티브는 영국의 .NET 커뮤니티에서 활동하면서 사용자 그룹에 참여하기 위해 노력하고 있으며, 기회가 허락될 때마다 컨퍼런스에서 무료 강연을 하고 있다. 그는 모든 형태의 기술적인 진보에 애착이 있으며, 반짝이는 LED만 갖고 있다면 어떤 기계 장치든 구입하곤 한다.


    기술 감수자: 앤디 올센(ANDY OLSEN)

    그는 영국에서 활동 중인 프리랜서 개발자이자 컨설턴트다. 앤디는 베타1 시절부터 .NET을 사용하여 작업해왔으며, Apress 출판사에서 C#, 비주얼 베이직, ASP.NET, 그리고 그 밖의 주제들을 다루는 몇 권의 책들을 공저하거나 감수했다. 그는 축구와 럭비의 열광적인 팬이며 달리기와 스키(비록 서툴지만)를 즐긴다. 지금은 그의 아내인 재인, 그리고 그의 아이들, 에밀리와 토마스와 함께 스완시(Swansea)의 해변에 거주하고 있고, 이제 막 서핑의 짜릿함을 발견하여 그가 경험한 그 어느 것보다도 멋져 보인다고 생각하고 있다.


    역자: 김태영(Taeyo)

    Taeyo라는 온라인 아이디로 유명한 그는 ASP/ASP.NET 기술에 관한 한 국내에서 전설적인 전도사로 불린다. Taeyo.NET이라는 유명 커뮤니티의 대표 운영자이며, 현재까지도 스테디셀러인 수 많은 책들의 저자이기도 하다. 더불어, 한국인으로서는 유일하게 Microsoft MVP Insider를 수상하기도 하였다. 현재는 ㈜이노가드에서 기술이사로 재직하고 있으며, 꾸준히 온라인을 통해서 다양한 웹 프로그래밍 기술을 공유하고 있다. 그를 만나보고 싶다면, 강남역이나 선릉역 주변의 선술집들을 둘러보라. 간혹 프로그래밍과 전혀 관계없는 주제로 신나있는 그를 볼 수 있을지도 모른다.


    역자: 송원석

    현재 ㈜이노가드에서 솔루션 사업부 차장으로 근무하고 있다. 지난 3년간 마이크로소프트 MVP(IIS)를 수상했으며, 국내 최대의 ASP & ASP.NET 커뮤니티인 Taeyo.NET에서 IIS 게시판 시삽으로 활동하고 있다. 최근 몇 년간 개인 홈페이지(http://www.egocube.pe.kr/)를 통해서 IIS7 관련 문서들의 번역 작업을 꾸준히 진행해오고 있으며, 특히 IIS 관리 자동화에 관심이 많다.

    *목차

    저자서문
    감사의글

    역자서문

    1부 ASP.NET MVC 소개

    1장. 전체 개요
       웹 개발의 간략한 역사

       최근의 웹 개발

       ASP.NET MVC 의 주요 장점

       누가 ASP.NET MVC 를 사용해야 하는가?

    2장. 첫 번째 ASP.NET MVC 응용 프로그램
       작업용 컴퓨터 준비하기

       새로운 ASP.NET MVC 프로젝트 생성하기

       웹 페이지 렌더링

       첫 응용 프로그램

    3장. 사전지식
       모델-뷰-컨트롤러(MVC, Model-View-Controller) 아키텍처의 이해

       도메인 모델링

       느슨하게 연결된 구성 요소 작성하기

       자동화된 테스트 시작하기

       새로운 C# 3 언어 기능들

    4장. 스포츠스토어: 실무 응용 프로그램
       시작하기

       도메인 모델 작업하기

       제품 목록 출력하기

       데이터베이스 연결하기

       IoC설정하기

       자동화된 테스트 생성하기

       사용자 정의 URL 스키마 구성하기

       모양 꾸미기

    5장. 스포츠스토어: 탐색 및 장바구니
       탐색 컨트롤 추가하기

       장바구니 구현하기

       주문 전송하기

    6장. 스포츠스토어: 관리기능 및 마무리 개선 작업
       카탈로그 관리 추가하기

       관리 기능 보안

       이미지 업로드

     

    2부 ASP.NET MVC 심화

    7장. ASP.NET MVC 프로젝트 개요
       비주얼 스튜디오로 MVC 애플리케이션 개발하기

       요청 처리 파이프라인

    8장 URL과 라우팅
       개발자가 제어할 수 있다

       라우트 설정하기

       출력용 URL 생성하기

       라우트를 단위 테스트하기

       중급 사용자 정의

       URL 스키마 지침

    9장. 컨트롤러와 액션
       개요

       입력 수신하기

       출력 생성하기

       필터에 재사용 가능한 동작 추가하기

       요청 처리 파이프라인의 일부인 컨트롤러

       컨트롤러와 액션 테스트하기

    10장. 뷰
       ASP.NET MVC와 뷰와의 조화

       웹폼 뷰 엔진 기초

       인라인 코드 사용하기

       MVC 뷰는 실제로 어떻게 동작하는가

       HTML 도우미 메서드 사용하기

       파샬 뷰 사용하기

       애플리케이션 로직을 갖는 재사용 가능한 위젯을 만들기 위해서 Html.RenderAction 사용하기

       마스터 페이지를 사용하여 페이지 레이아웃 공유하기

       사용자 정의 뷰 엔진 구현하기

       다른 뷰 엔진 사용하기

    11장. 데이터 엔트리
       모델 바인딩

       유효성 검사

       위저드와 다단계 폼

       검증

    12장. Ajax와 클라이언트 스크립팅
       왜 자바스크립트 툴킷을 사용해야만 하는가

       ASP.NET MVC의 Ajax 도우미

       ASP.NET MVC에서 jQuery 사용하기

    13장. 보안과 약점
       모든 입력은 위조될 수 있다

       크로스-사이트 스크립팅과 HTML 인젝션

       세션 하이재킹

       크로스 사이트 요청 위조(CSRF)

       SQL 인젝션

       MVC 프레임워크를 보안적으로 사용하기

    14장. 배포
       서버 요구사항

       IIS 기본

       애플리케이션 배포하기

       애플리케이션을 운영 서버에서도 잘 동작하게 만들기

    15장. ASP.NET 플랫폼 기능
       윈도우 인증

       폼 인증

       멤버십, 역할, 및 프로필

       URL 기반 권한 부여

       데이터 캐싱

       사이트 맵

       국제화

       성능

    16장. MVC와 웹폼의 결합
       MVC 응용 프로그램에서 웹폼 기술 사용하기

       웹폼 응용 프로그램에서 ASP.NET MVC 사용하기

    찾아보기





  • 신고
    Trackback 0 | Comment 0



    현재 10월 중(다음달)으로 번역서가 출간될 Apress의 프로 ASP.NET MVC 프레임워크(Pro ASP.NET MVC Framwork)를 출판사의 압박!으로 열심히 번역하고 계신 김태영(태오)님과 송원석(송군)님이 운영자이자 운영진으로 계신 Taeyo.net에서 작년(2008년)에 태오님께서 올리신 MVC 관련 강좌를 발견하였습니다. 4회까지 연재를 하신 것 같으신데, 모두 올려드리도록 하겠습니다. 원본은 다음 링크에서 확인 가능합니다.

    강좌 #4 [바로가기]

    MVC : Model 구성하기


    ASP.NET MVC 프레임워크에서 모델(Model)은 핵심 로직을 수행하고 데이터를 조작하는 역할을 담당합니다. 일반적으로 데이터베이스와 같은 데이터 저장소에 존재하는 데이터에 접근하고, 그 데이터에 대해 업무 로직을 수행하는 것이죠. 이러한 모델은 개발하려는 애플리케이션에 맞춰 설계가 되어야 하는 부분이기에 그 형식이 고정되어 있거나 하지 않습니다. 기업 환경의 경우에는 업무 분석을 통해서 산출된 엔터티들의 집합이 이러한 모델에 속하곤 하지만, .NET이 기본적으로 제공하는 DataSet과 같은 형식도 모델로서 다루어질 수 있습니다(여기까지는 MSDN에 나오는 모델에 대한 설명과 큰 차이가 없죠. 하하).

    데이터 모델은 여러 개의 클래스로 구성될 수 있는데, 여기에는 업무 분석을 통해 산출된 엔터티 클래스들과 그 엔터티들을 사용하여 데이터를 다루는 기능을 갖는 컨텍스트 클래스 등이 포함될 수 있습니다(경우에 따라서는 컨텍스트가 수행하는 기능이 컨트롤러로 빠지는 경우도 있습니다만, ASP.NET MVC에서는 이도 데이터 모델에 포함하고 있습니다). 엔터티들은 일반적으로 데이터베이스에 존재하는 특정 테이블의 스키마와 유사하긴 합니다만, 항상 그런 것은 아닙니다. 소규모 웹 애플리케이션의 경우는 테이블 스키마를 기반으로 엔터티 클래스를 구성하여 사용해도 크게 문제가 없는 편이지만(이러한 작업을 자동화하기 위한 ORM 도구들을 이용하기도 합니다), 규모가 있는 애플리케이션의 경우는 테이블 스키마를 기반으로 엔터티를 도출하는 것이 오히려 적절하지 않은 경우도 많기 때문에 주의해야 합니다. 데이터베이스 테이블은 관계적 구조로 설계되어 있지만, OOP로 작성되는 엔터티 클래스들은 상속 구조로 설계되기 때문에 구조적인 차이로 인한 보정이 요구되는 것도 있고, 테이블 스키마에 기반한 클래스 설계는 데이터베이스에 대한 종속성을 갖게 하기에 그를 독립적으로 운용하기 위한 고려가 요구되는 등 이러한 모델링은 고민해야 할 다양한 요소들이 존재하기에 간단한 작업이 아닙니다. 해서, 이러한 모델링만을 별도로 수행하는 전문가들 및 기업들도 존재하고 있지요. 사실, 이러한 작업은 기능성 작업의 구현을 좋아라하는 저희 같은 개발자들에게는 다소 지루한 부분이기도 합니다.

    해서, 기존의 ASP.NET 웹 애플리케이션을 비롯한 다양한 웹 기반의 프로젝트들(스마트 클라이언트 등)에서는 보편적으로 DataSet을 사용하곤 했습니다. 왜냐구요? DataSet은 그냥 이것 저것 고민하지 않고 쉽게 사용할 수 있으니까요. 사실, 엔터티 기반의 애플리케이션을 개발하는 것은 상당히 많은 자원(시간, 노력, 인원)을 요구하는 편입니다. 뽀대가 난다는 이유로 섣불리 엔터티를 도입하여 배보다 배꼽이 더 커지는 당황스런 경험을 해 본 개발자라면 엔터티 기반의 애플리케이션 개발에 고개를 사정없이 흔들기도 할 것입니다. 그런 의미에서 보면, 엔터티의 적용은 대규모 애플리케이션보다는 소규모 애플리케이션에 오히려 더 부합할 수도 있습니다. 그래서, 오히려 대형일수록 엔터티보다는 DataSet을 더 유용하게 사용하는 것인지도 모릅니다. 엔터티를 사용할 경우에 수반되는 생산성 문제 등 다양한 고민거리들에 대해 이것 저것 고민할 필요가 없으니 말이죠.

    그렇기에, 데이터 모델로써 여전히 DataSet을 사용할 수는 있습니다만(그리고, 실제로도 DataSet을 여전히 널리 사용하고 있습니다만), Microsoft는 VS 2008을 기점으로 하여(실은 그 전부터이긴 하지만) 가급적 DataSet보다는 사용자 정의 타입인 엔터티 클래스를 만들어서 사용할 것을 살포시 권유(?)하고 있으며, 심지어, VS 2008에서는 그러한 작업을 자동적으로 해주는(물론, 데이터베이스 테이블 스키마 기반으로) LINQ to SQL이라는 클래스를 제공하고 있기도 합니다. 이는 데이터베이스의 테이블 스키마를 기반으로 엔터티 클래스를 자동으로 만들어주는 ORM(Object-Relational Mapping) 도구라고 보시면 됩니다. 매우 유용하긴 하지만 이를 통해 생성된 엔터티 클래스는 다소 복잡한 환경의 애플리케이션에서는 많은 보정작업이 필요할 수도 있으며, 더불어 병행 개발 시의 참조 문제나 배포관련 문제도 고민거리 중에 하나이기에 면밀히 설계 및 검토한 뒤 사용하셔야 합니다.

    엔터티가 여러 측면에서 많은 장점을 가지고 있는 것은 사실입니다만, 그 멋진 모습 이면에는 숨겨진 많은 고민거리들이 존재하고 있기에, 애플리케이션을 엔터티 기반으로 구성하는 것이 최고의 답은 아니라는 점은 명심하시기 바랍니다(이에 대해서는 유경상 수석이 "DataSet 예찬론(?)"이란 가제로 글을 준비하고 있기도 합니다. 문제는 글이 언제 올라오느냐겠죠! 버럭!).

    그렇긴 하지만, 저는 이어지는 예제에서 LINQ to SQL Class를 사용해서 엔터티를 생성하여 사용할 예정입니다. 비록 이러한 작업이 대형 규모에서는 오히려 피곤한 방법이 될런 지는 모르겠지만, 일반적인 환경(예를 들면, 태오 사이트 같은 중,소 규모 사이트?)에서는 유용하고 쓸만한 방법이기 때문입니다(그리고, 사용해봐야 뭐가 불편한 것인지도 깨달을 수 있겠죠?).

    대부분 엔터프라이즈 환경에 계신 분들은 엔터티 기반으로 개발을 진행하는 경우, 데이터 모델 구성 작업을 위해서 모델링 컨설턴트를 고용한다거나, 자체 TFT를 구성하여 작업을 하셨을 것이니 이미 데이터 모델을 가지고 있는 상태이실 것입니다. ^^ 그렇기에, 그 분들에게는 LINQ to SQL 클래스를 이용하는 별도의 모델 구성 작업은 필요 없을 것입니다.

    더불어, 사실 기업 환경(엔터프라이즈라고 주로 불리는)이라 해도 항상 엄청난 규모의 프로젝트만을 하는 것은 아닙니다. 대형 프로젝트라 해도 그 내부적으로는 일반적으로 작은 규모의 애플리케이션들이 많이 존재하는 편이니까요. 그리고, 그러한 작은 프로젝트에서는 이러한 방식(LINQ to SQL 클래스를 사용하여 테이블 스키마 기반으로 모델을 구성하는 방식)으로 모델을 구성하는 것도 충분히 가능합니다(초기 프로젝트 지침서에서는 권장하지 않을지도 모르지만, 사는 게 그렇지 않습니까? 하하). 사실, 거대 프로젝트의 일부이긴 하지만 여러 개의 작은 웹 사이트들로 구성된 애플리케이션을 개발하는 경우에 수 많은 게시판을 주먹구구 식으로 개발해왔던 지난 개발환경을 생각해보면, 이 방식이 생각보다 오히려 많이 사용될 수 있어 보이기도 합니다(사실, 엔터프라이즈 환경에서 LINQ나 LINQ to SQL 관련 기술의 적용은 다소 비관적인 편이긴 합니다만, 세상의 모든 프로젝트가 모두 엔터프라이즈 급인 것은 아닐 뿐더러, 적절하게 사용하면 좋을 곳은 분명히 많을테니 말입니다).

    드원 테크놀로지의 유경상 수석과 리필 의존적인 커피타임을 가지면서 이에 대한 의견을 교환하다가 느낀 점을 추가적으로 언급하자면, 제가 LINQ to SQL이 중,소 규모에서 그런대로 쓸만하다고 말씀드린 부분은 웹 애플리케이션을 대상으로 한 의견이라는 것입니다. 스마트 클라이언트나 웹 서비스 연동의 윈도우 애플리케이션의 경우는 사실상 서버에서부터 클라이언트까지 이어지는 이러한 엔터티 라이브러리의 연계에 상당히 많은 고민거리들이 있을 수 있습니다. 사실, 이 문제는 닷넷엑스퍼트의 안재우 수석이 이미 자신의 블로그를 통해서 강조한 적도 있습니다. 다음 컬럼을 한번 읽어보세요(시간이 넉넉치 않으신 분은 그 컬럼의 하단에 LINQ to SQL의 문제를 지적한 부분만을 읽어보셔도 됩니다).

    http://blog.naver.com/saltynut/120045036743

    LINQ to SQL이 생성해주는 엔터티들 뿐만 아니라 실제 기업 환경에서 요구되는 엔터티들이 데이터베이스에 종속성을 갖는 부분에 대한 고민(설계적인 문제) 외에도 개발 생산성과 관련하여 병행 개발 시의 라이브러리 참조문제 및 운영 측면에서의 배포 문제 등은 현재까지도 꾸준히 이어져 오고 있는 고민거리입니다. 간단하게 설명 드리자면, 개발 중에 데이터베이스 스키마에 변경이 생겼다면(생각보다 이런 일이 현실에서는 자주 일어나죠), 그에 따라 엔터티 라이브러리도 재 빌드가 되어야 할 것이며, 그 라이브러리를 참조하고 있는 애플리케이션들도 모두 재 빌드 해야 한다는 것이죠. 프로젝트가 3-4개 정도인 가벼운 규모라면 '그게 무슨 문제가 돼?'라고 말씀하실 수도 있지만, 프로젝트가 수십 개 혹은 수백 개로 이루어지는 경우에는 이 작업은 대단한 부담이 됩니다. 더불어, 1차 배포가 완료되어 실제로 애플리케이션을 운영 중인 상황에서, 컬럼명이 변경된다거나 스키마에 변경이 가해진다거나 하면 위의 작업을 계속적으로 반복해야 하는 것 뿐만 아니라, 엔터티 라이브러리를 클라이언트에게까지 재 배포(스마트 클라이언트와 같은 윈도우 애플리케이션의 경우) 해야 하는 부담도 존재합니다. 그리고, 이런 작은 수정이 빈번하게 발생하게 된다면(주로 배포 초기에 이런 일이 잦은 편이죠), 이러한 복잡하고도 피곤한 작업을 매번 반복해야만 합니다. 해서, 오히려 개발하는 데 드는 시간보다, 빌드하고 배포하는 데에 더 많은 시간과 노력이 요구됩니다. 결국, 프로젝트 완료 전에 이러한 문제들에 대해서 깔끔하게 대처할 수 있는 방안을 세워놓지 않는다면, 프로젝트 끝나고도 수 개월간 뒤치다꺼리에 치여 살게 될 수 있다는 것이죠.

    그래서, 기업 중에는 엔터티를 도입하려다가 중도에 포기하는 경우도 꽤 있으며, 혹은 성공적으로(일단은) 프로젝트를 끝낸 뒤에도 산출된 엔터티 라이브러리를 재사용하지 않는 경우도 있습니다.

    해서, LINQ to SQL의 효용성, 더 나아가 엔터티 라이브러리의 효율적인 사용에 대해서는 가볍게 이야기할 수 있는 부분이 아닙니다. 효율성에 대한 고민은 다양한 환경에서 유사하지만 약간씩 다른 경험을 한 여러 전문가들, 선배들, 동료들과 의견을 교환하면서 계속적으로 더 나은 방법을 찾아나가야 하지 않나 합니다. 최고의 방법이 아닌 최선의 방법을 찾기 위해서 말이죠~

    누군가 그러더군요. "엔터티를 적용한다는 것은 매우 유용하며 효과적인 것임에는 틀림이 없다. 그러나, 그것을 효과적으로 사용하기 위해 드는 비용은 엔터티를 사용하는 것이 과연 좋은 지를 의심하게 하곤 한다"고요. (호오~ 쓰고 보니 그럴 듯 한걸~)

    PS : 오해의 소지가 있을까 봐 덧붙입니다. LINQ 기술에 오로지 LINQ to SQL 만 존재하는 것은 아닙니다. LINQ to XML이나 LINQ to DataSets 등의 기술도 존재하고 있으며 이들은 꽤나 유용할 것으로 보입니다. 그렇기에, LINQ 기술 자체는 상당히 흥미로운 기술이며, 관심을 가져볼 만 합니다. 다음 링크도 한번 참고해 보세요.

    http://blogs.msdn.com/charlie/archive/2008/02/28/link-to-everything-a-list-of-linq-providers.aspx

    뭔가 태오의 글 답지 않게 추상적이면서, 어려워 보이는 말들이 많았는데요. 역시나 이런 류의 아는 척은 저와는 왠지 어울리지 않는 듯 하네요 하하하.

    그럼. 이러니 저러니 하는 복잡한 이야기들은 잠시 뒤로 미뤄놓고요. 이제 데이터 모델을 한번 만들어 보도록 하겠습니다? 원론적인 이야기들은 어차피 강좌와 별도로 꾸준히 토론이 되어야 할 부분일 테니까요.

    우선, 데이터베이스가 필요합니다. 그렇다면, SQL 서버와 같은 데이터베이스 서버 제품을 또 설치해야 하는 것일까요? 이미 그러한 데이터베이스 서버를 보유하고 있다면 그를 연결해서 사용하시면 되겠지만, 소프트웨어가 없다고 해서 걱정하실 필요는 없습니다. VS 2008은 기본적으로 SQL Server 2008 Express 버전을 탑재하고 있으므로, 별도의 데이터베이스 서버를 설치하지 않으셔도 일단은 사용이 가능합니다.

    다음 그림과 같이 App_Data 폴더에 마우스 우측 클릭하여 새로운 항목(SQL Server 데이터베이스)을 추가하도록 하세요. 저는 데이터베이스 파일의 이름으로 MyData.mdf를 주었습니다만, 이 이름은 여러분이 편한 이름으로 지정하셔도 됩니다.

    그리고, 생성된 mdf를 더블 클릭하신 뒤, 비어있는 데이터베이스에 다음 그림을 참고로 하여 테이블을 하나 추가해 주세요. 다만, 테이블의 이름은 Memo로 해주시고, Seq 컬럼은 반드시 키 컬럼으로 잡아주시고, Identity 설정도 Yes(예)로 설정하셔서 자동으로 값이 증가하는 컬럼으로 만들어 주시기 바랍니다. 그리고, TransDate라는 컬럼에 대해서는 기본 값을 getdate() 를 지정하도록 하세요. 그래야, 데이터가 입력될 때 날짜도 현재 시간으로 자동 저장될테니까요.

    이제 데이터베이스와 테이블은 준비가 되었네요 ^^; 그렇다면, 만들어진 기념으로 테이블을 열고 2-3건의 데이터를 입력해 두시기 바랍니다. 나중에 출력이 잘 되는지 확인하기 위해서 미리 약간의 데이터가 들어있으면 매우 좋으니까요 ^^ (어떻게 입력하냐고요? 서버 탐색기에서 Memo 테이블을 선택하고 마우스 우측클릭 한 뒤, [테이블 데이터 표시]를 선택하시면 기존 데이터를 살펴볼 수 있을 뿐만 아니라, 입력하실 수도 있습니다) 다음 그림처럼 말이죠.

    데이터베이스가 준비되었으니, 이제, 진짜로!! 모델을 만들기 위해서 Models 폴더에 LINQ to SQL 클래스를 하나 생성해 보도록 하겠습니다. Models 폴더에 마우스 우측 클릭을 한 뒤, 새로운 항목을 추가하세요. 다음과 같이 말이죠.

    그러면, Memo.dbml 이라는 파일이 Models 폴더에 생성됨과 동시에, VS 2008은 그림과 같이 [개체 관계형 디자이너]를 나타내게 되는데요. 여기에 Memo 테이블을 드래그 앤 드롭하여 올려놓으시면 됩니다.

    그리고, 저장! 하시면, VS 2008은 자동으로 테이블 스키마를 기반으로 하여 Memo 클래스와 이 를 이용하여 데이터를 처리할 수 있도록 지원하는 MemoDataContext 클래스를 생성해 줍니다(이를 확인하시려면 Memo.dbml 파일을 확장하여 Memo.designer.cs 파일을 열어보시면 됩니다). 이로써 아주 간단하게 데이터 모델이 만들어진 것입니다. 정말 쉽죠?

    다만, 이는 1회성의 생성이기에 자동 생성된 데이터 클래스가 데이터베이스 테이블(Memo)과 동기화가 되거나 하지는 않습니다. 즉, 테이블의 스키마가 변경되었다고 해서 자동으로 Memo 클래스도 변경(즉, 재생성)된다거나, Memo 클래스에 추가 속성을 넣는다고 해서 데이터베이스 테이블에도 그 필드가 반영되지는 않는다는 것이죠. 그렇기에, 테이블 스키마가 변경되면 다시금 위의 작업을 반복하여 Memo 클래스를 재생성 해주어야 합니다(여기서, 여러분은 불편함 중 한 가지를 알게 되신 겁니다). ^^

    하지만, LINQ to SQL 클래스를 사용함으로써 매우 쉽게 우리는 사용자 정의 타입을 작성할 수 있었습니다. 그쵸? 그리고, 이로써 이제 데이터베이스와 그를 기반으로 하는 데이터 모델은 준비가 완료되었습니다. 즉, MVC 중 M에 해당하는 부분은 준비가 되었다는 것이지요.

    그럼, 이제 컨트롤러를 제작하는 쪽으로 넘어가 보도록 하죠. 물론, 그에 앞서 MVC 프레임워크가 지원하는 URL 매핑 방식을 먼저 이해하고 나서 말이죠~ (그러니깐, 이 말은 다음 강좌는 URL 매핑에 관한 이야기라는 것입니다)



    신고
    Trackback 0 | Comment 0



    현재 10월 중(다음달)으로 번역서가 출간될 Apress의 프로 ASP.NET MVC 프레임워크(Pro ASP.NET MVC Framwork)를 출판사의 압박!으로 열심히 번역하고 계신 김태영(태오)님과 송원석(송군)님이 운영자이자 운영진으로 계신 Taeyo.net에서 작년(2008년)에 태오님께서 올리신 MVC 관련 강좌를 발견하였습니다. 4회까지 연재를 하신 것 같으신데, 모두 올려드리도록 하겠습니다. 원본은 다음 링크에서 확인 가능합니다.

    강좌 #3 [바로가기]

    MVC 애플리케이션 개발환경 설정

    이전 강좌의 피드백 중에는 "강좌의 내용이 너무 짧았다. 좀 더 상세하고 속 시원하게 말을 해주면 좋았을 것 같다"는 내용이 있었습니다만, 그 부분은 제가 확신을 가지고 말씀 드릴 수 있는 부분이 아니기 때문에 비교만을 해드린 것입니다. 더불어, Page 컨트롤러와 Front 컨트롤러의 차이나 장, 단점의 비교를 보다 구체적으로 해 주었으면 좋겠다는 의견도 있었습니다만, 이는 상당히 많은 이야기가 수반되어야 하기에 제 강좌에서는 설명을 생략(?)하고 관심이 있는 개발자들이 스스로 학습하시도록 방관(?)한 것이 사실입니다. ^^ 죄송합니다.

    사실, 웹 폼은 웹 폼만의 많은 장점을 가지고 있고(아이러니하게도 MVC가 지원되니깐 오히려 웹 폼의 장점이 더 눈에 잘 보이더군요), 장기간 동안 시장에서 사용되어 온 기술이기에 사용층도 폭도 매우 넓습니다. 그렇기에, MVC 프레임워크가 등장한 이후에도 많은 프로젝트들은 웹 폼 기반으로 이루어질 것으로 보입니다. 아직까지도 ASP 기술이 사용되고 있듯이, 기존 ASP.NET의 웹 폼 모델도 차후 오랫동안 꾸준히 사용될 것임이 자명하기 때문입니다. Microsoft가 웹 폼 모델도 꾸준히 업데이트하고 지원할 것이라고 말했듯이, MVC 모델은 기존 웹 폼 모델을 대체하기 위한 것이 아닌 병행적으로, 선택적으로 사용할 수 있는 개발 방법이기 때문입니다.

    그런 상황에서 제가 MVC가 새로 지원되는 기술이라는 이유로 강조해서 설명을 드리게 되면 혹시 몇몇 분들은 혹~해서 지나치게 MVC 기술에 대해 긍정적인 선입견을 갖게 될 수도 있기 때문에 저는 조심스럽게 말씀드릴 수 밖에 없습니다. 그 어떤 것이 절대적으로 좋은 것이 아니라, 상황과 환경, 시나리오에 따라 선택적으로 채택할 수 있는 기술이기 때문인 것이죠.

    A 경우에는 MVC가 B 경우에는 웹 폼이 좋다고 누구도 장담할 수 없을 것입니다. 그것은 다양한 환경적인 요소들에 의해 선택적으로 채택될 수 있는 것이기 때문입니다. MVC가 쿨하게 보이는 기술이기는 하지만 그것이 만능해답인 것은 아닙니다. 고로, 지금은 강좌를 통해서 단지 이 기술이 어떤 즐거움을 우리에게 선사할 것인지 정도를 느껴보시는 것으로 충분합니다. 어느 정도 익숙해지고 난 다음에서야 우리는 본격적으로 진지한 토론을 할 수 있을테니까요. 겉모습만을 살펴본 상태에서 침을 튀겨가며 무언가에 대해 섣부른 판단을 하는 것은 바람직하지 않습니다. 사람들이 겉만 보고 태오를 평가했다면, 아마도 저는 지금 개발자가 아닌 연예인이 되어 장동건과 쌍벽을 이루고 있을지도 모를 노릇이지만, 저는 개발자를 하고 있지 않습니까? (응? 브라우저는 왜 닫으시려는 것이어요? 네? 왜???)

    ASP.NET MVC 개발환경 구성하기

    자. 그렇다면, 이제 간단한 샘플 애플리케이션을 통해서 모델을 구성하고 개발하는 방법을 시작으로 MVC 각각의 단계를 파고들어 보도록 하겠습니다. 당장 소스 그대로 가져다 써먹을만한 실용적인 샘플을 다루는 것을 원하시는 분들도 있겠습니다만, 그렇게 하면 MVC에 대한 설명보다는 오히려 그 복잡한 구성에 대한 설명으로 강좌의 목적이 방향을 잃을 수 있기에, 예제는 간단한 것으로 진행하려는 것입니다. 진짭니다. 진짠데… (태오 쉿! 더 말하면, 진짜 티나!)

    우선, MVC 애플리케이션을 작성하기 위한 사전 준비가 필요한데요. 아시다시피, 현재는 이를 편하게 개발하려면 Visual Studio 2008이 필요합니다. 물론, 그러한 훌륭한 도구없이 메모장에서 개발을 할 수도 있겠습니다만, 그렇게 하려면 너무 많은 준비가 필요하기에 저는 VS 2008 기준으로 작성하도록 할까 합니다.

    VS 2008이 준비되신 분들은 이어서 계속 따라해 주시면 감사하겠고요. 도구가 없으신 분은 일단은 눈으로라도 따라해 봐 주시면 또한 감사하겠습니다.

    자. 그럼 시작해 볼까요? 고고싱!

    이라고 외치자마자 기운을 꺾어서 죄송합니다만, VS 2008 도구가 준비되었다고 바로 ASP.NET MVC 애플리케이션을 작성할 수 있는 것은 아닙니다. ^^; 현재 ASP.NET MVC는 preview 인 상태이기 때문에 , 이를 개발할 수 있게 돕는 별도의 설치파일을 다운로드 하셔서 설치하셔야 합니다. 그러니깐, 아직 ASP.NET MVC는 정식버전은 아니라는 것이죠(2008년 말 즈음 정식 버전이 나올 것으로 예상됩니다). 어쩌면 여러분이 이 강좌를 읽고 있는 시점에서는 설치 파일의 Beta 버전이 나왔을 수도 있습니다. 여러분은 현재 시점에서 최신의 ASP.NET MVC 설치파일을 다운로드 하셔서 설치하시기 바랍니다. ^^

    http://www.asp.net/downloads/3.5-extensions/

    설치하셨다면, 이제 본격적으로 시작을 해보도록 하겠습니다.

    자. 이제 VS 2008을 실행하시고요. 다음과 같이 C# 언어에서 Web 프로젝트 중 ASP.NET MVC Web Application을 선택하세요. 창 중간에 있는 설명에 (Preview)가 확실히 맞는지 확인하시기 바랍니다.

    제 VS 2008의 경우는 여러분의 화면보다 조금 복잡하게 보일 수도 있는데요. 이는 저의 경우는 기존 preview 버전도 설치가 되어 있기 때문에 프로젝트 템플릿이 살짝 꼬여있어서 그렇습니다. 그리고, 추가적으로 저의 경우는 VS 2008 한글판을 사용하고 있는데요(세미나 준비 때문에 어쩔 수 없이). 한글판을 사용하는 경우에는 ASP.NET MVC를 설치하더라도 [새 프로젝트] 창에 위의 그림과 같이 ASP.NET MVC Web Application이 나타나지 않을 수 있습니다. 현재 ASP.NET MVC는 영문 버전의 VS 2008만을 올바로 지원하기 때문이지요. 만일, 여러분이 한글판 VS 2008을 사용하고 있다면 다음의 글을 참고하셔서 ASP.NET MVC 설치 후 약간의 세팅을 하셔야 합니다. ^^ (그래서, 태오는 가급적 영문 VS 2008을 사용하실 것은 개인적으로 추천합니다). 하셔야 할 세팅은 태오 사이트의 Knowhow 게시판에 나와있습니다. 다음 링크를 참고하세요

    http://taeyo.net/forum/Content.aspx?SEQ=1317&TBL=KNOWHOW

    자. 이제 프로젝트를 생성하였다면, 다음과 같은 구조의 프로젝트를 보실 수 있을 것입니다. 저의 경우는 프로젝트 명이 MvcApplication2로 되었는데요. 여러분은 원하시는 프로젝트 명을 사용해도 무방하며, 아무런 변경을 하지 않았다면 아마도 MvcApplication1 이실 겁니다. ^^

    프로젝트 구조를 보시면 MVC 답게, Model과 Controller, View가 각각의 폴더로 존재하는 것을 확인하실 수 있습니다. 각각의 폴더에 각각의 모듈을 작성하시면 됩니다. 직관적이죠?

    여기서, 다시 한번 강조하고 넘어갈 부분은 MVC 애플리케이션은 기존의 웹 애플리케이션과는 달리 웹으로 통한 요청이 물리적인 aspx 파일에 "직접적으로" 도달하지 않는다는 것입니다. 기존 웹 애플리케이션은 aspx 페이지 단위로 화면을 만들고 그 페이지가 요청의 종점이었지만(예를 들면, http://taeyo.net/board/list.aspx와 같은 식으로 요청을 하죠), MVC 모델에서는 aspx가 실제적인 요청의 종점이 아니라는 것입니다. Aspx는 일종의 뷰 템플릿으로서 사용되며, 요청의 종점 즉, 최종 화면은 URL에 지정된 명령(?)에 따라 컨트롤러에 의해서 결정되게 됩니다. 해서, MVC 모델에서의 URL은 http://taeyo.net/Board/List 와 같은 식으로 구성이 됩니다. 이와 관계된 자세한 내용은 이어지는 강좌(아마도, URL Mapping 강좌)에서 보다 구체적으로 다룰 예정이니 그 때 다시 설명드리도록 하겠습니다.

    지금은 저 각각의 폴더들이 각각의 MVC 모듈을 배치하기 위해서 존재한다는 것만을 기억하시면 됩니다.
    폴더 구조와 실제 URL 경로와는 아무런 상관관계가 없다는 것 정도만을 알고 계시면 된다는 것이죠 ^^

    그럼 이제 Model을 실제로 작성하는 것을 시작으로 하여 예제를 시작해 보도록 하겠습니다.
    아시죠? 그 내용은 다음 강좌라는 거~





    신고
    Trackback 0 | Comment 0


    현재 10월 중(다음달)으로 번역서가 출간될 Apress의 프로 ASP.NET MVC 프레임워크(Pro ASP.NET MVC Framwork)를 출판사의 압박!으로 열심히 번역하고 계신 김태영(태오)님과 송원석(송군)님이 운영자이자 운영진으로 계신 Taeyo.net에서 작년(2008년)에 태오님께서 올리신 MVC 관련 강좌를 발견하였습니다. 4회까지 연재를 하신 것 같으신데, 모두 올려드리도록 하겠습니다. 원본은 다음 링크에서 확인 가능합니다.

    강좌 #2 [바로가기]

    웹 폼 기반의 개발과 MVC 기반의 개발


     

    M/V/C 로의 분리

    우선 웹 애플리케이션의 구조를 Model(모델), View(뷰), Controller(컨트롤러)로 분리하는 MVC 패턴에서 각각의 그러한 컴포넌트들의 역할에 대해서 먼저 살펴보도록 하겠습니다. 각각의 분리는 물리적인 분리라기 보다는 논리적인 분리임을 기억하시고 다음 내용을 살펴보시기 바랍니다.

    Model(모델)

    모델은 실제 로직을 구현하는 애플리케이션의 중요한 부분입니다. 이는 일반적으로 데이터베이스로부터 데이터를 가져와서 담아두거나, 데이터베이스로 저장하는 역할을 수행합니다. 주로 모델링을 통해서 산출된 엔터티들이 이러한 모델에 속하게 되지만, 작은 규모에서는 DataSet도 모델로서 사용될 수 있습니다.

    View(뷰)

    뷰는 사용자 인터페이스 즉, UI을 출력하는 컴포넌트입니다. 일반적으로 UI는 모델의 데이터를 기반으로 만들어집니다. 화면 출력과 관계된 로직을 포함할 수는 있지만, 사용자 입력이나 인터렉션, 업무와 관계된 로직은 결코 View가 가져서는 안됩니다. 이는 오로지 화면을 출력하기 위한 역할만을 담당하기 때문입니다.

    Controller(컨트롤러)

    어찌 보면 MVC에서 가장 핵심이 되는 컴포넌트입니다. 사용자의 인터렉션을 처리하고, 모델을 조작하며, 최종 UI로 출력될 뷰를 결정하는 역할을 담당합니다. 전체적인 코디네이터 역할을 한다고 볼 수 있는데요. 이는 사용자의 입력 값을 수신하고 데이터 모델을 통해서 필요한 데이터를 가져와 응답(Response)을 구성하는 전반적인 책임을 담당합니다.

    이러한 MVC 패턴에 따라 애플리케이션을 3개의 컴포넌트로 나누어 구성하게 되면, 각 요소 간에 연결을 보다 느슨하게 구성할 수가 있게 되기에 복잡한 애플리케이션을 관리하기에 용이하며, 병행 개발(동시에 각각의 컴포넌트를 개발하는 방식)이 가능하다는 장점이 있습니다. 그리고, 이러한 분리로 인해 기존의 ASP.NET 애플리케이션보다 훨씬 테스트하기가 용이하다는 이점을 얻을 수도 있습니다.

    기존 ASP.NET 애플리케이션은 테스트를 하기 위해서 사용자 입력에 따라 전반적인 ASP.NET의 프로세스(페이지 클래스를 생성, 초기화하고, 개체 트리에 속해있는 모든 컨트롤들을 생성하는 등) 를 모두 거쳐가며 테스트해야 했기에 그 절차가 약간 복잡했고 또한, 테스트를 위해서는 반드시 웹 서버가 요구된다는 제약이 있었지만, MVC 패턴을 적용해서 구성하게 되면 개별적인 컴포넌트를 독립적으로 테스트할 수 있게 되기에 애플리케이션의 개발과 테스트가 상대적으로 용이하다는 이점을 얻을 수 있으며, 이는 TDD(Test-Driven Development)에도 부합한다고 볼 수 있습니다.

    어떻게 모듈을 나눠야 하고, 어떤 코드를 어디에 작성해야 하는 지는 지금 고민하지 않아도 됩니다. 그에 대한 템플릿과 규칙을 ASP.NET MVC 프레임워크가 제공하고 있기에 그가 제안하는 규칙에 따라 개발을 하면 되기 때문이지요. 이에 대한 본격적인 이야기는 다음 강좌부터 시작합니다.

    웹 폼 기반의 개발과 MVC 기반의 개발

    조금쯤은 새로 사귄 친구의 편을 들어 설명하다 보니, 자칫하면 이러한 설명이 마치 기존의 ASP.NET 애플리케이션은 그다지 매력이 없고 MVC만이 훌륭한 것처럼 느껴지게 설명한 것도 같은데요. 앞에서도 말씀 드렸지만, 그게 꼭 그런 것만은 아닙니다. 기존 웹 폼 방식의 ASP.NET도 많은 장점들을 가지고 있으니까요. 말이 나온 김에 간단하게 두 기술이 가진 각각의 장점을 간략하게 정리해 보도록 하겠습니다.

    웹 폼 기반의 웹 애플리케이션의 장점

  • 각각의 페이지 단위로 기능을 작성하는 Page Controller 패턴을 사용한다.
    : 개별 화면 단위 중심적인 업무를 개발하기에 매우 적합하다.
  • 이벤트 중심의 프로그래밍 모델을 제공한다.
    : 다양한 이벤트를 제공하는 수 많은 서버 컨트롤이 제공되기에, 이벤트 중심적인 개발을 통해 업무 화면을 직관적으로 작성할 수 있다.
  • 뷰상태(ViewState)와 서버 기반의 폼을 사용하기에, 상태 정보를 관리하기에 용이하다.
  • MVC 기반의 웹 애플리케이션의 장점

  • 모든 요청을 단일 컨트롤러를 통해서 처리하는 Front Controller 패턴을 사용한다
    : 모든 요청을 단일 컨트롤러를 통해 처리하므로, 라우팅(routing) 하부구조를 지원하는 애플리케이션을 개발할 수 있다.
  • 애플리케이션을 3개의 논리 모듈로 분리하기에 애플리케이션의 복잡성을 관리하기 쉽게 한다.
  • 뷰상태나 서버 기반의 폼을 사용하지 않는다
    : 개발자가 애플리케이션의 동작방식을 전체적으로 제어할 수 있으므로 세밀하게 애플리케이션을 조작하고 싶은 이들에게 적합하다. 단, 이러한 기능(상태정보 관리)이 필요할 경우 추가적인 작업이 요구된다.
  • 이제 MVC 모델이 어떻게 우리를 즐겁게 해줄 수 있을 것인지 개념적으로는 약간의 기대가 충전되었을 것이라 생각합니다. 막상 사용하다 보면 웹 폼 기반의 개발이 그리워지는 경우도 적지 않지만(이벤트 프로그래밍 모델도 꽤나 개발에 편리한 모델이기에), MVC는 MVC대로 유용한 많은 기능들을 제공하기에 이를 통한 개발이 한동안은 꽤 선전하지 않을까 예상이 됩니다. 물론, 그렇다 하더라도 많은 애플리케이션은 여전히 웹 폼 기반으로 개발될 것이며, 심지어는 웹 폼 기반과 MVC 기반이 혼합되는 애플리케이션도 생겨날 수 있겠지만 말입니다.

    그렇다면, 이러한 지식을 머리에 담아두고, 다음 강좌부터는 본격적으로 ASP.NET MVC 프레임워크가 지원하는 기능들에 대해서 설명을 해보도록 하겠습니다. 프레임워크에서 지원하는 기능을 간략하게 살펴본 뒤, 그에 따라 가벼운 샘플 애플리케이션을 모델/뷰/컨트롤로로 분리하여 전체적인 구동 예제를 완성하는 식으로 강좌를 진행해 볼까 합니다.

    기대가 되신다면~ Talk 게시판에 응원의 글을 남겨주십시오!!! 감사합니다.




    신고
    Trackback 0 | Comment 0

    퍼블릭's Blog is powered by Daum & tistory

     

    티스토리 툴바