시스템 연계 기술
DB링크 : 1. 데이터베이스에서 제공하는 DB 링크 객체를 이용한다.
2. 수신측에서 DB 링크를 생성하고 송신측에서 해당 DB링크를 직접 참조하는 방식이다.
DB 커넥션 : 수신측의 WAS에서 송신측 데이터 베이스로 연결하는 DB Connection Pool을 생성한다.
API/OpenAPI : 송신측의 데이터베이스에서 데이터를 가져와 제공하는 응용 프로그래밍 인터페이스 프로그램이다.
JDBC : 1. 수신측의 프로그램에서 JDBC 드라이버를 이용하여 송신 시스템 데이터베이스와 연결한다.
2. DBMS 유형, DBMS 서버 IP와 Port, DB Instance 정보가 필요하다
하이퍼링크 : 웹 응용에서 하이퍼링크(Hyper Link)를 이용한다.
소켓 : 1. 서버는 통신을 위한 Socket을 생성하여 Port를 할당한다.
2. 클라이언트의 통신 요청 시 클라이언트와 연결하고 통신하는 네트워크 기술이다.
* 생성패턴
추상 팩토리 패턴: 동일한 주제의 다른 팩토리를 묶어 준다.
빌더 패턴: 생성(construction)과 표기(representation)를 분리해 복잡한 객체를 생성한다
싱글턴 패턴: 한 클래스에 한 객체만 존재하도록 제한한다.
* 구조패턴
어댑터 패턴: 인터페이스가 호환되지 않는 클래스들을 함께 이용할 수 있도록, 타 클래스의 인터페이스를 기존 인터페이스에 덧씌운다.
[해설작성자 : 미니딩]
생성패턴 :
추상 팩토리(Abstract Factory)
빌더(Builder)
팩토리메서드(FactoryMethod)
프로토타입(Prototype)
싱글톤(Singleton)
구조패턴 :
어댑터(Adapter)
브리지(Bridge)
컴포지트(Composite)
데코레이터(Decorator)
파사드(Facade)
플라이웨이트(Flyweight)
프록시(Proxy)
행위 패턴 :
책임 연쇄(Chain of Responsibility)
커맨드(Command)
인터프리터(InterPreter)
이터레이터(Iterator)
중재자(Mediator)
메멘토(Memento)
옵서버(Observer)
상태(State)
전략(Strategy)
템플릿메서드(Template Method)
방문자(Visitor)
<문제 해설> 전위 표기법(prefix)-연산자가 앞에 중위 표기법(infix)-연산자가 안에 후위 표기법(postfix)-연산자가 뒤에 1.연산자에 따라 묶는다 (-(/(*A(+BC))D)E) 2.연산자를 각 괄호 뒤로 뺀다(후위식) (((A(BC)+)*D)/E)- 3.괄호를 제거한다. ABC+*D/E- |
스택(Stack): 한쪽 끝으로만 삽입, 삭제 작업이 이루어짐
- 가장 나중에 삽입된 자료가 가장 먼저 삭제되는 후입선출(LIFO)
큐(Queue): 한쪽에서는 삽입 작업, 다른 한쪽에서는 삭제 작업이 이루어짐
- 가장 먼저 삽입된 자료가 가장 먼저 삭제되는 선입선출(FIFO)
chief programmer team : 효율성을 제고하기 위하여 능력과 경험이 풍부한 책임 프로그램 작성자를 중심으로 하여 구성한 개발 팀.
chief programmer team은 형상관리를 위해 구성된 팀을 뜻하지 않음
*퀵 정렬: 레코드의 많은 자료 이동을 없애고 하나의 파일을 부분적으로 나누어 가면서 정렬하는 방식
*삽입정렬: 가장 간단한 정렬 방식, 이미 순서화된 파일에 새로운 하나의 레코드를 순서에 맞게 삽입시켜 정렬
*쉘 정렬: 삽입정렬 확장 개념, 입력파일을 매개변수값으로 서브파일 구성하고 각 서브파일을 삽입정렬 방식으로 순서 배열하는 과정을 반복하는 정렬
*선택정렬: n개의 레코드 중에서 최소값을 찾아 첫 번째 레코드 위치에 놓고, 나머지 n-1개 중에서 다시 최소값을 찾아 두 번째 레코드 위치에 놓는 방식을 반복하는 정렬
*버블정렬: 주어진 파일에서 인접한 두 개의 레코드 키 값을 비교하여 그 크기에 따라 레코드 위치를 서로 교환하는 정렬 방식
*힙 정렬: 전이진 트리를 이용한 정렬 방식
*2-Way 합병 정렬: 이미 정렬되어 있는 두 개의 파일을 한 개의 파일로 합병하는 정렬 방식
1. 기수 정렬
2. 버블 정렬
3. 퀵 정렬
4. 쉘 정렬
-개념 스키마
사용자와 데이터베이스 관리자 관점의 스키마/ 데이터베이스에 실제로 어떤 데이터가 저장되었으며, 데이터 간의 관계는 어떻게 되는지를 정의하는 스키마로 전체 관점으로 한개만 존재하며 접근권한, 보안 및 무결성등에 관한 정의를 포함
-내부 스키마
저장장치와 데이터베이스 설계자 및 개발자 관점의 스키마/ 개념 스키마를 물리적 저장장치에 구현하는 방법을 정의하는 데 사용하고 물리적 구조 및 내부 레코드의 물리적 순서 등을 표현
-외부 스키마
사용자 관점의 스키마/사용자 또는 프로그램의 입장에서의 논리적 구조로 여러개가 존재
SELECT σ
PROJECT π
JOIN ▷◁
DIVISION ÷
릴레이션 = 테이블
튜플(Tuple) = 테이블의 행
속성(Attribute) = 테이블의 열
릴레이션의 논리적인 구조를 정의한 것은 '릴레이션 스키마'이다.
기능적-순차적-교환적-절차적-시간적-논리적-우연적
←강함------------------------------------약함→
1. 상호 배제(mutual exclusion)
2. 점유와 대기(hold and wait)
3. 비선점(Non-preemption)
4. Circular wait(환형 대기)
stdlib.h 라이브러리의 atoi함수는 문자열을 정수형으로 변환하는 기능을 제공한다.
1. atoi() : char to int : 문자를 정수로
2. atof() : char to double : 문자를 부동 소수점으로
3. itoa() : int to char : 정수를 문자로
4. ceil() : 소수점값이 나올 때 무조건 올림
Locality : 어느 한순간에 특정 부분을 집중적으로 참조
Thrashing : 지나치게 페이지 부재가 발생함으로 인하여 전체 시스템의 성능이 저하되는 현상
정보보안을 위한 접근통제 정책 종류
1. 임의적 접근통제정책(DAC ; Discretionary Access Control)
2. 강제적 접근통제정책(MAC ; Mandatory Access Control)
3. 역할기반 접근통제정책(RBAC ; Role-based Access Control)
1.구조적 방법론은 정형화된 분석절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론
2.객체지향 방법론은 현실 세계의 개체를 기계의 부품처럼 하나의 객체로 만들어, 소프트웨어를 개발할 때 기계의 부품을 조립하듯이 객체들을 조립해서 필요한 소프트웨어를 구현하는 방법론
3.정보공학 방법론은 정보 시스템의 개발을 위해 계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료중심의 방법론
4.컴포넌트기반 방법론은 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
해쉬 함수를 이용한 해쉬 암호화 방식은 단방향 암호화이다.
암호화 방식은 크게 양방향과 단방향으로 구분됨
1. 양방향
(1) 개인키
- 스트림 방식: RC4, LFSR
- 블록 방식: DES, SEED, AES, ARIA
(2) 공개키
2. 단방향
(1) 해시
해시함수는 단방향 암호화 방식으로 양방향 방식인 스트림 방식과는 다르게 구분됨
세션하이재킹 탐지 방법
- 비동기화 탐지: 서버와 시퀀스 넘버를 주기적으로 탐지, 비동기 상태 탐지
- Ack Storm 탐지: 급격한 ACK 비율 증가시 탐지
- 패킷의 유실 및 재전송 증가 탐지: 공격자가 중간에 끼어서 작동하므로 패킷의 유실과 서버와의 응답이 길어짐
1. 메시지(Message) : 객체의 행위를 표현
2. 캡슐화(Encapsulation) : 추상화된 객체의 구현을 은닉, 시스템의 한 콤포넌트의 내부구현이 다른 콤포넌트에 의존하지 않는것, 객체 내부의 구현을 client에게 보이지 않게하는것
3. 다형성(Polymorphism) : 파생된 클래스와 관련되면서 또다른행위를 요구하는것
4. 상속(Inheritance) : 하나의 클래스가 다른 클래스로부터 애트리뷰트나 메소드를 물려받는것
1. WAS : 애플리케이션 수행 미들웨어
2. MOM : 메세지 지향 미들웨어
3. RPC : 원격 프로시저 호출
4. ORB : 네트워크 호출 미들웨어
2. 럼바우 분석 기법
3. Booch 방법
4. Jacobson 방법
객체지향 분석 방법론
1.Booch(부치)
- 미시적, 거시적 개발 프로세스를 모두 사용하는 분석방법.
- 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의
2. Jacobson(제이콥슨)
- Use Case를 사용하여 분석(사용자, 외부 시스템, 다른 요소들이 시스템과 상호 작용 하는 방법을 기술)
3. Coad-Yourdon
- E-R 다이어그램을 사용하여 객체의 행위를 모델링
- 객체 식별, 구조 식별
4. Wirfs-Brock
- 분석과 설계간 구분이 없으며, 고객 명세서를 평가하여 설계 작업까지 연속적으로 수행
Usecase 구성요소와의 관계
- 연관 : use case 와 actor의 관계
- 확장 : 기본 use case 수행 시 특별한 조건을 만족할 때 수행할 usecase
- 포함 : 시스템의 기능이 별도의 기능을 포함
- 일반화 : 하위 use case/action이 상위 use case/actor에게 기능/역할을 상속받음
- 그룹화 : 여러개의 usecase를 단순화하는 방법
디자인 패턴
각 모듈의 세분화된 역할이나 모듈들 간의 인터페이스와 같은 코드를 작성하는 수준의 세부적인 구현 방안을 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제
-장점 : 시스템 개발 시 공통 언어 사용 (의사소통 원활), 코드의 품질 향상, 향후 변화에 대한 대비 가능, 유지보수 용이
활동 다이어그램(Activity Diagram)
:시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현한다.
상태 다이어그램(State Diagram)
:하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지를 표현한다.
클래스 다이어그램(Class Diagram)
:클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현한다.
시스템의 구조를 파악하고 구조상의 문제점을 도출할 수 있다.
'클래스의 속성'단어가 나오면 Class Diagram
체크박스 : 여러개의 선택상황에서 1개 이상의 값을 선택할 수 있는 버튼
라디오버튼 : 여러 항목 중 하나만 선택할 수 있는 버튼
텍스트박스 : 사용자가 데이터를 입력하고 수정할 수 있는 상자
토글 버튼 : on / off와 같이 둘중 하나의 값을 선택하는 버튼
1. 신뢰성 - 소프트웨어가 요구된 기능을 정확하고 일관되게 오류없이 수행할 수 있는 정도
2. 유지보수성 - 환경의 변화 또는 새로운 요구사항이 발생했을 때 소프트웨어를 개선하거나 확장할 수 있는 정도
3. 가시성 - 대상을 확인할 수 있는 정도
* 정확성(correctness): 시스템의 사양과 설계, 구현에 있어서 오류가 없는 정도
* 유용성(usability): 사용자가 시스템을 배우고 사용하는 데 있어서의 용이함
* 효율성(efficiency): 메모리와 실행 시간 같은 시스템 리소스의 최소 사용
* 신뢰성(reliability): 정해진 상황에서 언제든지 필요한 기능을 수행할 수 있는 시스템의 능력 - 고장 사이의 시간
* 무결성(integrity): 시스템이 프로그램이나 데이터에 대한 허용되지 않거나 잘못된 접근을 막는 정도. 무결성의 기본 개념에는 데이터의 적절한 접근을 보장할 뿐만 아니라 권한이 없는 사용자의 접근 제한 기능이 포한된다. 즉, 병렬 데이터를 갖는 데이블은 병렬로 변경되고 날짜 필드는 타당한 날짜만을 포함하는 식이다.
* 적응성(adaptablility): 시스템을 변경하지 않고 설계된 환경에서 뿐만 아니라 다른 응용 분야나 환경에서도 사용될 수 있는 정도
* 정밀성(accuracy): 구성된 시스템에 오류가 없는 정도. 특히 대량의 데이터를 고려한다. 정밀성은 정확성과 다르다. 정밀성은 시스템이 정확하게 구성되었는지가 아닌 시스템이 용도대로 얼마나 잘 수행하는지를 결정한다.
* 견고성(robustness): 시스템이 잘못된 입력이나 악조건에서도 기능을 계속해서 수행할 수 있는 정도
요구조건 분석 / 명세 : 데이터베이스의 사용자, 사용목적, 사용범위, 제약조건 등에 대한 내용을 정리하고 명세서를 작성
*개념적 설계 : 정보를 구조화 하기 위해 추상적 개념으로 표현하는 과정으로 개념 스키마 모델리오가 트랜잭션 모델링을 병행하고, 요구조건 분석을 통해 DBMS 독립적인 E-R 다이어그램을 작성
*논리적 설계 : 자료를 컴퓨터가 이해할 수 있도록 특정 DBMS의 논리적 자료 구조로 변환하는 과정
*물리적 설계 : 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정
개념적 설계
:개념스키마 모델링 / 트렌젝션 모델링 / 독립적인 개념스키마설계 / E-R 다이어그램
논리적설계
:트렌젝션 인터페이스 설계 / 스키마 평가 및 정제 / 목표 DBMS에 맞는 논리스키마 설계 / 논리적구조의 데이터로 모델화
물리적설계
:저장구조 및 액세스 경로 설정 / 레코드 집중의 분석,설계 / 저장 레코드 양식 설계
- 개체 무결성: 기본키 NULL값 안됨
- 참조 무결성: 외래키
- 속성 무결성: 도메인
개체 무결성 (Entity Integrity, 실체 무결성) : 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다는 규정
도메인 무결성 (Domain Integrity, 영역 무결성) : 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정
참조 무결성 (Referential Integrity) : 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 한다는 규정
사용자 정의 무결성 (User-Defined Integrity) : 속성 값들이 사용자가 정의한 제약 조건에 만족해야 한다는 규정
이상(Anomaly)의 종류에는 삽입이상, 삭제이상, 갱신이상만 존재
인덱스는 데이터 레코드를 빠르게 접근하기 위해 [키, 값, 포인터] 쌍으로 구성되는 데이터 구조임
- 데이터 베이스의 물리적 구조와 밀접한 관계를 가짐
- 너무 많이 지정하면 오버헤드가 발생할 수 있으므로 적절히 지정해야 함
회복(Recovery)
트랜잭션들을 수행하는 도중 장애가 발생하여 데이터베이스가 손상되었을 때
손상되기 이전의 정상 상태로 복구하는 작업
1.데이터링크계층 - 동기화/오류제어/순서제어
2.물리계층 - 실제 접속 및 절단/기계,전기,기능,절차적 특성 규칙 정의
3.응용계층 - 전자사서함/파일전송
4.표현계층 - 데이터 변환/데이터 암호화/정보형식변환
(내)게 (공)(부)하라고 강요하지말아요
(제)가 (스)트레스 받(자)나요
(내): 내용 결합도
(공): 공통 결합도
(부): 외부 결합도
(제): 제어 결합도
(스): 스탬프 결합도
(자): 자료 결합도
1.OTT(오버더탑)
- 개방된 인터넷을 통해 방송프로그램, 영화 등 미디어 콘텐츠를 제공하는 서비스
3.SDDC(Software Defined Data Center)
- 소프트웨어 정의 데이터 센터
- 데이터 센터의 모든 자원이 가상화되어 서비스되고, 소프트웨어 조작만으로 자동 제어 관리되는 데이터 센터
4.Wi-SUN(와이선)
- 스마트 그리드와 같은 장거리 무선 통신을 필요로 하는 사물 인터넷(IoT) 서비스를 위한 저전력 장거리(LPWA; Low-Power Wide Area) 통신 기술
스마트 그리드 : 전기의 생산, 운반, 소비 과정에 정보통신기술을 접목하여 공급자와 소비자가 서로 상호작용함으로써 효율성을 높인 지능형 전력망시스템
디지털 아카이빙 : 지속적으로 보존할 가치를 가진 디지털 객체를 장기간 관리하여 이후의 이용을 보장하는 활동
프로토타이핑 모델
- 사용자의 요구사항을 정확히 파악하기 위해 소프트웨어 시제품(Prototype)을 만들어 최종 결과물을 예측하는 모형이다.
- 폭포수 모델의 단점을 보완한 모델이다.
- 최종 결과물이 만들어지기 전에 고객이 샘플 모델을 볼 수 있어 고객의 불명확한 요구사항을 정확히 파악할 수 있다.
- 프로토타입은 요구 분석 단계에서 사용하게 된다.
나선형 모형
- 시스템 개발시 위험을 최소화 하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델
- 폭포수 모형과 원형 모형의 장점을 수용하고 위험 분석을 추가한 점증적 개발 모델
- 프로젝트 수행 시 발생하는 위험을 관리하고 최소화 하려는 것이 목적
- 성과를 보면서 점진적으로 개발 진행
- 위험관리 능력에 따라 프로젝트 성공여부에 영향
- 복잡성으로 프로젝트 관리가 어렵고 개발이 장기화 가능성 존재
- 대규모 프로젝트, 국책사업 및 위험 부담이 큰 시스템 개발에 적합
폭포수 모형
- 소프트웨어 개발의 전 과정을 나누어 체계적이고 순차적으로 접근하는 소프트웨어 개발 생명주기 모델
순서는 아래와 같다.
1.타당성 검토 → 2.계획 → 3.요구사항 분석 → 4.설계 → 5.구현 → 6.테스트 → 7.유지보수
RAD 모형
- 빠르고 쉽게 응용 프로그램을 만들 수 있는 시각적 도구 혹은 개발 모형이다.
- 툴을 사용해서, 디자인을 하고, Code Generator를 활용하여 프로그램을 빠르게 개발하는 기법
(대표적인 툴로는 파워빌더, Visual C#, Miplatform 같은 플랫폼이 있다.)
- RAD 모형의 개발절차는 JRP, JAD, 구축/운영, Cutover(이전)이 있다.
나선형 모델과 더불어 폭포수 모형 역시 보헴이 제시한 생명 주기 모형이다.
'정보처리기사' 카테고리의 다른 글
정처기 - 랜덤 오답노트 20210812 (0) | 2021.08.12 |
---|---|
정처기 오답 - 정보처리기사 2021년 5월 15일 2회 기출문제 (0) | 2021.08.09 |
★최종 정보처리기사 2020년 9월 26일 (0) | 2021.08.06 |
★최종 정보처리기사 2020년 8월 22일 (0) | 2021.08.06 |
★최종 정보처리기사 2020년 6월 6일 (0) | 2021.08.06 |