본문 바로가기

전체 글714

[ASP.NET MVC] AsyncController 테스트 ※ 이 포스팅은 지극히 주관적인 생각을 정리한 것이므로 틀린 부분이 있을 수 있습니다. 혹시나 잘못된 지식이나 틀린 부분이 있다면 지적해주세요. 정답이 아니니 참고만 하시고, 더 많은 지식 공유 부탁드립니다. 2013년 4월 22일 지난 번에 Controller 테스트를 해보면서 비동기 컨트롤러에 대한 궁금증이 있었는데 자세히 알아 보기 위해서 AsyncController에 대해 공부해보게 되었다. 그냥 Controller도 요청 마다 인스턴스를 생성하기 때문에 요청에 따른 처리는 비동기인 것 같다는 생각이 들어서 비동기를 위한 컨트롤러와 그냥 컨트롤러의 차이가 무엇일까 혼동이 되었었다. AsyncController는 사용 방식을 잘 몰라서 MSDN을 뒤져가며 찾아보았다. 먼저 AsyncControlle.. 2013. 4. 22.
[ASP.NET MVC] Controller 테스트 ※ 이 포스팅은 지극히 주관적인 생각을 정리한 것이므로 틀린 부분이 있을 수 있습니다. 혹시나 잘못된 지식이나 틀린 부분이 있다면 지적해주세요. 정답이 아니니 참고만 하시고, 더 많은 지식 공유 부탁드립니다. 2013년 4월 16일 컨트롤러가 어떻게 동작하는지 테스트 해보기 위해서 우선 요청할 때 마다 인스턴스가 생성하는지를 테스트 해봤다. 컨트롤러의 생성자가 호출 될 때마다 static으로 선언한 정수 값을 증가시키도록 해봤더니 요청을 할때마다 그 값이 증가된다. 한번 더 확인하기 위해 일반 변수 값을 선언하여 요청을 처리하는 부분에서 증가하도록 해봤더니 같은 요청을 할 때마다 그 값이 초기화된다. 그러므로 컨트롤러 클래스는 요청이 있을때마다 생성되고 소멸되는 객체! 다음으로는 컨트롤러가 생성되는 것이.. 2013. 4. 16.
[C#] Attribute 활용 2013년 4월 15일 C++에서는 없던 생소한 C#의 기능! 이번엔 Attribute! C#으로 짜여진 소스를 보다보면 클래스 위에 "[HTTPGet]"과 같은 형식의 문구를 볼 수가 있다. 나 같은 경우에는 클라이언트로부터 HTTP요청을 받을때 Get으로 받을 경우와 Post로 받을 경우에도 사용하고, MVC에서 라우팅을 위한 액션 이름을 지정해줄 때도 사용했었는데 그냥 따라 쓰기만 하다가 구체적으로 알고 싶어서 찾아봤다. 우선 간단해보이지만 이 형식 자체가 클래스로 되어 있다. 구현부분을 따라가보면 Attribute 클래스를 상속받은 클래스로 구현되어 있는 것을 볼 수 있다. 클래스명에서 Attribute부분을 제외한 부분이 "[]"부분에 들어가게 되는 것! 클래스 내부에 메소드를 구현해서 메소드 .. 2013. 4. 15.
[C#] 확장 메소드 2013년 4월 15일 C#으로 짜여진 소스를 분석하다가 도무지 이해할 수 없는 코드가 있어서 찾아보다가 새로운 기능을 알게되었다. C++로만 작업하다가 급 C#으로 넘어가게 되어서 생소한 부분들이 많았는데 이 것도 참 생소한 개념! 내가 본 소스의 내용은 이랬다. 기본적인 내용만 있는(멤버변수 선언과 싱글톤으로 사용하기 위한 객체 할당부분) 클래스가 있었고 이 클래스에 대한 구체적인 내용은 구현되어 있지 않았는데 이 클래스의 객체를 통해 다른 static class의 메소드들을 사용하고 있었던 것! 아니 어떻게 이게 가능하지...? 한참 고민하다 찾아보니 바로 "확장 메소드" 라는 개념이었다. 이 확장 메소드를 사용하기 위한 포인트는 확장 클래스가 static으로 선언되어야 하고 메소드들도 static.. 2013. 4. 15.