posted by 방랑군 2012. 1. 4. 13:36

본 내용은 월간 마소에 실린 내용을 정리한 것입니다.
불펌을 금지하며, 문제시 삭제하겠습니다.


프레임워크

  • 한번 만들면 쉽게 바꿀 수 없이 모든 사람들이 사용
  • semi-complete application : 반쯤 완성된 애플리케이션

프레임워크 vs 라이브러리

  • 라이브러리 : 내부 control flow를 가지지 않은 소스들의 단순 집합
  • 프레임워크 : 컴포넌트간의 관계를 고려한 오버라이딩 가능한 control flow 제공

5가지 속성

  • 1. 조직 (Organization)
  • 2. 계획 (Planning)
  • 3. 아키텍처 (Architecture)
  • 4. 설계 (Design)
  • 5. 개발 (Development)
  • 6. 그밖에 : 산출물 가독성, 문서화, 네이밍룰, 프레임워크 매뉴얼

1. 조직

  • 조직을 먼저 구성하지 마라
    • 1) 비지니스 파악 : 도메인 전문가 or 구성원 전체가 모여서
    • 2) 관련된 프로세스 정제
    • 3) 프로세스에 맞게 IT 조직 구성
  • 방향 결정 : 고객 중심? 기술 중심?
    • 고객중심 : 시나리오에 초점
    • 기술중심 : 오래동안 사용가능하도록 아키텍처에 초점

2. 계획 (2가지 프레임워크 개발방식)

  • 땅콩버터 : 특징을 중심으로 골고루 구현하는 Bottom-UP 방식. 기능중심의 팀이 필요
  • 마천루 : 시나리오 중심으로 구현, 특정모듈에만 집중적인 개발이 됨

3. 아키텍처

  • 아키텍처 타입, API, 실행, 의존성을 고려해 Layering을 구축
  • 의존성 분석을 위해 xDepend 같은 툴을 사용

4. 설계

  • 메인 시나리오에 부합되는 코드 샘플 만들기 -> 객체 모델 정의
  • 프레임워크 설계 (디자인 스튜디오 등의 툴을 사용)
  • 큰 조직일 경우 일치성이 중요
  • ATAM과 같은 아키텍처 평가툴 이용해 품질 강화

5. 개발

  • 조직이 작다면 프레임워크 개발도 간단해야 함
  • 80/20룰을 적용해 효율성 고려