티스토리 뷰
3장 통합구현(1/0/0)
XML | 특수한 목적을 갖는 마크업 언어를 만드는 데 사용되는 다목적 마크업언어 |
SOAP | 네트워크 상에서 HTTP/HTTPS, SMTP 등을 이용하여 XML을 교환하기 위한 통신 규약 |
WSDL | 웹서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술하고 게시하기 위한 언어 |
4장 서버 프로그램구현 (2/3/3) ★★★★★
▶모듈화 Modularity
시스템의 기능들을 모듈 단위로 나누는 것
▶ 추상화 Abstraction
전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화시켜 나가는 것
과정추상화 / 데이터 추상화 / 제어 추상화 ( 제과자 )
▶ 단계적 분해
상위의 중요 개념으로부터 하위의 개념으로 구체화 시키는 분할기법
▶ 정보 은닉
모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법
▶협약에 의한 설계
컴포넌트를 설계할 때 클래스에 대한 여러 가정을 공유할 수 있도록 명세한 것
선행 조건 | 오퍼레이션이 호출되기 전에 참이 되어야 할 조건 |
결과 조건 | 오퍼레이션이 수행된 후 만족되어야 할 조건 |
불변 조건 | 오퍼레이션이 실행되는 동안 항상 만족 되어야할 조건 |
▶ 아키텍처 패턴 ★★★
아키텍처를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제
레이어 패턴 | 시스템을 계층으로 구분하여 구성하는 패턴 |
클라이언트-서버 패턴 | 하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴 |
파이프-필터 패턴 | 데이터 스트림 절차의 단계를 필터로 캡슐화해 파이프를 통해 전송하는 패턴 |
모델-뷰-컨트롤러 패턴 | MVC Model View Controller |
▶ 기타 패턴
마스터-슬레이브 패턴 | 슬레이브 컴포넌트에서 처리된 결과물을 돌려받는 방식의 패턴 |
브로커 패턴 | 브로커가 요청에 맞는 컴포넌트와 사용자를 연결 |
피어-투-피어 패턴 | 하나의 컴포넌트가 클라이언트가 될수도, 서버가 될수도 있는 패턴 |
이벤트-버스 패턴 | 채널에 발행과 구독. Subscribe, Publish. |
블랙보드 패턴 | 모든 컴포넌트들이 데이터 저장소와 블랙보드 컴포넌트에 접근이 가능한 패턴. |
인터프리터 패턴 | 프로그램 코드의 각 라인을 수행하는 방법을 지정하고, 기호마다 클래스를 갖도록 구성된 패턴 |
▶ 객체 지향 ★★
각 요소들을 객체로 만든후 객체를 조립해서 소프트웨어를 개발하는 기법.
객체 | 데이터와 이를 처리하기 위한 함수를 묶어놓은 소프트웨어 모듈이다. 데이터를 가지며 상호작용의 수단으로 메시지를 사용한다. |
클래스 | 공통된 속성과 연산을 갖는 객체의 집합. 클래스의 속한 각각의 객체를 인스턴스라고 함. |
메시지 | 객체들 간의 상호작용에 사용되는 수단으로, 객체의 동작이나 연산을 일으키는 외부의 요구사항. |
캡슐화 Encapsulation |
외부에서 접근을 제한하기 위해 인터페이스를 제외한 세부내용을 은닉하는 것. 인터페이스가 단순해지고, 객체 간의 결합도가 낮아짐. |
상속 Inheritance |
상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것. |
다형성 | 하나의 메시지에 대해 각각의 개체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력. |
▶ 객체지향 분석 방법론 ★★★
Rumbaugh(럼바우) 방법 | 가장 일반적으로 사용되는 방법으로 분석 활동을 객체모델, 동적모델, 기능모델로 나누어 수행하는 방법 |
Booch(부치) 방법 | 미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 모두 사용하는 분석방법 |
Jacobson 방법 | Use Case를 강조하여 사용하는 분석방법 |
Coad와 Yourdon 방법 | E-R다이어그램을 사용하여 개체의 활동들을 데이터 모델링하는데 초점을 둔 기법 |
Wirfs-Brock 방법 | 분석과 설계간의 구분이 없고 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 기법 |
▶ 럼바우 분석기법 ★★★★★
객체 모델링 | = 정보 모델링 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정하여 객체 다이어그램으로 표시 |
동적 모델링 | 상태다이어그램을 이용하여 시간의 흐름에 따른 객체들 간의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현하는 모델링 |
기능 모델링 | 자료 흐름도(DFD)를 이용하여 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현한 모델링 |
▶ 객체지향설계 원칙 [SOLID] ★★★
변경이나 확장에 유연한 시스템을 설계하기 위해 지켜져야할 원칠
단일 책임 원칙 | SRP | 객체는 단 하나의 책임만 가져야 한다는 원칙 |
개방-폐쇄 원칙 | OCP | 기존의 코드를 변경하지 않고 기능을 추가 할 수 있어록 설계해야 한다는 원칙 |
리스코프 치환 원칙 | LSP | 자식 클래스는 최소한 부모 클래스의 기능은 수행 할 수 있어야한다는 원칙 |
인터페이스 분리 원칙 | ISP | 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다는 원칙 |
의존 역전 원칙 | DIP | 의존 관계 성립시 추상성이 높은 클래스와 의존 관계를 맺어야한다는 원칙 |
▶ 모듈 Module
모듈화를 통해 분리된 시스템의 각 기능
▶ 결합도 Copling [ 자스제외공내 ] 결합도 약한 순
자료 결합도 Data Copling |
모듈간의 인터페이스가 자료 요소로만 구성될 때의 결합도 |
스탬프 결합도 Stamp Copling |
모듈 간의 인터페이스로 배열이 레코드 등의 자료 구조가 전달될 때의 결합도 |
제어 결합도 Control Copling |
어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호나 제어 요소를 전달하는 결합도 |
외부 결합도 External Copling |
어던 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때의 결합도 |
공통 결합도 Common Copling |
공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도 파라미터가 아닌 모듈 밖에 선언된 전역 변수를 사용하여 전역 변수를 갱신하는 방식으로 상호작용하는 때의 결합도 |
내용 결합도 Content Copling |
한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도 |
▶ 응집도 Cohesion [ 기순교절 시논우 ] 응집도 강한순
기능적 응집도 Functional Cohesion |
모듈 내부의 모등 기능 요소들이 단일 문제와 연관되어 수행 될 경우의 응집도 |
순차적 응집도 Sequential Cohesion |
모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도 |
교환적 응집도 Communication Cohesion |
동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성요소들이 모였을 경우의 응집도 |
절차적 응집도 Procedural Cohesion |
모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 응집도 |
시간적 응집도 Temporal Cohesion |
특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도 |
논리적 응집도 Logical Cohesion |
유사한 성격을 갖거나 특정 형대로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도 |
우연적 응집도 Coincidental Cohesion |
모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도 |
▶ 팬인(Fan-In) / 팬아웃(Fan-Out)
팬인 | 어떤 모듈을 제어하는 모듈의 수 |
팬아웃 | 어떤 모듈에 의해 제어되는 모듈의 수 |
▶ N-S차트
논리의 기술에 중점을 두고 도형을 이용해 표현하는 방법
GOTO나 화살표를 사용하지 않는다.
▶ 단위 모듈 Unit Module
한 가지 동작을 수행 하는 기능을 모듈로 구현한 것
▶ IPC (Inter-Process Communication)
모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 언터페이스 집합
▶IPC 대표 메소드 5가지
Shared Memory | 공유 가능한 메모리를 구성하여 다수의 프로세스가 통신하는 방식 |
Socket | 네트워크 소켓을 이용하여 네트워크를 경유하는 프로세스간의 통신하는 방식 |
Semaphores | 공유 자원에 대한 접근 제어를 통해 통신하는 방식 |
Pipes&named Pipes | Pipe라고 불리는 선입선출 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신하는 방식 Pipe는 하나의 프로세스가 이용 중이라면 다른 프로세스는 접근 할 수 없음 |
Message Queueing | 메시지가 발생하면 이를 전달하는 방식으로 통신하는 방식 |
▶ 단위 모듈 테스트
모듈이 정해진 기능을 정확히 수행하는 지 검증하는 것
▶ 테스트 케이스 (Test Case)
소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위한 테스트 항목에 대한 명세서
▶ 공통 모듈
여러 프로그램에서 공통으로 사용할 수 있는 모듈
▶ 공통 모듈 명세서 기법의 종류 [정명완일추] ★★★★★
정확성 | 시스템 구현시 해당 기능이 필요하다는 것을 알 수 있도록 정확히 작성함 |
명확성 | 해당 기능을 이해할 때 중의적으로 해석되지 않도록 명확하게 작성함 |
완전성 | 시스템 구현을 위해 필요한 모든 것을 기술함 |
일관성 | 공통 기능들 간 상호 충돌이 발생하지 않도록 작성함 |
추적성 | 기능에 대한 요구사항의 출처, 관련 시스템 등의 관계를 파악할 수 있도록 작성함 |
▶ 재사용 Reuse
이미 개발된 기능들을 새로운 시스템이나 기능 개발에 사용하기 적합하도록 최적화하는 작업
함수와 객체 / 컴포넌트 / 애플리케이션
▶ 코드 Code ★★★★★
자료의 분류, 조합, 집계, 추출을 용이하게 하게 하기 위해 사용하는 기호
식별 기능 | 데이터 간의 성격에 따라 구분이 가능함 |
분류 기능 | 특정 기준이나 동일한 유형에 해당하는 데이터를 그룹화 할 수 있음 |
배열 기능 | 의미를 부여하여 나열할 수 있음 |
표준화 기능 | 다양한 데이터를 기준에 맞추어 표현할 수 있음 |
간소화 기능 | 복잡한 데이터를 간소화할 수 있음 |
▶ 코드의 종류
순차 코드 Seauence Code |
자료의 발생 순서, 순서코드, 일련번호 코드 |
블록 코드 Block Code |
코드화 대상 항목 중에서 공통성이 있는 것끼리 블록으로 구분하고 각 블록내에서 일련번호를 부여 1001~1100 총무부 1101~1200 영업부 |
10진 코드 Decimal Code |
0~9까지 10진 분할하고 다시 그 가각에대해 10진 분할 하는 방법 1000 공학 1100 소프트웨어 |
그룹 분류 코드 Group Classification Code |
대분류, 중분류, 소분류 1-01-001 본사-총무부-인사계 |
연상코드 Mnemonic Code |
항목의 명칭이나 약호와 관계있는 숫자나 문자, 기호 이용 TV-40 : 40인치 |
표의 숫자코드 Significant Digit Code |
성질, 길이, 넓이 부피, 지름, 높이 등의 물리적 수치 120-70-1500 두께*폭*길이 |
합성 코드 Combined Code |
필요한 기능을 하나의 코드로 수행하기 어려운 경우 2개이상의 코드를 조합 KE-711 대한항공711기 |
▶ 디자인 패턴 ★★★★★
모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제 생성패턴 / 구조패턴 / 행위 패턴
▶ 생성 패턴 [ 추빌팩프싱 ]
클래스나 객체의 생성과 참조 과정을 정의하는 패턴
추상 팩토리 Abstract Factory |
인터페이스를 통해 서로 의존하는 객체들의 그룹으로 생성, 추상적으로 표현. |
빌더 Builder | 분리된 인스턴스를 건축하듯이 조합해 객체를 생성 |
팩토리 메소드 Factory Method |
상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브클래스가 담당함. |
프로토타입 Porototype | 원본을 만들어놓고 원본 객체를 복사해서 사용하는 패턴 |
싱글톤 Singleton | 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 해서 생성된 객체를 어디에서든지 참조할 수 있도록 만든 패턴 |
▶ 구조 패턴 [ 어브컴데퍼플프 ]
클래스나 객체들을 조합하여 더 큰 구조로 만드는 패턴
어댑터 Adapter | 호환성이 없는 클래스들을 다른 클래스가 이용할 수 있도록 변환 |
브리지 Bridge | 구현부에서 추상층을 분리해 서로가 독립적으로 확장 |
컴포지트 Composite | 복합 객체와 단일 객체를 구분없이 |
데코레이터 Decorator | 객체 간의 결합을 통해 기능을 확장 |
퍼싸드 Facade | 복잡한 기능의 서브클래스의 상위에 인터페이스를 생성해 간편하게 기능을 사용 |
플라이웨이트 Flyweight |
인스턴스를 공유해 메모리를 절약 |
프록시 Proxy | 접근이 어려운 객체들 사이에서 인터페이스 역할 |
▶ 행위 패턴 [ 책커인반 중메옵상 전템방]
클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴
책임 연쇄 Chain of Responsibility |
객체가 둘 이상 존재해 한 객체가 처리하지 못하면 다음 객체로 넘어가는 패턴 |
커맨드 Command |
요청에 사용되는 명령어를 추상 클래스와 구체 클래스로 분리해 단순화 |
인터프리터 Interpreter |
언어에 문법 표현을 정의하는 패턴 |
반복자Iterator | 접근이 잦은 객체에 동일한 인터페이스를 사용하도록 하는 패턴 |
중재자 Mediator |
수많은 객체 간의 복잡한 상호작용을 캡슐화 해 객체로 정의하는 패턴 |
메멘토Memento | 특정 시점의 객체의 상태를 Crtl+z와 같은 되돌리기 기능으로 해당 시점으로 돌리는 기능을 제공 |
옵서버 Observer |
한 객체의 상태가 변화하면 변화한 상태를 다른 객체에게 전달. 일대 다의 의존성을 정의. Publish, Subscribe |
상태 State |
객체의 상태에 따라 동일한 동작을 다르게 처리 |
전략 Strategy |
동일한 계열의 알고리즘을 개별적으로 캡슐화해, 상호교환 할 수 있게 정의. 알고리즘. |
템플릿 메소드 Template Method |
상위 클래스에서 골격을 정의, 하위 클래스에서 세부처리를 구체화 함. |
방문자 Visitor |
각 클래스 들의 데이터 구조에서 처리 기능을 분리해 별도의 클래스로 구성. |
▶ 배치 프로그램
여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하도록 만든 프로그램
▶ 배치 스케줄러
일괄 처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구
스프링 배치 Spring Batch |
Spring Source사와 Accenture사가 2007년 공동 개발한 오픈 소스 프레임 워크. 로그 관리, 추적, 트랜잭션 관리, 작업처리 통계, 재시작 기능 제공 |
Quartz | 스프링 프레임워크로 개발되는 오픈 소스 라이브러리로 수행할 작업과 수행시간을 관리하는 요소들을 분리해 일괄처리 작업에 유연성을 제공 |
Cron | 리눅스의 기본 스케줄러 도구 / crontab명령어를 통해 작업예약 (초) 분 시 일 월 요일 (년) 명령어 |
'WEB > 기타' 카테고리의 다른 글
정보처리기사 요약 정리 - 6장 화면설계 (0) | 2024.07.12 |
---|---|
정보처리기사 요약 정리 - 5장 인터페이스구현 / (0) | 2024.07.12 |
정보처리기사 요약 정리 - 2장 데이터 입출력구현 (1) | 2024.07.12 |
정보처리 기사 요약 정리 - 1장 요구사항 확인 (0) | 2024.07.12 |
VS Code 설치 (0) | 2024.07.12 |
- Total
- Today
- Yesterday
- 연명의료결정제도 #사전연명의료의향서 #사전연명의료의향서등록기관 #광주사전연명의료의향서
- 파비콘사이즈
- 무료폰트 #무료웹폰트 #한수원한돋움 #한수원한울림 #한울림체 #한돋움체
- 정보처리기사 #정보처리기사요약 #정보처리기사요점정리
- 와이파이신호 #와이파이 #와이파이신호세게
- 썬크림 #닥터지썬크림 #내돈내산 #내돈내산썬크림 #썬크림추천 #spf50썬크림 #닥터지메디유브이울트라선
- 쇼팬하우어 #좋은책
- 파비콘 #파비콘 사이트에 적용
- 자바스크립트countiue
- 좋은책 #밥프록터 #부의원리
- 테스크탑무선랜카드 #무선랜카드 #아이피타이무선랜카드 #a3000mini #무선랜카드추천
- 자바스크립트정규표현식
- 증폭기 #아이피타임증폭기
- 와이파이증폭기추천 #와이파이설치
- 자바스크립트break
- thymeleaf
- 바지락칼국수 #월곡동칼국수 #칼국수맛집
- 자바스크립트 #javascript #math
- 광주분식 #광주분식맛집 #상추튀김 #상추튀김맛집 #광주상추튀김
- 좋은책
- echart
- iptime와이파이증폭기 #와이파이증폭기설치
- jdk #jre
- lg그램pro #lg그램 #노트북 #노트북추천 #lg노트북
- jQuery #jQuery이미지슬라이드 #이미지슬라이드
- SQL명령어 #SQL
- 와이파이약할때
- css미디어쿼리 #미디어쿼리 #mediaquery
- sw기술자평균임금 #2025년 sw기술자 평균임금
- ajax
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |