경계: 선 긋기

  • 소프트웨어 아키텍처는 선을 긋는 기술. (저자는 이러한 선을 경계boundary라고 부름)

  • 경계는 소프트웨어 요소를 서로 분리하고, 경계 한편에 있는 요소가 반대편에 있는 요소를 알지 못하도록 막음.

  • 아키텍트의 목표는 필요한 시스템을 만들고 유지하는 데 드는 인적 자원을 최소화하는 것이라는 사실을 상기하자.

    • 인적 자원의 효율을 떨어뜨리는 요인 → 결합coupling. 특히 너무 일찍 내려진 결정에 따른 결합.

Marshalling vs. Serialization
마샬링marshalling

컴퓨터 프로그래밍에서 마샬린은 하나 이상의 프로그램 또는 연속되지 않은 저장 공간으로부터 데이터를 모은 다음, 데이터들을 메시지 버퍼에 집어넣고, 특정 수신기나 프로그래밍 인터페이스에 맞도록 그 데이터를 조직화하거나, 미리 정해진 다른 형식으로 변환하는 과정을 말한다.

  • 원래, 마샬이란 말을 지키거나 축제 준비를 위해 물건들을 가지런히 하는 것을 가르킨다.

  • 의식에서, 마샬링이란 여러 벌의 코트 팔들이 하나의 구도를 이루도록 배열하는 것이다.

  • 군에서, 마샬링은 전투 준비를 위해 군대를 모으고 정렬시키는 것을 의미한다.

직렬화serialization

"마샬링하다"와 "직렬화하다" 는 파이썬 표준 라이브러리에서는 동일하게 간주하지만, 자바 계열 RFC 2713에서는 동일하게 간주하지 않는다.