월간 보관물: 2017 2월

캡슐화와 정보 숨김

본능적으로 모호함을 피하려는 프로그래머들 사이에서도 캡슐화(encapsulation)라는 용어의 의미는 명확하지 않다. 가장 많이 사용되는 몇 가지 정의는 다음과 같다.

  • 정보 숨김(information hiding)과 동의어
  • 구현 숨김(implementation hiding)과 동의어
  • 데이터 숨김(data hiding)과 동의어
  • 응집을 통한 새로운 정체성 형성

정보 숨김의 정의는 논란의 여지가 없다. 70년대 초 David Parnas는 어려운 설계 결정과 변경될 가능성이 높은 설계 결정을 파악하는 것으로 모듈화를 시작하라 제안했고 이런 결정들이 다른 모듈로부터 숨겨지는 것을 정보 숨김이라 표현했다.

계속 읽기

Advertisements

두렵다면 테스트를 작성하라

얼마전 페이스북에서 다음과 같은 코드에 null 여부 검사가 필요한지 의견을 묻는 글을 발견했다.

public void MyCode(string param)
{
    if (param != null && TheirCode(param))
        DoSomething();
}

계속 읽기

이벤트 소싱(Event Sourcing) 소개

이벤트 소싱(Event Sourcing)

이벤트 소싱은 도메인 모델에서 발생하는 모든 이벤트를 기록하는 데이터 저장 기법입니다. 이벤트 소싱은 클라우드에서 구동되는 반응형 시스템에 적합하고 규모 확장이 쉽기 때문에 최근 더욱 주목받고 있습니다. 하지만 최종 상태만을 저장하는 기존 방식에 익숙한 프로그래머에게 이벤트 소싱은 낮선 기술입니다. 이 글은 이벤트 소싱을 배울 때 가장 먼저 이해해야하는 기본적인 특성을 설명합니다.

계속 읽기