'bboks's IT Stories'에 해당되는 글 68건
- 2009/08/07 화이트박스 프레임워크 vs 블랙박스 프레임워크
- 2009/07/20 Mission Critical
- 2009/07/18 CVS (Concurrent Versions System)
- 2009/07/15 Design Patterns Documentation
- 2009/07/09 컴포넌트 (component)
- 2009/07/01 스키마(schema)
- 2009/06/30 범위성 (scalability)
프레임워크 도출 3단계
화이트박스 프레임워크(White Box Framework)
- 구현방식 : 상속(inheritance)이나 동적바인딩(dynamic binding)으로 구현
- 프레임워크 기능확장 : 1) 프레임워크 기초 클래스(base class)를 상속하거나 2) Template Method와 같은 디자인 패턴을 사용하여 미리 정의된 후크 메서드(hook method)를 재정의(overriding)하는 방식으로 기능확장
- 단점 : 1) 어플리케이션 개발자가 프레임워크 내부 구조를 잘 알고 있어야 하며 2) 프레임워크 클래스 계층도의 세부사항과 밀접하게
결합되어 유연성이 결여된 시스템을 구축할 가능성이 많아짐
블랙박스 프레임워크(Black Box Framework)
- 구현방식 : 객체 합성(object composition)이나 위임(delegation)을 사용하여 구현
- 프레임워크 기능확장 : 프레임워크에서 정의한 인터페이스를 실현하는 컴포넌트를 구현하고, Strategy와 같은 디자인 패턴을 사용하여 이들 컴포넌트를 프레임워크 안에 통합시켜 기능확장
- 화이트박스 프레임워크 보다 사용하거나 확장하기는 쉽지만 설계하거나 구현하기는 더 어려움
[출처] Kimgisa's IT Story
[출처] 위키피디아
Design Patterns Documentation

The documentation for a design pattern describes the context in which the pattern is used, the forces within the context that the pattern seeks to resolve, and the suggested solution.[16] There is no single, standard format for documenting design patterns. Rather, a variety of different formats have been used by different pattern authors. However, according to Martin Fowler certain pattern forms have become more well-known than others, and consequently become common starting points for new pattern writing efforts.[17] One example of a commonly used documentation format is the one used by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides (collectively known as the "Gang of Four", or GoF for short) in their book Design Patterns. It contains the following sections:
- Pattern Name and Classification: A descriptive and unique name that helps in identifying and referring to the pattern.
- Intent: A description of the goal behind the pattern and the reason for using it.
- Also Known As: Other names for the pattern.
- Motivation (Forces): A scenario consisting of a problem and a context in which this pattern can be used.
- Applicability: Situations in which this pattern is usable; the context for the pattern.
- Structure: A graphical representation of the pattern. Class diagrams and Interaction diagrams may be used for this purpose.
- Participants: A listing of the classes and objects used in the pattern and their roles in the design.
- Collaboration: A description of how classes and objects used in the pattern interact with each other.
- Consequences: A description of the results, side effects, and trade offs caused by using the pattern.
- Implementation: A description of an implementation of the pattern; the solution part of the pattern.
- Sample Code: An illustration of how the pattern can be used in a programming language
- Known Uses: Examples of real usages of the pattern.
- Related Patterns: Other patterns that have some relationship with the pattern; discussion of the differences between the pattern and similar patterns.
[출처] 위키피디아
- 프로그래밍이나 엔지니어링에서 말하는 컴포넌트란 더 큰 프로그램이나 구조물에서 식별 가능한 "일부분"이다. 대체로, 컴포넌트는 특정 기능이나 관련된 기능들의 조합을 제공한다. 프로그래밍 설계에서, 시스템은 모듈로 구성된 컴포넌트로 나뉜다. 컴포넌트 시험이란 컴포넌트를 구성하는 모든 관련된 모듈이 상호 작동을 잘하는 조합인가 시험하는 것을 의미한다.
- 객체지향 프로그래밍(OOP)과 분산객체기술에서의 컴포넌트는 재사용이 가능한 프로그램 빌딩 블록으로서, 하나의 애플리케이션을 형성하기 위해 같은 컴퓨터에 있거나 또는 네트웍 상의 다른 컴퓨터에 있는 컴포넌트들과 조합될 수 있다 (컴포넌트의 예 : 그래픽 사용자 인터페이스(GUI)에서 하나의 단추, 이자계산을 위한 소형계산기, 어떤 DBMS interface). 컴포넌트는 네트웍 상에 있는 다른 서버들로 배포될 수 있으며, 필요한 서비스를 위해 서로 통신할 수 있다. 컴포넌트는 컨테이너라 불리는 환경 내에서 동작하는데, 컨테이너의 예로는 웹 페이지나 웹 브라우저, 그리고 워드프로세서 등을 들수 있다.
-
컴퓨터 프로그래밍에서, 스키마는 데이터베이스의 조직이나 구조를 의미한다. 데이터 모델링은 결국 하나의 스키마에 이르게된다 (스키마의 복수형은 그리스어로부터 온 단어로, "형상(form)"이나 "꼴(figure)"을 의미하는 "schemata"이며, 같은 원류에서온 다른 단어로는 "개략도"를 의미하는 'schematic'이 있다). 이 용어는 관계형 데이터베이스나 객체지향 데이터베이스 모두에 적용된다.
- 수학에서 유래된 또다른 용례로서, 스키마는 인공지능 컴퓨팅을 위한 추론규칙의 형식적 표현을 말한다. 이 표현은 특정한 추론을 끌어내기 위한 공리(公理) 내의 각 기호를 대용하는 특정한 값이나 경우들의 일반화된 원리이다.
[출처] 김동근의 텀즈
정보기술에서 말하는 범위성은 다음의 두 가지 용례를 가진다.
- 범위성은 컴퓨터 애플리케이션이나 제품 (하드웨어나 소프트웨어)이, 사용자의 요구에 맞추기 위해 크기나 용량을 변경해도, 그 기능이 계속하여 잘 동작할 수 있는 능력을 말한다. 크기 변화는 대체로 크기나 용량 면에서 더 커지는 쪽으로 이루어진다. 크기 변화는 제품 그 자체일 수도 있고 (예를 들면, 저장장치나 RAM의 증설 등과 같이 같은 계열의 대용량 컴퓨터 시스템으로 바뀌는 것), 또는 객체 차체가 새로운 환경으로의 이동하는 것 (예를 들면, 새로운 운영체계의 장착 등)일 수도 있다.
- 범위성이란 확장된 환경에서 기능이 잘 동작하는 것뿐 아니라, 실제로 그것의 이득을 최대한 누릴 수 있는 능력을 말한다. 예를 들면, 하나의 애플리케이션 프로그램이 작은 운영체계에서 크기가 더 큰 운영체계로 옮겨질 수 있고, 성능이라는 측면에서 대형 운영체계의 장점을 충분히 누릴 수 있고, 더 많은 수의 사용자들에게 서비스될 수 있다면, 그것은 범위성이 있다고 말할 수 있을 것이다.
대개 상향으로의 범위성이 하향으로의 범위성 보다 구현하기에 더 쉬운데, 그 이유는 개발자들이 애플리케이션을 처음 만들 때 가용한 시스템 자원 (예를 들면 디스크 용량 등)들을 최대한 활용하는 경향이 있기 때문이다. 하향으로 축소하는 제품은, 더 많이 제한된 환경에서 전과 동일한 결과를 달성해야만 한다는 것을 의미한다.
[출처] 김동근의 텀즈
Prev
Rss Feed