공부

[정보처리기사] 요약 및 정리

narlo 2023. 5. 19. 00:17

1. 순차 다이어그램

- 행위 다이어그램

- 시스템이나 객체들이 메시지를 주고받으며 시간의 흐름에 따라 상호작용하는 과정을 액터, 객체, 메시지 등의 요소를 사용하여 그림으로 표현한 것

- 동적인 오퍼레이션을 표현

- 수직 방향은 시간의 흐름을 나타냄

- 회귀 메시지, 제어 블록 등으로 구성

- 구성요소 : 액터, 객체, 생명선, 실행상자, 메시지

1-1. 유스케이스 다이어그램

- 사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자의 관점에서 표현한 것

- 외부 요소와 시스템 간의 상호작용 확인 가능

- 사용자 요구사항 분석 도구

- 구성요소 ; 시스템 범위, 액터, 유스케이스, 관계

1-2. 클래스 다이어그램

- 시스템을 구성하는 클래스, 클래스의 특성인 속성과 오퍼레이션, 이에 대한 제약조건, 클래스 간의 관계를 표현한 것

- 시스템 구성 요소에 대해 이해할 수 있는 구조적 다이어그램

- 시스템 구성 요소를 문서화하는 데 사용됨

- 시스템 모델링에 자주 사용

- 구성요소 : 클래스, 제약조건, 관계

 

2. 메시지 지향 미들웨어(MOM)

- 비동기형 메시지를 전달하는 방식의 미들웨어

- 이기종 분산 데이터 시스템의 데이터 동기를 위해 사용

- 독립된 애플리케이션을 하나의 통합된 시스템으로 묶기 위한 역할

- 송신, 수신측 연결 시 메시지 큐를 활용하는 방법이 있음

- 다소 느리고 안정적인 응답을 필요로 하는 경우 많이 사용

 

3. XP

- 애자일 방법론

- 변경이 많은 요구에 적절

- 고객의 적극적인 참여

- 핵심 가치 : 의사소통, 단순성, 용기, 존중, 피드백

 

4. 유스케이스

- 연관, 확장, 일반화, 포함

 

7. 미들웨어

- 서로 다른 기종 간의 원만한 통신을 위한 서비스 제공

- 위치 투명성 제공(실제 위치를 알 필요 없이 논리적인 명칭만으로 액세스 가능)

- 시스템 간의 데이터 교환의 일관성 보장

- 1:1, 1:N, N:M 등 여러 형태로 연결 가능

- 사용자가 미들웨어의 내부 동작을 확인하려면 별도의 응용 소프트웨어를 사용해야 함

 

9. 객체지향

- 클래스 : 공통된 속성과 연산을 갖는 객체의 집합, 하나 이상의 유사한 객체를 묶음

- 캡슐화 : 서로 관련성이 많은 데이터와 연산들을 묶음, 객체 간 결합도가 낮아진다.

- 상속 : 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것

- 다형성 : 하나의 메시지에 대해 각각의 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력

   - 오버로딩 : 메소드 이름은 같지만 인수를 받는 자료형과 개수 달리함

   - 오버라이딩 : 상위 클래스에서 지정한 메소드와 이름은 같지만 실행 코드를 달리하여 재정의

 

15. 디자인 패턴

- 생성 패턴

   - 추상 팩토리, 빌더, 팩토리 메소드, 프로토타입, 싱글톤

- 구조 패턴

   - 어댑터, 브리지, 컴포지트, 데코레이터, 퍼싸드, 플라이웨이트, 프록시

- 행위 패턴

   - 책임 연쇄, 커맨드, 인터프리터, 반복자, 중재자, 메멘토

 

20. MVC

- 모델 : 서브시스템의 핵심 기능과 데이터 보관

- 뷰 : 사용자에게 정보를 표시

- 컨트롤러 : 입력된 변경 요청을 처리하기 위해 모델에게 명령을 보냄

- 컨트롤러가 모델을 갱신, 모델은 뷰에 변경을 알리고, 뷰는 모델에게 정보를 요청, 컨트롤러가 뷰를 제어

 

21. 통합 테스트

- 단위 테스트가 끝난 모듈을 통합하는 과정에서의 오류 및 결함을 찾는 기법

- 하향식 통합 테스트 : 종속 모듈을 스텁으로 대체

- 상향식 통합 테스트 : 하위 모듈을 클러스터로 결합하고, 더미 모듈인 드라이버를 작성

 

23. 워크스루

- 정적 테스트

- 작업 내역을 개발자가 모집한 전문가들이 검토하는 것

- 오류의 조기 검출을 목적으로 하며 발견된 오류는 문서화

 

30. 화이트박스 테스트

- 동적 테스트

- 모듈의 원시 코드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계

 

33. 인스펙션

- 정적 테스트

- 워크스루의 발전된 형태

- 개발 단계에서 산출된 결과물의 품질을 평가하며 이를 개선하기 위한 방법 등을 제시

 

35. 단위 테스트

- 모듈이나 컴포넌트에 초점을 맞춰 테스트

 

41. 정규형

도메인이 원자값

부분적 함수 종속 제거

이행적 함수 종속 제거

결정자이면서 후보키가 아닌 것 제거

다치 종속 제거

조인 종속성 이용

 

46. 데이터베이스 설계

- 개념적 설계 : 개념 스키마 모델링, 트랜잭션 모델링

- 논리적 설계 : 논리적 스키마 설계

- 물리적 설계 : 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정

   - 트랙잭션 처리량, 응답 시간, 디스크 용량, 저장 공간의 효율화 고려

 

73. 응집도

- 우연적 < 논리적 < 시간적 < 절차적 < 통신적 < 순차적 < 기능적

 

73-1. 결합도

- 내용 > 공통 > 외부 > 제어 > 스탬프 > 자료

 

81. 정보보안의 3요소

- 기밀성, 무결성, 가용성

 

 

 

트리

- preorder : root, left, right

- inorder : left, root, right

- postorder : left, right, root

 

정렬

- 삽입 정렬 : 2번째 요소부터 시작하여 맞는 자리에 삽입

- 평균, 최악 모두 O(N^2)

 

- 선택 정렬 : 최소값을 찾아 첫번째에 놓고, 나머지 N-1개 중 다시 최소값을 찾아 두 번째에 놓는 방식

- 평균, 최악 모두 O(N^2)

 

- 버블 정렬 : 인접한 두 개의 레코드 키 값을 비교하여 위치를 서로 교환하는 정렬 방식

- 평균, 최악 모두 O(N^2)

 

- 퀵 정렬 : 부분적으로 나누어가며 정렬하는 방법, pivot 기준으로 divide and conquer

- 평균 : O(NlogN), 최악 : O(N^2)

 

- 힙 정렬 : 전이진트리를 이용한 정렬

- 평균과 최악 모두 O(NlogN)

 

해싱함수

- 제산법(Division) : 나머지

- 제곱법 : 제곱

- 폴딩법 : XOR

- 기수 변환법 : 진수 변환

- 대수적 코딩법 : 비트 수 이용

- 숫자 분석법 : 숫자 분포 분석

- 무작위법

 

SQL

- DDL : CREATE, ALTER, DROP

- DML : SELECT, INSERT, DELETE, UPDATE

- DCL : COMMIT, ROLLBACK, GRANT, REVOKE

 

트랜잭션

- Aborted : rollback 연산을 수행한 상태

- 트랜잭션 분석 : CRUD

 

분산 데이터베이스

- 위치 투명성

- 중복 투명성

- 병행 투명성

- 장애 투명성

 

데이터베이스 보안

- 개인키 암호 방식 = 비밀키 암호 방식

   - 동일한 키로 데이터를 암호화 하고 복호화 함

   - 대칭 암호 방식, 단일키 암호화 기법

   - 데이터베이스 사용 권한이 있는 사용자만 나누어 가짐

- 공개키 암호 방식

   - 서로 다른 키로 데이터를 암호화하고 복호화 함

   - 공개키는 데이터베이스 사용자에게 공개, 복호화 키(비밀키)는 관리자가 비밀리에 관리

   - 비대칭 암호 방식

   - 대표적으로 RSA

 

데이터베이스 접근통제

- DAC(임의접근통제)

- MAC(강제접근통제)

- RDBC(역할기반접근통제)

 

LOC(원시 코드 라인 수)

낙관치, 비관치, 기대치