[정보처리기사] 1. 소프트웨어 설계 정리 - 3
by 너나나
28. 디자인 패턴
생성 패턴(Creational Pattern)
생성 패턴은 객체의 생성과 관련된 패턴으로 총 5개의 패턴이 있음
객체의 생성과 참조 과정을 캡슐화 하여 객체가 생성되거나 변경되어도 프로그램의 구조에 영향을 크게 받지 않도록 하여 프로그램에 유연성을 더해줌
추상 팩토리 (Abstract Factory) |
구체적인 클래스에 의존하지 않고, 인터페이스를 통해 서로 연관·의존하는 객체들의 그룹으로 생성하여 추상적으로 표현 연관된 서브 클래스를 묶어 한 번에 교체하는 것이 가능 |
빌더 (Builder) |
작게 분리된 인스턴스를 건축 하듯이 조합하여 객체를 생성 객체의 생성 과정과 표현 방법을 분리하고 있어 동일한 객체 생성에서도 서로 다른 결과를 만들어 낼 수 있음 |
팩토리 메소드 (Factory Method) |
객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴 상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당 가상 생성자(Virtual Constructor) 패턴 이라고도 함 |
프로토타입 (Prototype) |
원본 객체를 복제하는 방법으로 객체를 생성하는 패턴 일반적인 방법으로 객체를 생성하며, 비용이 큰 경우 주로 이용 |
싱글톤 (Singleton) |
하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만, 여러 프로세스가 동시에 참조할 수는 없음 클래스 내에서 인스턴스가 하나뿐임을 보장, 불필요한 메모리 낭비 최소화 |
구조 패턴(Structural Pattern)
구조 패턴은 클래스나 객체를 조합하여 더 큰 구조로 만들 수 있게 해주는 패턴으로 총 7개의 패턴이 있음
-> 구조가 복잡한 시스템을 개발하기 쉽게 도와줌
어댑터 (Adapter) |
호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해주는 패턴 기존의 클래스를 이용하고 싶지만 인터페이스가 일치하지 않을 때 이용 |
브리지 (Bridge) |
구현부에서 추상층을 분리하여, 서로가 독립적으로 확장할 수 있도록 구성한 패턴 기능과 구현을 두 개의 별도 클래스로 구현 |
컴포지트 (Composite) |
여러 객체를 가진 복합 객체와 단일 객체를 구분 없이 다루고자 할 때 사용하는 패턴 객체들을 트리 구조로 구성하여 복합 객체 안에 복합 객체가 포함되는 구조를 구현 가능 |
데코레이터 (Decorator) |
객체 간의 결합을 통해 능동적으로 기능들을 확장할 수 있는 패턴 임의의 객체에 부가적인 기능을 추가하기 위해 다른 객체들을 덧붙이는 방식으로 구현 |
퍼싸드 (Facade) |
복잡한 서브 클래스들을 피해 더 상위에 인터페이스를 구성함으로써 서브 클래스들의 기능을 간편하게 사용할 수 있도록 하는 패턴 서브 클랫들 사이의 통합 인터페이스를 제공하는 Wrapper 객체가 필요함 |
플라이웨이트 (Flyweight) |
인스턴스가 필요할 때마다 매번 생성하는 것이 아니고 가능한 한 공유해서 사용함으로써 메모리를 절약하는 패턴 다수의 유사 객체를 생성하거나 조작할 때 유용하게 사용할 수 있다. |
프록시 (Proxy) |
접근이 어려운 객체와 여기에 연결하려는 객체 사이에서 인터페이스 역할을 수행하는 패턴 네트워크 연결, 메모리 대용량 객체로의 접근 등에 주로 이용 |
행위 패턴(Behavioral Pattern)
행위 패턴은 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴으로 총 11개의 패턴이 있음
생성 패턴, 구조 패턴 아니면 다 행위 패턴!!
생성 패턴 : 추상 팩토리, 빌더, 팩토리 메소드, 프로토타입, 싱글톤
구조 패턴 : 어댑터, 브리지, 컴포지트, 데코레이터, 퍼싸드, 플라이웨이트, 프록시
말고 다 행위 패턴!!!!!!!
35. 미들웨어 솔루션 명세
미들웨어(Middleware)의 개념 및 종류
미들웨어 : 운영체제와 응용 프로그램, 또는 서버와 클라이언트 사이에서 다양한 서비스를 제공하는 소프트웨어
- 표준화된 인터페이스를 제공함으로써 시스템 간의 데이터 교환에 일관성 보장
- 통신 제공 방법이나 기능에 따라 DB, RPC, MOM, TP-Monitor, ORB, WAS 등으로 구분
DB
DB : 데이터베이스 벤더에서 제공하는 클라이언트에서 원격의 데이터베이스와 연결하기 위한 미들웨어
- DB를 사용하여 시스템을 구축하는 경우 보통 2-Tier 아키텍처라고 함
- 대표적인 DB는 마이크로소프트의 ODBC, 볼랜드의 IDAPI, 오라클의 Glue 등이 있음
RPC(Remote Procedure Call)
RPC(원격 프로시저 호출) : 응용 프로그램의 프로시저를 사용하여 원격 프로시저를 로컬 프로시저처럼 호출하는 방식의 미들웨어
- 대표적인 RPC는 이큐브시스템의 Entera, OSF의 ONC/RPC 등이 있음
MOM(Message Orientaed Middleware)
MOM(메세지 지향 미들웨어) : 메세지 기반의 비동기형 메세지를 전달하는 방식의 미들웨어
- 온라인 업무보다는 이기종 분산 데이터 시스템의 데이터 동기를 위해 많이 사용
- 대표적인 MOM은 IBM의 MQ, 오라클의 Message Q, JCP의 JMS 등이 있음
TP-Monitor(Transaction Processing Monitor)
TP-Monitor(트랜잭션 처리 모니터) : 항공기나 철도 예약 업무 등과 같이 온라인 트랜잭션 업무에서 트랜잭션을 처리 및 감시하는 미들웨어
- 사용자 수가 증가해도 빠른 응답 속도를 유지해야 하는 업무에 주로 사용됨
- 대표적인 TP-Monitor은 오라클의 tuxedo, 티맥스소프트의 tmax 등이 있음
ORB(Object Request Broker)
ORB(객체 요청 브로커) : 객체 지향 미들웨어로 코바(CORBA) 표준 스펙을 구현한 미들웨어
- 최근에 TP-Monitor의 장점인 트랜잭션 처리와 모니터링 등을 추가로 구현한 제품도 있음
- 대표적인 ORB는 Micro Focus의 Orbix, OMG의 CORBA 등이 있음
WAS(Web Application Server)
WAS(웹 애플리케이션 서버) : 정적인 콘텐츠를 처리하는 웹 서버와 달리 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어
- 클라이언트/서버 환경보다는 웹 한경을 구현하기 위한 미들웨어
- HTTP 세션 처리를 위한 웹 서버 기능뿐만 아니라 미션-크리티컬한 기업 업무까지 JAVA, EJB 컴포넌트 기반으로 구현이 가능
- 대표적인 WAS은 오라클의 WebLogic, IBM의 WebSphere 등이 있음
'study > 정보처리기사 (2021 여름방학)' 카테고리의 다른 글
[정보처리기사] 1. 소프트웨어 설계 정리 - 2 (0) | 2021.07.27 |
---|---|
[정보처리기사] 1. 소프트웨어 설계 정리 - 1 (2) | 2021.07.24 |
블로그의 정보
공부 기록
너나나