Posts Tagged ‘Aspect’

AOP가 대체 뭐냐?

Wednesday, December 5th, 2007

OOP

객체 지향이라는 것은 엄밀하게 말하자면 컴퓨터에 관한 이야기가 아니다. 일종의 세상을 바라보고 이해하는 인식의 방법론이라고 할 수 있다. 객체지향에서는 모든 삼라만상(사건, 사물, 관념)을 별개의 독립된 개체로 본다. 각각의 개체는 속성행위를 가지며, 이 개체들은 인터페이스란 것을 통해서 서로 의사소통한다.

이 과정에서 협력이란 것이 발생하고, 특정 목적의 범주에 포함되는 객체들을 묶어 패키지라고 부르며, 이것이 좀더 거시적인 수준에서 나타날 경우 시스템이라고 한다. 이것이 OOP가 세상을 인지하는 방식이다.

OOP적 설계란 지금까지 설명한 내용을 거꾸로 적용하는 과정이다. 전체 시스템의 목적을 상정하고, 시스템이 목적을 달성하기 위해 협력해야할 패키지들을 정의하고, 패키지의 목적을 달성하기 위한 구성원들을과 이 구성원들이 서로에게 가진 역할(인터페이스)를 정의하는 과정이다.

이로서 프로그래밍은 한결 간단해졌다. 마치 현실문제를 다루듯 설계하고 프로그래밍 하는 것은 철학적으로도 아름다울뿐만 아니라, 설계와 물리적 구현을 거의 일치시킴으로써 생산성의 극대화를 가져올 수 있었다. 하지만 좋던 시절은 끝나버리고 말았다. 씨발 (more…)