ASP.NET MVC3 강좌 및 동영상, 튜토리얼등 여러 링크를 찾고 정리하였습니다.

회사에서 업무상 C#을 사용할 기회가 있게 되었고, 이 기회에 C#과 .NET framework기반 툴에 대한 개발에 익숙해지려고 합니다. (M$사의 제품으로 개발을 하다보니깐 M$의 손아귀에 붙잡혀야한다는 게 조금 그렇군요.)

(C#은 Mac이나 Linux에서 Mono Project http://www.mono-project.com/ 을 이용하여 개발할수 있기때문에 C#코드 테스트한다고 어디든 사용할수 있다만, ASP.NET, LINQ은 M$사의 IIS와 SQL Server에서 돌아가니... 안될거야)

ASP.NET MVC3, MVC4에 대한 내용을 영어로 쭉 훑어보았는데, Java의 Spring Framework의 개념을 이미 안 상태에서 ASP.NET MVC3,4를 배우는데 학습 시간이 별로 안걸리고, 코드 보는데 금방익숙해지더라는걸 느끼게 되더군요.

M$사가 .NET을 밀어주기때문에 그런지 영문 자료는 아주 넘쳐나는데, 이거 언제 다볼지가 걱정되더군요. (일은 촉박한데 영어로 된 문서 읽기 속도가 느리니 답답함)  

ASP.NET MVC3 한국어로 정리한 내용


지난 동영상 참고 자료 :

[동영상 강좌] 1. MVC(Model- View – Controller) 란 무엇인가.
[동영상 강좌] 2. MVC 환경 세팅
[동영상 강좌] 3. HelloWorld MVC 
[동영상 강좌] 4. Layout , Partial Page 
[동영상 강좌] 5. Model 을 View에서 표현하기 
[동영상 강좌] 6. MVC의 매력적인 기능 스캐폴딩!(With EF) 
[동영상 강좌] 7. 유효성 검사
[동영상 강좌] 8. ModelBinder
[동영상 강좌] 9. MVC ActionResult 종류 살펴보기
[동영상 강좌] 10. MVC 처리 프로세스 & ActionFilter
[동영상 강좌] 11. Global.asax
[동영상 강좌] 12. (번외편) Repository Pattern
[동영상 강좌] 13. MEF(Managed Extensibility Framework) in MVC
[동영상 강좌] 14. Javascript in MVC
[동영상 강좌] 15. Javascript Intellicense in Visual Studio
[동영상 강좌] 16. JSON in MVC - 1
[동영상 강좌] 17. JSON in MVC - 2
[동영상 강좌] 18. HTML5 in MVC
[동영상 강좌] 19. MVC Tips 1 - HandleUnknownAction
[동영상 강좌] 20. MVC Tips 2 - Cache ActionFilter




ASP.NET MVC3 시리즈 강좌 리스트
[ASP.NET MVC3강좌] 1. MVC(Model- View – Controller) 란 무엇인가.
[ASP.NET MVC3강좌] 2. MVC 환경 세팅
[ASP.NET MVC3강좌] 3. HelloWorld MVC
[ASP.NET MVC3강좌] 4. Layout , Partial Page
[ASP.NET MVC3강좌] 5. Model 을 View에서 표현하기
[ASP.NET MVC3강좌] 6. MVC의 매력적인 기능 스캐폴딩!(With EF)
[ASP.NET MVC3강좌] 7. 유효성 검사
[ASP.NET MVC3강좌] 8. ModelBinder
[ASP.NET MVC3강좌] 9. MVC ActionResult 종류 살펴보기
[ASP.NET MVC3강좌] 10. MVC 처리 프로세스 & ActionFilter
[ASP.NET MVC3강좌] 11. Global.asax
[ASP.NET MVC3강좌] 12. (번외편) Repository Pattern
[ASP.NET MVC3강좌] 13. MEF(Managed Extensibility Framework) in MVC
[ASP.NET MVC3강좌] 14. Javascript in MVC
[ASP.NET MVC3강좌] 15. Javascript Intellicense in Visual Studio
[ASP.NET MVC3강좌] 16. JSON in MVC - 1
[ASP.NET MVC3강좌] 17. JSON in MVC - 2
[ASP.NET MVC3강좌] 18. HTML5 in MVC
[ASP.NET MVC3강좌] 19. MVC Tips 1 - HandleUnknownAction
[ASP.NET MVC3강좌] 20. MVC Tips 2 - Cache ActionFilter

아래는 StackOverflow에 올라온 ASP.NET MVC3 튜토리얼 설명 링크(영어)입니다.

tutorials for ASP.NET MVC3
Buy me a coffeeBuy me a coffee

MVC Pattern, originally uploaded by Dario Santarelli.

MVC(Model, View, Controller)는 게임 개발, 윈도우즈 프로그래밍 개발,웹 어플리케이션 개발등 여러군데서 많이 사용한다.
MVC패턴을 모르고서는 프로그래밍을 할수 없을 정도로 많은 기업이나 오픈소스프로젝트에서 소스의 유지보수를 위해서, 구현의 효율성을 높이기 위해서 많이 쓴다.

MVC 패턴

MVC패턴은 Smalltalk에서 그래픽 인터페이스와 실제로 동작하는 코드를 분리하기 위해 개발되었다 지금은 다른 객체지향언어에서도 널리 사용되는 패턴 중 하나이다.

웹 어플리케이션에서 사용하는 MVC 패턴
MVC 패턴의 기본 개념은 사용자에게 보일 페이지(View)와 데이터 처리(Model), 그리고 이들 상호간의 흐름을 제어(Controller)하는 모듈을 분리하는 것이다. 이렇게 함으로 더 쉽게 웹 애플리케이션을 확장하고 유지, 보수를 할 수 있다.
(여기서는 JAVA Web 개발에 관한 MVC 패턴을 다룬다)

모델(Model)
모델(model)이란 어떠한 동작을 수행하는 코드를 말한다. 표시 형식에 의존하지 않는다. 다시 말해, 사용자에게 어떻게 보여질지에 대해 신경쓰지 않아도 된다. 모델은 순수하게 public 함수로만 이루어진다. 몇몇의 함수들은 사용자의 질의(query)에 대해 상태 정보를 제공하고 나머지 함수들은 상태를 수정하는 함수이다.

웹어플리케이션에서 모델(Model)은 데이터 영역으로 DAO(Data Access Object), DO(Data Object) 등으로 구분해 구현하기도 한다. 하이버네이트, 아이바티스와 같은 퍼시스턴스 프레임워크를 사용하기도 한다. EJB와 연동할 수 있으며 EJB 3.0의 POJO 기반의 퍼시스턴스 API도 있다.


뷰(View)
MVC에서 모델은 여러 개의 뷰(view)를가질 수 있다. 뷰는 모델에게 질의를 하여 모델로 부터 값을 가져와 사용자에게 보여준다.
웹어플리케이션에서 뷰(View)는 JSP를 기본으로 표현 언어, JSTL, 커스텀 태그 라이브러리 등을 함께 사용하며, 모듈화 된 사용자 인터페이스 모델인 JSF(Java Server Faces)도 이용할 수 있다.


컨트롤러(Controller)
MVC의 뷰는 여러 개의 컨트롤러(Controller)를 가지고 있다. 사용자는 컨트롤러를 사용하여 모델의 상태를 바꾼다. 컨트롤러는 모델의 mutator 함수를 호출하여 상태를 바꾼다. 이 때 모델의 상태가 바뀌면 모델은 등록된 뷰에 자신의 상태가 바뀌었다는 것을 알리고 뷰는 거기에 맞게 사용자에게 모델의 상태를 보여 준다.
웹어플리케이션에서 컨트롤러(Controller)는 MVC 패턴의 중심이 되는 부분으로, 직접 구현하거나 구현된 솔루션을 이용할 수 있다. 대표적으로 스트러츠 프레임워크(struts Framework)나 스프링 프레임워크(Spring Framework)가 있다.

'컴퓨터 > 프로그래밍' 카테고리의 다른 글

Android SDK 설치  (0) 2008.12.14
오랜만에 만져본 JAVA  (2) 2008.12.02
내가 보아야 할 Ruby 관련 책들  (2) 2008.05.14
Ruby를 맛봅시다.  (2) 2008.04.30
10.Raw Socket  (0) 2008.04.29
Buy me a coffeeBuy me a coffee

에이콘출판사 - 웹 개발 2.0 루비 온 레일스

웹 개발 2.0 루비 온 레일스
카테고리 컴퓨터/인터넷
지은이 황대산 (에이콘출판, 2007년)
상세보기

 예전에 루비가 대세라는 말이 뜨면서 작년인 2007년 12월 20일에 사본 책이다.

책에 있는 예제를 따라하면서 루비가 엄청 쉽구나를 알게 되었지만, 프레임워크(Framework)이라는 용어도 생소하고, MVC라는 용어도, Model, View, Controller[각주:1]의 역할에 대해 이해 못한채로 따라만 하고 덮은 책이였다.

Ruby라는 언어라는 것을 처음 알게 된 책이면서, 책을 열심히 보면서 Ruby란 언어가 예전에 써보았던 Perl의 강력한 정규표현식처리, Prolog의 함수형 프로그래밍언어의 내용, C++, JAVA에서 볼 수 있는 객체지향성을 통합시킨 것을 알게 되었다.

Perl을 써보면서 강력한 문자 처리에 감동하고 이번 학기 프로그래밍 과제하는데 Perl을 가지고 파일 옮기고 유사도 검사를 해보았던 생각을 해보면서 루비로도 해볼까라는 생각을 해보았다. Prolog와 같이 다른 함수를 정의하는 함수를 정의하는 함수를 작성하는 프로그래밍기법을 사용하여 다양한 종류의 함수 정의를 자동화 시키는 기법에 대해서도 신기하게 느꼈다.
(프로그래밍언어 시간에 Prolog로 과제 하다 함수정의하다 이해안되는 부분때문에 몇일동안 고생한 기억이 나서 Prolog에 대해서 기억이 안좋다만, Ruby를 다뤄보니 Prolog과 유사한 부분이 많아서 신기했음)

프로그래밍 언어인 Ruby의 문법을 보면서 일본사람이 정말 Ruby란 언어 잘만들었다는 생각이 들었다.

이분이 Ruby를 만드신 마츠모토 유키히로(松本 行弘, Yukihiro Matsumoto)

이번에 다시 루비언어를 다시 기억을 다시 되살린다고 책을 다시보게 되었다. (루비를 써봐야 하는 입장이 되어서 급하게 책을 펼쳐보았다.)

책에 있는 예제를 그대로 따라하는데에 오류가 생긴 것이다. ㅠㅠ

책에 있는 내용대로 따라해서 ruby 1.8.4를 설치한 다음에 rails를 gem으로 설치하는 것인데 gem으로 rails를 설치하면 책에서 설치하는 것 같은 rails-1.2.2가 설치되지 않고 rails-2.0으로 설치되는 것이다.
rails-2.0으로 설치가 되니 rails-1.2에서 없는 문제가 생겼다.

그것은 책에서 쓰는 scaffold가 rails-2.0에는 없다는 치명적인 에러이다.

그래서 책의 예제를 따라하기 위해서는 책에 있는 내용을 아래와같이 수정을 해야할 것 같다.

c:\> gem install rails --include-dependencies

현재 위에서 같이 쓰여진 책의 내용을 쓰면 rails-2.0이 깔려져서 책의 예제를 따라하기 어렵다. 책의 예제를 따라하기 위해서 (특히 scaffold 부분의 경우) 레일스 1.2.3을 다시 설치해야 한다.

c:\> gem uninstall rails
c:\> gem install rails --version '= 1.2.3' --include-dependencies

위의 설치명령어로 설치를 하면 책에 있는 예제가 잘 될 것이다.

책은 잘 써진 것 같은데 버전 문제가 껄끄럽긴 합니다. 책 쓸 당시에는 이렇게 바뀔줄은 몰랐기 때문이라고 생각됩니다.

Ruby on Rails를 프로그래밍을 해야할 상황인데 Ruby를 빠르게 배우고 싶다면 이 책을 추천하긴 한데 책의 내용을 약간 바뀌어서 내야 할것 같다.

아래는 Rails Framework에 대한 출판사의 설명이다.

[ 레일스 프레임워크에 대해 ]

레일스는 루비 프로그래밍 언어로 만들어진 웹 개발 프레임워크로 덴마크의 데이빗 해너마이어 한슨(David Heinemeier Hansson)에 의해 2004년 7월 처음 공개되었다. 지난 3년간 레일스는 전 세계적으로 빠르게 확산되어 왔으며, 현재까지 레일스로 구축된 B2C 사이트만도 수백여개에 이르고 있다.

레일스가 이처럼 빠른 성공을 거둘 수 있었던 데에는 몇 가지 이유가 있다. 첫째로 오늘날의 웹 개발은 너무나도 복잡해져서 수많은 개발자들이 웹 개발에 넌더리를 내고 있었다. 자바, PHP, .NET 등 개발 환경을 막론하고 많은 웹 개발자들은 뭔가 새로운 것을 시도해 볼 마음의 채비를 하고 있었다.

둘째로 레일스는 개발자의 생산성을 획기적으로 높여 준다. 레일스는 ORM(객체/관계 매핑, Object/Relational Mapping), 코드 생성(Code Generation), 메타프로그래밍 등 최신 프로그래밍 기법을 사용해 개발자가 코딩에 들이는 시간을 현저히 줄여주고 있다. 비슷한 코드를 계속해서 반복적으로 작성하는 일은 개발자의 사기를 떨어뜨리는 일이다. 레일스는 위에서 언급한 프로그래밍 기법을 활용하여, DRY(반복적인 코딩 작업은 피하시오, Don’t Repeat Yourself) 원칙을 적극적으로 장려하고 있다.

셋째로 레일스는 웹 2.0 애플리케이션의 개발에 최적화된 프레임워크이다. 레일스에는 Ajax와 웹 서비스 개발을 위한 컴포넌트가 포함되어 있어서 웹 2.0 서비스를 구축하는 작업을 매우 편리하게 해준다. 실제로 레일스에서는 Ajax 애플리케이션을 개발하기 위해 자바스크립트를 직접 코딩하는 일은 하지 않아도 된다.

마지막으로 레일스를 사용한 웹 개발은 즐겁다. 지금 이 글을 읽는 독자는 다소 회의적인 생각이 들지도 모르겠지만, 이는 레일스를 접해본 수많은 웹 개발자들의 공통된 반응이다. 이 책을 통해 독자 여러분이 레일스가 선사하는 즐거운 웹 개발의 세계를 발견하게 된다면 필자는 그보다 더 큰 보람이 없을 것 같다.
  1. MVC에 대해서는 소프트웨어공학시간에 나오는 개념이다. Model, View, Controller의 약자로서 애플리케이션 코드를 기능별로 분산하여 관리하는 프로그래밍을 말한다. 코드를 분산해서 관리하는 이유는 용도에 따라서 코드의 형태나 구성이 달라지기 때문이다. 결국 이렇게 코드를 나눠 작업함으로써 코드를 좀더 효율적으로 관리하게 되면서 프로그래밍 개발이 효율적으로 진행된다. 자세한 내용은 소프트웨어공학책에 나옵니다. (뇌이버 검색하면 MVC패턴에 대해서 나옵니다.) [본문으로]
Buy me a coffeeBuy me a coffee

+ Recent posts