반응형
요구사항 분석
기능적 요구사항 vs 비기능적 요구사항
- 기능적 요구사항: 시스템이 실제로 어떻게 동작하는지에 관점을 둔 요구사항
- 비기능적 요구사항: 시스템 구축에 대한 성능, 보안, 품질, 안정 등에 대한 성능, 보안, 품질, 안정성 등으로 실제 수행에 보조적인 요구사항
UML다이어그램 종류
구조, 행위 두 가지로 나누어진다.
구조 - 클객컴배복패 (클래스, 객체, 컴포넌트, 배치, 복합체, 패키지)
행위 - 유시커상활타상 (유스케이스, 시퀀스, 커뮤니케이션, 상태, 활동, 타이밍, 상호작용)
객체지향 설계 원칙
- 단일책임 원칙 (SRP, Single Responsibility Principle)
- 객체는 단 하나의 책임만 가져야 한다.
- 응집도는 높고, 결합도는 낮게 설계
- 개방-폐쇄 원칙 (OCP, Open-Closed Principle)
- 기존의 코드를 변경하지 않고 기능을 추가할 수 있도록 설계해야 한다.
- 공통 인터페이스를 하나의 인터페이스로 묶어 캡슐화하는 방법이 대표적
- 리스코프 치환 원칙 (LSP, Liskov Substitution Principle)
- 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다.
- 자식 클래스는 부모 클래스의 책임을 무시하거나 재정의하지 않고 확장만 수행해야 한다.
- 인터페이스 분리 원칙 (ISP, Interface Segregation Principle)
- 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다.
- 단인 책임 원칙이 객체가 갖는 하나의 책임이라면, 인터페이스 분리 원칙은 인터페이스가 갖는 하나의 책임이다
- 의존 역전 원칙 (DIP, Dependency Inversion Principle)
- 각 객체들 간의 의존 관계가 성립될 때, 추상성이 낮은 클래스보다 추상성이 높은 클래스와 의존 관계를 맺어야 한다.
- 일반적으로 인터페이스를 활용하면 이 원칙은 준수된다.
결합도 강함 -> 약함
내공은 외제를 쓰(스)자
응집도 강함 -> 약함
기-순-교-절-시-논-우
GoF (Gang of Four) 디자인 패턴
생성 : 추상 팩토리, 빌더, 팩토리 메소드, 프로토타입, 싱글톤
구조 ; 어댑터, 브릿지, 컴포지트, 데코레이터, 퍼싸트. 플라이웨이트, 프록시
행위 : 역할 사슬, 커맨드, 인터프리터, 이터레이터, 미디에이터, 메멘토, 옵저버, 상태, 전략, 템플릿 메소드, 비지터
검증(Verification)과 확인(Validation)
- 검증 (Verification) : 소프트웨어가 요구사항에 부합하게 구현되었음을 보장하는 활동
- 확인 (Validation) : 소프트웨어가 고객의 의도에 따라 구현되었음을 보장하는 활동
검증 -> 개발자
확인 -> 사용자
프로그램 실행 여부
- 정적 테스트
- 프로그램을 실행하지 않고 명세서나 코드를 대상으로 분석하는 테스트
- 워크스루, 인스펙션, 코드검사 등
- 동적 테스트
- 프로그램을 실행하여 오류를 찾음, 소프트웨어 개발의 모든 단계에서 테스트 수행 가능
- 블랙박스 테스트, 화이트박스 테스트
키 (Key)
- 후보 키 (Cnadidate Key)
- 기본키의 후보들 (유일성, 최소성 만족해야함)
- 테이블 내에서 행을 고유하게 식별할 수 있는 필드(또는 필드의 조합)
- 후보 키는 중복되거나 빈 값이 없어야 하며, 여러 개가 존재할 수 있음
- 기본 키 (Primary Key)
- 테이블 내에서 각 행을 고유하게 식별
- 기본 키로 지정된 필드는 중복되거나 빈 값 불가능
- 대체 키 (Alternate Key)
- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
- 기본 키로 선택되지 않은 나머지 후보 키들을 의미
- 이들도 각 행을 고유하게 식별할 수 있는 속성을 가짐두
- 슈퍼 키 (Super Key)
- 유일성 만족, 최소성 만족 X
- 테이블 내에서 행을 유일하게 식별할 수 있는 하나 이상의 필드를 포함하는 키
- 슈퍼 키는 필요 이상의 필드를 포함할 수 있으며, 그 자체로는 실용적이지 않음
- 외래 키 (Foreign Key)
- 다른 테이블의 기본 키를 참조하는 필드
- 외래 키는 데이터 간의 관계를 설정하는 데 사용되며, 데이터 무결성을 유지하는 데 중요한 역할
- 복합 키 (Composite Key)
- 두 개 이상의 필드를 결합하여 행을 유일하게 식별하는 키
- 각각의 필드만으로는 행을 고유하게 식별할 수 없을 때 사용
관계형 데이터베이스의 제약조건 - 무결성
개체 무결성, 도메인 무결성, 참조 무결성, 사용자 정의 무결성 등이 있다.
- 개체 무결성 : 기본 테이블의 기본키를 구성하는 어떤 속성도Null 값이나 중복값을 가질 수 없다.
- 도메인 무결성 : 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다
- 참조 무결성 : 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 한다. 즉릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다.
- 사용자 정의 무결성 : 속성 값들이 사용자가 정의한 제약 조건에 만족해야 한다.
시스템 카탈로그
- DBMS가 스스로 생성하고 유지
- INSERT, DELETE, UPDATE 문으로 시스템 카탈로그를 갱신하는 것이 허용되지 않음
- 시스템 자신이필요로 하는 스키마 및 여러가지 객체에 관한 정보를 포함하고 있는 시스템데이터베이스
- 시스템 카탈로그에 저장되는 내용을 메타데이터라고 한다.
분산 데이터베이스의 목표
- 위치 불투명성 (Location Transparency) : 하드웨어와 소프트웨어의 물리적 위치를 사용자가 알 필요가 없다.
- 중복(복제) 투명성( Replication Transparency) : 사용자에게 통지할 필요없이 시스템 안에 파일들과 자원들의 부가적인 복사를 자유롭게할 수 있다.
- 병행 투명성 (Concurrency Transparency) : 다수의 트랜잭션들이 동시에 실현되도 그 트랜잭션의 결과는 영향을 받지 않음. 다중 사용자들이 자원들을 자동으로 공유할 수 있다.
- 장애 투명성(Falure Transparency) : 장애에도 불구하고 트랜잭션을 정확하게 처리함. 사용자들은 어느위치의 시스템에 장애가 발생했는지 알필요가 없다.
접근 통제 기술
- 임의 접근통제(DAC), 강제 접근통제(MAC), 역할기반 접근통제(RBAC)
DDL (Data Define Language, 데이터 정의어)
- CREATE
- ALTER
- DROP
DML (Data Manipulation Language, 데이터 조작어)
- SELECT
- INSERT
- DELETE
- UPDATE
DCL (Data Control Language, 데이터 제어어)
- COMMIT : 명령어로 수행된 결과를 실제 물리적 디스크로 저장, 명령어로 수행을 성공적으로 완료했음을 선언한다.
- ROLLBACK : 명령어로 수행을 실패했음을 알리고, 수행된 결과를 원상복구
- GRANT : DB사용자에게 사용 권한을 부여
- REVOKE : DB사용자로부터 사용 권한 취소한다.
COCOMO (Constructive Cost Model) 모형의 특징
- 프로젝트를 완성하는데 필요한 man-month로 산정 결과를 나타냄
- 보헴 (Boehm)이 제안한 것으로 원시코드 라인수 (LOC)에 의한 비용 산정 기법
- 비교적 작은 규모의 프로젝트를 통계 분석한 결과를 반영한 모델
- 중소규모 소프트웨어 프로젝트 비용 추정에 적합
- 개발 유형에 따라 조직형, 반분리형, 내장형으로 구분
- 조직형 (Organic)
- 5만 라인 이하
- 사무 처리용, 업무용, 과학용 소프트웨어 개발에 적합
- 반분리형 (Semi-Detached)
- 30만 라인 이하
- 컴파일러, 인터프리터 개발에 적합
- 내장형 (Embedded)
- 30만 라인 이상
- 미사일 유도 시스템, 실시간 처리 시스템 개발에 적합
- 조직형 (Organic)
암호 알고리즘
개인키 암호화(Private Key Encryption) 기법
- 동일한 키로 데이터를 암호화하고 복호화한다.
- 블록 암호화 방식 : DES, SEED, AES, ARIA, IDEA
- 스트림 암호화 방식 : LFSR, RC4
- 장점: 암/복호화 속도가 빠름, 알고리즘 단순, 공개키 암호 기법보다 파일 크기가 작음
- 단점: 사용자의 증가에 따라 관리해야할 키의 수가 많아짐
공개키 암호화(Public Key Encryption) 기법
- 암호화할 때 사용하는 공개키는 데이터 베이스 사용자에게 공개, 복호화할때 비밀키는 관리자가 비밀리에 관리
- 암호화 대상이 n개일 때 키의 개수는 2n개
- 비대칭 암호 기법이라고도 함, RSA 기법이 있음
- 장점: 키의 분배가 용이, 관리해야할 키의 개수 적음
- 단점: 암호화/복호화속도 느림, 알고리즘 복잡, 개인키 암호화 기법보다 파일의 크기가 큼
양방향 알고리즘 종류
- SEED
- 한국인터넷진흥원(KISA)에서 개발한 블록 암호화 알고리즘
- 블록 크기 128비트, 키 길이에 따라 128, 256 분류
- ARIA (Academy, Research Institute, Agency)
- 국정원과 산학연협회에서 개발한 블록 암호화 알고리즘
- 블록 크기 128, 키길이에 따라 128, 192, 256
- DES (Data ncryption Standard)
- 미국 NBS에서 발표한 개인키 암호화 알고리즘
- DES를 3번 적용한 3dES 있음
- 블록크기 64, 키 길이 56
- AES (Advanced Encryption Standard)
- 미국 표준 기술 연구소에서 발표한 개인키 암호화 알고리즘
- DES의 한계때문에 개발
- 블록크기 128, 키길이 56
- RSA (Rivest Shamir Adleman)
- MIT에서 개발한 공개키 암호화알고리즘
- 큰 숫자를 소인수분해 하기 어렵다는 것에 기반
- 공개키와 비밀키를 사용, 키는 상수
- ECC (Elliptic Curve Cryptography)
- RSA 암호 방식 대안
- 이산대수 문제를 타원곡선으로 옮겨 기밀성과 효율성을 높임
- Rabin
- 미하엘 라빈 개발
- 소인수분해 어려움에 안정성의 근거를 둔 암호화 알고리즘
반응형
'정보처리기사 > 필기' 카테고리의 다른 글
24년 1회차 (240301) 필기 후기 (0) | 2024.03.04 |
---|---|
정보처리기사 필기 공부 5과목 (정보시스템 구축관리) (0) | 2024.02.02 |
정보처리기사 필기 공부 4과목 (프로그래밍 언어 활용) (1) | 2024.01.31 |
정보처리기사 필기 공부 3과목 (데이터베이스 구축) (0) | 2024.01.29 |
정보처리기사 필기 공부 2과목 (소프트웨어 개발) (2) | 2024.01.24 |
댓글