Patterns in “PATTERN-ORIENTED SOFTWARE ARCHITECTURE”

Layer A.P. 어플케이션을 구조화하기 위해 서브 태스크(Subtask)들을 그룹으로 묶기 위해 분해한다. 공통된 추상 레벨에 있는 서브 태스크들끼리 묶어서 그룹으로 분류한다.

Pipes and Filters A.P. 데이터 스트림을 처리하는 시스템 구조를 제공한다. 각 프로세싱 단계는 필터 컴포넌트로 추상화한다. 데이터는 파이프를 통해 연관된 필터들에게 전달된다. 필터들을 다양하게 재조합하여 시스템을 재구축할 수 있다.

Blackboard A.P. 정의되지 않은 도메인에서의 문제를 해결할때 유용하다. 솔루션에 대한 부분적이거나 대략적인 해법을 수립하기 위해 몇가지 특수한 서브시스템들의 지식을 조합한다.

Broker A.P. 분산 소프트웨어 시스템을 구조화할때 유용하다. 분산 소프트웨어 시스템은 분리된 컴포넌트들이 서로 유기적으로 조합되어 운영되는 시스템으로, 이러한 컴포넌트들 간의 통신을 관장하는 역활을 하는 것이 Broker이다.

Model-View-Controller A.P. 모델은 핵심기능과 데이터를 의미하고 뷰는 기능에 의한 데이터의 표현이며 컨트롤은 사용자의 입력에 대한 처리이다. 뷰와 컨트롤러는 사용자의 인터페이스를 구성하며 사용자 인터페이스와 모델간의 일관성 및 정합성을 보장한다.

Presentation-Abstraction-Control A.P. 계층구조를 이루는 에이전트들이 상호작용하는 소프트웨어 시스템에 대한 패턴. 각각의 에이전트는 하나의 어플리케이션의 특정 부분을 전담하며 에이전트는 프리젠테이션/추상/컨트롤로 구성된다.

Microkernel A.P. 변화하는 시스템에 대한 요구사항을 수용할 수 있도록 하는 패턴. 시스템에서 가장 최하단에 위치하는 핵심 기능을 추출해 내며, 추가된 요구사항에 대해 확장기능으로 정의하여 시스템에 손쉽게 추가할 수 있도록 한다.

Reflection A.P. 소프트웨어 시스템의 구조와 동작을 동적으로 변경할 수 있는 메커니즘을 제공.

Whole-Part D.P. 전체(Whole) 객체를 구성하는 컴포넌트(Part)를 정의한다. Whole 객체를 통해 Part 컴포넌트들의 관계를 맺으며, 이 Whole 객체를 통해서만 Part 컴포넌트와 통신할 수 있다.

Master-Slave D.P. 마스터 컴포넌트는 슬레이브 컴포넌트에게 작업을 분산시켜서 최종적으로 슬레이브로부터 그 결과를 취합한다.

Proxy D.P. 실제 컴포넌트가 아닌 대리자를 앞단에 두어 이 대리자를 통해 실제 컴포넌트와 통신을 한다. 실제 컴포넌트의 위치 추상화, 실제 컴포넌트를 사용하기 위한 인증 등과 같은 전처리는 물론 후처리에 대한 기능 추가가 용이하다.

Command Processor D.P. 사용자의 요청을 하나의 객체로 정의하여 관리하며 Undo/Redo와 같은 처리가 가능하다.

View Handler D.P. 시스템의 모든 뷰를 관리하는 책임을 분리하여 뷰들 간의 관계성과 연관된 작업을 쉽게 처리할 수 있도록 한다.

Forwarder-Receiver D.P. 투명한 IPC를 제공하고 Peer를 분리하기 위해 Forwarder와 Receiver를 분리한다.

Client-Dispatcher-Server D.P. 클라이언트와 서버 사이에 디스패처 레이어를 도입한다. 위치 투명성을 제공하고 클라이언트와 서버간의 통신에 대한 세부적인 구현을 캡출화한다.

Publisher-Subscriber D.P. 서로 긴밀하게 관계를 맺고 있는 컴포넌트들 간의 상태에 대해 정합성을 유지하는데 용이하다. Publisher가 책임을 지고 하나의 변경에 대해 다수의 Subscriber에게 변경을 통지한다.

존경하는 사람, 미야자키 하야오..

어릴적에 “미래 소년 코난”은 내 우상이라기보다는 내 친구였다. 힘 세고.. 빠르고.. 나름 잘생겼고.. 자기 여자친구 끔찍히 생각해주고.. 덤벙대지만, 어려운 상황에서 용감하게 극복해 내는.. 그런 코난은, 영웅이고 우상으로써 충분했지만, 코난은 내 영웅도.. 우상도 아니였다고, 내 친구였다.. 이유는, 난 그런 코난이고 싶었기 때문이다라면 이해가 될까….

“푸른 바다~ 저 멀리~ 파도가 넘실거린다. 하늘 높이 하늘 높이~ 뭉개구름 흘러간다~”, 이 노래가 아직도 귀가에… 사실 좀 노래가 슬프다. 하지만 노래의 끝은 희망으로 꽉~~ 채워지면서 마무리 된다.

내가 미야자키 하야오를 알게 된것은 센과 치히로의 행방불명을 보고서다. 어릴적에 봤던 코난의 분위기와 많이 닮은 캐릭터들… 그때까지도 센과 치히로의 행방불명을 만든 감독이 코난을 만든 감독인지도 몰랐다. 센과 치히로를 보고.. 이 작품을 만든 미야자키 하야오라는 감독에 대해 관심을 갖게 되고, 하야오 감독의 작품들을 DVD로 구입해서 소장하고 있다.

천공의 성 라퓨타, 센과 치히로의 행방불명, 모노노케히메, 붉은돼지, 바람의 계곡 나우시카, 이웃집 토토로, 하울의 움직이는 성.. 모두.. 하야오 감독이 직접 감독으로써 책임을 지고 제작한 작품들이다.

내가 하야오 감독의 작품을 좋아하는 까닭은 코난에서 느꼈던 그림풍, 코난과 같은 다른 사람보다 뛰어난 능력을 가진 주인공, 작품속에서 흘러나오는 멋지고 아름다운 멜로디와 음악들.. 그리고 작품속 캐릭터들의 넘치는 에너지와 활기… 타인을 위한 희생.. 그리고 희생으로 인한 승리와 벅찬 희망, 그리고 인간애… 다.

특히하게도 하야오 감독은 소녀 주인공이 상당히 많은 비중을 차지한다. 들장미소녀 캔디나 빨강머리 앤이나 소공녀나 인어공주처럼… 다소곳하고 아리따운 일반적인 소녀들의 이미지가 아닌, 남자 못지 않은 활력과 고집… 독립성을 전달하려는 의도가 다분한 작품들….

특히, 내가 좋아하는 작품은 모노노케 히메, 바람의 계곡 나우시카, 이웃집토토로다. 모노노케 히메는 내가 좋아하는 추상적 관념, “속도감”과 스릴 넘치는 에니메이션이기 때문이 좋아하고, 바람의 계곡 나우시카는.. 거신병으로 인해 세상이 파괴되어 곤충들이 세상을 가득 채워 인간사회를 파괴시켜 나가는 모습이지만, 실제로는 그러한 곤충의 출현과 인간에게 미치는 피해는.. 자연을 정화시키는 작용에 대한 현상이라는 점과 같은 그 소재는 물론이거니와 여자 주인공의 리더쉽과 따스함과 관용…… 에서  많은 감동을 느끼게 해준 작품이다. 그리고 이웃집토토로는 내가 가장 많이 본 작품으로.. 보고 있으면 마음이 너무도 편안해지는… 작품이다. 지금도 이 순간에도 토토로가 입 바람을 불어 바람을 타고 하늘로 올라가는 장면과 처음으로 토토로와 만나는 장면에서, 코를 골골 고는 모습의 토토로를 생각해보면 입가에 미소가 지어지고 마음이 평안해진다. 이웃집토토로는 하야오의 다른 작품에 비해 갈등이 없는, 말 그대로 평안, 평온, 편안한 내용으로 보는 내내 마음 따스한 작품이다….

특이한건 하야오 감독이 30년 넘게 작품활동을 하면서, “감독작품”으로써 제작한 단편 애니메이션 작품이 고작 7개밖에 되지 않는다. (물론 코난과 같은 연재 형태의 TV 방영물은 정확하지는 않지만 한두개 정도을듯..) 바로 여기에 내가 하야오 감독을 존경하는 다른 한가지 이유가 존재한다…. 그가 하나의 작품을 만들기 위해 얼마나 참고 인내하고, 연구하고 고민했을까… 애니메이션이라는 도구로 꿈과 사상을 표현하는 직업을 가진 그가.. 단지 만화 그리기가 좋아서 만화가가 되겠다고 다짐했던 그가… 하나의 작품을 만들기 위해, 얼마나 고민했는지 말이다.. 서두르지도 않고, 완전한 작품으로 가다듬어질때까지 다듬질을 반복했을… 오직 완전함을 위해 타협은 최소로 했을 그의 열정이, 전문성이, 자신감이… 그를 존경하게 만든다. 하야오 감독의 장인정신이… 그를 존경하게 만든다……..