078. 디자인 패턴
1) 디자인 패턴(Design Pattern)
- 모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제
- 아키텍처 패턴은 건물의 윤곽을 잡는 가이드라인, 디자인 패턴은 그보다 더 세세한 인테리어
2) 생성 패턴(Creational Pattern)
- 클래스나 객체의 생성과 참조 과정을 정의하는 패턴
추상 팩토리 (Abstract Factory)
|
구체적인 클래스에 의존하지 않고 인터페이스를 통해 서로 연관, 의존하는 객체들의 그룹으 로 생성하여 추상적으로 표현함
|
빌더(Builder)
|
작게 분리된 인스턴스를 건축하듯이 조합하여 객체를 생성함
|
팩토리 메소드 (Factory Method)
|
객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴
|
프로토타입 (Prototype)
|
원본 객체를 복제하는 방법으로 객체를 생성하는 패턴
|
싱글톤(Singleton)
|
하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만, 여러 프로세스가 동시에 참조할 수는 없음
|
3) 구조 패턴(Structural Pattern)
- 클래스나 객체들을 조합하여 더 큰 구조로 만드는 패턴
어댑터(Adapter)
|
호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해줌
|
브리지(Bridge)
|
구현부에서 추상층을 분리하여, 서로가 독립적으로 확장할 수 있도록 구성한 패턴
|
컴포지트(Composite)
|
여러 객체를 가진 복합 객체와 단일 객체를 구분 없이 다루고자 할 때 사용하는 패턴
|
데코레이터(Decorator)
|
객체 간의 결합을 통해 능동적으로 기능들을 확장할 수 있는 패턴
|
퍼싸드(Facade)
|
복잡한 서브 클래스들을 피해 더 상위에 인터페이스를 구성함으로써 서브 클래스들의 기 능을 간편하게 사용할 수 있도록 하는 패턴
|
플라이웨이트 (Flyweight)
|
인스턴스가 필요할 때마다 매번 생성하는 것이 아니고 가능한 공유해서 사용함으로써 메 모리를 절약하는 패턴
|
프록시(Proxy)
|
접근이 어려운 객체와 여기에 연결하려는 객체 사이에서 인터페이스 역할을 수행함
|
4) 행위 패턴(Behavioral Pattern)
- 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴
책임 연쇄
(Chain of Responsibility) |
요청을 처리할 수 있는 객체가 둘 이상 존재하여 한 객체가 처리하지 못하면 다음 객 체로 넘어가는 형태의 패턴
|
커맨드(Command)
|
요청을 객체의 형태로 캡슐화하여 재이용하거나 취소할 수 있도록 요청에 필요한 정 보를 저장하거나 로그에 남기는 패턴
|
인터프리터(Interpreter)
|
언어에 문법 표현을 정의하는 패턴
|
반복자(Iterator)
|
자료 구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 함
|
중재자(Mediator)
|
수많은 객체들 간의 복잡한 상호작용을 캡슐화하여 객체로 정의하는 패턴
|
메멘토(Memento)
|
특정 시점에서의 객체 내부 상태를 객체화함으로써 이후 요청에 따라 객체를 해당 시 점의 상태로 돌릴 수 있는 기능을 제공하는 패턴
|
옵서버(Observer)
|
한 객체의 상태가 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전 달하는 패턴
|
상태(State)
|
객체의 상태에 따라 동일한 동작을 다르게 처리해야 할 때 사용하는 패턴
|
전략(Strategy)
|
동일한 계열의 알고리즘들을 개별적으로 캡슐화하여 상호 교환할 수 있게 정의함
|
템플릿 메소드 (Template Method)
|
상위 클래스에서 골격을 정의하고, 하위 클래스에서 세부 처리를 구체화하는 구조
|
방문자(Visitor)
|
각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구성
|
079. 코드
1) 코드(Code)
- 자료의 분류, 조합, 집계, 추출을 용이하게 하기 위해 사용하는 기호
- 주요 기능 : 식별(성격 구분), 분류(데이터 그룹화), 배열, 표준화, 간소화
2) 코드의 종류
순차 코드 (Sequence Code)
|
일정 기준에 따라서 최초의 자료부터 차례로 일련번호를 부여
|
블록 코드 (Block Code)
|
공통성이 있는 것끼리 블록으로 구분하고, 각 블록 내에서 일련번호를 부여
|
10진 코드 (Decimal Code)
|
코드화 대상 항목을 0~9까지 10진 분할하고, 다시 그 각각에 대해 10진 분할을 필 요한 만큼 반복하는 방법, 도서 분류식 코드라고도 함
|
그룹 분류 코드
(Group Classification Code) |
일정 기준에 따라 대분류, 중분류, 소분류 등으로 구분하고 각 그룹 안에서 일련번 호를 부여
|
연상 코드 (Mnemonic Code)
|
코드화 대상 항목의 명칭이나 약호와 관계있는 숫자나 문자, 기호를 이용하여 코드 부여
|
표의 숫자 코드 (Significant Digit Code)
|
코드화 대상 항목의 성질을 물리적 수치 그대로 코드에 적용시키는 방법으로 유효 숫자 코드라고도 함
|
합성 코드 (Combined Code)
|
필요한 기능을 하나의 코드로 수행하기 어려운 경우 2개 이상의 코드를 조합하여 만드는 방법
|
080. 개발 지원 도구
1) 통합 개발 환경(IDE; Integrated Development Environment)
- 개발에 필요한 다양한 툴을 하나의 인터페이스로 통합하여 제공하는 환경
- 종류 : Eclipse, Visual Studio, Xcode, Android Studio, IDEA
2) 빌드 도구
-빌드
: 소스코드 파일들을 컴퓨터에서 실행할 수 있는 제품 소프트웨어로 변환하는 과정 또는 결과물
- Ant(Another Neat Tool)
: 아파치에서 개발한 자바 프로젝트의 공식적인 빌드 도구
- Maven
: 아파치에서 Ant의 대안으로 개발, 의존성을 설정해 라이브러리 관리
- Gradle
: 한스 도커가 Ant와 Maven을 보완하여 개발, 안드로이드 스튜디오의 공식 빌드 도구
: 그루비 기반의 빌드 스크립트를 사용
3) 협업 도구
- 개발에 참여하는 사람들이 서로 다른 작업 환경에서 원활히 프로젝트를 수행할 수 있도록 도와주는 도구
'it자격증 준비 > 정보처리기사(실기)' 카테고리의 다른 글
05. 인터페이스 구현 | 시스템 인터페이스 요구사항 분석, 인터페이스 요구사항 검증, 인터페이스 시스템 식별, 송 · 수신 시스템 식별 (0) | 2023.08.21 |
---|---|
04. 서버 프로그램 구현 | 서버 개발, 보안 및 API, 배치 프로그램, 패키지 소프트웨어 (0) | 2023.08.19 |
04. 서버 프로그램 구현 | 모듈(Module), 단위 모듈(Unit Module), 공통 모듈 (0) | 2023.08.14 |
04. 서버 프로그램 구현 | 객체지향(Object-Oriented), 객체지향 분석 및 설계 (0) | 2023.08.12 |
04. 서버 프로그램 구현 | 개발 환경 구축, 소프트웨어 아키텍처, 아키텍처 패턴 (0) | 2023.08.10 |