본문 바로가기

소프트웨어아키텍처

[SA강좌] Part 4-34 상세 설계에서 해 야할 작업 상세 설계에서 해 야할 작업 상세 설계는 개념 설계를 구현이 가능한 수준의 설계 산출물로 변환하는 작업이다. 다음과 같은 작업을 수행한다. 개념 설계의 클래스에 대한 속성 타입 설정 오퍼레이션의 매개변수와 반환값 설정 클래스의 relation을 association 클래스 등으로 구체화 메커니즘을 구현하기 위한 클래스 추가 설계 패턴이 적용되는 클래스 추가 DB 전문가와 협의하여 엔터티 클래스의 상속 제거, 정규화 양 방향 association을 단 방향으로 수정 불필요한 association 제거 PK와 FK 등 키 설정 오퍼레이션 중 DB에서 구현할 것을 표시함(stored procedure, trigger, check등) transaction, 보안, isolation level을 위한 stereo.. 더보기
[SA강좌] Part 4-33 데이터베이스 관련 상세 설계 산출물 데이터베이스 관련 상세 설계 산출물(Database Modeling in UML) DB와 관련한 설계 산출물 정의는 아래와 같다. 그림 Ⅴ-36. DB 설계 산출물 정의 그림 Ⅴ-37. 클래스, 속성 그리고 오퍼레이션 그림 Ⅴ-38. UML Class model notation 그림 Ⅴ-39. Aggregation Relationships DB설계 과정 시 클래스들과의 관계(association), 상속(inheritance) 그리고 집합(aggregation)을 포함시켜 클래스 모델을 작성한다. Model-View-Control 설계 패턴을 사용하여 지속성(persistent)을 요구하는 클래스를 식별한다. 그림 Ⅴ-40. UML Relationship 식별된 지속성 클래스에 대하여 관계형 테이블 맵을.. 더보기
[SA강좌] Part 4-32 서버 관련 상세 설계 산출물 서버 관련 상세 설계 산출물 서버 관련 엔터티빈 설계 정의는 아래와 같다. 그림 Ⅴ-34. 엔터티 빈 설계 정의 예제 서버 관련 세션 빈 설계 정의는 아래와 같다. 그림 Ⅴ-35. 세션 빈 설계 정의 예제 서버 관련 설계 산출물 정의시 세션빈에 대한 알고리즘 설계서와 시퀀스 다이어그램을 포함하여야한다. 더보기
[SA강좌] Part 4-31 UI 상세 설계 산출물 UI 상세 설계 산출물 UI 상세 설계 산출물 구조는 아래와 같다. 그림 Ⅴ-32. UI네비게이션 모델 UI에 대한 화면 정의는 아래와 같다. 화면 개요 병원 시스템을 사용할 환자가 시스템의 사용자로 등록하기 위한 화면으로 크게 기본정보, 연락처 정보, 기타를 입력하고 등록을 요청한다. 그림 Ⅴ-33. UI 화면 정의 예제 화면 구현 방법 기술 화면의 입력 제약 사항 이름은 20자리로 제한하시요. 주민등록번호는 14자리로 제한하시요. 생년월일은 화면에서 받은 데이터를 YYYYMMDD의 형식으로 저장하시요. 성별은 남자는 string "M", 여자는 string "F"로 저장하시요. 혈액형은 "A","B","AB","O"로 구분하시요. RH형은 "RH+","RH-"로 구분하시요. 우편번호는 10자리로 제한.. 더보기
[SA강좌] Part 4-3 상세 설계 산출물 상세 설계 산출물 UML 표기법을 최대한 활용하고 개발자들이 상세 설계 문서를 보고 개발을 진행할 수 있도록 하는 상세 설계 산출물을 정의한다. 그림 Ⅴ-31. 설계 산출물 구조 더보기
[SA강좌] Part 4-24 설계 패턴 적용 방법 설계 패턴 적용 방법 설계 패턴을 적용하기 전에 컨트롤러는 도메인 객체를 호출하기만 할 뿐 업무 로직을 가지고 있지 않다고 생각한다. 즉 도메인 객체가 비즈니스 로직을 나누어 가지고 있다. 도메인 객체는 Transaction Script, Table Module, Domain Model로 구별되며 가장 단순하게 구현할 수 있는 방법은 Transaction Script이다. Domain Model은 가장 익숙해지기 어려운 방식이다. 그러나 Domain Model을 사용하면 복잡한 모델도 쉽게 구현할 수 있다. 또한 Domain Model은 데이터베이스와 연결하는 부분이 복잡하다. Table Module은 이 두가지 사이에서 적절한 선택이 될 수 있다. Data Source Layer에 대해서는 Transa.. 더보기
[SA강좌] Part 4-23 Query Object Query Object 패턴의 정의 데이터베이스 쿼리를 표현하는 객체 그림 Ⅴ-30. Query Object 더보기
[SA강좌] Part 4-22 Metadata Mapping Metadata Mapping 패턴의 정의 메타 데이터 안에 OR 매핑에 대한 상세한 사항을 집어넣는다. 그림 Ⅴ-29. metadata mapping 패턴의 구조 OR 매핑을 취급하는 많은 코드들이 데이터베이스의 필드가 객체의 필드와 어떻게 매핑되는가를 정의한다. 결과적인 코드는 복잡하고 동일한 코드가 반복되는 경우가 많다. Metadata Mapping을 사용하면 개발자가 단순한 테이블 형태의 매핑을 정의하여 데이터를 읽고, 쓰고 업데이트하는 코드를 자동으로 생성할 수 있다. 어떻게 작동하는가? Metadata mapping을 사용하기 위한 가장 큰 결정사항은 메타데이터의 정보를 실행중의 코드에 어떻게 반영하는가이다. 두 가지 방법이 있는데 첫 번째는 코드 자동화를 사용하는 것이고 두 번째는 refl.. 더보기
[SA강좌] Part 4-21 Single Table Inheritance 패턴 단일 테이블 상속 패턴의 정의 단일 테이블 상속 패턴은 클래스들의 상속도을 다양한 클래스들의 모든 필드를 위한 컬럼을 가진 단일 테이블로 표현하는 것이다. 그림 Ⅴ-28. 단일 테이블 상속 패턴의 구조 단일 테이블 상속 패턴의 설명 관계형 데이터베이스는 다중 상속을 지원하지 않는다. 이러한 이유로 개체들을 데이터베이스에 매핑할 때 상속 구조를 관계의 테이블로 어떻게 표현할지를 고려해야한다. 관계형 테이터베이스에 매핑할 때, 다중 테이블에 있는 상속 구조를 처리할 때 최소의 조인을 할 수 있게 해야한다. 단일 테이블 상속 패턴은 상속 구조의 모든 클래스들의 모든 필드을 단일 테이블에 매핑한다. 단일 테이블 상속 패턴은 언제 사용하는가? 단일 테이블 상속은 상속구조를 관계형 데이터베이스에 있는 필드들의 매핑.. 더보기
[SA강좌] Part 4-20 Serialized LOB 패턴 시리얼라이즈 LOB(Serialized LOB) 패턴 시리얼라이즈 LOB 패턴의 정의 시리얼라이즈 LOB 패턴은 동기화된 개체들을 데이터베이스 필드에 저장된 단일 큰 개체 개체의 그래프를 저장한다. 그림 Ⅴ-27. 시리얼라이즈 LOB 패턴의 구조 시리얼라이즈 LOB 패턴의 설명 시리얼라이즈 LOB 패턴의 예제:XML에 있는 부서 계층을 시리얼라이즈 class Customer ... private String name; private List departments = new ArraryList(); class Department ... private String name; private List subsidaries = new ArraryList(); 이 경우 데이터베이스는 한개 테이블만 가진다. crea.. 더보기