닷넷 설계시 자바와 다른 가이드 #1 2005-09-07 11:54
카테고리 : 기본카테고리 http://blog.paran.com/acroama/5603633

닷넷에서의 아키텍쳐는 Presentation Layer, Business Layer, DataLayer 등으로 구성되어 있다.

여기서 Layer는 Logical Tier라 할 수 있다.

Presentation Layer는 UI Component와 UI Processing Component로 구성되어 있다.

Business Layer는 Service Interface, Business Workflow, Business Component, Business Entity로 구성되어 있다. 필요에 따라서 Service Interface와 나머지 사이에 Business Facade를 둘 수도 있다.

Business Facade의 역할은Service Interface의 공통 로직을 묶을 수도 있고,

하부의 비지니스 로직의 공통 로직을 묶을 수 있다.

Data Layer는 Data Access Logic Component와 Service Agent로 구성되어 있다.

1. 닷넷에서는 Presentation Layer와 Data Layer간의 스키마가 밀접할 경우, 혹은 성능상의 필요에 의해, Presentation Layer에서 Data Layer로의 직접 접근을 허용한다. (자바의 경우 명시적으로 적시한 것을 본적이 없다.)

2.Business Entity로 DataSet, DataReader 혹은 XML 문서 등을 강조한다. 요구 사항에 대해 사용자 정의 Entity를 만들 필요가 있는지를 먼저 결정하도록 하고 있다. 컬렉션이나 구조체 대신 복잡한 데이터 처리는 DataSet이나 XML 문서등을 Business Entity 내부에 유지하도록 하라고.. (그럼"Entity"는 어디로...)

3. Data Layer 구현에서는 Stored Procedure를 적극 활용하라. 즉,DBMS 의 기능을 적극 활용하여 성능 향상을 꾀하라. 단, 오버하지 마라 (Stored Procedure의 복잡한 tree로 구성하여 서로 호출한다거나, 본래의 의도와 상관없는 Control 목적으로 사용한다거나 등등). 달리 얘기하면, Data Intensive한 작업은 DBMS에 넘겨라. "Move the processing to the data, not the data to the processing"원칙을 따르라.

그 외에도 단언적인 가이드가 많다. (오... simple & precise)

1. Data Access Logic Component는 다른 Data Aceess Logic Component를 호출해선 안된다 !!!

2. DALC에서는 분산 트랜잭션을 시작해서는 안된다 !!!(Business Layer에서 해라)

3. DALC에서 메소스 호출 사이에 상태 유지를 하지 마라 !!!

난 이런 명확하고 자신있는 선언적인 가이드가 좋다.

비록 모든 것이 하나의 선언에서 커버되지 않을 지언정 뜨뜻미지근한 장광설로 이해에만 그치고 실행하기 막막한 것보다 백배는 낫다.

Posted by 퓨전마법사
,