Nature of Order 발표회 내용 정리 자유롭게

관련글1: 「Nature of Order 스터디 발표회」참석
관련글2: 일본 히가시노 고등학교 (NOO 관련)


배경

 요즘 개발자라면 아마도 디자인 패턴(Design Patterns)에 대해 모르시는 분은 없을 겁니다. 그리고 그 패턴을 얘기하자면 빠트릴 수 없는 것이 크리스토퍼 알렉산더(Christopher Alexander)의 저저 ─ A Pattern Language 입니다. 한마디로 패턴의 창시자가 바로 알렉산더 크리스토퍼라고 할 수 있는데, 원래는 건축에 적용되는 패턴에 대한 얘기였습니다.

 Nature of Order(이하 NOO)는 바로 그 A Pattern Language를 포함해서 훨씬 더 방대한 내용을 다루고 있는 4권짜리 책입니다. 물론 저자도 역시 알렉산더 크리스토퍼가 되겠습니다. 사실 저도 아직 읽어본 적이 없으니(게다가 원서이고...) 잘은 모릅니다만... 대략 그렇다고 합니다. (라는 무책임 발언!)

 그래서, 저번 발표회에서 다룬 것은 NOO의 두번째 권인 'The Process of Creating Life'에 대한 내용입니다. 발표회 자체는 2시간 정도 진행이 되었지만, 실제로 설명을 들을 수 있는 시간은 그리 많지 않았습니다. 예초에 책 한권 분량의 내용을 2시간만에 다 이해한다는 것도 무리가 있겠지요. 그래도 부족하나마 대략 내용을 정리해 보았습니다.


#1. Living Structure

 NO에서는 유난히 Living Structure에 대한 얘기가 많이 나오는 것 같습니다. 풀어보자면, '살아있는 구조' ···? NO에서의 건축은 결국 이 Living Structure를 지향하는 것 같습니다.

 그럼 이 Living Structure란 대체 무엇인가? 크리스토퍼 알렉산더 님 曰, Living Structure는 다음과 같은 15가지 Property(속성)을 가지고 있다고 합니다. (※ 발표회에서 받은 자료에서 인용)

  1. Levels of Scale: A balanced range of sizes is pleasing and beatiful.

  2. Strong Centers : Good design offers area of focus or weight.

  3. Boundaries : Outlines focus attention on the center.

  4. Alternating Repetition : Repeating elements creates a sense of order and harmony.

  5. Positive Space : The background should reinforce rather than detract from the center.

  6. Good Shape : Simple forms create an intense, powerful center.

  7. Local Symmetries : Organic, small-scale symmetry works better than precise, overall symmetry.

  8. Deep Interlock & Ambiguity : Looping, connected elements promote unity and grace.

  9. Contrast : Unity is achieved with visible opposite.

  10. Gradients : The proportional use of space and pattern creates harmony.

  11. Roughness : Texture and imperfections convey uniqueness and life.

  12. Echoes : Similarities should repeat throught a design.

  13. The Void : Empty space offer calm and contrast.

  14. Simplicity & Inner Calm : Use only essential; aboid extraneous elements.

  15. Not-Seperateness : Design should be connected and complementary, not egocentric and isolated.

사실 여기에 열거된 항목 하나 하나를 다 이해하는 것도 지금 저에게는 벅차기만 합니다. 언제 한번 NOO를 정독해 보지 않으면 안될듯...


#2. 패턴의 한계

 그럼, 저런 Living Structure는 Pattern의 조합만 가지고 만들 수 있을까?
 물론 대답은 No 입니다.

 디자인 패턴도 그렇지만, 건축에서도 단지 여러 패턴을 레고 블록 쌓듯이 조합하는 것만으로는 아름다운 건축은 되지 못한다고 합니다. 프로그래밍 코드로 얘기하자면, 프로그램이 단지 함수 하나 하나가 부품처럼 모여서 조립되는 것이 아니라, 코드와 코드 사이, 함수와 함수 사이, 그리고 객체와 객체 사이에도 연관과 흐름이 존재합니다. 그런데 이걸 보지 못하고 부분에만 집중하다 보면 전체적으로는 밸런스가 깨지기 마련. 단순히 부분적으로 디자인 패턴을 마구 적용한다고 해서 멋진 프로그램이 되는 건 아니라는 얘기로 저는 이해했습니다.

 그래서 이것을 보완하기 위해 나온 것이 시퀀스(sequence)라는 개념입니다. 말하자면, 패턴을 그냥 적용하는게 아니라 어떤 순서에 의해서 적용해 나가야 한다라고 하는데... 소프트웨어 개발 쪽에서는 리펙토링과도 연관된게 아닐까 조심스럽게 추측해 봅니다. 이 얘기를 처음 들었을 때 떠오른 것이 바로「Refactoring to Patterns」였거든요.

 그리고 TDD(테스트 주도 개발)의 방법과도 연관이 있습니다. TDD의 기본은 먼제 테스트 케이스를 작성한 다음에 그것이 통과될 수 있도록 코드를 짜는 방식으로, 처음에는 가장 핵심적인 테스트 케이스 하나를 만든 다음에 점차 테스트 해야될 케이스를 늘려가면서 역시 이것들을 통과하도록 코드를 만들고, 주기적으로 리펙토링을 거치는 방식의 개발방법입니다. 이런 TDD의 과정속에 바로 시퀀스가 있는 것이죠.


회고

 비록 분야는 건축이지만, 저자인 알렉산더 크리스토퍼 부터가 수학, 물리학, 생물학, 심리학, 건축학, 도시계획, 전산학, 사회학 등의 다양한 배경을 가지고 이 책을 썼다고 합니다.

 위에서 나온 'Local Symmetries' 라는 것이 학문에도 적용될 것 같습니다. 얼핏 보기엔 서로 관계가 없어 보이는 분야도 자세히 들여다 보면 부분적으로는 비슷한 구석이 있는 것이죠. 그리고 바로 이 공통된 부분을 통해서 서로 다른 세계가 연결 되는거겠죠.

 한 우물만 파는 것도 어려운 일입니다만, 더 깊이 파기 위해서 넓게 파야할 때도 있는 법입니다. 저는 새삼 더욱 그런 생각이 들었습니다. NOO에서 너무나 경계가 확실한 것은 Unliving 이라고 합니다. 경계(Boundary)를 가지고 있으면서도 완전히 닫혀있지 않고 확장할 수 있는 여지를 열어 두는 것. 그것이 Living이라고 합니다.

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://Sizuha.egloos.com/tb/4172775 [도움말]

덧글

  • all2one 2009/06/24 16:47 # 삭제 답글

    흥미롭군요. 잘 읽었습니다. ^^
  • 2009/06/24 22:07 # 삭제 답글

    비공개 덧글입니다.
  • 시즈하 2009/06/24 23:45 #

    감사합니다. 수정했습니다.
    저도 아무 생각없이 옮기다 보니...^^;
덧글 입력 영역