본문 바로가기

분류 전체보기147

DRY 원칙! Don't Repeat Yourself. 반복하지 말라. 말 그대로 시스템을 개발함에 있어 똑같은 로직을 반복해서 작성하지 말라는 의미입니다. 간단 명료하지만 생각보다 잘 지켜지지 않아 결국 시스템 완성 후에 추가 요구사항과 버그 문제 해결에 큰 걸림돌로 되돌아 오지요. 중복의 특성은 아래와 같습니다. 1. 환경에 휩쓸려 선택의 여지가 없다고 생각하며 일으키는 안일함의 중복. 2. 간단하고 빠르게 진행할 수 있다고 착각하며 발생하는 성급함의 중복. 3. 중복 자체를 깨닫지 못하는 무지의 중복. 4. 충분한 정보 교환이 이루어지지 못해 발생하는 개발자간 중복. 우리가 늘쌍 겪고 있는 한국 IT 현실의 과거와 현재의 모습이기도 합니다. 비단 개발자 뿐만 아니라 기획자, 팀장, 업무 리더 등의 여러 파트에 책.. 2011. 11. 13.
운전면허 시험 불합격!!! 그간 별 이유 없이 안따고 방치했던 운전면허를 이번에 따려고 마음 먹은건 더 이상 부모님이 운전하는 걸 볼 수 없는 것과 나중에 결혼하여 아이가 생긴다고 했을 시 위급상황에서 필요하다는 판단 때문이었다. 이 두 가지가 아니면 아마도 면허를 딸 생각을 여전히 안했을 것이다. 그만큼 뚜벅이 생활에 익숙해서 차량으로 이동하는 것이 오히려 낯설기 때문이다. 아무튼 9월 중순에 필기를 치뤄 합격 (시험 공부를 너무 안한탓에 떨어질까 무서워 2종 자동으로 했는데 점수가 97점.... 1종 보통으로 할 껄 하는 뒤늦은 약간의 후회... 뭐, 그래도 운전으로 밥벌이는 안할 생각이니까 크게 상관은 없었다) 필기 합격 후 면허시험장(도봉면허시험장)을 나서는데 어느 호객꾼이 말을 걸어온다. 호객 =>"면허 따시는 거죠?!".. 2011. 10. 18.
NHibernate one-to-one Select N+1 문제 해결.... 지난 글에 표준 Linq를 제공하는 NHibernate.Query()에서 one-to-one에서 Select N+1 문제를 일으킨다는 내용을 보셨을 겁니다. (최근이죠...) 디밥 (http://debop.egloos.com/) 님께 자문을 구해 몇가지 해결책을 얻어 해결했기에 그 내용을 적어볼까 합니다. 저의 프로젝트 목적의 가장 첫 번째 기준은 "유연성"입니다. 유연성이라는 단어로 여러가지 장점 (확장성, 유지보수성, 테스트 용이성, 기타 등등)을 표현할 수 있겠는데요, 제가 목표로하는 유연성을 위한 구체적인 방법 중 하나는 "분리" 입니다. 구체적인 (코딩, 프레임워크 사용 등) 것 중에 하나인 하이버네이트는 ORM 도구로 데이터베이스의 데이터를 도메인 모델 클래스과 매핑해주는 도구입니다. 즉, 데.. 2011. 9. 18.
Visual Studio 의 초강력 리펙터링 툴인 ReSharper를 내려놓다.... 비주얼 스튜디오를 사용하시면서 한 번쯤 Visual Assist X (http://wholetomato.com/)라는 플러그인 툴을 들어보셨거나 사용해보신 적이 있을 겁니다. 다만 이 툴이 c# 쪽보다는 C++ 쪽에 좀 더 특화되어 있다라고 하더군요 (저는 하이라이팅용으로 잠깐 사용해봤습니다.) C# 쪽 (VB 포함) 에도 강력한 플러그인 툴이 있는데 바로 ReSharper (http://www.jetbrains.com/resharper/) 라는 도구입니다. 프레임워크 버전에 따라 코드를 간소화 시켜주거나 불필요한 키워드를 제거할 수 있게 개발자에게 통지해 주거나 코드상의 문제등을 경고하여 개발자로 하여금 혹시 모르고 지나칠 수 있는 부분까지 커버해주는 아주 훌륭한 툴입니다. 저는 작년 어느 과장님의 소.. 2011. 9. 15.