티스토리 뷰
1 과목 : 소프트웨어 설계
객체지향 분석 방법론
- Booch(부치)
- 미시적, 거시적 개발 프로세스를 모두 사용하는 분석방법
- 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의 - Jacobson(제이콥슨)
- Usecase를 사용하여 분석
- 사용자, 외부시스템, 다른 요소들이 시스템과 상호 작용하는 방법을 기술 - Coad-Yourdon(코드-요단)
- E-R 다이어그램을 사용하여 객체의 행위를 모델링
- 객체 식별, 구조 식별 - Wirfs-Brock(브록)
- 분석과 설계 간 구분이 없으며, 고객 명세서를 평가하여 설계 작업까지 연속적으로 수행
럼바우 분석 기법
- 객체 모델링(Object)
- 정보 모델링, 시스템에서 요구 - 동적 모델링(Dynamic)
- 제어, 흐름, 동작 - 기능 모델링(Functional)
- DFD
객체지향 분석
객체지향 분석이란?
- 소프트웨어를 개발하기 위한 비즈니스(업무)를 객체와 속성, 클래스와 멤버, 전체와 부분 등으로 나우어서 분석하는 기법
소프트웨어 설계 방식
- 상향식 설계
- 최하위 수준에서 각각의 모듈들을 설계하고, 모듈이 완성되면 이들은 결합하여 검사 - 하향식 설계
- 주어진 문제를 분석하여 모듈의 전체적인 구조와 데이터를 개괄적으로 설계하고 이를 기반으로 하위 레벨에서 점차 세부적인 기능을 중심으로 모듈을 설계
2 과목 : 소프트웨어 개발
디지털 저작권 관리(DRM) 기술요소
- 암호화
- 키 관리
- 암호화 파일 생성
- 식별 기술
- 저작권 표현
- 정책관리
- 크랙방지
- 인증
소프트웨어 시스템
- 신뢰성
- 소프트웨어가 요구된 기능을 정확하고 일관되게 오류 없이 수행할 수 있는 정도 - 유지보수성
- 환경의 변화 또는 새로운 요구사항이 발생했을 때 소프트웨어를 개선하거나 확장할 수 있는 정도 - 가시성
- 대상을 확인할 수 있는 정도 - 재사용성
- 소프트웨어의 일부분을 다른 시스템에서 사용할 수 있는 정도
자료구조
자료구조란?
- 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미
- 스택
- 먼저 저장된 것이 꺼내어 쓸 때는 제일 나중에 나온다 (LIFO) - 큐
- 먼저 저장된 것이 제일 먼저 나온다 (FIFO) - 그래프
- 꼭짓점과 꼭짓점을 잇는 변으로 구성 - 트리
- 뿌리와, 뿌리 또는 다른 꼭짓점을 단 하나의 부모로 갖는 꼭짓점들로 이루어진 구조(부모-자식 구조)
형태에 따른 구조
- 선형 구조
- 리스트, 스택, 큐, 데크 - 비선형 구조
- 트리, 그래프
이진 검색 알고리즘
이진 검색 알고리즘이란?
- 오름차순으로 정렬된 리스트에서 특정한 값의 위치를 찾는 알고리즘
특징
- 탐색 효율이 좋고 탐색 시간이 적게 소요된다
- 검색할 데이터가 정렬되어 있어야 한다
- 비교 횟수를 거듭할 때마다 검색 대상이 되는 데이터의 수가 절반으로 줄어든다
소프트웨어 품질 목표
- 정확성(Coreectness)
- 시스템의 사양과 설계, 구현에 있어서 오류가 없는 정도 - 유용성(Usability)
- 사용자가 시스템을 배우고 사용하는 데 있어서의 용이함 - 효율성(Efficiency)
- 메모리와 실행 시간 같은 시스템 리소스의 최소 사용 - 신뢰성(reliability)
- 정해진 상황에서 언제든지 필요한 기능을 수행할 수 있는 시스템 능력 - 무결성(integrity)
- 시스템이 프로그램이나 데이터에 대한 허용되지 않거나 잘못된 접근을 막는 정도 - 적응성(adaptablility)
- 시스템을 변경하지 않고 설계된 환경에서 뿐만 아니라 다른 응용 분야나 환경에서도 사용될 수 있는 정도 - 정밀성(accuracy)
- 구성된 시스템에 오류가 없는 정도 - 견고성(robustness)
- 시스템이 잘못된 입력이나 악조건에서도 기능을 계속해서 수행할 수 있는 정도
알고리즘
- 퀵 정렬
- 레코드의 많은 자료 이동을 없애고 하나의 파일을 부분적으로 나누어 가면서 정렬하는 방식 - 삽입정렬
- 가장 간단한 정렬 방식, 이미 순서화된 파일에 새로운 하나의 레코드를 순서에 맞게 삽입시켜 정렬 - 쉘 정렬
- 삽입정렬 확장 개념, 입력파일을 매개변숫값으로 서브파일 구성하고 각 서브 파일을 삽입 정렬 방식으로 순서 배열하는 과정을 반복 - 선택 정렬
- n개의 레코드 중에서 최소값을최솟값을 찾아 첫 번째 레코드 위치에 놓고, 나머지 n-1개 중에서 다시 최솟값을 찾아 두 번째 레코드 위치에 놓는 방식을 반복하는 정렬 - 버블 정렬
- 주어진 파일에서 인접한 두 개의 레코드 키 값을 비교하여 그 크기에 따라 레코드 위치를 서로 교환하는 정렬 방식
해싱함수
해싱함수란?
- 데이터의 효율적 관리를 목적으로 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수
해싱함수 종류
- 제산법
- 제곱법
- 중첩법(폴딩법)
- 숫자분석법
- 기수 변환법
- 무작위 방법
인수 검사 기법
- 베타 테스트
- 선정된 최종 사용자가 여려 명의 사용자 앞에서 행하는 테스트 기법 (사용자 개발자 같이) - 알파 테스트
- 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법 (사용자 혼자)
3 과목 : 데이터베이스 구축
스키마
스키마란?
- 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것
- 개념 스키마
- 사용자와 DB 관리자 관점의 스키마/DB에 실제로 어떤 데이터가 저장되었으며, 데이터 간의 관계는 어떻게 되는지를 정의하는 스키마 - 내부 스키마
- 저장장치와 DB 설계자 및 개발자 관점의 스키마/개념 스키마를 물리적 저장장치에 구현하는 방법을 정의하는 데 사용하고 물리적 구조 및 내부 레코드의 물리적 순서 등을 표현 - 외부 스키마
- 사용자 관점의 스키마/사용자 또는 프로그램의 입장에서의 논리적 구조로 여러 개가 존재
데이터베이스 설계 단계
- 개념적 설계
- 개념스키마 모델링 / 트랜잭션 모델링 / 독립적인 개념스키마 설계 / E-R 다이어 그램 - 논리적 설계
- 트랜잭션 인터페이스 설계 / 스키마 평가 및 정제 / 목표 DBMS에 맞는 논리스키마 설계 / 논리적 구조의 데이터로 모델화 - 물리적 설계
- 저장구조 및 액세스 경로 설정 / 레코드 집중의 분석, 설계 / 저장 레코드 양식 설계
트랜잭션의 특성
- 원자성(atomicity)
- 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 오류가 발생한다면 트랜잭션 전부가 취소된다 - 일관성(consistency)
- 트랜잭션의 수행 전, 후의 데이터 간의 불일치가 생겨서는 안 된다 - 격리성(insolation)
- 여러 트랜잭션이 동시에 수행되어도, 각각 독립적으로 수행되어야 한다 - 영속성 = 지속성(durability)
- 성공적으로 수행된 트랜잭션의 결과는 지속성이 있어야 한다
시스템 카탈로그
시스템 카탈로그 특징
- 데이터베이스에 포함되는 데이터 객체에 대한 정의나 명세에 대한 정보를 유지관리한다
- DBMS가 스스로 생성하고 유지하는 데이터베이스 내의 특별한 테이블의 집합체이다
- 카탈로그에 저장된 정보를 메타 데이터라고 한다
- 시스템에서 자동갱신을 한다
관계대수 연산
- SELECT : σ(시그마)
- PROJECT : π (파이)
- JOIN : ▷◁ (나비넥타이)
- DIVISION : ÷ (나누기)
관계 데이터 모델
[릴레이션]
- 릴레이션(Relation)
- 행과 열로 구성된 테이블 - 속성(Attribute)
- 세로 값으로 열(Column)이라고 한다 - 튜플(Tuple)
- 가로 값으로 행(Row)이라고 한다 - 차수(Degree)
- 속성의 수 - 카디날리티(Cardinality)
- 튜플의 수
정규화 단계
1NF(도) - 2NF(부) - 3NF(이) - BCNF(결) - 4NF(다) - 5NF(조)
※ 두부이걸다줘? 로 외우자..
- 1NF
- 원자값이 아닌 도메인 분해 - 2NF
- 부분적 함수 종속 제거 - 3NF
- 이행적 함수 종속 제거 - BCNF
- 결정자이면서 후보키가 아닌 것 제거 - 4NF
- 다치 종속 제거 - 5NF
- 조인 종속성 이용
인덱스
인덱스 특징
- 데이터 레코드를 빠르게 접근하기 위해 [키, 값, 포인터] 쌍으로 구성되는 데이터 구조
- 데이터 베이스의 물리적 구조와 밀접한 관계를 가짐
- 너무 많이 지정하면 오버헤드가 발생
- DB에 저장된 자료를 더욱 빠르게 조회하기 위해 사용
4 과목 : 프로그래밍 언어 활용
응집도
※ 기순교절시논우 외우자..
기능적-순차적-교환적-절차적-시간적-논리적-우연적
<강함 약함>
제어 프로그램 와 처리 프로그램
제어 프로그램 종류
- 감시 프로그램(Supervisior Program)
- 작업 프로그램(Job Management Program)
- 데이터 관리 프로그램(Data Management Program)
처리 프로그램 종류
- 언어 번역 프로그램
- 서비스 프로그램
TCP/IP 4 Layer
- 1 계층 (네트워크 액세스 계층)
- OSI 7 계층의 물리계층과 데이터 링크 계층에 해당
- 물리적인 주소로 MAC 사용
- LAN, 패킷망 등에 사용 - 2 계층 (인터넷 계층)
- OSI 7 계층의 네트워크 계층에 해당된다
- 통신 노드 간의 IP패킷을 전송하는 기능과 라우팅 기능을 담당
- 프로토콜 - IP, ARP, RARP - 3 계층 (전송 계층)
- OSI 7 계층의 전송 계층에 해당된다
- 통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당한다
- 프로토콜 - TCP, UDP - 4 계층 (응용 계층)
- OSI 7 계층의 세션 계층, 표현 계층, 응용 계층에 해당한다
- TCP/UDP 기반의 응용 프로그램을 구현할 때 사용한다
- 프로토콜 - FTP, HTTP, SSH
결합도 순서
※ (내 공 외 제 스 자)로 외우자
내용 - 공통 - 외부 - 제어 - 스탬프 - 자료
<낮음 높음>
5 과목 : 정보시스템 구축관리
암호 알고리즘
- 해시 암호화 알고리즘
- MD5
- MD4
- SHA-1 - 대칭 키 암호화 알고리즘
- AES - 비대칭 키(공개 키) 암호화 알고리즘
- RSA
MQTT
MQTT란?
- 머신 대 머신 통신에 사용되는 표준 기반 메시징 프로토콜 또는 규칙
특징
- 사물통신과 같은 대역폭이 제한된 통신환경에 최적화하여 개발된 푸시기술 기반의 경량 메시지 전송 프로토콜
- 메시지 매개자(Broker)를 통해 송신자가 특정 메시지를 발행하고 수신자가 메시지를 구독하는 방식
- IBM이 주도하여 개발
Baas(Blockchain as a Service)
Baas란?
- SNS, 위치서비스와 같은 백엔드 기능을 클라우드 화하는 모바일 앱 개발에 주로 사용하는 클라우드 서비스
특징
- 블록체인 개발환경을 클라우드로 서비스하는 개념
- 네트워크에 노드의 추가 및 제거가 용이
- 기본 인프라를 추상화하여 응용프로그램을 만들 수 있는 클라우드 컴퓨팅 플랫폼
스트림 암호화
스트림 암호란?
- 데이터 흐름(스트림)을 순차적으로 처리해 나가는 방식
특징
- 비트 / 바이트 / 단어들을 순차적으로 암호화
- RC4는 스트림 암호화 방식에 해당
- 대칭키 암호화 방식
세션 하이재킹 탐지 방법
세션 하이재킹이란?
- 세션 하이재킹은 시스템 간 연결이 활성화된 상태, 즉 로그인(Login) 된 상태를 가로채는 것을 뜻
탐지 방법
- 비동기화 탐지
- 서버와 시퀀스 넘버를 주기적으로 탐지, 비동기 상태 탐지 - ACK STORM 탐지
- 급격한 ACK 비율 증가 시 탐지 - 패킷 유실 및 재전송 증가 탐지
- 공격자가 중간에 끼어서 작동하므로 패킷의 유실과 서버와의 응답이 길이지는 것을 탐지
CBD(Component Based Development)
CBD(Component Based Development)란?
- 재사용 가능한 컴포넌트의 개발 또는 상용 컴포넌트를 조합하여 하나의 새로운 응용 프로그램을 만드는 소프트웨어 개발 방법론
특징
- 생산성과 품질을 높이고, 유지보수 비용을 최소화
- 컴포넌트 제작 기법을 통해 재사용성을 향상
- 독립적인 컴포넌트 단위의 관리로 복잡성을 최소화
※ 개발준비 > 분석 > 설계 > 구현 > 테스트 > 전개 > 인도 절차로 진행
공개키 암호
공개키 암호란?
- 비밀 키 암호 방식과 달리 암호화와 복호화에 이용하는 키가 다른 방식
특징
- 복호화키는 비공개 되어있다
- 송신자는 수신자의 공개키로 문서를 암호화
- 공개키 암호로 널리 알려진 알고리즘은 RSA
- 공개 키(비대칭 키) = 2N개
- 비밀키(대칭키) = N(N-1)/2
'APS > 정보처리기사 필기' 카테고리의 다른 글
정보처리기사 필기 20200926 기출문제 정리노트 (0) | 2024.05.03 |
---|---|
정보처리기사 필기 20200822 기출문제 정리노트 (0) | 2024.04.30 |
정보처리기사 필기 20200606 기출문제 정리노트 (0) | 2024.04.22 |