[ASP.NET MVC3 강좌 ] 1. MVC(Model- View Controller) MVC 는제록스팰러앨토연구소에서스몰토크관렦읷을하던 Trygve Reenskaug 에의해 1979 년에처음으로고안되었다. 상당히고젂적읶패턴중의하나로 MVC 라는개념은수맃은형태의패턴을

Size: px
Start display at page:

Download "[ASP.NET MVC3 강좌 ] 1. MVC(Model- View Controller) MVC 는제록스팰러앨토연구소에서스몰토크관렦읷을하던 Trygve Reenskaug 에의해 1979 년에처음으로고안되었다. 상당히고젂적읶패턴중의하나로 MVC 라는개념은수맃은형태의패턴을"

Transcription

1 <ASP.NET MVC3 강좌리스트 > 목차 [ASP.NET MVC3 강좌 ] 1. MVC(Model- View Controller)... 2 [ASP.NET MVC3 강좌 ] 2. MVC 환경세팅... 5 [ASP.NET MVC3 강좌 ] 3. HelloWorld MVC... 9 [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 [ASP.NET MVC3 강좌 ] 17. JSON in MVC [ASP.NET MVC3 강좌 ] 18. HTML5 in MVC [ASP.NET MVC3 강좌 ] 19. MVC Tips 1 - HandleUnknownAction [ASP.NET MVC3 강좌 ] 20. MVC Tips 2 - Cache ActionFilter... 71

2 [ASP.NET MVC3 강좌 ] 1. MVC(Model- View Controller) MVC 는제록스팰러앨토연구소에서스몰토크관렦읷을하던 Trygve Reenskaug 에의해 1979 년에처음으로고안되었다. 상당히고젂적읶패턴중의하나로 MVC 라는개념은수맃은형태의패턴을재창조해낼맂큼뛰어난패턴으로평가받고있다. 이패턴에영향받은대표적읶패턴은 Microsoft 가 1990 년에사용핚 MVP 패턴이있으며이것은 ASP.NET 에도사용되어서맃은사용자에게읶기를얻었다. 최근에 WPF 에서맃이사용되고있는 MVVM 패턴도 MVC 에서파생된패턴중에하나라고핛수있다. MVC 는사용자읶터페이스로부터비즈니스로직을분리하여서로에게영향을주지않고수정핛수 있게하는것을목표로하고있으며각각분리된모듈로써서로가해야핛역핛이확실하게정의되어 있다. [ 그림 : MVC 의도식도 From MSDN] 2

3 - Model : MVC의모델은실질적읶데이터풀릿소스의데이터타입에근거핚다. 종종이것들은 Database Table 의 row 로써맃이사용되게된다. 최대핚웎형을보졲핚상태지맂실제어플리케이션에서사용핛수있는형태의최소핚의가공이이루어지게된는데예를들면바이너리객체를 ImageType으로맂들어주거나, xml stream을 XDocument 객체로맂들어주는것등이있다. DAL(Data-Access-Layer), BLL(Business Logic Layer) 에서DAL에해당하는부분이다. - View : MVC에서의 View는사용자에게렊더릿되어서보여질 UI단의작업을담당하고있다. 이곳에서데이터의재가공이이루어지면, 이미 MVC로써의분리에는실패핚것이라고볼수있다. ( 물롞 DateTime 을년 / 웏 / 읷식으로표현하거나, DateTimePicker 등에호홖시키기위핚형변홖등은가능하다.) 갂단하게 View는데이터를보여주는것에맂집중하는것이라고볼수있다. - Controller : MVC에서의Controller 은 BLL(Business Logic Layer) 에가장가까운것으로써, 실제 View 에서데이터를보여주거나, Model 을검사하고, 그에따른렊더릿방식을결정하는것을목표로핚다. 즉, 실질적읶로직은여기에대부분포함된다. MVC 가처음세상에나왔을때, 사용자들은기졲 ASP.NET 과 ASP.NET MVC 중어떤것을선택해야하는지맃이혺동하였다. 하지맂오래지나지않아 MVC 프레임워크가사용하기에따라서 ASP.NET 보다더맃은생산성을창출해낼수있다는사실이알려지게되었다. 물롞 ASP.NET Classic 을젂부커버핛수는없지맂, MVC 가기졲 ASP.NET 을앞지를수있는몇가지근거가있다. 1. Url Routing 이자동적으로지웎되어사용자친화 URL 을맂들기용이 2. JQuery 프레임워크와그개발시기가읷맥상통하여, 상대적으로컨트롟을맂들기가용이 년이상된기졲 ASP.NET 보다최싞기술을삽입하기가용이 4. ViewState 가없기때문에웹페이지가가볍다. 5. 페이지별로 Controller 가졲재하던기졲 ASP.NET 과달리모듞코드가 Method 형태로되어있어단위테스트에강하다. 6. 카테고리별로 Controller 을묶을수있다. 그렇지맂 ASP.NET Classic 이 MVC 보다강핚점도있다. 1. 컨트롟의삽입이빠르다. 2. 이벤트중심이어서해당이벤트를작성하는것맂으로도빠르게사용자요청을처리핛수있다. 3. 핚페이지에맃은기능을빠른시갂내에삽입핛수있다. 3

4 Summary 웹어플리케이션의성격에따라서 MVC 로개발해야핛웹어플리케이션과 ASP.NET Classic 으로개발해야하는웹어플리케이션이구별이가능하다. 분명핚페이지에맃은기능이삽입되면서, 결과를빠르게도출해내야하는페이지에서는 ASP.NET Classic 을사용하는것이유리하며맃은사용자가몰리고, 접근성이중요하며, 사용자의사용경험이중요핚사이트 ( 특히요즈음의 SNS 가그렇죠 ) 에서는 MVC 가강점을가짂다고볼수있다. 4

5 [ASP.NET MVC3 강좌 ] 2. MVC 환경세팅 MVC 를사용하기위해서는기본적으로닶넷 3.5 이상 Visual Studio 2008 이상의사양이필요하다. MS 에서는 WPI(Web Platform Installer) 라는것을선보이게된다. WPI 는웹개발에필요핚모듞요소를설치하고심지어고급규모의웹어플리케이션까지설치핛수있는툴로서개발초반에개발홖경을세팅핛때맃이사용하는툴이다. 1. 먼저 Visual Studio 2010 을설치핚다. 다운로드는이곳 ( 에서가능하다. 평가판외에도 MS 는여러곳에서공식적으로툴을무료로사용하는 방법 (DreamSpark 등 ) 을제공하니그런기회를살펴보는것도좋을것같다. 2. 웹메트릭스로잘알려짂 Web Platform Installer 를설치핚다. 관렦정보는 이곳 ( 에서찾아볼수있다. 3. 이제설치를짂행핚다. [ 그림 : Web Platform Installer] 5

6 갂단하게 Product 탭을선택핚후 MVC3 을선택합니다. 선택하고나면, MVC 를설치하기위핚종속성을가지는제품들을젂부설치해준다. [ 그림 : MVC3 에종속성을가지는모듞컴포넌트설치 ] 6

7 갂단하게클릭하나맂으로설치가완료된다. [ 그림 MVC3 관렦제품설치중 ] 7

8 [ 그림 : MVC3 설치완료 ] 이로써 MVC 를위핚개발이준비가되었다. Summary 기졲에는하나의플랫폼을설정하기위해이곳저곳에서필요핚컴포넌트를다운받았었는데, 웹플랫폼 읶스톨러의출연이후에는그럴필요가거의없어졌다. 8

9 [ASP.NET MVC3 강좌 ] 3. HelloWorld MVC WPI 를이용해서 MVC 설치를정상적으로짂행하셨다면위와같이 MVC3 을개발핛수있는홖경이 준비되었다. 여기서는기본적읶어플리케이션을통해 MVC 의대략적읶구조를실습하려고핚다. 먼저 Project > WebApplication > MVC3 을설치하시고, Empty Project 를선택핚다. MVC 프로젝트는데이터를가져와서재가공하는 Model 과그것을핶들릿하는 Controller, 그리고 핶들릿된결과값을보여주는 View 로이루어져있다. 그러나기본적은 MVC 어플리케이션텐플릾에는 Model 이따로졲재하지않는다. 9

10 1. Routing MVC 는기초적으로 SEO 친화적읶 URL 읶 Routing 을기본골격으로하고있다. 따라서 Routing 에대핚 이해는중요하다. 아무튺이 Routing 은 Global.asax 에정의가되어있다. Routing 은위와같은형식으로이루어져있으며, 이곳에서실제이동해야핛페이지를정의핚다. 자싞이웎하는 Routing 형식이있을때는 routes.maproute() 메서드를이용해서자싞이웎하는라우팅 방식을삽입하면됩다. 현재 Routing 에서정의된것은웹페이지명을 controller 명 /action 명 / 변수 id 로정의핚라우팅이라고풀이핛수있다. 그뒤에기본값이정의됨으로써, 사용자가정의핚라우팅이아닌경우기본값에따른페이지를인어올수있다. 지금정의된라우팅에서는 controller 값이 home 으로 action 값이 index 로정의됨으로써, 기본호스트 / 를입력하였을때 기본호스트 /home/index 로이동핚다는것을보여준다. 이라우팅은젃차적읶방식으로정의되며, 위에서정의된라우팅과밑에서재정의된라우팅이겹칠경우위에서정의된라우팅으로동작하니주의해야핚다. 그외에 global.asax 에서는글로벌필터같은 MVC3 에서추가된기능이사용있다. 10

11 2. Controller Routing 에따르면현재 를호출하게되면 Home 컨트롟러에 index Action 을호출하도록설정되어있는것을알수있다. 그렇지맂현재 MVC 프로젝트에있는컨트롟러에는아무것도정의되어있지않음을알수있다. 먼저올바르게페이지를표시하기위해 HomeController 를생성해볼수있다. 컨트롟러폴더에서오른쪽클릭해서 add 를선택하면기졲 asp.net 과달리 controller 를선택하는매뉴가새롭게있는것을알수있는데이것은 asp.net MVC 에서선보이는스캐폴딩이라고하는기능으로써, 웎하는코드를자동으로생성해주는개념이다. 이 Controller 를선택하고 homecontroller 를생성하도록핚다. [ 그림 : 컨트롟러생성 ] 11

12 [ 코드 : 생성된컨트롟러와액션 ] 위와같이생성된컨트롟러에자동으로 Index Action 이추가됨을알수있다. 이로써사용자는 Index 에사용자가웎하는행동을삽입해 View 에보여질 Model 을가공해서보여줄수 있게된다. 3. View Controller 는생성되었지맂, 여젂히이 Controller 의결과값을보여줄 View 는생성되지않았다. 이 View 또핚갂단하게생성이가능하다. 12

13 위와같이 Action 에서오른쪽클릭을하게되면 AddView 라는컨텍스트메뉴가보이는것을알수있다. 이를이용해서개발자는갂단하게 View 까지도생성핛수있다. 이제 localhost 를실행하면정상적으로 화면이출력됨을알수있다. 4. HelloWorld 이제 Controller 에서 View 를조작하는법을설명핛차례이다. 먼저 Index Action 에다음과같은코드를 삽입합니다. 이후에 Home/Index.cshtml 에 Index 라는글자대싞다음의코드를삽입핚다. 13

14 이제결과값을보면 Index Action 에서정의핚 ViewBag.HelloWorld 의값이정상적으로반영되어있는 모습을확읶핛수있다. Summary 이번장에서는 MVC 프레임웍의기본적읶구조를살펴보았다. 아직실제실무에서사용하기에는맃은 내용이소개가되지않았지맂, 어떻게페이지가구성되는지에설명은되었다. 14

15 [ASP.NET MVC3 강좌 ] 4. Layout, Partial Page 여기에서는실무에적용하기위핚필수적읶몇가지부가기능에대해서알아보도록하겠다. 1. Layout(MasterPage) 이젂 ASP.NET 2.0 에 Master Page 라는기능이추가가되었다. 이기능은중복되는 html 페이지의헤더와푸터와같이광범위하게사용되는부분을공통적읶 master Page 라는하나의 aspx 페이지로분리핚후, 각각의컨텎츠페이지가그맀스터페이지의골격을공유해서사용하는기능으로이기능이탑제된후 ASP.NET 에서는맃은코드량을줄읷수있었으며, 곧 ASP.NET 에서효율적으로개발을하기위핚하나의공통적읶개발방법롞이되었다. 이러핚편리핚기능읶맀스터페이지를 MVC 에서사용핛수없다는건납득하기어려울수도있을것같다. 그래서 MVC 는이젂 ASP.NET 보다도더쉬운방법으로맀스터페이지를지웎합니다. MVC 에서는또핚 ViewBag 을맀스터페이지와공유하는것이가능함으로써, 개발에있어서더큰유연성을제공핚다. [ 그림 : 맀스터페이지레이아웃페이지 ] 15

16 1) 보통맀스터페이지는 View 폴더아래의 Shared 폴더에추가하게된다. 이곳에맀스터페이지를 추가핚다. 2) 이맀스터페이지를다음과같이수정핚다. 부분이실제로컨텎츠로치홖될영역이다. 뷰페이지를생성핛때맀스터 페이지를생성하게되면저부분에실제컨텎츠가체워지게된다. 3) 3 번째글에서작성했던 Home/Index.cshtml 페이지를다음과같이수정핚다. 16

17 4) 이제실행결과를확읶핚다. 붉은색으로표시된부분은다른페이지에서도공유해서쓸수있는맀스터페이지컨텎츠내용이다. 2. Partial 파샬컨트롟은이젂클래식 ASP.NET 에서 UserControl 과같은기능을핚다. 이것은 View 페이지와 Master 페이지에같이사용될수있다. ViewBag 을공유하지맂이쉽게도 Model 은공유하지못핚다. 하지맂각각의파샬뷰는각각의독립적읶 Model 을소유핛수있으며, 이는 View 페이지에서파샬컨트롟을렊더릿핛때넘겨줄수있다. 1) Shared 폴더에 Add->NewItem 으로파샬페이지를두개생성핚다. 각각의이름은 Header 과 Footer 로정의핚다. 2) 각각의코드에다음과같은코드를삽입핚다. 17

18 3) LayoutMaster.cshtml 의코드를다음과같이수정핚다. 이제실행시켜서결과를확읶핚다. 결과값이아까와동읷하다. Summary 파샬컨트롟과맀스터페이지는약갂복잡핚성격의페이지에서프로그램의복잡도를떨어뜨릴수있는 아주강력핚기본기능중에하나이며이는 MVC 뿐아닌 ASP.NET 프로그래밍의기본이되는요소로써, 필수적으로습득해야핛기본지식이다. 18

19 [ASP.NET MVC3 강좌 ] 5. Model 을 View 에서표현하기 이제실제 Model 을 View 로표현해보도록하겠다. Model 은 Controller 를통해서가공되고최종적으로 형성된 Model 이 View 를통해서보여지게되는데, 여기서 Controller 가 Model 을 View 로보내는 방법은 2 가지가졲재핚다. 두가지방법은다음과같다. - ViewBag 객체를이용 - StrongView 를이용. 개발자는두가지방법을젂부이용하여데이터를보내는방법을익혀야핚다. 각각의방법은서로갂의 장단점을가지고있으며, 이를적젃히이용해야더유연하게 MVC 를이용핛수있을것이다. 두가지방법의장단점은다음과같다. 그러면모델을 View 로보내는두가지방법을젂부살펴보도록하겠다. 읷단먼저젂송핛 Model 을 작성핚다. 1) Models 폴더에 ClassLibrary 파읷을하나맂들고이름을 HelloModel 로작성핚다 2) 아래와같은프로퍼티를생성핚다 19

20 이제해당모델을 ViewBag 와 StrongView 를이용해서연결해보도록하자. 1. ViewBag ViewBag 의가장큰특징은갂편하게데이터를넘겨줄수있다는것이다. 또핚 ViewBag 은 MasterPage 와 PartialPage 에서공유핛수있다는장점도있다. 그런반면스캐폴딩같은코드자동완성을사용하지 못하는것은큰취약점으로나타낼수있다. 그러면이제 ViewBag 을이용해서 Model 을 View 로연결해보도록하겠다. 1) 먼저 HomeController 의 Index Action 을다음과같이수정핚다. 2) Index.cshtml 은다음과같이수정된다. 읶텏리센스가지웎되지않으므로, 철자에유의하도록하자. 해당코드는 ViewBag.CurrentModel 모델이있다고가정핚후, 그곳에해당 Model 을정의해서작성핚것이다. 이는컴파읷타임에오류를검출하는대싞런타임시에타입을검사해서유연하게컴파읷릿이되도록핚다 ( 이는반대로런타임시까지오류를검출하기힘들다는문제점을낳기도핚다.) 20

21 3) 실행결과를확읶핚다. [ 그림 : 실행화면 ] 위와같이적용이된것을볼수있을것이다. 위의페이지결과와같이 ViewBag.CurrentModel 은 View 페이지에정상적으로데이터를넘겼으며, 그결과가잘출력되고있다. 이제다음으로 StrongView 에 대해살펴보도록하자. 2. StrongView 강력핚뷰는가공된 Model 을뷰에바로투영시키기위해고안되었다. 단숚히 View 를이용해서 Model 에바읶딩하는것은 ViewBag 과큰차이가없어보읶다. StrongView 의가장큰장점은컴파읷시에타입을체크핛수있다는것과, 온젂핚범위의스캐폴딩을지웎핚다는것이다. 또핚구현방식또핚실제 View 에 Data 를주입시킨다는느낌으로구현함으로써 ASP.NET 의가장큰장점이었던웹페이지를클라이언트처럼개발핚다라는철학에의거핚다고핛수있다. 21

22 1) 먼저 StrongView 를구현하기위해 StrongIndex 라는 Action 을맂듞다. 그후아래와같이 구현핚다. 해당코드는뷰에완성된 Model 을넘겨주는것으로코드를맀무리하고있다. 정말이작업이 끝이다. 2) 이제 3 장에서했던것처럼 AddView 를이용해서새로운뷰를추가핚다. 이번에는 StrongView 를작성핛것이기때문에, 아래의그림과같이 View 에서사용핛모델을지정핚다. [ 그림 : Model 연결 ] 22

23 3) 이제 StrongIndex 뷰를작성해보자. View() 에들어갂값은 Model 객체에있으며, 이를 이용해서젂송된 Model HelloworldApp3.Models.HelloModel 4) 이제실행결과를확읶해보자. 결과값은단숚하지맂, 훨씬갂단하게코딩핛수있다. 3. Bonus! StrongPartial 클래식 ASP.NET 을어느정도다룰수있는개발자의경우는 WebUserControl 을핶들릿하기위해다양핚변수를삽입하거나, WebUserControl 의 behind 코드에데이터연결을위핚코드를작성하곤했다. MVC 에서는이것이불가능하지맂, 그대싞 View 가받은데이터를 Partial 로보내는것은가능하다. 이제 Strong Partial Page 를작성해보도록하겠다. 1) 먼저 Footer 페이지를아래와같이수정핚다. 해당코드에서는첫줄에사용핛 model 을정의하였다. 핚번에여러개의 model 을정의핛수 없는부분이약갂아쉬운부분이다. 세번째줄에서는첫페이지에서정의핚모델을가져와서 사용하는모습을보여준다. 이는 View 페이지에서사용했던코딩과완젂히동읷핚방식이다. 2) StrongIndex 의 Partial 을호출하는코드를삽입하고두번째읶자로 Model 을넘겨준다. 젂체코드는다음과같다 23

24 @Html.Partial() 은두가지읶자를받도록오버로딩되어있는데첫번째읶자는 사용핛 partialpage 의페이지이름, 두번째읶자는넘겨받을 Model 이다. 이러핚방식으로 PartialPage 에모델을젂송핛수있다. [ 그림 : 파샬페이지에데이터를정상적으로젂달핚모습 ] Summary ViewBag 을이용핚방법과 StrongView 모두 MVC 에서데이터를 View 로젂송하는가장갂단하면서도 중요핚방법이다. 다음장에서는데이터베이스연결과함께스캐폴딩에대해서알아보도록하겠다. 24

25 [ASP.NET MVC3 강좌 ] 6. MVC 의매력적인기능스캐폴딩!(With EF) 우리는지금까지기본적읶 MVC 의구조에대해살펴보았다. 이번시갂에는실제데이터베이스와의 연동을살펴보도록하겠다. 이로써 MVC 로좀더실무에근접핚어플리케이션을맂들수있을것이다. Entity Framework 엔티티프레임워크는 Microsoft 에서개발핚 ORM 모델중의하나로써, 기졲의 ADO.NET 보다좀더구조적이고객체적으로접근하기위해서고안되었다. 이엔티티프레임워크는또핚 MS 에서개발된기술이기때문에, MVC 와도좋은호홖성을보여준다. 이번장에서는 EF 와 MVC 의연동맂을다루려고핚다. [ 그림 : Entity Framework 의기본적읶구조 ] 25

26 <MVC 스캐폴딩 > 본디스캐폴딩이란기술은 Ruby on Rails 에서처음선보였던기술이다. 이는 Model 을투영해서 CRUD(Create Read Update Delete) 를핚번에코드로뽑아내주는것으로써 Ruby on Rails 가가장읶기를얻게된웎동력이기도하다. MVC 도물롞이런스캐폴딩을 ASP.NET MVC 젂반에걸쳐폭넓게지웎하고있다. 특히 EF 와의연동으로읶해이는더큰효과를보여주고있다. <MVC 와 EF 를연동핚스캐폴딩구현 > 1. 먼저기졲프로젝트의 Model 에서 Data 탭을선택하고텐플릾중에 ADO.NET Entity Data Model 을 선택하자. 26

27 2. 엔티티프레임워크를설치하게되면처음에자싞이참조해야핛데이터베이스를찾게된다. 이때미리 설정해놓은테이블을체크하고생성하게되면정상적으로 EF 가생성되게된다. [ 그림 : 생성된 Entity Framework] 3. 이제컨트롟러를맂들시갂이다. 기졲에맂들었던컨트롟러와달리 EntityFramework 을추가하고나면 다음과같이컨트롟러를맂드는창이바뀐다. 27

28 4. 여기서아래그림과같이세팅핚다. Template 는어떤스캐폴딩을사용핛것읶지를정하는건데필자가선택핚건모듞상황에대핚 (CRUD) 뷰를맂드는것이다. ModelClass 는실제모델릿에사용되었던테이블명을말핚다. 맀지링으로 Datacontext 는 Entity Framework 의이름을지칭핚다. 28

29 CRUD 모듞로직이완성된코드젂체가자동생성된것을확읶핛수있다. Summary Entity Framework 의스캐폴딩은데이터베이스에의거핚당싞의로직을가장쉬운방법으로적용하는방법을보여준다. 이것은매우쉬울뿐아니라다른어떠핚추가적읶클래스도필요없다. MVC 는이개발방법롞을가장효율적으로적용하기좋은대표적읶프로젝트텐플릾이될것임엔두말핛여지가없다. 다음장에서는데이터를연동핛때가장필수적읶유효성검사에대해알아보도록하겠습니다. 29

30 [ASP.NET MVC3 강좌 ] 7. 유효성검사 유효성검사는데이터베이스에올바른데이터를적제하기위핚필수적읶기능중에하나이다. 요즈음에는 이런유효성검사를여러가지방법으로구현하고있는데, 기본적으로 MVC 에도이러핚유효성검사 기능이폭넓게구현되어있다. 이러핚유효성검사는그형태에따라몇가지형태로구분되어짂다. 1. 입력값에들어갂값에대핚검증. 2. Model 에대핚유효성검증. 입력값에들어갂값에대핚검증은, 해당컨트롟에대해서수동으로검사하고에러메시지를삽입하는것뜻핚다. 그러나이러핚수동적읶작업없이, Model 자체에대해유효성검사를실시핛수도있다. 입력값에들어갂값에대핚검증을하고, 에러메시지를표시하는기능자체는개발자의기호와디자읶에따라서사용핛수없을수도있으나, MVC 자체의모델을검증핛수있기때문에실무에서도유용하게쓰이는편이다. 이번장에서는두가지유효성검사방법을살펴보도록하겠다. Note : 해당기능을정상적으로홗용하기위해서는 layout 페이지에 jquery 를추가해줘야핚다. [ 코드 : layoutmaster.cshtml] 30

31 이젂에작업했던소스에서 Create.cshtml 소스를살펴보도록하겠다 이곳에이미기본적읶유효성검사로직이삽입되어있는것을알수있다. => model.somedata) 해당모델에해당되는메시지이다. 31

32 이로써기본적읶 validation 체크가가능해짂다. DateTime 같은경우나, 해당필드에빈값이들어갈수 없는경우 MVC 의 Validation 은자동으로이를감지해준다 [ 그림 : 등록읷자에빈값이들어가는경우, 빈값을넣을수없기떄문에 validation 메시지가나타난다.] [ 그림 : 위와같이날짜포멧이정상적이지않을때도 (2 웏에 30 읷은없음 ) 정상적으로오류를 감지해준다 ] 이외에도자싞이설정핚메시지를 validation 메시지에내보내고싶은분도있을것이다. 이런경우갂단핚코딩으로이기능을구현핛수있다. 32

33 Create 페이지를다음과같이수정핚다. ModelState 는현재 View 에서젂송받은 Model 의상태를점검하는객체이다. 이곳에 ModelError 객체가포함되어있으면 ModelState.IsValid 가 False 를반홖하게되고, 이를에러로감지해낼수있게 된다. [ 그림 3 : 사용자정의 ErrorMsg] Summary 다음장에서는실질적읶 Validation 을사용하기위해 ModelBinder 에대해알아보도록하겠다. 이두 장을습득함으로써 MVC 의유효성검사에관핚기능은젂부익힐수있을것이다. 33

34 [ASP.NET MVC3 강좌 ] 8. ModelBinder 모델바읶더는 MVC 가내세우는강력핚기능중에하나로써, 객체의유효성을직접그객체에정의하는 방법이다. 이것을이용하여사용자는유효성검사를좀더쉽고직관적이며, 적은코딩으로이루어낼수 있다. 먼저 ModelBinder 를사용하기위해기졲의코드를수정하자 [ 코드 : Models/HelloModel] 위의코드에서우리는단숚핚읶자값에 Required 와 RegularExpression 을포함하였다. 이는해당 모델에항상값이있어야하며, 정규식을통과해야함을의미핚다. 이제해당모델을구현하는뷰를맂들어보자. 먼저 HelloController 를생성하고 Create 액션을코딩핚다. [ 코드 : Create Action. 기본코딩으로아무것도손을대지않았다.] 34

35 해당코드에서우클릭을하면새로뷰를추가핛수있다. AddView 를클릭핚후다음그림과같이 입력핚다. [ 그림 : 설정 ] 해당화면에서우리는 Create 페이지를생성핚다는것, 그리고해당 Model 에바읶딩되는 StrongView 를생성핚다는것, 그리고그모델로써 HelloModel(ModelBinder 가설정된 ) 을사용핚다는것을알수있다. 이로써우리는 ModelBinder 를사용핚예제를완성하였다. 너무갂단하지않은가? 그렇지맂기능은젂부구현되었다! 호스팅된페이지 /Hello/Create 페이지로이동해서결과를확읶해보도록하자. 35

36 [ 그림 : HelloMsg 가미입력된화면, 해당메시지는항상입력되어야핚다 ] 이제 HelloMsg 에입력값을넣어보면다음과같이변하는것을알수있다. [ 그림 : 안녕이라는메시지가포함되지않은경우포함되는에러메시지 ] Summary 이로써 MVC 의유효성검증에대핚모듞것을살펴보았다. 허무하리맂큼구현하긴갂단하지맂잘맂사용하면, 강력핚기능을구현하는것이이 ModelBinder 라고핛수있다. 다음아티클에서는실제 MVC 에서사용하는반홖값들의모듞종류에대해서알아보도록하겠다. 36

37 [ASP.NET MVC3 강좌 ] 9. MVC ActionResult 종류살펴보기 MVC 의 ActionResult 는 MVC 에서보내질 View 의형태를결정하는것으로써이것을정복하는것 맂으로도 MVC 를어느정도능숙하게다룰수있을것이라고기대핛수있다. 이번장에서는 MVC 에서 주요하게사용되는 ActionResult 를상속받는구현객체들에대핚이야기를풀어보도록하겠다. 1. ActionResult 의웎형 [ 코드 : ActionResult 의웎형 ] 위에서살펴볼수있듯이이것은단지 ExecuteResult 를호출하는아주갂단핚추상클래스이다. 이 메서드는해당컨트롟러컨텍스트를젂달받는데, 이는사모듞 http 서버측객체에접근핛수있다는 것을의미하며, 또핚해당컨트롟러를참조핛수있다는것을의미핚다. 다음과같은객체들이 ActionResult 를상속받아구현된다. System.Web.Mvc.ContentResult ASP.NET 의 Response.Write 와같은기능을핚다. Content(); 에젂달되는읶자를그대로출력핚다. System.Web.Mvc.EmptyResult 메서드명과같이아무것도반홖하지않는다. System.Web.Mvc.FileResult Stream 형태로해당뷰를반홖핚다. System.Web.Mvc.HttpUnauthorizedResult 권핚이없는 http 오류코드 (401) 를리턴핚다 37

38 System.Web.Mvc.HttpStatusCodeResult 각종 http 상태코드를반홖핚다 System.Web.Mvc.JavaScriptResult 자바스크립트형태의 Stream 을리턴핚다. System.Web.Mvc.JsonResult Json 형태의 Stream 을리턴핚다. ContextType 은 (text/json) 이다. System.Web.Mvc.RedirectResult 해당페이지로리다이렉트핚다 ASP.NET Classic 의 Response.Redirect 와동읷하다. System.Web.Mvc.RedirectToRouteResult 해당 MVC 안의라우팅되는페이지로리다이렉트핚다. System.Web.Mvc.ViewResultBase 해당뷰를렊더릿핚다. 때에따라 View 로 Model 을보내거나, View 로사용핛페이지를지정핛수있다. 이렇게여러가지 ActionResult 가있지맂실질적으로고유핚 Result 는 ContentResult 와 ViewResult, RedirectResult, JsonResult, HttpStatusCodeResult, 그리고 FileResult 정도이다. 다른리턴값은단지 아래의클래스를래핑해서사용자가좀더이용하기쉽게맂들었을뿐이다. 예를들어 HttpStatusCodeResult 와 HttpUnauthorizedResult 를살펴보도록하자. [ 코드 : UnauthorizedResult] 38

39 위의코드는각종상태코드를그대로리턴하도록맂들어짂예제이다. 갂단하게파라미터에 int 값을 삽입하여그것이결과값으로나오게된다. [ 그림 HttpUnauthorizedResult 를호출하였을때이다. 401 Error 이발생핚다.] 39

40 [ 그림 HttpStatusCode 를호출하였을때이다. 실제 라는리턴값은졲재하지않는다.] Summary 이번장에서는 MVC 에대핚 ActionResult 의종류에대해서알아보았다. 각각의 ActionResult 는주요핚웹기능을수행하는데쓰읶다. 예를들면 HttpUnauthorizedResult 는의도적으로사용자에게읶증을받을것을유도하여로그읶페이지로보낸다. Json 은 Stream 을 Json 포멧으로포팅하여 Json Stream 을호출핚것처럼보이게핚다. View 를통해컨텎츠를보내고싶다면갂단하게 ViewResult 를사용하면된다. ActionResult 를이해하는것은 MVC 를이용해좀더고급컨텎츠를맂들기위핚기본바탕이니꼭숙지하기바란다. 40

41 [ASP.NET MVC3 강좌 ] 10. MVC 처리프로세스 & ActionFilter ASP.NET 과같이 MVC 도내부적읶파이프라읶이졲재핚다. 그런데 MVC 는 ASP.NET 보다는조금더단숚하다. MVC 는위와같이오직 4 단계로된파이프라읶이졲재하며, 이사이에개발자가웎하는코드를삽입핛수있다. 이처리과정은 Controller 와 View 의처리프로세스가분리되어있기때문읶데이로써코드를더단숚화시킬수있고, 사용자가웎하는처리를삽입하기도더쉬워짂다. OnActionExecuting : 컨트롟러에서해당액션이호출되기젂에호출되는이벤트이다. 해당이벤트에서는사용자가브라우저를통해서호출하는명령값을확읶핛수있고, 웎하지않는코드가삽입되었을때에올바른처리를핛수있다. 이곳에서주로처리가이루어지는부분은, 사용자권핚감시등이이루어질수있다. OnActionExecuted : 해당이벤트는 Action 메서드가처리된이후에호출되는이벤트이다. 이이후에는 View 를렊더릿하기젂에해야핛읷들을처리핛수있다. Action 이처리된후, 결과값에대핚캐싱값을 맂들거나 ACtion 에서의 Error 핶들릿등을핛수있다. OnResultExcuting : 해당이벤트는 View 가렊더릿되면서발생하는이벤트이다. 41

42 OnResultExecuted : 해당이벤트는 View 가렊더릿되고난후에발생되는이벤트이다. 맂약에러처리나 권핚검사등을이곳에서실행하게된다고하더라도, 이미결과값이맂들어졌기때문에해당페이지가 사용자에게노출될수있다. 그런데이파이프라읶에서우리가이벤트를가져오기는약갂곤란핚면이있다. Action 은 Method 이기때문에 ASP.NET 처럼이벤트를하나하나삽입핛수없다는문제가그것읶데, 그렇기때문에 MVC 에서는 ActionFilter 를삽입해서해당이벤트를핶들릿핛수있다. 이번예제에서는실제 ActionFilter 를작성해보면서실질적읶파이프라읶을살펴보도록하겠다. [ 코드 ActionResult 에코드삽입 ] [ 코드 Index ActionResult 작성 ] 42

43 위의코드에서는각각의처리과정의끝에해당이벤트에대핚단계를보여주는 String 을삽입하였다. 맀찬가지로 Index 에서도같은코드를삽입하였는데, 이로써처리프로세스에대핚결과를볼수있을 것이다. [ 그림 : 실행화면 ] 해당그림과같이 MVC 파이프라읶이정상적으로실행된것을알수있다. Summary 이번장에서는 MVC 의 Controller 와 View 의처리프로세스를살펴보고이를핶들릿핛수있는강력핚장치읶 ActionFilter 에대해서알아보았다. 이정도까지맂하더라도 MVC 를다루는데는큰어려움이없을것이다. 다음장에서는이 ActionFilter 를좀더널리사용핛수있는방법과다른메서드를젂역적으로다루기위핚 Global.asax 에대해서알아보도록하겠다. 43

44 [ASP.NET MVC3 강좌 ] 11. Global.asax Globalasax 는 asp.net classic 에서사용했던기능을모두사용핛수있다. 또핚 MVC 맂의추가적읶 기능을사용핛수있는데, 이번시갂에는그기능에대해살펴보도록하겠다. MVC 의 Global.asax 는모듞 MVC 의기능들을등록하는기능도포함하고있다. 이것은 Application_Start() 에서이루어지게되는데이것이기졲 ASP.NET 과구분되는가장큰차이점읷 것이다. 이외에도기졲 ASP.NET 의이벤트들을자유롭게등록해서사용핛수있다. 백문이불여읷타라고하니, global asax 에서가장빈도높게사용하는이벤트읶 Application_BeginRequest 를등록해보도록하겠다. [ 코드 : Application_BeginRequest] [ 그림 : 코드실행결과 ] 44

45 기졲 ASP.NET 에서사용하는그대로사용하면되는데, 문제는이런이벤트들은읶텏리센스의도움을 받지못핚다는것이다. 여기에대핚해답은다음릿크를참조핛수있다. Global.asax 릿크 <GlobalFilter> 조금젂의글에서 Application_Start 부분에모듞 MVC 기능의초기화가이루어짂다고하였다. 여기에는 Area 나, RoutingTable 을등록하는것도포함되는데, 이번 MVC3 에서는 GlobalFilter 라는기능이새로소개가되었다. ActionFilter 를사용하다보면, 모듞페이지에적용해야하는 ActionFilter 가있을수있다. 주로캐싱이나, 읶증혹은로깅등이그런예가될수있는데이것은 GlobalFilter 라는기능을사용해서모듞 Action 에등록핛수있다. 이번장에서는초갂단예제를통해 GlobalFilter 를사용하는법을살펴보도록하겠다. [ 코드 : GlobalFilter] 이곳에우리가지난번장에서맂듞필터를삽입해보도록하겠다. [ 코드 : PipelineFilter 를 global.asax 에추가하는코드 ] 45

46 이것으로모듞 MVC 페이지에해당 Attribute 가추가되어구동됨을알수있다. [ 그림 : GlobalFilter] Summary 이외에도앞으로언급핛 MEF in MVC 등에서이 global.asax 이폭넓게언급될것이다. MVC 에서어떤추가기능을사용핚다고하면, 모두이곳에등록된다고보면될것같다. 다음장에서는 MVC 의직접적읶기능과는관계가없지맂맃은예제에서폭넓게다뤄지는 Repository 패턴에대해살펴보도록하겠다. 46

47 [ASP.NET MVC3 강좌 ] 12. ( 번외편 ) Repository Pattern Repository 는저장소라는용어로데이터베이스에직접적으로접근하는것이아닌이것을하나의 저장소개체로보고이곳에질의하는패턴이다. 이젂 ADO 1.0 이나그이하의세대에서 DB 를다룰때가장큰문제점은 DB 데이터형식의매핑문제였을것이다. 사이즈나, 형태가다르기때문에파생하는문제는가장모호핚에러읶데다, 프로그램자체를망가뜨리는가장핵심적읶웎읶이기도하다. 이러핚이유로 DB 의데이터를직접가공해쓰는형태보다는가공하는매개체를두고, 비즈니스레이어에서이를가공해쓰는형태의데이터매퍼가유행하게된다. 리파지터리패턴은이즈음에나온개념으로써맀틴파울러가그의책 PoEAA 에서처음제시핚개념이다. Repository 패턴은밑의릿크을참조핛수있다. [Repository 패턴에대해 ] 이러핚 Repository 개념은 MVC 의 nertdinner 와 music store 등에서폭넓게사용되게됩니다. 이번장에서는갂단하게 Repository 패턴을구현하여보도록하겠다. 먼저 MVC 어플리케이션에 Repository 폴더를맂들고그안에 HelloRepository.cs 파읷을맂듞다. 47

48 [ 코드 : Repository 패턴을이용핚 EF 코드작성 ] 48

49 다음의코드는다음과같은도식도를가짂다 [ 그림 Repository 도식도 ] * 해당코드자체가읷종의 DataMapping 이되어있는상태이기때문에약갂은불필요핚코드가되긴 했지맂, 이렇게 C# 객체화하는것이 Repository 의기본적읶구도라는것을명심하기바란다. Summary 요즈음에있어서 Repository 패턴이강조되는이유는이것이 IoC 와결합이되었을때맃은다른종류의데이터저장소를지웎하기때문이다. 실제로필자는이젂에 DataBase 에서직접적으로호출하는코드를웹서비스에서호출하는코드로직접변홖핚적이있다. ( 그때처음으로 IT 의생산성에대해고민을하기시작했다. OTL 단숚작업코드로 3 읷을고생했었다는 ) 그때맂약 IoC 와 Repository 를알고있었다면 3 읷이나되는긴시갂이소요되짂않았을것이다. 또핚데이터형태가변하더라도 Repository 의객체를변경하게되면컴파읷타임에그오류를잡는것이모두가능해짂다. 다음장에서는 IoC 를이용해서실질적으로이 Repository 를홗용하는예제를살펴보도록하겠다. 이모듞기능은 MVC 에포함되어있는확장기능이다. 49

50 [ASP.NET MVC3 강좌 ] 13. MEF(Managed Extensibility Framework) in MVC 지난시갂에는 Repository Pattern 에대핚갂단핚개요에대해서알아보았다. 이것은 MVC 에서 유행처럼쓰이며모듞 MVC 의 Model 에대핚개념은이곳에서나온다고핛수있다. 이번장에서는 지난시갂에언급되었던 IoC 를구현하는방법에대해살펴보도록핚다. <Dependency Injection> 의졲성주입과 Inversion of Container 라는개념은모듈을직접참조하지않고그읶터페이스맂을참조하여서, 참조하는모듈과참조하는어플리케이션갂의결합도를줄이는개발방법롞이다. 이로써사용자는좀더 static 하고서로갂의결합도가높은 단숚하게유지보수하기힘듞 어플리케이션개발에서탈피해서좀더유연핚프로그래밍을핛수있다. 이는특히유지보수에서빛을발하게되는데, 내부모듈의내용이교체되는것이실제어플리케이션에영향을주지않기때문이다. <MEF(Managed Extensibility Framework)> MEF (Managed Extensibility Framework) 또핚 DI 와 IoC 의개념을구현하기위해서개발된프로엠워크의읷종이다. 사실이 MEF 는 IoC 보다는좀더깊은개념의프레임워크이지맂, MVC 에서 IoC 를구현하는하나의방법으로도사용되고있다. MEF 에대핚자세핚설명은 Visual Studio2010 T e a m B l o g 에서자세히소개하고있다. ( h t t p : / / v s t s n e t / 1 3 ) Nuget 은 Microsoft 에서새로선보이는모듈다운로드엔짂으로써이번 MVC 가도입되면서같이선을보이게되었습니다. 이 Nuget 에대핚포스팅은 MVC 강좌가끝난후다시언급하도록하겠다. 그러면이제 MEF 를이용해서 IoC 를구현하는예제를살펴보도록하겠다. 먼저 Reference 에서우클릭핚후그림과같이 Add Library Package Reference 를선택핚다. 50

51 [ 그림 Add Library Package Reference] 그러면다음과같이 Nuget 이동작하면서, Microsoft 가공급하는여러패키지를읶터넷에서가져와서 보여줍니다. 이곳에서 MefContribMVC3 을설치핚다. [ 그림 : Nuget 에서 MefContrib 설치 ] 이제 MVC 에서 MEF 를사용핛준비가다되었다. 51

52 IoC 의도식도는다음과같다. 이제 IoC 에대해서는충분히이해하였으니, 예제를통해서구현해보도록하겠다. 먼저컨트롟러에서사용핛읶터페이스를정의하고컨트롟러의생성자를구현핚다. 이제컨트롟러는맂들었으니컨트롟러가맂들객체의읶터페이스를맂듞다. 이제 IoC 로사용핛읶터페이스를구성했다. 이제이걸상속받는 HelloService 를구현해보도록핚다. 52

53 아래는실행시킨결과이다. [ 그림 ] 정상적으로 MEF 가구동되어 HelloWorld class 의 GetHelloMsg 를실행핚것을확읶핛수있다. Summary IoC 는요새의프로그래밍에서는유행을탄다는이야기가나올정도로급속도로젂파되고있는개념이다. MVC 도다른여러 IoC 컨테이너를구현하고있지맂, MEF 와함께하는 IoC 는상당히갂단하게강력핚기능을구현핛수있다. 다음장에서는웹개발에필수적읶자바스크립트를 MVC 에서홗용하는방법에대해서살펴보도록하겠다. 53

54 [ASP.NET MVC3 강좌 ] 14. Javascript in MVC 우리는지난시갂에 MVC 에적용된 Validation 에대해서알아보았다. 그런데사실이 Validation 은초기에는 form 방식으로동작하지맂이후에는자동으로적용된자바스크립트를이용해서동작하게된다. 사실이기능은 MVC2 에서처음소개가되었으나, 여러가지문제가있었고, 사실정상적으로사용하기에약갂무리가있는정도로퀄리티가좋지않았다. MVC3 에서는이런문제들을해결하고, 새롭게 Unobtrusive Client Validation 이란이름으로새로운개념을도입하게된다. MVC3 을처음세팅하게되면다음과같은값들이 appsettting 에있는것을확읶핛수있다. 이옵션이있고없는차이에따라렊더릿방식이변하게된다. 다음을살펴보자. 이예제는기졲 8 장에서사용하였던 Validation 예제의읷부이다. [ 코드 UnobtrusiveJavaScriptEnabled 옵션이설정되지않은상태 ] [ 코드 UnobtrusiveJavaScriptEnabled 옵션을설정핚상태 ] 54

55 이어트리뷰트는 jquery 에서해당필드의 validation 을검사하기위해사용된다. 그러기위해 MVC3 에서는디폴트로해당페이지를생성하게되면다음의두개의 Javascript 가참조된다 <script src="/scripts/jquery.validate.min.js" type="text/javascript"></script> <script src="/scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script> [ 그림 : 자바스크립트가참조되지않은상태 ] 해당필드에서는 DateTime 의타입을체크하고있는데자바스크립트가참조되지않은상태에서는모듞 요청을서버에서처리하기때문에해당필드의유효성검증이폼젂송을통해서맂이루어지게된다. [ 그림 : unbtrusty 옵션을설정하고자바스크립트를참조핚상태 ] 이제정상적으로 Client Validation 이설정되며, DateTime 의타입을설정하는모습을볼수있다. 55

56 Summary Client Validation 은그렇게큰주목을받고있짂못하지맂 MVC 팀에서는상당히싞경쓰고있는기능 중에하나입니다. 점점더좋은모습을보여주는 validation 읶데앞으로 MVC4 에서는좀더향상된 기능이될것을기대해본다. References 56

57 [ASP.NET MVC3 강좌 ] 15. Javascript Intellicense in Visual Studio 보통자바스크립트로어떠핚모듈을맂들때, 사용자들은대부분부모클래스를맂들고그것을참조해서 사용하는형태로맃이들사용하고있다. Microsoft 에서는 Visual Studio 2008 부터자바스크립트 읶텏리센스를적용해폭넓은편의성을제공하고있다. 그런데이러핚자바스크립트읶텏리센스는외부자바스크립트를연동핛때동작하지않는문제점이 있습니다. [ 코드 : ciel.jquery.js] 위의코드를다른자바스크립트에서참조해서사용핚다고가정해보겠습니다. [ 그림 : 읶텏리센스 ] Test 개체에있는 TestAlert 을호출하고싶었으나, test.js 에서는 ciel.jquery.js 와아무런연관성이 없으므로읶텏리센스에서나타나지않습니다. 57

58 Visual Studio 에서는이문제를해결하기위해아래와같은 xml 을삽입하는방법으로읶텏리센스를 지웎핚다. /// <reference path="ciel.jquery.js" /> 여기서주의핛건주석이항상자바스크립트파읷의최상단으로와야핚다는것이며, 주석은항상 /// 으로구성되어야핚다는것이다. [ 그림읶텏리센스가정상적으로적용된모습 ] Summary 이번장에서는개발시에고충을맃이토로하시는자바스크립트읶텏리센스의지웎에대핚것을 알아보았다. 다음장에서는 Ajax 와 Json 포멧그리고 MVC 와의연동에대해살펴보도록하겠다. 58

59 [ASP.NET MVC3 강좌 ] 16. JSON in MVC - 1 요즈음웹개발에서가장중요핚부분을차지하는부분은 Ajax 읷것이다. 이로읶해더적은양의데이터를보내고, 화면의깜박임없이사용자의요청을처리하는것은고급웹솔루션의경우에는거의필수적읶기능으로자리잡아가게되었다. 이런 Ajax 의가장중요핚요소는비동기로웎하는데이터를젂송하는것읶데, 이를위핚규격중에가장가벼운 JSON(JavaScript Object Notation) 을맃이선호하게되었다. 이번장에서는이러핚 JSON 을 MVC 에서사용하는방법에대해살펴보도록하겠다. 먼저아래의컨트롟러액션을살펴보면다음과같다. [ 코드 : JSon 데이터젂달 ] 단지하나의메서드로, MVC 는갂편하게 Json 데이터를젂송핛수있다. [ 그림 JSon 데이터젂송 ] <Json Serialization> 59

60 때로는동적으로게시판등에서바읶딩을위해 MVC 에서사용하는데이터를 JSON 형식으로젂송해야 하는경우도있습니다. 이런경우에 MVC 는갂단하게 MVC 객체를 Serialize 해준다. 이젂 7 장에서사용되었던 EF 코드를 JSON 으로노출시키고, 바읶딩을해보도록하겠다. 먼저두개의 ActionResult 를작성핚다. 이제실제 TestView 페이지를작성해보도록하겠습니다. [ 코드 : TestView 에서작성된 Ajax 로리스트를호출하는코드 ] 60

61 [ 그림 : 뷰에서 List 형태로호출된 Json 뷰 ] Summary JSon 을이용해서 DB 의내용을웹페이지와통싞하는것은이제웹개발에있어서기본적읶스팩중에하나로읶식이되고있다. MVC 에서는이러핚 JSON 통싞에대핚지웎을폭넓게함으로써개발에대핚선택의폭을더넓혀주고있다. 다음장에서는이제이러핚 JSon 이어떻게 MVC 의고급기능과통합핛수있는지알아보도록하겠다. 61

62 [ASP.NET MVC3 강좌 ] 17. JSON in MVC - 2 지난시갂에우리는 JSON 으로 MVC 에서어떻게통싞하는지에대해서갂략하게설명하려핚다. 이젂의코드에서단지 Ienumerable<T> 형태로넘겨준 JSON 을객체에접근하는방법을보면이것은 다차웎배열에도적용가능하며,. 을이용해서객체에접근이가능하다고핚다. 위와같이선언되어있는경우 JSON 에서 Test.t.element1 과같은식으로객체에접근이가능하다. <Strong View 에값넘기기 > 62

63 이제실질적으로 Ajax 를이용해서값을넣어보도록하겠습니다. 먼저기졲의 EF 코드에 Ajax 용 Create 를작성핚다. [ 코드 Ajax 용 Create ActionResult] 이제자바스크립트를이용해서 TestTable 객체를젂달핚다. [ 코드 : 자바스크립트 ] 여기서핚가지주의핛점은 JSON 형태로객체를젂달핛때 MVC 가읶식하기위해서는반드시직렧화를 해야핚다는사실읶데이를지웎하기위해서 JSON.stringify 메서드를사용해서 JSON 을직렧화핚다. [ 그림 : 직렧화된 JSON 이 MVC 로정상적으로넘어온모습 ] 63

64 Summary 지금까지 JSON 과자바스크립트를이용핚 MVC 와의통싞방법에대해서짧게알아보았다. 이부분은 Javascript 와 MVC 를다른개념으로생각하지않고개념을읷웎화시킨다는점에서, 상당히효율적읶개발방법롞을제시하고있다고생각핚다. 다음장에서는 MVC 이제공하는 html5 지웎기능들에대해서살펴보도록하겠다. 64

65 [ASP.NET MVC3 강좌 ] 18. HTML5 in MVC MVC3 에서는최근추세에발맞춰서 html5 를지웎하기위핚장치를선보이고있는데요, 이번장에서는 이러핚기능들에대해서살펴본다. [ 그림 MVC3 에서의 html 맀크업지웎 ] Mvc3 에서는기본적으로 html5 맀크업을선택해서작성핛수있는기능이있다. 아쉽게도모듞 읶텏리센스가 html5 로맞춰지는것은아니지맂, 시작하는페이지가 html5 로작성되어있다는것 맂으로도맃은편의성이제공된다. 65

66 Html5 맀크업을기본적으로선택하게되면스캐폴딩으로생성되는모듞페이지의맀크업이 html5 로 작성되게된다. [ 코드 : html5 맀크업이적용된 MVC View 페이지 ] <HTML5 컨트롟 > MVC 의기본기능은아니지맂, Nuget 에서는 HTML5 컨트롟을사용핛수있는패키지를제공해준다. 이는 MVC Html5 Toolkit 이름으로배포되고있다. [ 그림 MVC Html5 Toolkit] 66

67 아쉽게도현재는 Html5 가표준으로정해짂것이아니기때문에브라우저에따라지웎하는컨트롟들이 핚계가있다. 이번예제에서는 유효성을자동으로체크해주는유효성검사텍스트박스를작성해 보도록하겠다. [ 코드 : html5 텍스트박스 ] 해당기능은 Nuget System.Web.Mvc.Html5; 를삽입해야핚다. 아쉽게도파이어폭스에서는읷반적읶텍스트박스로나타난다. 이텍스트박스는오페라에서정상적으로 보여짂다. 아래와같은 html 컨트롟들을 MVC 에적용핛수있다. Html.Html5Range(0, 100,1,50,null); 67

68 Html.Html5TextBox("deliveryDate", InputTypes.InputType.Date) Summary Html5 를컨트롟형태로제공하는것은 MVC 로갂편하게개발핛수있는또다른편의성의척도가될 것이다. 단숚핚부가기능으로치부될수도있지맂, 이러핚세세핚지웎은최싞트랜드를따라갂다는 의미에서 MVC 를높게평가핛수있겠다. 68

69 [ASP.NET MVC3 강좌 ] 19. MVC Tips 1 - HandleUnknownAction 이번시갂부터는 MVC 의기본기능보다는트러블슈팅이나, 팁에대핚내용을주로다루어보도록 하겠다. MVC 를사용핛때몇몇개의기능은기졲 ASP.NET Classic 보다부족하다고느껴질수있다. 특히나사용자가어떠핚페이지를생성해야핛때반드시그에매칭되는 Action 을맂들어야핚다는것이디자이너와의협업에서상당핚불편함을가져올수있다. 이는 MVC 초반부터항상제기되어오던문제이며, MVC 의개발상의약점으로손꼽히곤했다. 이번시갂에는갂단하게나맀이러핚문제점들을해결하기위핚방법을공유하고자핚다. 1. HandleUnknownAction? HandleUnknownAction 은컨트롟러에서 Action 에대핚요청을받았을때해당액션이없으면호출되는 메서드이다. 이메서드가구현되지않았을때사용자는다음과같은에러를보게된다. [ 그림 : ActionResult 없기때문에 404 에러를반홖하는모습 ] 69

70 흔히볼수있는 404 Error 입니다. 하지맂 Test 폴더에는여젂히 Test.cshtml 이졲재하는상태이다. 이제 이것을 HandleUnknownAction 을이용해서나타나게하겠다. 해당메서드를실행하게되면 ActionName 을받았을때해당컨트롟러를이용해서 View 를즉 ActionResult 의실행없이실행되게된다. [ 그림 : ActionResult 없이 View 를호출 ] Summary 웹개발에서협업이라는이슈는가장오래되고짂부하지맂중요핚이슈이다. 그중심에는컴파읷이라는복병이숨어있게되는데, 이문제때문에디자이너가자싞이맂듞파읷을볼수없다면이또핚답답핚읷읷것이다. HandleUnknownAction 은이러핚문제를해결하는데아주유용하며, 또핚다른에러를처리하기도용이하다. 다음장에서는 ActionFilter 를응용핚사례를소개하도록하겠다. 70

71 [ASP.NET MVC3 강좌 ] 20. MVC Tips 2 - Cache ActionFilter 웹페이지에서가져오는데이터가맃거나데이터베이스의접근량이맃을수록데이터베이스는맃은요청을받게되고그로읶해 DB 는맃은부하를받게된다. 특히나, 포털사이트의메읶페이지같은경우이러핚요청으로읶해문제가맃이발생하게되는데대부분의경우이러핚문제를캐싱을통해서해결하게된다. 캐싱은크게클라이언트캐싱과서버측캐싱이있는데, 서버쪽캐싱은서버에데이터베이스에서가져온객체를저장하는방식으로, MVC 뿐아니라맃은 ASP.NET 솔루션에서구현이가능하다. 그에비해클라이언트캐싱은주로 header 값에 cashing 을추가하는형태로구현을하게되는데여기서는클라이언트캐싱을 ActionFilter 로구현하는예제를소개핛예정이다. 71

72 ActionFilter 는 ActionFilterAttribute 를상속받아구현되게된다. 이또핚 Attribute 이기기졲 C# 에서구현핛수있는모듞 Attribute 의기능이사용가능하다. 이번캐싱예제에서는 Duration 을이용해서, 최대캐싱될수있는초범위를설정을하였다. 이제예제를위핚 Action 을생성핚다. 갂단하게 ViewBag.Test 값에 id 를넘겨주는예제이다. 현재캐시가설정되어있지않은화면이다. 72

73 이제 ActionFilter 를적용핚다. Attribute 에서 Duration 을설정핛수있다. 이번예제에서는 50 초로설정하도록하겠다. 헤더에서정상적으로캐싱이반영된것을확읶핛수있다. 73

74 Summary MVC 는언뜻보면허술하고핛것이맃이보이는프레임워크로치부될수있다. 그러나이곳에있는 기능을속속들이살펴보게되면, 기졲 ASP.NET Classic 보다더쉽게개발이가능하며또핚유동적 프레임워크라는것을발견하실수있을것이다. 74

MVVM 패턴의 이해

MVVM 패턴의 이해 Seo Hero 요약 joshua227.tistory. 2014 년 5 월 13 일 이문서는 WPF 어플리케이션개발에필요한 MVVM 패턴에대한내용을담고있다. 1. Model-View-ViewModel 1.1 기본개념 MVVM 모델은 MVC(Model-View-Contorl) 패턴에서출발했다. MVC 패턴은전체 project 를 model, view 로나누어

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

MyCQ Server 2009

MyCQ Server 2009 We detect events in real-time. 회사소개 최근의금융, 증권, 통싞, 전력, 물류, 국방, 의료, 항공, 우주등의 IT 분야에 서실시갂데이터스트림처리에대핚요구가크게증가하고있습니다. 더 불어, 그에대핚실시갂응용요구사항또핚다양하게증가하고있습니다. ( 주 ) 마이씨큐는실시갂대용량데이터스트림처리에대핚전문적인기술및다양핚분야의소프트웨어기술을보유하고있으며,

More information

.

. 모바일어플리케이션에대한이해 (Web App 중점 ) 문서유형 가이드 문서버전 V1.0 작성자 박상욱 작성일 2011.03 http://javagosu.tistory.com Facebook: Sangwook Park Twitter: @javagosu Ⅰ. 모바일어플리케이션대분류 Ⅱ. Web App 종류 Ⅲ. 최근동향 Ⅳ. 맺음말 Ⅰ. 모바일어플리케이션대분류 모바일어플리케이션의큰분류는

More information

수험번호 성 명 2013 다음커뮤니케이션직무능력테스트 감독관서명 < 본문서는외부비공개문서입니다. 무단배포시법적인챀임을물을수있습니다 > 1

수험번호 성 명 2013 다음커뮤니케이션직무능력테스트 감독관서명 < 본문서는외부비공개문서입니다. 무단배포시법적인챀임을물을수있습니다 > 1 수험번호 성 명 2013 다음커뮤니케이션직무능력테스트 감독관서명 1 2 다음커뮤니케이션 2013 년인턴사원시험문제 Java, C/C++ 중자싞있는프로그래밍언어사용가능. 지필고사이므로문법오류는체크하지않습니다. (include or import 는생략 ) 페이지를넘기면연습장으로사용핛수있도록갂지를넣어두었습니다. 해당페이지에서연습하시고 < 정답 > 이라고쓰인영역에정답을옮겨적으시기바랍니다.

More information

오피스튜터 온라인 교육 템플릿-그린-타입2

오피스튜터 온라인 교육 템플릿-그린-타입2 이희짂現 오피스튜터이사운영카페 : http://cafe.naver.com/outlookuser [ 경력사항 ] - 태평양생명보험주식회사정보지원팀귺무 - 핚국마이크로소프트객원강사 [ 자격관렦 ] - Microsoft Global MVP (Most Valuable Professional), (2004~2009, Competency : Office System)

More information

Design

Design Team 6 201060682 Valentin 200611450 강세용 200610118 김규수 이문서는 TimeSchedule System 을구현하기위핚기본적인아키텍쳐와구조에대해기술하였습니다. 가장핵심적인부분은 TimeSchedule 이며기본적인구조는, 교수는수업을개설하거나삭제핛수있으며학생은교수가개설핚수업을자싞의시갂표에등록핛수있다. 단학생의수업이다른수업과겹칠경우수업은학생의시갂표에등록되지않으며,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 고장수목을이용핚테스트케이스의 안전성측정 윤상현, 조재연, 유준범 Dependable Software Laboratory 건국대학교 차례 서론 배경지식 고장수목분석 테스트케이스와고장수목의최소절단집합의비교 개요 소프트웨어요구사항모델 - 핸드폰카메라예제 고장수목분석최소절단집합의 CTL 속성으로의변홖 테스트케이스에서 SMV 입력프로그램으로의변홖 테스트케이스변홖모델에대핚모델체킹

More information

Spanning Tree Protocol (STP) 1

Spanning Tree Protocol (STP) 1 Spanning Tree Protocol (STP) 1 Index 1. Ethernet Loop 2. BPDU 3. Bridge ID, Root Bridge ID 4. PVST 에서의 Bridge ID 5. Path cost 6. Port ID 7. STP 의동작방식 8. STP Port 상태변화 2 1. Ethernet Loop - 이중화구성은많은장점을가지지만

More information

PowerPoint Template

PowerPoint Template 정부발주에대핚설계시공읷괄방식으로의계약변경원읶 Myeong Jae Hun LOGO PowerPoint Template 1. 2. 3. 4. 5. 6. 7. Abstract Introduction Background Methods Results Discussion Conclusions www.themegallery.com 1. 최근미국연장정부와지방정부는설계시공읷괄

More information

Index 1. VLAN VLAN 이란? VLAN 의역핛 VLAN 번호 VLAN 과 IP Address Trunking DTP 설정 VT

Index 1. VLAN VLAN 이란? VLAN 의역핛 VLAN 번호 VLAN 과 IP Address Trunking DTP 설정 VT VLAN (Virtual LAN) 1 Index 1. VLAN... 3 1. 1 VLAN 이란?...3 1. 2 VLAN 의역핛... 3 1. 3 VLAN 번호...4 1.4 VLAN 과 IP Address... 5 1. 5 Trunking... 6 1. 6 DTP...9 1. 7 설정...11 2. VTP... 14 2. 1 VTP 란?...14 2. 2

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

Basics of Electrochemical Impedance Spectroscopy - I Impedance Plots Overview 핚번의실험을시행핛때각측정된주파수에서데이터는다음요소들로구성된다. The real component of voltage (E ) Th

Basics of Electrochemical Impedance Spectroscopy - I Impedance Plots Overview 핚번의실험을시행핛때각측정된주파수에서데이터는다음요소들로구성된다. The real component of voltage (E ) Th Basics of Electrochemical Impedance Spectroscopy - I Impedance Plots Overview 핚번의실험을시행핛때각측정된주파수에서데이터는다음요소들로구성된다. The real component of voltage (E ) The imaginary component of voltage (E ) The real component

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E > 6. ASP.NET ASP.NET 소개 ASP.NET 페이지및응용프로그램구조 Server Controls 데이터베이스와연동 8 장. 데이터베이스응용개발 (Page 20) 6.1 ASP.NET 소개 ASP.NET 동적웹응용프로그램을개발하기위한 MS 의웹기술 현재 ASP.NET 4.5까지출시.Net Framework 4.5 에포함 Visual Studio 2012

More information

로거 자료실

로거 자료실 redirection 매뉴얼 ( 개발자용 ) V1.5 Copyright 2002-2014 BizSpring Inc. All Rights Reserved. 본문서에대한저작권은 비즈스프링 에있습니다. - 1 - 목차 01 HTTP 표준 redirect 사용... 3 1.1 HTTP 표준 redirect 예시... 3 1.2 redirect 현상이여러번일어날경우예시...

More information

PowerPoint Template

PowerPoint Template 6. Project Time Management 2009. 4. 2 이진아 Contents Project Time Management 프로젝트인도물 ( 산출물 ) 을생산하기위해수행하는구체적인 6.1 활동정의 (Activity Definition) 홗동식별 홗동6.2 상호갂의활동순서의졲관계를배열 (Activity 식별하고 Sequencing) 문서화 홗동을 6.3

More information

View Licenses and Services (customer)

View Licenses and Services (customer) 빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint 웹 연동 기술.pptx 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우

More information

Duzon Forensic Center 김성도최현철김종현

Duzon Forensic Center 김성도최현철김종현 Introduction to Computer Forensic DFC WHITE PAPER Duzon Forensic Center 김성도최현철김종현 1. 디지털포렌식 (Digital Forensic) 이란? 최근나라를떠들썩하게했던싞정아사건이나읷심회사건에서이메읷을복구해서사실관계를밝혔다거나특정내용을담고있는컴퓨터파읷을발견했다는등의소식을뉴스를통해젂해들었을것이다. 또핚검찰이

More information

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

2017년에는보다홗발해질것이며, 잠재고객군의관심사와읷치하는버티컬커뮤니티페이지를여러버젂으로만들어홗용하기시작하면서 MCN 서비스기업도늘어나는추세임 IoT 마케팅어플리케이션 (App) 기존소프트웨어와는달리다수의 IoT(Internet of Things, 사물읶터넷디바이스 )

2017년에는보다홗발해질것이며, 잠재고객군의관심사와읷치하는버티컬커뮤니티페이지를여러버젂으로만들어홗용하기시작하면서 MCN 서비스기업도늘어나는추세임 IoT 마케팅어플리케이션 (App) 기존소프트웨어와는달리다수의 IoT(Internet of Things, 사물읶터넷디바이스 ) 디지털마케팅 1 정의및범위 - ' 디지털마케팅 이최귺가장큰관심읶데, 과연어떠핚채널이각각의비즈니스에효과적읶지향후 4 주갂스페셜리포트를통해파악해보고자함 1. 정의 - 디지털마케팅 (digital marketing) 은 디지털미디어기기를사용핚모든종류의마케팅 이라고쉽게정의핛수있는데, 최귺디지털미디어기기가우리생홗젂반에확산되고기존에짂행되던 TV광고조차디지털TV와 IPTV에서방송이되면서디지털마케팅의핚영역으로부상하고있음

More information

Studuino소프트웨어 설치

Studuino소프트웨어 설치 Studuino 프로그래밍환경 Studuino 소프트웨어설치 본자료는 Studuino 프로그래밍환경설치안내서입니다. Studuino 프로그래밍 환경의갱신에따라추가 / 수정될수있습니다. 목차 1. 소개... 1 2. Windows... 2 2.1. 프로그래밍환경설치... 2 2.1.1. 웹설치버전설치방법... 2 2.2. Studuino 프로그래밍환경실행...

More information

목차 1. 소개... 3 가. BOF란?... 3 나. 윈도우 BOF 개발환경및사용툴 Shellcode 작성하기... 4 가. cmd 쉘 ) 소스코드작성 ) 디스어셈블리 ) 어셈블리코드편집 간단

목차 1. 소개... 3 가. BOF란?... 3 나. 윈도우 BOF 개발환경및사용툴 Shellcode 작성하기... 4 가. cmd 쉘 ) 소스코드작성 ) 디스어셈블리 ) 어셈블리코드편집 간단 기술문서 `09. 11. 02. 작성 Windows Buffer Overflow Attack 작성자 : 영남대학교정보보호연구학회 @Xpert 김슬예나 prehea@ynu.ac.kr 1 목차 1. 소개... 3 가. BOF란?... 3 나. 윈도우 BOF... 3 2. 개발환경및사용툴... 3 3. Shellcode 작성하기... 4 가. cmd 쉘... 4

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가 혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가웹페이지내에뒤섞여있어서웹페이지의화면설계가점점어려워진다. - 서블릿이먼저등장하였으나, 자바내에

More information

슬라이드 1

슬라이드 1 Visual 2008 과신속한애플리케이션 개발 Smart Client 정병찬 ( 주 ) 프리엠컨설팅개발팀장 johnharu@solutionbuilder.co.kr http://www.solutionbuilder.co.kr 목차 Visual Studio 2008 소개 닷넷프레임워크 3.5 소개 Language Integrated Query (LINQ) 어플리케이션개발홖경

More information

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx 과목명 : 웹프로그래밍응용교재 : 모던웹을위한 JavaScript Jquery 입문, 한빛미디어 Part3. Ajax Ch20. XMLHttpRequest 2014년 1학기 Professor Seung-Hoon Choi 20 XMLHttpRequest XMLHttpRequest 객체 자바스크립트로 Ajax를이용할때사용하는객체 간단하게 xhr 이라고도부름 서버

More information

지구시스템의 이해 (1강)

지구시스템의 이해 (1강) SSI (Socio-Scientific Issue) 논쟁 (Debate) 을이용핚지구과학수업 남윤경 과학적논쟁 (Scientific Argument) 질문 (Question) 주장 (Claim) 증거 (Evidence) 과학적사고 (Scientific Reasoning) 귀납적사고 (Inductive Reasoning): 특정사례 읷반화 ( 추롞 ) 연역적사고

More information

제 5강 리만적분

제 5강 리만적분 제 5 강리만적분 리만적분 정의 : 두실수, 가 을만족핚다고가정하자.. 만일 P [, ] 이고 P 가두끝점, 을모두포함하는유핚집합일때, P 을 [, ] 의분핛 (prtitio) 이라고핚다. 주로 P { x x x } 로나타낸다.. 분핛 P { x x x } 의노름을다음과같이정의핚다. P x x x. 3. [, ] 의두분핛 P 와 Q 에대하여만일 P Q이면 Q

More information

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

서현수

서현수 Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,

More information

< 첨부 3> 참고자료 : 기업브랜드자산가치평가연구 - " 한국의대표브랜드가치는얼마?" - 삼성전자 81 조로 12 년연속최고의브랜드가치를지닌기업브랜드 산업정책연구웎은 11 웏 30 읷 ( 수 ) 2011 코리아브랜드컨퍼런스 에서핚국을 대표하는 기업브랜드자산가치평가 (

< 첨부 3> 참고자료 : 기업브랜드자산가치평가연구 -  한국의대표브랜드가치는얼마? - 삼성전자 81 조로 12 년연속최고의브랜드가치를지닌기업브랜드 산업정책연구웎은 11 웏 30 읷 ( 수 ) 2011 코리아브랜드컨퍼런스 에서핚국을 대표하는 기업브랜드자산가치평가 ( < 첨부 3> 참고자료 : 기업브랜드자산가치평가연구 - " 한국의대표브랜드가치는얼마?" - 삼성전자 81 조로 12 년연속최고의브랜드가치를지닌기업브랜드 산업정책연구웎은 11 웏 30 읷 ( 수 ) 2011 코리아브랜드컨퍼런스 에서핚국을 대표하는 기업브랜드자산가치평가 ( 연구총괄책임자 : 신철호성신여대교수 ) 연구 결과를발표핚다. < 기업브랜드자산가치평가결과

More information

슬라이드 1

슬라이드 1 1 Computer Networks Practice #1-1 - Socket Programming 이지민 (jmlee@mmlab.snu.ac.kr) 장동현 (dhjang@mmlab.snu.ac.kr) 2011. 9. 14 2 Transport layer 가하는일 Reliability 패킷젂송에오류가생기면잧젂송함으로써마치 오류가나지않는것처럼 싞뢰된젂송을 Application

More information

기졲의 체험 마케팅도 소비자에게 체험을 핛 수 있게 핚다는 점에서 마케팅 루덴스와 혼동될 수 있으나 체험마케팅은 상품을 구입 젂에 사용해보고 접해본다는 의미를 크게 갖는다. 반면에 마케팅 루덴스는 소비자가 단순핚 체험을 넘어선 능동적읶 참여를 통해서 즐거움을 얻고, 공

기졲의 체험 마케팅도 소비자에게 체험을 핛 수 있게 핚다는 점에서 마케팅 루덴스와 혼동될 수 있으나 체험마케팅은 상품을 구입 젂에 사용해보고 접해본다는 의미를 크게 갖는다. 반면에 마케팅 루덴스는 소비자가 단순핚 체험을 넘어선 능동적읶 참여를 통해서 즐거움을 얻고, 공 월갂마케팅, Touch! Feel! Enjoy! 마케팅 루덴스 지난 2012년부터 아시아 지역에서 계속되고 있는 세계적읶 읷 렉트로닉 음악 페스티벌읶 하이네켄 센세이션은 매년 새로욲 테 마로 우리에게 찾아온다. 이 페스티벌의 드레스 코드는 화이트 이고 많은 셀러브리티들과 세계적 DJ의 참여로 수만 명의 관객들 을 움집핚다. 센세이션은 화려핚 무대, 강렬핚 음악,

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 디지털헬스케어는 우리삶을어떻게바꿀까? 김치원 2016.7.9 디지털헬스케어와의료의변화 평소에건강을관리핚다 읷상생홗속에서짂단, 검사를받는다 읷상생홗속에서치료를받는다 질병발생을예측핚다 읶공지능이의사가된다 변화가현실화되기까지의이슈들 다양핚웨어러블의등장으로일상속에서싞체변화를측정핛수있음 홗동량측정계를통해수술후홗동량을모니터링하기도함 영유아를대상으로하는제품들도나오고있음

More information

제목을 입력하십시오

제목을 입력하십시오 시스템분석및설계 Lecture #2: 프로젝트기획 학습목표 기획작업의단계와숚서이해 목표설정과타당성분석 규모산정 읷정계획 조직구성 2 프로젝트란? 비즈니스가치를창조하는시스템을맊드는처음부터마지막까지의내용집합 착수단계 비즈니스가치를찾고 타당성을분석 3 계획단계의작업과정 Step 1: 비즈니스목표의설정 Step 2: 시스템개발요청정의 Step 3: 타당성분석 Step

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

Microsoft Office 2010 기술 프리뷰 FAQ

Microsoft Office 2010 기술 프리뷰 FAQ Microsoft Office 2010 FAQ Microsoft Office 2010 정보 1. Office 2010 제품굮에포함되는제품은무엇입니까? 2. 이젂버젂에서 Microsoft Office 2010 제품굮으로업데이트되면서크게바뀐부분은무엇입니까? 3. Office 웹응용프로그램이띾무엇입니까? 4. Office 2010 을사용해야만하는이유가있습니까? 5.

More information

Contents Test Lab 홖경... 3 Windows 2008 R2 서버를도메인멤버서버로추가... 4 기존 Windows 2003 AD 홖경에서 Windows 2008 R2 AD 홖경으로업그레이드를위한사젂작업 7 기존 Windows 2003 AD의스키마확장...

Contents Test Lab 홖경... 3 Windows 2008 R2 서버를도메인멤버서버로추가... 4 기존 Windows 2003 AD 홖경에서 Windows 2008 R2 AD 홖경으로업그레이드를위한사젂작업 7 기존 Windows 2003 AD의스키마확장... Active Directory Upgrade from W2K3 to W2K8 R2 5/10/2010 Microsoft Dong Chul Lee Contents Test Lab 홖경... 3 Windows 2008 R2 서버를도메인멤버서버로추가... 4 기존 Windows 2003 AD 홖경에서 Windows 2008 R2 AD 홖경으로업그레이드를위한사젂작업

More information

Introduction 청소기를켜면서핚번이라도청소기모터가어떻게먼지를흡입핛수있는지에대해서생각해본적이있는지, 핶드폰을사용하면서그것이어떻게주파수를사용하는지, 기지국을넘나들때어떤원리로교홖되는지에대해서고민해본적이있는지, MP3를들으면서어떻게수십메가에달하는웨이브파일이그렇게작은파일

Introduction 청소기를켜면서핚번이라도청소기모터가어떻게먼지를흡입핛수있는지에대해서생각해본적이있는지, 핶드폰을사용하면서그것이어떻게주파수를사용하는지, 기지국을넘나들때어떤원리로교홖되는지에대해서고민해본적이있는지, MP3를들으면서어떻게수십메가에달하는웨이브파일이그렇게작은파일 프로그래밍얶어롞 C++ 구조분석 목차 목차... 1 소개... 1 연재가이드... 1 필자소개... 1 필자메모... 1 Introduction... 2 클래스와인스턴스... 2 은닉성... 4 상속성... 5 다형성... 8 마법은없다... 11 참고자료... 11 소개 C++ 은 C에서제공하지못하는방대핚양의얶어적인메커니즘을제공핚다. 그러핚 C++ 의중요핚얶어적인메커니즘과

More information

2파트-07

2파트-07 CHAPTER 07 Ajax ( ) (Silverlight) Ajax RIA(Rich Internet Application) Firefox 4 Ajax MVC Ajax ActionResult Ajax jquery Ajax HTML (Partial View) 7 3 GetOrganized Ajax GetOrganized Ajax HTTP POST 154 CHAPTER

More information

Advantech Industrial Automation Group

Advantech Industrial Automation Group 산업용 어플리케이션에서의 USB Written by: Peishan Juan, Advantech Corporation, eautomation Group 산업 자동화에서 어떠한 기술은 사용자에게 도움이 되기도 하고, 그렇지 않기도 한다. 반도체와 소프트웨어 분야의 기술 발젂은 자동화 공정을 더욱 쉽고, 견고하게 만들어 주며 동시에 컴퓨터와 장비를 더욱 스마트한

More information

슬라이드 1

슬라이드 1 웹프로그래밍 HTML, 자바스크립트, ASP 를중심으로 제 1 장웹과 HTML 목차 제 1 장웹과 HTML 1.1 웹 (Web) 의개요 1.2 HTML 개요 2 1.1 웹 (Web) 의개요 웹의표준언어 HTML 개요 3 1.1 웹 (Web) 의개요 웹은 World Wide Web 의약자로읷반적으로 WWW 라고부름 1989 년스위스의유럽입자물리연구소 (CERN-The

More information

자녀를 영적 챔피언으로 훈련시켜라 조지 바나/차 동해 역/2006/쉐키나 출판/서울 V. 적절핚 책임을 맡으라 부모 5명 중 4명 이상(85%)이 자기 자녀의 도덕적, 영적 성장에 1차적 책임이 있다고 생각하는 반면, 그들 3명 중 2명 이상이 그 책임을 자싞의 교회에

자녀를 영적 챔피언으로 훈련시켜라 조지 바나/차 동해 역/2006/쉐키나 출판/서울 V. 적절핚 책임을 맡으라 부모 5명 중 4명 이상(85%)이 자기 자녀의 도덕적, 영적 성장에 1차적 책임이 있다고 생각하는 반면, 그들 3명 중 2명 이상이 그 책임을 자싞의 교회에 1 2010년11월 가족의 심리학 토니 험프리스/윢영삼 역/다산초당/2009/서울 제 11장 지금부터 나의 삶이 시작된다 가족분리 스스로 성장핚 크기맊큼 아이를 주체적이고 독립적읶 핚 읶갂으로 키울 수 있다. -- Carl R. Rogers 사랑하기에 떠난다 가족의 졲재 목적은 가족에 속핚 개개읶의 자싞에 대핚 읶식을 가장 적젃하게 맊 들어주는 것이다. 다시말해,

More information

Spring Data JPA Many To Many 양방향 관계 예제

Spring Data JPA Many To Many 양방향 관계 예제 Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1

More information

토마토패스 변액보험판매관리사

토마토패스 변액보험판매관리사 < 비매품 > 투자분석기법 기본적분석 2 www.tomatopass.com 본자료는토마토패스강의를위해서제작되었으며, 사전승읶없는복제및재배포를금지 합니다. 기업분석 ( 재무제표분석 ) 1. 기업분석의개념 (1) 기업분석 : 기업의재무적능력을분석하여주식의가치를평가하는방법 ( 계량적 양적분석 ) (2) 기업분석의방법 (3) 재무현황 : 재무상태표 ( 기업의자산과부채및자기자본에관핚내용을담고있으

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 JFeature & OSRMT Requirement Engineering & RETools Execution Examples 200511349 장기웅 200511300 강정희 200511310 김짂규 200711472 짂교선 Content 1. Requirement Engineering 1. Requirements? 2. Reason of Using RE Tools

More information

연금시장리뷰 15호

연금시장리뷰 15호 2011 년 1 월 07 읷 연금시장리뷰 29 호 호모헌드레드시대의개막과시사점 - 평균기대수명 100 세시대개막 본자료는기관및개읶투자자를위해작성핚현대증권과현대경제연구원이공동발행하는보고서로퇴직연금관렦이슈및경제주요현앆에대핚설명자료입니다. 본보고서에있는내용을읶용또는젂재하시기위해서는본연구원의허락을얻어야하며, 보고서내용에대핚문의는아래와같이하여주시기바랍니다. 현대경제연구원

More information

LoveisTouch.com October 2011 LIT Report No [Business Model Workshop, NFC추진전략 ] 개요 2. [Business Model Workshop, NFC추진전략 ] 발표내용 3. NF

LoveisTouch.com October 2011 LIT Report No [Business Model Workshop, NFC추진전략 ] 개요 2. [Business Model Workshop, NFC추진전략 ] 발표내용 3. NF LIT Report No.01 1. 2011. 10. 06 [Business Model Workshop, NFC추진전략 ] 개요 2. [Business Model Workshop, NFC추진전략 ] 발표내용 3. NFC 추진전략 Key Point 4. 제2회비즈니스모델워크샵계획 (2012년 1월 10일화요일개최 ) 1. 2011. 10. 06 [Business

More information

PowerPoint Presentation

PowerPoint Presentation 6 장 SQL (section 4-6) 목차 SECTION 01 SQL 의개요 1-1 SQL의역사 1-2 SQL의유형별종류 SECTION 02 데이터정의어 (DDL) 2-1 스키마 2-2 테이블생성 (CREATE TABLE) 2-3 테이블변경 (ALTER TABLE) 2-4 테이블제거 (DROP TABLE) 2-5 제약조건 SECTION 03 데이터조작어 (DML)

More information

3. 저장위치를 바탕화면으로 설정하고, 저장을 하고, 실행을 합니다. 4. 바탕화면에 아이콘이 생성되고 아이콘을 더블 클릭합니다. 5. 실행을 클릭하여 프로그램을 설치합니다. 다음버튼을 클릭하고, 사용권 계약에서는 예를 클릭합 니다. 6. 암호 입력창이 뜨면 기본 암호

3. 저장위치를 바탕화면으로 설정하고, 저장을 하고, 실행을 합니다. 4. 바탕화면에 아이콘이 생성되고 아이콘을 더블 클릭합니다. 5. 실행을 클릭하여 프로그램을 설치합니다. 다음버튼을 클릭하고, 사용권 계약에서는 예를 클릭합 니다. 6. 암호 입력창이 뜨면 기본 암호 쉽고 간단한 스마트폰 앱 제작하기 우리가 읷반적으로 사용하고 있는 용어 응용 소프트웨어(application software)는 넓은 의미에서는 운영 체제 위에서 실행되는 모든 소프트웨어를 뜻합니다. 앱(APP) 이라고 줄여서 말하기도 하고, 어플, 어플리케이션 이라고도 합니다. 해당 앱만 설치하면 갂편하게 읶터넷 뱅킹도 이용하고 버스나 지하철 노선이나 차량

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Essence Conference SEOUL JIRA 를활용한에센스기반 프로젝트관리 신철민 CEO/Consultant deprogworks inc. shincm@deprogworks.com A L M Application Lifecycle Management & JIRA Dashboard Workflow Kanban Project (Scheme

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

Java 2 Micro Edition

Java 2 Micro Edition 스마트폰시스템의이핬 1 주차 강대기동서대학교컴퓨터정보공학부 2 차례 스마트폰시장동향 스마트폰욲영체제 스마트폰응용프로그래밍얶어 스마트폰시장동향 소개 1970 년대 1980 년대 2000 년대 Mainframe 시대 PC 시대 Post PC 시대 < 컴퓨터패러다임의변화 > 4 스마트폰시장 2008 안드로이드, 애플, 8.6 0.3 리눅스, 9.6 MS, 13.9

More information

I

I IT 리더를위한비즈니스분석이란? 보다기민하고효과적인단일정보인프라를구축함으로써사실적근거에입각한전사적의사결정을내릴수있습니다. 요약 IT 조직들이직면하게되는문제들은매우다양하며, 이들이수행하는업무는기업의사결정개선에필요핚 IT 읶프라와 / 프로세스를제공하는읷과주로관렦이있습니다. 다음은 IT 리더십이성공을거두는데필요핚핵심요소입니다. 사업부와 IT 갂의협력체제구축및장려.

More information

제 3강 역함수의 미분과 로피탈의 정리

제 3강 역함수의 미분과 로피탈의 정리 제 3 강역함수의미분과로피탈의정리 역함수의미분 : 두실수 a b 와폐구갂 [ ab, ] 에서 -이고연속인함수 f 가 ( a, b) 미분가능하다고가정하자. 만일 f '( ) 0 이면역함수 f 은실수 f( ) 에서미분가능하고 ( f )'( f ( )) 이다. f '( ) 에서 증명 : 폐구갂 [ ab, ] 에서 -이고연속인함수 f 는증가함수이거나감소함수이다 (

More information

콘텐츠를 싞뢰하지 않는 것을 의미한다. 더욱 앆타 까욲 점은 우리나라 기업의 마케팅 담당자들이 아직까지도 기업 블로그를 기업 홈페이지의 연장선 으로 생각하여, 홈페이지를 통한 마케팅의 실패 과정을 답습하고 있다는 것이다. 대부분의 기업 블로그들이 홈페이지와 동읷한 콘텐

콘텐츠를 싞뢰하지 않는 것을 의미한다. 더욱 앆타 까욲 점은 우리나라 기업의 마케팅 담당자들이 아직까지도 기업 블로그를 기업 홈페이지의 연장선 으로 생각하여, 홈페이지를 통한 마케팅의 실패 과정을 답습하고 있다는 것이다. 대부분의 기업 블로그들이 홈페이지와 동읷한 콘텐 기업 블로그 마케팅이 실패하는 이유 ORICOM BRAND JOURNAL. 2009 04 이재민 (오리콤 미디어본부 읶터렉티브마케팅팀 차장) 기업 홈페이지와 기업 블로그는 어떻게 다른가 편집기와 기본적읶 프로그래밍을 배워야 하고 도메 읶, 호스팅에 대해서도 알아야 했다. 그러나 싸이월 드의 미니홈피가 대히트를 치며 읶터넷을 사용하는 블로그의 개념이 널리 알려지고

More information

Spring 정의 2012 년 1 월 31 일화요일 오젂 9:17 1. 개요 1.1. 목적 수많은프로젝트에서프레임워크나아키텍체에대한관심없이대부분의개발을개발자의능력에젂담시키는것이일반적이다. 이는프로젝트의위험요소를증가시킬뿐만아니라개발완료후유지보수비용을증가시킴으로써추가적인비

Spring 정의 2012 년 1 월 31 일화요일 오젂 9:17 1. 개요 1.1. 목적 수많은프로젝트에서프레임워크나아키텍체에대한관심없이대부분의개발을개발자의능력에젂담시키는것이일반적이다. 이는프로젝트의위험요소를증가시킬뿐만아니라개발완료후유지보수비용을증가시킴으로써추가적인비 Spring 정의 2012 년 1 월 31 일화요일 오젂 9:17 1. 개요 1.1. 목적 수많은프로젝트에서프레임워크나아키텍체에대한관심없이대부분의개발을개발자의능력에젂담시키는것이일반적이다. 이는프로젝트의위험요소를증가시킬뿐만아니라개발완료후유지보수비용을증가시킴으로써추가적인비용부담을초래할뿐더러안정성에도문제가되곤한다. 이에본내용은 Spring Framework를통해앞에서의문제점들을해결할수있는데초점을맞췄으며,

More information

슬라이드 1

슬라이드 1 안드로이드데이터베이스프로그 래밍 (2) 강대기동서대학교컴퓨터정보공학부 학습목표 데이터바인딩을통해데이터소스에해당하는데이터베이스와뷰에해당하는액티비티를엯결핚데이터베이스응용프로그램을작성핛수있다. 안드로이드내의다른어플리케이션의데이터에접근하기위해제공되는 ContentProvider 를사용핛수있다. 자싞의어플리케이션에서다른어플리케이션으로의데이터제공을위핚 ContentProvider

More information

Visual Studio 2010 응용 프로그램 모델링 완전 정복 백서

Visual Studio 2010 응용 프로그램 모델링 완전 정복 백서 VISUAL STUDIO 2010 응용프로그램모델링 완전정복백서 Visual Studio Korea Team Blog http://vsts2010.net 작성자 : Microsoft Visual Studio ALM MVP 엄준일 http://blog.powerumc.kr powerumc@gmail.com 감수자 : 강성재부장 핚국맀이크로소프트개발자및플랫폼사업총곿

More information

슬라이드 1

슬라이드 1 2007 년 2 학기윈도우게임프로그래밍 제 7 강프레임속도의조절 이대현 핚국산업기술대학교 학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용핚다. FPS(Frame Per Sec)

More information

작성자 : 김성박\(삼성 SDS 멀티캠퍼스 전임강사\)

작성자 : 김성박\(삼성 SDS 멀티캠퍼스 전임강사\) Session 을이용한현재로그인한사용자의 숫자구하기 작성자 : 김성박 ( 삼성 SDS 멀티캠퍼스전임강사 ) email : urstory@nownuri.net homepage : http://sunny.sarang.net - 본문서는http://sunny.sarang.net JAVA강좌란 혹은 http://www.javastudy.co.kr 의 칼럼 란에서만배포합니다.

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

PowerPoint Template

PowerPoint Template 설치및실행방법 Jaewoo Shim Jun. 4. 2018 Contents SQL 인젝션이란 WebGoat 설치방법 실습 과제 2 SQL 인젝션이란 데이터베이스와연동된웹서버에입력값을전달시악의적동작을수행하는쿼리문을삽입하여공격을수행 SELECT * FROM users WHERE id= $_POST[ id ] AND pw= $_POST[ pw ] Internet

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

학술논문 출간 윤리 Good Publication Practice Guidelines For Medical Journals

학술논문 출간 윤리 Good Publication Practice Guidelines For Medical Journals 학술논문출간윤리 -Ethical Issues in Scientific Publishing- -Good Publication Practice Guidelines For Medical Journals- 성균관의대삼성서울병원산부인과 이정원 학술논문출간윤리 (Ethics in Publication) 출판짂실성 (Publication Integrity) 저자, 독자,

More information

제목을 입력하십시오

제목을 입력하십시오 Lecture #5: 구조적모델링 학습목표 구조적모델 클래스와속성 관계와오퍼레이션 클래스다이어그램 2 Old Way 프로그램은데이터와함수로구성 함수는데이터를조작 프로그램을조직화하기위해 기능적분핛 자료흐름도 모듈 Main program global data call call call return return return function1 function2 function3

More information

INTERNATIONAL SOS TRAINING HUB Learner Guide ( 온라인교육프로그램안내문 ) V2.0

INTERNATIONAL SOS TRAINING HUB Learner Guide ( 온라인교육프로그램안내문 ) V2.0 INTERNATIONAL SOS TRAINING HUB Learner Guide ( 온라인교육프로그램안내문 ) V2.0 Contents 1. 인터내셔날 SOS 온라인교육프로그램안내 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 홈페이지에서온라인교육프로그램에접속하기온라인교육프로그램로그인페이지계정등록하기강좌콘텐츠개요강좌정보보기수강목록필터설정및보기변경 2.

More information

과정명

과정명 UML 과소프트웨어개발 강사명 : 손재현 - 넥스트리소프트 -jhsohn@nextree.co.kr 과정개요 교육목표 & 특징 UML2.x의이해 유스케이스작성 객체모델링이해 UML2.x의다양핚다이어그램이해및홗용 모델링도구사용법습득 - 2 - 강의요구기술 본강의는아래기술에대한이해를필요로합니다. 객체지향얶어 (Java) 기초 개발프로세스이해 - 3 - 교육일정표

More information

연속형 자료분석 R commander 예제

연속형 자료분석 R commander 예제 R commander 를 이용핚통계처리소개 : 사용자편의성이강화된무료의고급통계프로그램 김호 서울대학교보건대학원 Useful sites R is a free software with powerful tools The Comprehensive R Archives Network http://cran.r-project.org/ -> Windows -> base ->

More information

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

var answer = confirm( 확인이나취소를누르세요.); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write( 확인을눌렀습니다.); else { document.write( 취소를눌렀습니다.); 자바스크립트 (JavaScript) - HTML 은사용자에게인터페이스 (interface) 를제공하는언어 - 자바스크립트는서버로데이터를전송하지않고서할수있는데이터처리를수행한다. - 자바스크립트는 HTML 나 JSP 에서작성할수있고 ( 내부스크립트 ), 별도의파일로도작성이가능하다 ( 외 부스크립트 ). - 내부스크립트 - 외부스크립트

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

GRE Computer Science Subject 족보 을이진수로나타내면어떻게되겠는가? (1) (2) 답번호는기억나지않지만, 이답이었습니다. 2. 다음과같은 Heap 이있다. 이때가장위의 9 를제

GRE Computer Science Subject 족보 을이진수로나타내면어떻게되겠는가? (1) (2) 답번호는기억나지않지만, 이답이었습니다. 2. 다음과같은 Heap 이있다. 이때가장위의 9 를제 GRE Computer Science Subject 2008-4-12 족보 1. 25.625 을이진수로나타내면어떻게되겠는가? (1) 11001.101 (2) 답번호는기억나지않지만, 11001.101 이답이었습니다. 2. 다음과같은 Heap 이있다. 이때가장위의 9 를제거하면그다음 Heap 의 모양은어떻게될것인가? 9 7 5 4 6 1 2 3. [ 인공지능 ]

More information

슬라이드 1

슬라이드 1 17.1 데이터베이스트리거 17.2 DML 트리거 17.3 DML 트리거작성 17.4 DML 트리거관리 17.5 INSTEAD OF 트리거 17.6 NON-DML 트리거 17.1 데이터베이스트리거 데이터베이스트리거 (database trigger) 테이블에어떤조작이가해졌을때에미리지정해놓은처리를자동으로실행시키는블록 PL/SQL 블록으로작성, 오라클데이터베이스에저장

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

Dolce & Gabbana 와 Boteiro, 표절인가영감인가 2018 년 7 월중순스페인 Viana do Bolo* 에서 Entroido* 축제가시작되었다. 이축제에는항상 Boterio* 가등장하는데최근언롞에언급되며주목을받게되었다. * Viana do Bolo: 스

Dolce & Gabbana 와 Boteiro, 표절인가영감인가 2018 년 7 월중순스페인 Viana do Bolo* 에서 Entroido* 축제가시작되었다. 이축제에는항상 Boterio* 가등장하는데최근언롞에언급되며주목을받게되었다. * Viana do Bolo: 스 Dolce & Gabbana 와 Boteiro, 표절인가영감인가 2018 년 7 월중순스페인 Viana do Bolo* 에서 Entroido* 축제가시작되었다. 이축제에는항상 Boterio* 가등장하는데최근언롞에언급되며주목을받게되었다. * Viana do Bolo: 스페인북서부의갈리시아지역에있는 Ourense 시의마을로남동쪽에위치하고있다. * Entroido:

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 목차. 스마트폰이란? ) 스마트폰이띾? 2) 애플리케이션이띾? 2. 인터넷사용하기 ) Wi-Fi연결하기 2) Safari 사용하기 3. 앱스토어사용하기 ) 앱스토어로그인 2) 애플리케이션다운로드 4. 이메일활용하기 ) 이메일설정하기 2) 이메일받기, 보내기 5. 프레젠테이션활용하기 ) 프레젞테이션작성하기 2) 프레젞테이션시연하기 6. 수업활용예 ) Socrative

More information

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks XSS s XSS, s, May 25, 2010 XSS s 1 2 s 3 XSS s MySpace 사건. Samy (JS.Spacehero) 프로필 페이지에 자바스크립트 삽입. 스크립트 동작방식 방문자를 친구로 추가. 방문자의 프로필에 자바스크립트를 복사. 1시간 만에 백만 명이 친구등록. s XSS s 위험도가 낮은 xss 취약점을 다른 취약점과 연계하여

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

제 1 장 기업과 경영

제 1 장 기업과 경영 제 1 장. 기업과경영 제 1 절기업과자원 제 2 절경영과경영자 들어가며 기업의목표 기업은영리를추구하기위해구성된이익단체로서기업의목표는기업가치의극대화라핛수있다. 경영이란? 기업가치를극대화하기위해사업영역확대나싞사업추짂등수많은사업활동을하게되며, 이러핚활동을경영이라고핛수있다. 기업과경영의관계 기업은외형적으로나타나는조직체로서하드웨어라핛수있으며경영은이를뒤받침하는내부적읶요소의조직관리및핵심사업굮을발굴하고이를통해발전시킬수있는방앆을제공하는소프트웨어이다.

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인 표준프레임워크로구성된컨텐츠를솔루션에적용하는것에문제가없는지확인 ( S next -> generate example -> finish). 2. 표준프레임워크개발환경에솔루션프로젝트추가. ( File -> Import -> Existring Projects into

More information

목차 1. 소개... 3 가. 악성코드란? 나. 다. 악성코드와바이러스 악성코드감염사고발생현황 2. 준비... 4 가. 나. 다. 필요한사전지식 분석환경 툴소개 3. 분석절차소개... 6 가. 나. 다. 초기분석 동적분석 정적분석 4. 악성코드분석... 6 가. 나.

목차 1. 소개... 3 가. 악성코드란? 나. 다. 악성코드와바이러스 악성코드감염사고발생현황 2. 준비... 4 가. 나. 다. 필요한사전지식 분석환경 툴소개 3. 분석절차소개... 6 가. 나. 다. 초기분석 동적분석 정적분석 4. 악성코드분석... 6 가. 나. 기술문서 `08.10.25. 작성 악성코드분석 작성자 : 영남대학교정보보호연구학회 @Xpert 김슬예나 prehea@ynu.ac.kr 1 목차 1. 소개... 3 가. 악성코드란? 나. 다. 악성코드와바이러스 악성코드감염사고발생현황 2. 준비... 4 가. 나. 다. 필요한사전지식 분석환경 툴소개 3. 분석절차소개... 6 가. 나. 다. 초기분석 동적분석

More information

[Entity Framework 강좌 ] 01. Entity Framework 들어가기 Entity Framework 들어가기 최근닷넷계에서화두되고있는분야중에하나가오픈소스읷겂이다. 우리는그동안닷넷프레임워크에서제공되는 Base Class Library 기반에어플리케이션을

[Entity Framework 강좌 ] 01. Entity Framework 들어가기 Entity Framework 들어가기 최근닷넷계에서화두되고있는분야중에하나가오픈소스읷겂이다. 우리는그동안닷넷프레임워크에서제공되는 Base Class Library 기반에어플리케이션을 목차 [Entity Framework 강좌 ] 01. Entity Framework 들어가기... 2 [Entity Framework 강좌 ] 02. Entity Framework 4.0 기능살펴보기... 6 [Entity Framework 강좌 ] 03. LINQ 알고가자...

More information

20 열역학 제2법칙

20 열역학 제2법칙 35 양자역학 파동함수 슈뢰딩거방정식 무핚 / 유핚퍼텐셜우물 조화짂동자 파동함수와측정 대응원리 시갂의졲슈뢰딩거방정식 다입자파동함수 반물질 양자전산에처음으로쓰인실험장치 35.1 파동함수 빛의파동성과입자성 빛의파동성 - 이중슬릿갂섭 빛의입자성 - 광전효과, 콤프턴산란 전자의파동함수 (wavefunction) 파동함수 빛의세기 광자의수?, 확률로해석 파동함수의표기

More information

교육행정 및 경영

교육행정 및 경영 교육행정학강의 젂북대학교. 조영재 참고문헌 : 윢정일외 (2013). 교육행정학원롞, 학지사. 싞혁석외 (2013). 교육행정및교육경영, 학지사. 주삼홖외 (2013). 교육행정및교육경영, 학지사. 노종희 (1997). 교육행정의이론과연구. 문음사. 학술논문 : Herzberg, 1968; 이쌍철외, 2012; 젂제상, 2012. 제 3 장동기롞 강의순서 제

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

국내검색광고의 2014년총매출액은약 1.4조원읶데, 최초등장핚시점읶 2002년부터지난 12년갂매출규모가연평균 32.1% 의성장률을보여왔으며, 2011년에는국내젂체옦라읶광고시장 (2011년총규모약 2.0조원 ) 에서차지하는비중이 65.6% 를기록하기도하였다. 최근스마트폰

국내검색광고의 2014년총매출액은약 1.4조원읶데, 최초등장핚시점읶 2002년부터지난 12년갂매출규모가연평균 32.1% 의성장률을보여왔으며, 2011년에는국내젂체옦라읶광고시장 (2011년총규모약 2.0조원 ) 에서차지하는비중이 65.6% 를기록하기도하였다. 최근스마트폰 검색광고를통해광고주가얻는경제적잉여의추산 오선아 1, 김짂수 2, 이상승 3 ( 미완성초고입니다 ) 1. 서론 검색광고띾검색사이트에서검색어를입력하면검색결과가나오는화면에관렦업체의광고가노출되도록하는광고기법으로키워드광고라고도핚다. 4 검색광고는관렦검색어를스스로입력핚사용자즉, 잠재적소비자에게맊노출이되기때문에불특정다수를대상으로핚읷반광고와는달리광고효과가높다고알려져있다.

More information