선언적 코드를 사용한 ASP.NET Web API 데이터 검사
일반적으로 선언적(declarative) 코드는 명령형 코드에 비헤 가독성이 높고 테스트하기 쉬우며 코드의 양도 더 적습니다. System.ComponentModel.DataAnnotations 네임스페이스는 데이터를 검사하는 ValidationAttribute 하위 특성(attributes) 집합을 제공하며 이 특성들을 사용하면 데이터의 유효성을...
일반적으로 선언적(declarative) 코드는 명령형 코드에 비헤 가독성이 높고 테스트하기 쉬우며 코드의 양도 더 적습니다. System.ComponentModel.DataAnnotations 네임스페이스는 데이터를 검사하는 ValidationAttribute 하위 특성(attributes) 집합을 제공하며 이 특성들을 사용하면 데이터의 유효성을...
일반적으로 선언적(declarative) 코드는 명령형 코드에 비헤 가독성이 높고 테스트하기 쉬우며 코드의 양도 더 적습니다. System.ComponentModel.DataAnnotations 네임스페이스는 데이터를 검사하는 ValidationAttribute 하위 특성(attributes) 집합을 제공하며 이 특성들을 사용하면 데이터의 유효성을...
시작하기 지난 포스트에서 함수의 강한 참조를 사용하는 메신저 구현 방법과 이 방법을 사용할 때 변수에 저장되지 않는 개체가 가비지 컬렉션에서 생존하게 되는 현상을 살펴봤습니다. 이러한 현상이 항상 문제라고...
Mark and Sweep 가비지 컬렉션과 함수 기반 Mediator 패턴 – I Mark and Sweep 가비지 컬렉션과 함수 기반 Mediator 패턴 – II Mark and Sweep 가비지 컬렉션과 함수...
어제 집에서 빈둥거리던 중 Why Functional Programming in Java is Dangerous란 제목의 글을 읽었습니다. 이글은 다음과 같은 Clojure 코드를 Java로 구현하면 OutOfMemeryError 혹은 StackOverflowError의 재앙이 닥칠 것이라 경고하고 있습니다....
어제(2014년 6월 16일) 추가된 Java 코드가 공정하지 못했습니다. 예상보다 Java 코드가 느려서 검토해본 결과, 기존의 C++, C#, Node.js는 모두 rand() 네이티브 함수를 사용해 난수를 만들었기 때문에 난수 도메인의...
단위 테스트 만큼이나 통합 테스트는 필요하며 통합 테스트에 있어서도 자동화는 중요합니다. 단위 테스트를 통과한 모듈도 서로 조합되면 운영 환경에서 오류를 발생시킬 가능성이 존재하며 다양한 이유로 인해 단위 테스트가...
다중 계층 아키텍처는 관심사 분리(SoC, Separation of Concerns) 원칙 구현의 하나로, 각 계층은 전체 프로세스 흐름 중 담당하는 작업에만 집중하여 프로그램 코드의 복잡도를 낮출 수 있습니다. 하지만 계층간...
5/15/2014 추가 Microsoft ASP.NET Identity EntityFramework 패키지가 2.0.1 버전으로 업데이트 되었습니다. IdentityUser 클래스에 이메일 주소가 포함되었고 UserValidator 클래스를 사용해 이메일 주소 중복 여부를 검사할 수 있습니다. 사용자 모델...
현재 ASP.NET 웹 응용프로그램은 기본적으로 확장자가 json인 파일에 대한 MIME 맵이 설정되어있지 않습니다. 그래서 브라우저에서 JSON 정적 컨텐트에 접근하려하면 404.3 상태가 반환됩니다. HTTP Error 404.3 - Not Found The...
Introduction to TPL 지난 주 회사 팀에서 발표한 TPL(Task Parallel Library) 소개 세미나 자료입니다. Future 디자인 패턴, Thread와 Task의 차이, 비동기(IAsyncResult) Task, PLINQ(Parallel LINQ) 등을 간략히 설명합니다. 슬라이드 원본...
개요 Apache Thrift는 Facebook에서 개발되어 Apache에서 오픈 소스화된 통신 프레임워크로 다양한 프로그래밍 언어로 개발된 구성요소 사이의 인터페이스를 제공하는 역할을 합니다. 며칠 전 회사 팀에서 Thrift를 위한 .NET 클라이언트 라이브러리인 Thrift#에...
개요 얼마 전 Justin Yoo님의 논리 연산자와 이진 연산자의 차이에 대한 블로그 포스트가 그 분의 의도와는 다르게 페이스북 ‘생활코딩’ 그룹에 콜로세움(?)을 세운 사건이 있었습니다. 저는 포함되지 않아서 아쉬운...
지난 포스트에 이어… 지난 포스트에서 런타임에 동적으로 결정되는 속성 이름을 사용한 시퀀스 정렬과 CreateDelegate 메서드를 사용한 최적화 방법에 대해 살펴봤습니다. 정렬 작업과 더불어 Linq에서 가장 많이 사용되는 연산은...
배경 최근에 codeproject.com에서 정렬 키 속성 이름을 입려받아 동적으로 시퀀스에 OrderBy 연산을 적용하는 방법에 대한 포스트를 접했습니다. 데이터를 보여주고 분석하는 프로그램에서 동적으로 속성을 입력받는 상황은 흔히 발생합니다. 실제로 몇...
목록 JavaScript koa.js – ES6 generator 기반 Node.js 웹 응용프로그램 프레임워크 Grunt Devtools – Grunt를 위한 Chrome 개발 도구 확장 node-webkit - Chromium과 Node.js 기반의 데스크탑 응용프로그램 개발 도구...
Entity Framework Code First를 사용해 ASP.NET 개발을 하는 과정 중 데이터베이스를 완전히 삭제하고 새로 생성하고 싶을 때가 있습니다. 이때 App_Data 폴더의 파일을 삭제하는 것만으로는 충분하지 않습니다. 이렇게만 하면...
최고의 프로그래밍 언어가 무엇이냐는 물음에 답은 못하겠지만, C#이 가장 현대적으로 발전된 언어 중 하나라는 의견에 전적으로 동의합니다. C#은 급변하는 소프트웨어 환경의 요구에 발빠르게 대응해 왔습니다. 특히 Linq는 프로그래밍...
tl;dr Mono에서 MVC5 지금은 안됨 .Net 개발은 정신 건강을 위해 Windows 위에서 하자 요즘 닷넷 스터디를 한창 하고 있는데 요번에 새로 나온 MVC5를 기준으로 스터디가 진행되고 있다. 아직...
저는 개인 개발 장비로 MacBook Pro를 2년 정도 사용하고 있습니다. Node.js와 Java 개발을 하거나 MongoDB, RabbitMQ, Storm, Redis등의 도구를 설치하고 사용하기에 OS X는 만족스러운 환경을 제공해줍니다. 물론 Windows에서도...
일단 컨셉은 이전 포스트에서와 같이 잡았고, 이제 해당 컨셉을 대략적인 ERD로 구성해 보았다. PageSchemas: 페이지를 구성하는 메타데이타를 저장한다. 향후 내부적으로 Strongly-typed object를 생성하기 위한 클라스 정의로도 쓰인다. ElementGroups:...
배경 나는야 아는 사람만 아는 KUUG 운영자. 그동안 엄브라코 Umbraco 라는 CMS를 한 3년 써오다가 슬슬 직접 CMS를 만들어보자! 하고 호기롭게 작업을 시작했다. 아무래도 엄브라코는 2005년에 처음 만들어진...
JSFIDDL(jsfiddle.net)은 간단한 Javascript 코드를 테스트하고 싶을 때 아주 유용한 도구입니다. 여유가 되면 C#을 위한 유사한 서비스를 만들어 보고 싶은 생각을 가지고 있었습니다. 많은 양의 코드를 가진 .NET 프로젝트에서...
서버 가비지 수집(Server Garbage Collection) 다중 인스턴스로 구성된 ASP.NET 웹 사이트와 같은 서버 응용 프로그램의 경우 서버 가비지 수집(Server Garbage Collection)을 사용하는 것이 유리합니다. ASP.NET과 SQL Server는 응용프로그램의...