Justin Yoo

Author posts

AutoMapper 소개

in Dotnet · 3 min read

어플리케이션 개발을 하다 보면 수시로 마주치는 문제 아닌 문제가 바로 객체간 형 변환이다. 특히나 데이터 수송 객체 (Data Transfer Object, DTO) 패턴을 쓰다보면 항상 만날 수 있다. 여러 개의 DTO를 하나의 DTO로 합친다거나, 반대로 하나의 DTO를 여러개로 쪼갠다거나, 아니면 비슷하지만 다른 형태의 DTO로 바꾼다거나 하는 등의 작업들이 많은데, 이럴 때 지금 소개하는 AutoMapper는 상당히 유용하게 쓰일 수 있다. AutoMapper 기초 기본적인 사용 방법은 아 ...

Json.NET을 이용한 객체 Serialisation에 쓰이는 소소한 팁들

in Dotnet · 4 min read

Json.NET은 닷넷 어플리케이션 개발시 가장 자주 쓰이는 라이브러리들 중 하나이다. 심지어 MS도 ASP.NET MVC 라이브러리를 만들 때 자체 JavaScriptSerializer를 쓰지 않고 Json.NET 라이브러리를 이용할 정도니 말 다 했지. 그런데, JSON 객체는 굉장히 유연해서 어떤 타입을 정의하기가 힘들다. 하려면야 할 수 있겠지만, 보통 동적으로 속성이 생겼다가 없어졌다가 하는 경우가 많아서 C#과 같은 정적언어에서 직렬화(serialisation)하기에는 굉장히 껄끄러운 ...

Entity Context Library (ECL) 소개

in Dotnet · 5 min read

Entity Context Library (ECL)은 엔티티 프레임워크를 이용하여 어플리케이션을 개발하다 보면 자주 쓰게 되는 인터페이스들을 제공한다. 엔티티 프레임워크를 사용하는 많은 어플리케이션들은 보통 아래와 같은 문제를 안고 있는 편인데: 리포지토리 패턴을 좀 더 쉽게 적용시킬 수 있을까? 작업단위 패턴을 좀 더 쉽게 적용시킬 수 있을까? 여러개의 데이터페이스를 한 번에 쉽게 관리할 수 있을까? 물론 많은 개발자들은 저마다의 방법을 갖고 있긴 하지만, 그것들을 한 어플리케이션에 쓰고 ...

T4MVC 패키지 및 확장 기능 소개

in Asp Net-iis · 1 min read

ASP.NET MVC 웹 앱을 개발하다보면 Razor 스크립트에서 흔히 볼 수 있는 코드는 아래와 같은 것들이 있다. 딱히 문제가 될 것은 없다. 하지만, ActionName 또는 ControllerName 파라미터를 string 값으로 직접 하드코딩해야 하는 부분에서 오타가 난다면 에러가 나지 않을까? 이런 점에 착안해서 strongly-typed 콘트롤러명, 액션명을 아예 부여하면 어떨까 하는 아이디어에서 나온 NuGet 라이브러리 패키지가 바로 T4MVC이다. 이 패키지와 더불어 VS 확장 ...

닷넷 MVC 앱에서 Unauthorized와 Forbidden 구분하여 에러 페이지 전송하기

in Asp Net-iis · 3 min read

ASP.NET MVC 앱을 개발하다보면 자주 쓰는 속성 클라스들이 있는데, 그들 중 하나가 AuthorizeAttribute 클라스이다. 이 속성 클라스가 하는 일은 해당 콘트롤러 혹은 액션으로 리퀘스트가 들어올 때 사용자가 이미 웹사이트에 로그인 했는지 아닌지, 권한은 충분한지 아닌지를 체크하고 만약 로그인하지 않았거나, 권한이 충분하지 않다면 401 Unauthorized 에러 코드를 반환한다. 사실 로그인을 실패했을 때 반환해야 하는 에러 코드(401 Unauthorized)와 권한이 충분하 ...

JSON Web Token(JWT)으로 Session 객체를 대체할 수 있을까?

in Asp Net-iis · 4 min read

JSON Web Token(JWT)은 앱 개발에 있어서 서버와 정보를 주고받기 위해 쓰이는 하나의 공통 인증 규약으로 IEFT 네트워킹 그룹에서 그 규약을 지정하고 관리하고 있다. 발음은 jot좉으로 한다(...) 다른 인증 토큰들과 큰 차이점은 없지만, JSON 객체를 생성하고 그걸 암호화 시킨다는 점이 뚜렷한 차별점이라고 할 수 있겠다. 보통 이 JWT를 이용해서 서버와 정보를 주고 받을 때에는 HTTP 리퀘스트 헤더에 이 토큰을 넣어서 서버에서 헤더를 분석한 후 처리를 진행한다. 따라서, 헤 ...