알림: 이 포스트는 BDD 연작 시리즈 중 두번째입니다. BDD와 TDD의 차이 SpecFlow와 FluentAssertions를 이용하여 BDD적용하기 #1 SpecFlow와 FluentAssertions를 이용하여 BDD적용하기 #2 앞서의 글에서 BDD와 TDD의 차이를 간략하게 알아보았다. 더욱 자세한 내용은 인터넷을 뒤져보면 더 많이 나오니 생략하기로 하고, 이 글에서는 그렇다면 닷넷 애플리케이션을 개발하는 데 있어서 어떻게 BDD를 적용시킬 수 있을까에 대해 논의해 보도록 한다. []

알림: 이 포스트는 BDD 연작 시리즈 중 첫번째입니다. BDD와 TDD의 차이 SpecFlow와 FluentAssertions를 이용하여 BDD적용하기 #1 SpecFlow와 FluentAssertions를 이용하여 BDD적용하기 #2 BDD(Behaviour-Driven Development)와 TDD(Test-Driven Development)는 애자일 소프트웨어 개발 방법론에서 가장 널리 쓰이는 것들이다. 사실 xDD(X-Driven Development)라고 해서 수많은 X가 있긴 하지만 이들 중 거의 대부분은 TDD를 기반으로 한다. 그렇다면 BDD와 TDD는 어떤 차이가 있을까? StackExchange의 []

비주얼 스튜디오 2012는 기본적으로 ASP.NET MVC 4까지 지원한다. 따라서, 기본으로 생성해주는 템플릿을 그대로 사용한다면 아무런 문제가 없지만, NuGet 패키지를 ASP.NET MVC 5로 업그레이드한다면 아래와 같은 에러를 볼 수 있을 것이다. [A]System.Web.WebPages.Razor.Configuration.HostSection cannot be cast to [B]System.Web.WebPages.Razor.Configuration.HostSection. Type A originates from ‘System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ in the context ‘Default’ at location ‘C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll’. Type B originates from []

About the Guidelines The guidelines provide a practical way of developing .NET applications using C# 3.0 or later depending on versions that applications are using. The existing coding guidelines that Aliencube have been using were originally written in 2003 by Mike Kruger. Many development environments, however, have a lot been evolved from that point of []

소프트웨어 공학 쪽에서 나오는 얘기들 중에 코드 복잡도에 대해 얘기하다보면 항상 언급되는 용어가 있는데 바로 맥카비 복잡도 지수 McCabe’s Cyclomatic Complexity 라는 것이 있다. 이와 관련한 논문은 궁금하면 직접 읽어보면 되고1, 그냥 간단하게 말하자면, 소프트웨어 코드가 복잡해지지 않게끔 간결하게 짜야 한단 얘기다. 이건 TDD를 프로젝트에 적용하다보면 꼭 겪는 문제이기도 한데, 메소드 하나가 엄청나게 길다든가, 복잡하다든가 []

닷넷 웹 어플리케이션을 작성하다보면 여러 가지 방법으로 로그를 작성하게 된다. 직접 로그 핸들러를 만든다거나 log4net 또는 ELMAH 등의 라이브러리를 사용한다거나 해서 핸들링하게 될텐데, 이 때 종종 이벤트 로그를 활용할 일이 있다. 그런데 윈도우 시스템별로 관리자의 권한 설정에 따라 아래와 같은 에러 메시지가 나타날 수 있다. Security Exception Description: The application attempted to perform an operation []