M, V 그리고 C의 각방생활(6) - 유효성 검사(2)

.NET/MVC 2 각방생활 2010. 6. 27. 09:00

유효성 검사 안끝난겨? 네. 아직입니다. ^^; 원래는 마무리를 지으려고 했었는데요. 갑자기 jQuery 가 급땡기는 바람에 슬슬 관련글을 적어보렵니다. 클라이언트단에서 유효성검사하기 지난번 포스팅을 보시면, 서버단의 모델 클래스에 DataAnnotaion을 사용하여 유효성검사를 했습니다. 물론, 클라이언트단에서도 자바스크립트를 사용하여 유효성검사를 할 수 있지만, 이는 동일한 유효성 검사를 두번(서버와 클라이언트) 하게됩니다. DRY(Don't Repeat Yourself) 규칙에 위반되는 작업인 거죠. 근데 왜? 저 아시는 분 없죠? 듣보잡인거죠. 그래서 이렇게 앞뒤가 없습니다. 이번 포스팅을 먼저 했으면 하는 마음도 있지만, 뭐 이렇게 된 것 그냥 적어내려갑니다.^^ DRY에 반하는 작업을 한다고 ..

M, V 그리고 C의 각방생활(5) - 초간단 사이트 만들기(2)

.NET/MVC 2 각방생활 2010. 6. 21. 09:00

모기와의 사투를 버린 끝에 이제야 컴퓨터 앞에 앉아 글을 쓸 수 있게 되네요(새벽 1시네요ㅡ.ㅡ) 아흑. 비록 눈이 따갑고 눕고 싶지만, 이제는 정말 제 자신과의 약속을 지키기 위해 한자 한자 적어나가렵니다.^^ 지난 시간에 유효성 검사에 대해 살펴봤는데요. 이제 본론으로 넘어와서 적용해봐야겠죠? 유효성 검사 적용하기 저희가 USER 모델을 생성할때 엔터티 프레임워크(엔티티가 입에 붙었는데 한글판에 엔터티라고 명시되어있네요;;)를 통해 생성한 것 다들 기억하시죠? 엔터티 프레임워크의 경우 자동으로 모델 클래스를 생성해 주는 것도 다들 아실겁니다. 또한, 엔터티 프레임워크로 생성된 모델클래스를 직접적으로 컨트롤 할수 없다는 것도.. 그렇다면 유효성 검사 부분은 도대체 어디다 둬야 한단 말이냐? 파샬 & 메..

M, V 그리고 C의 각방생활(4) - 유효성 검사

.NET/MVC 2 각방생활 2010. 5. 31. 09:00

안녕하세요. 지난 포스팅에 이어서(넘흐 오랜만이죠^^;) 시작하겠습니다. 아마 다들 잊으셨을 겁니다. 여기까지 했었죠? _db.SaveChanges() 를 하려 했더니, 에러가 발생했습니다. 자세히 들여다 보니 ID 에 NULL 값을 넣을 수가 없다네요. 이래서 에러가 발생했죠. 아~ 이래서 사용자가 빈 값을 넣으려 하면 막아야하겠구나~ 라는 생각이 번뜩 드셨을겁니다. 유효성 검사! 유효성검사라 하면 필수입력값에는 꼭 데이터를 입력해야하고, 데이터의 타입이나 길이에 맞게 들어오게 체크하는 것을 말하겠죠? ASP.NET MVC 프레임워크에서는 모델 스테이트(Model State)를 제공합니다. 정확히 말하면 model state dictionary 라고 해서 유효성 에러들을 표시하기 위해 사용됩니다. 유효..

ASP.NET MVC - Validation(4)

.NET/MVC Basic 2010. 5. 27. 09:00

이제야 현실을 깨닫고 정신차리기 시작한 쎄스 인사올립니다^^ (하지만, 언제 다시 나사가 풀릴지는...헤헤) Data Annotation과 함께하는 유효성 검사 이번에는 유효성검사에 데이타 어노테이션 밸리데이터(이하, DAV)를 사용해보겠습니다. DAV는 Required 나 StringLength 같은 몇 속성만 추가하여 간단하게 유효성검사를 수행합니다. DAV 속성 사용하기 데이터 어노테이션 모델 바인더는는 밸리데이터 속성으로 유효성을 검사합니다. System.ComponentModel.DataAnnotations 네임스페이스는 다음의 밸리데이터 속성을 포함합니다. Range - 값의 범위를 나타내는거죠. RegularExpression - 정규식에 매치가 되는지 확인하는것이고요. Required - ..

Article Thumbnail
ASP.NET MVC - Validation(3)

.NET/MVC Basic 2010. 5. 26. 09:00

이번 시간은 컨트롤러에 있었던 유효성 검사 로직을 서비스 계층으로 옮기도록 하겠습니다. 관점의 분리가 향후 유지보수에 날개를 달아주길 기대하며... 서비스 계층에 유효성 검사를 일단 기분좋게 웃으면서 시작하시죠. ㅎㅎㅎ 관점을 분리시키자 ASP.NET MVC 어플리케이션을 빌드하게 될때, 컨트롤러 액션들안에 데이터베이스 로직을 두는것은 그렇게 바람직하지는 않습니다. 데이터베이스와 컨트롤러 로직이 혼합되게되면, 향후 유지보수가 더 어려워질것이기 때문이죠.(아니라고 생각된다면, 이번 포스팅은 안보셔도 됩니다ㅡ.ㅡ) 음.. 추천되는 것은 데이터베이스 로직을 리파지터리 계층에 두는 것이죠. 예를들어, TelDirRepository라고 이름지은 간단한 리파지터리가 있습니다. 이 리파지터리는 어플리케이션에서 디비에..

ASP.NET MVC - Validation(2)

.NET/MVC Basic 2010. 5. 25. 09:00

새로운맘으로 다시 시작하는 무책임 쎄스입니다. 그래서!!! 군말없이 바로 시작하도록 하겠습니다. IErrorDataInfo 인터페이스로 유효성검사하기 IErrorDataInfo 인터페이스를 이용하여 유효성 검사를 어떻게 하는지 알아보도록 하겠습니다. 일단 해보자 TelDir 테이블을 생성하고, 엔티티 프레임워크로 모델 클래스를 생성합니다. 그러면, 다음과 같은 엔티티가 표현되겠죠? 하도 많이 해서 지겨우실겁니다-_-;; 다른 예제를 생각해야하는데.. 제가 게을러서; 아이디어도 없고; 컨트롤러 클래스 작성하기 다음의 컨트롤러 소스를 보시죠. using System; using System.Collections.Generic; using System.Linq; using System.Web; using S..

Article Thumbnail
ASP.NET MVC - Validation(1)

.NET/MVC Basic 2010. 5. 24. 09:00

이번 포스팅은 유효성검사에 대해서 나눠보겠습니다. 유효성검사라 하면 필수입력값에는 꼭 데이터를 입력해야하고, 데이터의 타입이나 길이에 맞게 들어오게 체크하는 것을 말하겠죠? 자, 이번시간 ASP.NET MVC 가 알려주는 model state 와 validation 헬퍼 도우미에 대해서 알아보도록 하겠습니다. Model State 알기 모델 스테이트(Model State)는 정확히는 모델 스테이트 딕셔너리라고 해서, 유효성 에러들을 표시하기위해 사용됩니다. 예를들어, 다음의 소스를 보면 데이터베이스의 TelDir을 Add 하기 전에 TelDir의 속성들의 유효성을 체크합니다. 유효성 검사중에 이 프로퍼티들에서 fail이 나면 model state dictionary(컨트롤러 클래스의 ModelState를..

Article Thumbnail