카디널리티 : 튜플의 수 (행의 갯수)
차수(degree) : 속성의 수 (열의 갯수)
관계 데이터 모델
관계형 데이터베이스
- 관계형 데이터베이스는 2차원적인 표(Table)를 이용해서 데이터 상호 관계를 정의하는 데이터베이스
- 개체(Entity)와 관계(Relationship)를 모두 릴레이션(Relation)이라는 표(Table)로 표현하기 때문에 개체를 개체 릴레이션과 관계 릴레이션이 존재
- 장점
- 간결하고 보기 편리
- 다른 데이터베이스로의 변환이 용이
- 단점
- 성능이 다소 떨어짐
관계형 데이터베이스의 릴레이션 구조
릴레이션(Relation)은 데이터들의 표(Table)의 형태로 표현한 것으로, 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성된다.
출처 : liveyourit.tistory.com/213
relation : 테이블
튜플(tuple) : 테이블의 행
카디널리티(cardinality) : 튜플의 수
속성(attribute) : 테이블의 열
차수(degree) : 속성의 수
키(Key)
키는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성을 말한다. 키의 종류로는 후보키(Candidate Key), 기본키(Primary key), 대체키(Alternate Key), 슈퍼키(Super Key), 외래키(Foreign Key)가 있다.
후보키(Candidate Key)
후보키는 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합이다. 기본키로 사용할 수 있는 속성들을 말한다. 후보키는 유일성과 최소성을 모두 만족시켜야 한다.
유일성 (Unique) |
하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 함 |
최소성 (Minimality) |
키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 꼭 필요한 최소의 속성으로 구성되어야 함 |
기본키(Primary key)
기본키는 후보키 중에서 특별히 선정된 주키(Main Key)이며 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성이다. 기본키는 중복된 값을 가질 수 없으며 NULL값을 가질 수 없다.
대체키(Alternate Key)
대체키는 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 의미한다. 대체키를 보조키라고도 한다.
슈퍼키(Super Key)
슈퍼키는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키를 말한다. 릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타내지 않는다. 슈퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못한다.
외래키(Foreign Key)
외래키는 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미한다. 한 릴레이션에 속한 속성 A와 참조 릴레이션의 기본키인 B가 동일한 도메인상에서 정의되었을 때의 속성 A를 외래키라고 한다. 외래키로 지정되면 참조 릴레이션의 기본키에 없는 값은 입력할 수 없다.
e-r 다이어그램 표기법
기호 이름 | 의미 |
사각형 | 개체(Entitiy) 타입 |
마름모 | 관계(Relationship) 타입 |
타원 | 속성(Attribute) 타입 |
이중 타원 | 다중값 속성(복합 속성) |
밑줄 타원 | 기본키 속성 |
복수 타원 | 복합 속성 |
관계 | 1:1, 1:N, N:M 등의 개체 간 관계에 대한 대응수를 선위에 표시 |
선, 링크 | 개체 타입과 속성을 연결 |
응집도 순서 (기순교절시논우)
기능적-순차적-교차적-절차적-시간적-논리적-우연적
OSI 7계층
1.데이터링크계층 - 동기화/오류제어/순서제어
2.물리계층 - 실제 접속 및 절단/기계,전기,기능,절차적 특성 규칙 정의
3.응용계층 - 전자사서함/파일전송
4.표현계층 - 데이터 변환/데이터 암호화/정보형식변환
시스템 품질속성
가용성, 변경용이성, 성능, 보안성, 사용편의성, 시험용의성
소프트웨어 아키텍처
파이프필터 아키텍처에서 데이터는 파이프를 통해 단방향으로 흐르고, 필터 이동시 오버헤드가 발생할수있다.
선형구조
큐, 데크 , 리스트, 스택
비선형구조 : 트리, 그래프
파일구조: 순차파일,색인파일,직접파일
테스트 드라이버
시험대상모듈을 호출하는 간이 소프트웨어
필요에 따라 매개변수를 전달하고 모듈을 수행한 후의 결과를 보여준다
상향식 통합 테스트에서 사용
소프트웨어 테스트
검증(Verification): 소프트웨어가 요구사항에 부합하게 구현되었음을 보장하는 활동
확인(Validation):: 소프트웨어가 고객의 의도에 따라 구현되었음을 보장하는 활동
검색효율이 나쁜 트리구조
이진탐색트리 > AVL트리 > 2-3트리 > 레드 블랙 트리
스택 알고리즘
Overflow(오버플로우) : 스택 공간이 가득찼을 때 하나의 데 이터를 더 넣으려고 하는 경우,
스택 오버플로우가 일어나고 프로그램에 오류 야기
Underflow(언더플로우) : 스택 공간에 데이터가 없는데 프로 그램에서 스택에서 데이터를 꺼내려고 하는 경우,
스택 언더 플로우가 일어나며 프로그램에 오류를 야기
버블 정렬(Bubble Sort) : 인접한 데이터를 비교하면서 데이터의 위치를 바꾸어 정렬 하는 방법
한번의 Pass 내에서 다수의 교체 발생
Pass 1: 6 7 3 5 9
Pass 2: 6 3 5 7 9
Pass 3: 3 5 6 7 9
데이터베이스 정규화에 대한 설명
데이터 구조의 안정성을 최대화한다.
중복을 배제하여 삽입,삭제,갱신 이상의 발생을 방지한다.
데이터 삽입시 릴레이션을 재구성할 필요성을 줄인다.
무결성(Integrity)의 개념 및 종류
데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성을 의미한다.
무결성 제약 조건은 DB에 들어 있는 데이터의 정확성을 보장하기 위해 부정확한 자료가 DB 내에 저장되는 것을 방지하기 위한 제약조건을 말한다. 무결성의 종류에는 개체 무결성, 도메인 무결성, 참조 무결성, 사용자 정의 무결성 등이 있다.
개체 무결성(Entity Integrity, 실체 무결성)
개체 무결성은 기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다는 규정이다.
도메인 무결성(Domain Integrity, 영역 무결성)
도메인 무결성은 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정이다.
참조 무결성(Referential Integrity)
참조 무결성은 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 한다. 즉, 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다는 규정이다. 외래키가 참조하려는 테이블의 기본키는 도메인과 속성 개수가 같아야 한다.
사용자 정의 무결성
사용자 정의 무결성(User-Defined Integrity)은 속성 값들이 사용자가 정의한 제약 조건에 만족해야 한다는 규정이다.
데이터 무결성 강화
데이터 무결성은 데이터 품질에 직접적인 영향을 미치므로 데이터 특성에 맞는 적절한 무결성을 정의하고 강화해야 한다. DB 구축과정에서 정의한다. 무결성의 강화방법에는 제약조건, 어플리케이션, 데이터베이스 트리거가 있다.
자료흐름도 4가지 구성요소
처리 Process : 원
자료흐름 Data Flow : 화살표
자료저장소 Data Store : 평행선
단말 Terminal : 사각형
스토리보드 :
디자이너와 개발자가 최종적으로 참고하는 작업지침서 상단이나 우측에 제목,작성자등을 입력하고 좌측에는 UI화면, 우측엔 디스크립션을 기입한다.
프로토타입 :
와이어프레임이나 스토리보드등에 인터랙션을 적용함으로써 실제 구현된 것처럼 테스트가 가능한 동적인 형태의 모형
유스케이스 :
사용자 측면에서의 요구사항으로, 사용자자가 원하는 목표를 달성하기 위해 수행할 내용을 기술한다.
클래스 설계원칙
단일 책임원칙 : 하나의 객체는 하나의 동작만의 책임을 가짐
개방-폐쇄의 원칙 : 클래스는 확장에 대해 열려 있어야 하며 변경에 대해 닫혀 있어야 한다.
리스코프 교체의 원칙 : 특정 메소드가 상위 타입을 인자로 사용할 때, 그 타입의 하위 타입도 문제 없이 작동해야 함
의존관계
역전의 원칙 : 상위 계층이 하위 계층에 의존하는 전통적인 의존관계를 반전(역전)시킴으로써
상위 계층이 하위 계층의 구현으로부터 독립되게 할 수 있음
EAI(Enterprise Application Integration):
기업 응용 프로그램 통합으로 기업용 응용 프로그램의 구조적 통합 방안을 가리킴
FEP(Front-End Processor):
입력되는 데이터를 컴퓨터의 프로세서가 처리하기 전에 미리 처리하여
프로세서가 차지하는 시간을 줄여주는 프로그램이나 하드웨어
GPL(General Public License):
자유 소프트웨어 재단(OSF)에 서 만든 자유 소프트웨어 라이선스
Duplexing:
이중화(데이터베이스의 회복 기법 중 가장 간단한 것)
Clean Code를 작성하기 위한 원칙
추상화 : 상위 클래스; 프로그램 특성만 간략하게, 하위 클래스; 세부적 내용 구현
의존성(배제) : 다른 모듈에 미치는 영향을 최소화하여 코드 변경시 영향이 가지 않도록
중복성(최소화) : 코드의 중복을 최소화
가독성 : 누구든지 읽기 쉽게 작성
단순성 : 코드를 단순하게 작성(프로그램을 최소단위로 분리해 작업을 한번에 하나씩 처리하도록)
테스트 스텁 -
제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로, 일시적으로 필요한 조건만을 가지고 있는 테스트용 모듈
테스트 슈트 - 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합
테스트 케이스 - 사용자의 요구사항을 정확히 준수했는지 확인하기 위한 입력 값,
테스트 드라이버 - 단위테스트에서 테스트의 대상이 되는 하위 모듈을 호출하고,
파라미터를 전달하는 가상의 모듈로 상향식 테스트에 사용
정형기술검토(FTR)의 지침
- 오류 검출에 초점을 두고 해결책을 나중으로 미룸(제품 검토의 집중성)
- 검토를 위한 자료를 사전에 배포하여 검토하도록 한다(사전 준비성)
- 의견을 제한하되 충분히 받아들인다(의제의 제한성)
- 안건을 세우면 고수한다(안건 고수성)
- 논쟁과 반박을 제한한다(논쟁 반박의 제한성)
- 문제 영역을 공개한다(문제 공개성)
- 참가자의 수를 제한한다(참가 인원의 제한성)
- 발견된 오류는 문서화한다(문서성)
인터페이스간의 통신을 위해 이용되는 데이터 포맷
▶JSON(Javascript Object Notation) 속성-값 쌍 또는 “키-값 쌍”으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷, AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷
▶ XML(Extensible Markup Language) HTML의 단점을 보완한 인터넷 언어, SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어
▶ AJAX(Asynchronous Javascript And XML) 자바스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹 기술, XMLHttpRequest 객체를 이용해 전체 페이지를 새로 로드하지 않고 필요한 부분만 로드한다.
▶ REST(Representational State Transfer) ⦁ 웹과 같은 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메서드로 주고받는 웹 아키텍처 (리소스, 메서드, 메시지) ⦁ HTTP URI를 통해 자원을 명시하고, HTTP 메서드(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 생성, 조회, 갱신, 삭제 등의 명령을 적용할 수 있는 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처이다
화이트박스 테스트의 종류
1.기초 경로 검사(Basic Path Testing)
2.조건 검사(Condition Testing)
3.루프 검사(Loop Testing)
4.데이터 흐름 검사(Data Flow Testing)
화이트박스 테스트 검증 기준
1. 문장 검증 기준 2. 분기 검증 기준 3. 조건 검증기준 4. 분기/조건 기준
블랙박스 테스트의 종류
1. 동치(동등)분할 검사
2. 경계값 분석
3. 원인-효과 검사
4. 오류 예측 검사
5. 비교검사
OSI 7계층 중 데이터링크 계층
HDLC , PPP, LLC
IPv6 특성
2128개의 주소 표현 가능
등급별,서비스별로 패킷을 구분할수있어 품질보장이 용이
확장기능을 통해 보안기능 제공
16비트씩 8부분의 16진수로 표시
인증 및 보안 기능 포함
128비트의 주소공간 제공
IPv6 확장 헤더를 통해 네트워크 기능 확장이 용이
JAVA의 예외(exception)
문법오류는 컴파일시에 발생하여 실행이 불가능하므로 자바에서 정의한 예외조건에 부합하지않는다.
UNIX 시스템의 쉘의 주요기능
사용자 명령을 해석하고 커널로 전달하는 기능을 제공
반복적인 명령프로그램을 만드는 프로그래밍 기능을 제공
초기화 파일을 이용해 사용자 환경을 설정하는 기능을 제공
** 프로세스 , 메모리 관리는 커널의 기능이다
블루버그: 블루투스 장비사이의 취약한 연결 관리를 악용한 공격
블루스나프(블루스나핑): 블루투스의 취약점을 활용하여 장비 의 파일에 접근하는 공격으로 OPP를 사용하여 정보를 열람 블루재킹: 블루투스를 이용해 스팸처럼 명함을 익명으로 퍼뜨 리는 것
블루프린팅 : 블루투스 공격장치의 검색 활동 의미
*OPP(Obex Push Protocol)- 블루투스 장치끼리 인증 없이 정보를 간편하게 교환하기 위하여 개발됨
secure 코딩에서 입력 데이터의 보안약점과 관련한 설명
① SQL 삽입 : 사용자의 입력 값 등 외부 입력 값이 SQL 쿼리에 삽입되어 공격
② 크로스사이트 스크립트 : 검증되지 않은 외부 입력 값 에 의해 브라우저에서 악의적인 코드가 실행
③ 운영체제 명령어 삽입 : 운영체제 명령어 파라미터 입력값이 적절한 사전검증을 거치지 않고 사용되어 공격자가 운영체제 명령어를 조작
④ 자원 삽입 : 자원을 조작 할 수 있는 문자열을 삽입하여 시스템이 보호하는 자원에 임의로 접근 할 수 있는 취약점
- FAT
- DOS때부터 사용되던 윈도우의 파일시스템
- 저용량에 적합, 호환성이 좋음, 저장가능한 파일의 최대크기가 4GB -
NTFS
- FAT시스템을 대체하기 위해 개발된 윈도우 파일 시스템
- 사용자마다 다른 보안 적용 가능 즉 보안이 FAT보다 뛰어남
- 대용량 저장 가능 및 안정성이 뛰어남
DES는 64비트 암호화 알고리즘
AES -128 , AES-192, AES-256으로 나눠지며 숫자는 비트수이다.
리눅스에서 성공한 로그인/로그아웃 정보를 담고 있는
로그파일- var/log/wtmp에 위치 - last 명령어 사용
utmp - 현재 로그인 사용자 상태 정보를 담고 있는 로그파일
btmp - 실패한 로그인 정보를 담고 있는 로그파일
last log - 마지막으로 성공한 로그인 정보를 담고있는 로그파일
소프트웨어 개발 방법론 테일러링(Tailoring)과 관련한 설명
프로젝트 상황 특성에 맞게 정의된 소프트웨어 개발 방법론 절차, 사용기법 등을 수정 및 보완하는 작업
- 프로젝트에 최적화된 개발 방법론을 적용하기 위해 절차, 산출물 등을 적절히 변경하는 활동이다.
- 관리 측면에서의 목적 중 하나는 최단기간에 안정적인 프로젝트 진행을 위한 사전 위험을 식별하고 제거하는 것이다.
- 기술적 측면에서의 목적 중 하나는 프로젝트에 최적화 된 기술 요소를 도입하여 프로젝트 특성에 맞는 최적의 기법과 도구를 사용하는 것이다.
기능적 요구사항 Vs 비기능적 요구사항
- 기능적 요구사항 : 시스템이 실제로 어떻게 동작하는지에 관점을 둔 요구사항
- 비기능적 요구사항 : 시스템 구축에 대한 성능, 보안, 품질, 안정 등에 대한 성능, 보안, 품질, 안정성등으로 실제 수행에 보조적인 요구사항
오답피하기 - 차량 대여 시스템이 제공하는 모든 화면이 3초 이내에 사용자에게 보여야 한다' 는 성능에 해당 하므로 비기능적 요구사항에 해당한다.
유스케이스 다이어그램
액터: 시스템과 상호작용하는 모든 외부 요소(사람, 기계, 시스템 등)
통합테스트
상향식 통합 테스트 (Bottom Up Intergration Test)
- 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합
- 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster)필요
하향식 통합 테스트 (Top Down Intergration Test)
- 상위 모듈에서 하위 모듈 방향으로 통합
- 깊이 우선 통합법, 넓이 우선 통합법 사용
- 초기부터 사용자에게 시스템 구조를 보여줌
위험 모니터링(monitoring)의 의미 -> 위험 요소 징후들에 대하여 계속적으로 인지하는 것
동시에 소스를 수정하는 것을 방지하며 다른 방향으로 진행된 개발 결과를 합치거나
변경 내용을 추적할 수 있는 소프트웨어 버전 관리 도구
RCS(Revision Control System) - CVS와의 차이점은 소스 파일의 수정을 한 사람만으로 제한한다.
- 다수의 사용자가 동시에 파일 수정을 할 수 없도록 파일 잠금 방식으로 버전을 관리하는 도구이다.
- 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있다.
RPC(Remote Procedure call) - 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 리모트의 함수나 프로시저를 실행 할 수 있게 해주는 프로세스간 통신
알고리즘 - 주어진 작업을 수행하는 컴퓨터 명령어를 순서대로 나열한 것
선형 검색 - 처음부터 끝까지 하나씩 순서대로 비교하며 원하는 값을 찾아내는 검색
이진검색 - 검색을 수행하기 전에 반드시 데이터의 집합이 정렬되어 있어야 한다
테스트 드라이버(test driver) -상위 모듈의 역할을 하는 가상의 모듈 그 역할은 테스트할 모듈을 호출하는 것
테스트 스텁(Stub) -테스트 완료 후 그 결과값을 받는 역할을 하는 가상의 모듈
CppUnit - C++ 프로그래밍 언어용 단위 테스트 도구
JUnit - 자바 프로그래밍 언어용 단위 테스트 도구
HttpUnit - 웹 브라우저 없이 웹 사이트 테스트를 수행하는 데 사용되는 오픈 소스 소프트웨어 테스트 프레임워크
트랜잭션의 특성
- 원자성(Atomicity) : 완전하게 수행 완료되지 않으면 전혀 수행되지 않아야 함
- 일관성(Consistency) : 시스템의 고정 요소는 트랜잭션 수행 전후에 같아야 함
- 격리성(Isolation, 고립성) : 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 함
- 영속성(Durability, 지속성) : 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억됨
DCL
- COMMIT : 명령어로 수행된 결과를 실제 물리적 디스크로 저장하고, 명령어로 수행을 성공적으로 완료하였음을 선언한다.
- ROLLBACK : 명령어로 수행을 실패하였음을 알리고, 수행된 결과를 원상복구시킨다.
- GRANT : 데이터베이스 사용자에게 사용 권한 부여한다.
- REVOKE : 데이터베이스 사용자로부터 사용 권한 취소한다.
DDL
- CREATE : SCHEMA(스키마), DOMAIN(도메인), TABLE(테이블), VIEW(뷰), INDEX(인덱스)를 정의
- ALTER : TABLE에 대한 정의를 변경하는 데 사용
- DROP : SCHEMA(스키마), DOMAIN(도메인), TABLE(테이블), VIEW(뷰), INDEX(인덱스)를 삭제
DML
- SELECT : 테이블에서 조건에 맞는 튜플을 검색
- INSERT : 테이블에 새로운 튜플을 삽입
- DELETE : 테이블에서 조건에 맞는 튜플을 삭제
- UPDATE : 테이블에서 조건에 맞는 튜플의 내용 변경
데이터 사전(Data Dictionary)
- 시스템 자신이 필요로 하는 여러 가지 객체(기본 테이블, 뷰, 인덱스, 데이터베이스, 패키지, 접근 권한 등)에 관한 정보를 포함하고 있는 시스템 데이터베이스이다.
- 시스템 카탈로그(System Catalog), 메타 데이터(Meta Data)라고도 한다.
- 시스템 카탈로그 자체도 시스템 테이블로 구성되어 있어 SQL 문을 이용하여 내용 검색이 가능하다.
- 사용자가 시스템 카탈로그를 직접 갱신할 수 없다.
- SQL 문으로 여러 가지 객체에 변화를 주면 시스템이 자동으로 갱신한다.
데이터베이스에서 모든 튜플은 순서를 가지고 있지 않다.
데이터 모델링의 구성요소
- 구조(Structure) : 논리적인 개체 타입들 간의 관계, 데이터 구조 및 정책 성질을 표현
- 연산(Operation) : 실제 데이터를 처리하는 작업에 대한 명세로, 조작하는 기본도구
- 제약조건(Constraint) : DB에 저장될수있는 실제 데이터의 논리적인 제약 조건
논리 데이터 모델의 구성요소
- 개체
- 속성
- 관계
1.개체 무결성 : 각 릴레이션의 기본키를 구성하는 속성은 널(NULL) 값이나 중복된 값을 가질 수 없습니다.
2,참조무결성 : 외래키 값은 NULL이거나 참조하는 릴레이션의 기본키 값과 동일해야 합니다.
3.도메일 무결성 : 속성들의 값은 정의된 도메인에 속한 값이어야 합니다.
4.고유 무결성 : 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우,
릴레이션의 각 튜플이 가지는 속성 값들은 서로 달라야 합니다.
5.NULL 무결성 : 릴레이션의 특정 속성 값은 NULL 될 수 없습니다.
6.키 무결성 : 각 릴레이션은 최소한 한 개 이상의 키가 존재해야 합니다
RIP(Routing Information Protocol)
- 최단 경로 탐색에는 Bellman-Ford 알고리즘을 사용하는 거리 벡터 라우팅 프로토콜
- 라우팅 프로토콜을 IGP와 EGP로 분류했을 때 IGP에 해당 한다.
- 최단경로탐색에는 Bellman-Ford 알고리즘을 사용한다.
- 최적의 경로를 산출하기 위한 정보로서 홉(거리 값)만을 고 려하므로, RIP을 선택한 경로가 최적의 경로가 아닌 경우가 많이 발생할 수 있다.
- 소규모 네트워크 환경에 적합하다.
- 최대 홉 카운트를 15홉 이하로 한정하고 있다.
HRN 스케줄링 방식 - 비선점 스케줄링
UDP(User Datagram Protocol)
- 비연결형 및 비신뢰성 전송 서비스를 제공한다.
- 흐름 제어나 순서 제어가 없어 전송 속도가 빠르다.
- 수신된 데이터의 순서 재조정 기능을 지원하지 않는다.
- 복구 기능을 제공하지 않는다.
- 단순한 헤더구조로 오버헤드가 적다
- TCP와 같이 트랜스포트 계층에 존재한다.
IP 프로토콜의 주요 특징
데이터 체크섬은 제공하지 않고, 헤더 체크섬만 제공한다.
커널 수준 스레드의 장점
① 한 프로세스가 운영체제를 호출할 때 전체 프로세스가 대기할 필요가 없으므로 시스템 성능을 높일 수 있다.
② 동시에 여러 스레드가 커널에 접근할 수 있으므로 여러 스레드가 시스템 호출을 동시에 사용할 수 있다.
③ 각 스레드를 개별적으로 관리할수 있으므로 스레드의 독립적인 스케줄링이 가능하다.
모듈화
응집도 : 하나의 모듈이 하나의 기능을 수행하는 요소들간의 연관성 척도
독립적인 모듈이 되기 위해서는 응집도가 강해야 한다.(결합도는 약해야 한다.)
결합도: 모듈과 모듈 사이의 상호의존 또는 연관 정도를 의미한다.
어떤 외부 컴퓨터가 접속되면 접속 인가 여부를 점검해서 인가된 경우에는 접속이 허용되고,
그 반대의 경우에는 거부할 수 있는 접근제어 유틸리티는?
cp/ip 통신에서, tcp는 3-way handshake 를 통해 통신이 원활히 이뤄질 수 있는지를 확인합니다.
Ping of Death
- 시스템 공격 기법중 하나로 허용 범위 이상의 ICMP 패킷을 전송하여 대상 시스템의 네트워크 마비
2. Session Hijacking(세션 가로채기) :
컴퓨터 시스템의 정보나 서비스에 무단으로 접근하기 위해 유효한 컴퓨터 세션(세션키라고도 함)을 이용하는 것 일반적인 예로 두 컴퓨터 간 에 활성화된 상태(즉, 로그인된 상태)에서 공격자가 피공격자 의 로그인 정보를 활용하여 자신에게 필요한 행위를 하는 것 을 뜻한다.
3.Piggyback Attack(피그백 공격) :
공격자가 다른 사용자의 연결에서 계정을 사용하지 않는 비활성 기간(비활성 간격)을 이용하여 시스템에 액세스(접근)한다..이는 간선(회선 간) 공격 이라고도 불린다. -> 쉽게 설명하자면, 시스템에 대한 합법적인 권한을 가진 사용자가 시스템에 접근할 때, 활성화된 기간(직접 로그인 인증 을 받아야 하는 상황)에는 접근 권한이 없는 공격자가 비활성화된 기간(합법적 사용자가 시스템에 접근 인증을 받은 상황) 에 마치 사용자와 관련있는 사람인 듯이 태그를 붙여 몰래 뒤 따라 들어가는 것이라 할 수 있다.
XSS (크로스 사이트 스크립팅) :
웹사이트에 악성 스크립트를 주입하는 행위. 공격자가 상대방의 브라우저에 스크립트가 실 행되도록 해 사용자의 세션을 가로채거나, 웹사이트를 변조하 거나, 악의적 콘텐츠를 삽입하거나, 피싱 공격을 진행하는 것.
(Role Based Access Control) : 역할 기반 접근통제
DAC 임의접근통제 사용자또는 신분
MAC 강제접근통제. 미리 정해진 정책과 보안 등급
코드화 대상 항목의 중량,면적,용량 등의 물리적 수치를 이용하여 만든 코드
- 표의 숫자 코드
요구사항 분석(Requirement Analysis)
- 소프트웨어 개발의 실제적인 첫 단계로 사용자의 요구에 대해 이해하는 단계라 할 수 있다.
- 도메인(Domain Analysis)은 요구에 대한 정보를 수집하고 배경을 분석하여 이를 토대로 모델링을 한다.
- 분석결과의 문서화를 통해 향후 유지보수에 유용하게 활용 할 수 있다.
- 자료흐름도, 자료 사전 등이 효과적으로 이용될수 있다.
- 보다 구체적인 명세를 위해 소단위 명세서(Mini-Spec)가 활용될 수 있다.
- 비용과 일정에 대한 제약설정.
- 타당성 조사.
- 요구사항 정의 문서화.
데이터 흐름도 - DFD(Data Flow Diagram)의 구성요소
- 프로세스(Process): 원
- 데이터 흐름도(Data Flow): 화살표
- 자료 저장소(Data Store): 직선(단선/이중선)
- 단말(Terminator): 사각형
스택을 이용한 연산 종류
재귀호출, 후위표현(Post-fix expression) 연산 , 깊이우선탐색
- 제곱법 : 키값을 제곱한 후에 중간의 몇자리를 선택하고 그 중간 값을 주소로 이용
- 제산법 : 레코드 키 값을 소수로 나누어 나머지 값을 주소로 결정
- 중첩법(폴딩법) : 길이를 동일하게 여러 부분으로 나누고, 더하거나 XOR 하여 주소 이동
- 숫자분석법 : 각 숫자의 분포를 이용해서 균등한 분포의 숫자를 선택해서 사용
- 기수 변환법 : 주어진 키의 값을 다른 진법으로 변환하여 얻은 값을 주소로 사용
- 무작위 방법 : 난수를 발생, 탐색을 위한 해시의 경우 충돌이 발생하면 다음 난수를 이용
소프트웨어 형상 관리에 대한 설명
소프트웨어에 가해지는 변경을 제어하고 관리
프로젝트 계획,분석서,설계서,프로그램,테스트 케이스 모두 관리대상
유지 보수 단계 뿐만아니라 개발단계에도 적용
EAI 구축 유형
구분 | Point to Point | Hub & Spoke | Bus | Hybrid |
설명 | 복수 Application 간 1:1 통합 (중간에 미들웨어 두지않고 애플리케이션간 연계) |
중앙집중식 방식 각 시스템들과 연동 어댑터를 이용한 시스템 연계 |
동적인 업무 프로세스 통합 서비스 중심으로 하나의 업무 프로세스 진행 |
그룹 내는 허브 앤 스포크 방식을 사용하고, 그룹 간에는 메세지 버스 방식을 사용하는 통합 방식 |
장점 | 단순한 구조 | 데이터 전송 보장 확장 및 유지보수 편리 | 표준 통합 기술 이용 데이터 병목 최소화 | 그룹 내 환경에 맞는 작업 가능 |
단점 | 변경 및 재사용 어려움 | SPOF : Hub 장애 시 전체영향 | 초기 구축 비용 높음 |
테스트 케이스 자동 생성 도구를 이용하여 테스트 데이터를 찾아내는 방법
- 입력 도메인 분석
- 랜덤 테스트
- 자료 흐름도
er모델 표현 방법
개체타입 : 사각형
뷰(View)란 무엇인가?
1. 뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블이다.
2. 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 간주된다.
3. 뷰는 데이터 보정작업, 처리과정 시험 등 임시적인 작업을 위한 용도로 활용된다.
4. 뷰는 조인문의 사용 최소화로 사용상의 편의성을 최대화 한다.
병행제어 기법 로킹(Locking)
- 데이터베이스 병행 제어를 위해 트랜잭션(transaction)이 접근하고자 하는 데이터를 잠가(lock)
다른 트랜잭션이 접근하지 못하도록 하는 병행 제어 기법이다.
- 트랜잭션이 어떤 데이터에 접근하고자 할 때 로킹을 수행
- 로킹이 되어 있는 데이터에는 다른 트랜잭션이 접근할 수 없음
- 트랜잭션은 로킹이 된 데이터에 대해서만 연산을 수행
- 로킹 단위: 필드, 레코드, 테이블, 파일, 데이터베이스 모두 로킹 단위가 될 수 있다.
- 한 번에 로킹 할 수 있는 객체의 크기를 로킹 단위라고 한다.
로킹 단위 |
로크의 수 | 병행 제어 | 로킹 오버헤드 | 병행성 수준 | 데이터베이스 공유도 |
커짐 | 적어짐 | 단순해짐 | 감소 | 낮아짐 | 감소 |
작아짐 | 커짐 | 복잡해짐 | 증가 | 높아짐 | 증가 |
순수 관계 연산자
프로젝트(project)
조인(join)
디비전(division)
동시성 제어를 위한 직렬화 기법으로 트랜잭션간의 처리 순서를 미리 정하는 기법
타임스탬프 기법
TCP 프로토콜에 대한 설명
신뢰성이 있는 연결 지향형 전달 서비스
스트림 전송기능 제공
순서제어,오류제어,흐름제어 기능 제공
커널이란?
컴퓨터와 전원을 켜면 운영체제는 이와 동시에 수행된다. 한편 소프트웨어가 컴퓨터 시스템에서 수행되기 위해서는 메모리에 그 프로그램이 올라가 있어야 한다. 마찬가지로 운영체제 자체도 소프트웨어로서 전원이 켜짐과 동시에 메모리에 올라가야 한다. 하지만, 운영체제처럼 규모가 큰 프로그램이 모두 메모리에 올라간다면 한정된 메모리 공간의 낭비가 심할것이다. 따라서 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고 그렇지 않은 부분은 필요할 때 메모리에 올려서 사용하게 된다. 이 때 메모리에 상주하는 운영체제의 부분을 커널이라 한다. 또 이것을 좁은 의미의 운영체제라고도 한다. 즉 커널은 메모리에 상주하는 부분으로써 운영체제의 핵심적인 부분을 뜻한다. 이에 반에 넓은 의미의 운영체제는 커널뿐 아니라 각종 시스템을 위한 유틸리티들을 광범위하게 포함하는 개념이다. (보통은 운영체제라고 하면 커널을 말하게 된다.)
stdlib.h 에 대한 설명
문자열을 수치데이터로 바꾸는 문자 변환함수와 수치를 문자열로 바꿔주는 변환 함수 등이 있다.
IP Adress
클래스별 주소
파일 디스크립터(File Descriptor)
파일 관리를 위해 시스템이 필요로 하는 정보를 가지고있다
보조기억장치에 저장되어있다가 파일이 개방되면 주기억장치로 이동
파일 제어 블록(File Control Block)이라고도 한다
TCP/IP 계층 구조에서 IP 동작 과정에서의 전송오류가 발생하는 경우에 대비해
오류 정보를 전송하는 목적으로 사용하는 프로토콜
ICMP(Internet Control Message Protocol)
능력 성숙도 모델(CMM, Capability Maturity Model)
소프트웨어 개발 업체들의 업무능력평가 기준을 세우기 위한 평가 모형
능력 성숙도 모델 단계
초기 단계(initial)
반복 단계(repeatable)
정의 단계(defined)
관리 단계(managed)
최적 단계(optimizing)
'프로그래밍 > 공부기록' 카테고리의 다른 글
[마음가짐] 조급함에 대한 생각 (1) | 2023.06.02 |
---|---|
[Anki] 반복 숙달을 위한 앱 (0) | 2023.05.26 |
[정보처리기사] 필기 합격후기 (0) | 2023.05.14 |
[정보처리기사] 개념 요약 -2 (0) | 2023.05.09 |
[정보처리기사] 개념 요약 -1 (0) | 2023.05.08 |