728x90

관계형 데이터베이스 구조

- 릴레이션 relation : 데이터베이스 테이블

- 릴레이션 스키마 relation schema : 릴레이션 구조 정의

- 릴레이션 인스턴스 relation instance : 릴레이션들의 실제 값들

- 속성 attribute : 릴레이션의 열

- 차수 디그리 degree : 속성 갯수 

- 행 튜플 tuple : 릴레이션의 행

- 카디널리티 cardinality : 튜플의 갯수

- 도메인 domain : 한 속성에 사용가능한 값들의 집합

- 외래키 foreign key : 타 릴레이션의 기본키를 참조하는 속성

릴레이션 예시

 

ERD를 릴레이션 스키마 변환

- 학생과 반 개체의 1:N 관계를 릴레이션 스키마로 표현

 

릴레이션 스키마 관계 표현

릴레이션간 관계 표현

- 위 릴레이션간 관계표현 방식을이용해 반과 학생의 1:N 관계를 아래와 같이 릴레이션 스키마로 나타낼 수 있다.

릴레이션 스키마 2

 

300x250

'컴퓨터과학 > SW, DB' 카테고리의 다른 글

무결성  (0) 2020.05.15
  (0) 2020.05.15
개체 관계 모델  (0) 2020.05.15
데이터베이스  (0) 2020.05.15
프로세스 관리  (0) 2020.05.15
728x90

ER 모델 Entity Relation model

- 개체, 속성, 관계 등표현

- ERD Entity Relationship Diagram 개체 관계 모델로 표현

 

ER 도형

 

 

ERD 예시

- 선생님 개체와 학생 개체는 1:N 담당 관계

- 선생님 : 선생번호 기본키, 이름

- 학생 : 학번 기본키, 이름

- 한명의 선생님이 여러 학생 담당

 

 

개체와 개체 어커런스

- 개체 타입 Entity Type : 개체 인스턴스들의 집합.  ex)선생님, 학생 -> 개체 타입

- 개체 인스턴스 Entity Instance : 하나의 개체를 개체 인스턴스. ex) 홍길동 선생님, 김길동 선생님

 

 

릴레이션 relation : 테이블

튜플 tuple : 한행

어트리뷰트 attribute 속성 : 한 열

카디널리티 cardinality : 튜플 수

도메인 domain : 가능한 속성 값 집합 (ex. 학생 개체가 반 속성을 갖는 경우, 반 속성의 도메인으로 1~6반)

기본키 primary key : 모든 개체 타입은 한 개체를 유일하게 식별할수있는 기본키 속성 가짐

 

 

관계 타입

- 차수 : 관계에 참여하는 개체 타입 개수에 대한 관계 종류

-> 단항, 이항, 삼항, n항 관계

- 대응수에 대한 관계 종류

-> 1:1, 1:N, N:M 관계

차수에 대한 관계 종류
1 대 1 관계
1: N 관계
N:M 관계

 

 

 

 

 

 

 

300x250

'컴퓨터과학 > SW, DB' 카테고리의 다른 글

  (0) 2020.05.15
RDB 모델  (0) 2020.05.15
데이터베이스  (0) 2020.05.15
프로세스 관리  (0) 2020.05.15
기억장치 관리  (0) 2020.05.15
728x90

데이터베이스

- 데이터 모임

 

 

DBMS DataBase Management System 데이터베이스 관리 시스템

- 데이터 베이스 관리 SW

- 정조제 -> 정의, 조작, 제어 기능

- 정의 : 데이터베이스 테이블, 제약조건, 구조 정의

- 조작 : 데이터 검색, 갱신, 삭제 등 조작

- 제어 : 데이터베이스 무결성, 롤백 등 관리 목적으로 제어

 

DBMS 종류

- 계층형 DBMS : 트리 구조

- 망형 DBMS : 그래프 구조

- RDB Relational Database 관계형 데이터 베이스 : 테이블에 DB 묶어 관리. 속성/테이블 간 관계 설정

- NoSQL 비관계형 DB : 데이터 무결성 덜지킬수 있어 비구조적 데이터 저장

 

300x250

'컴퓨터과학 > SW, DB' 카테고리의 다른 글

RDB 모델  (0) 2020.05.15
개체 관계 모델  (0) 2020.05.15
프로세스 관리  (0) 2020.05.15
기억장치 관리  (0) 2020.05.15
OS 명령어  (0) 2020.05.15
728x90

프로세스

- 실행중인 프로그램, 작업, 태스크

- PCB를 가짐, 실행 단위

 

프로세스 상태 전이

1. 제출 : 사용자가 시스템에 작업 처리를 위해 제출

2. 접수 : 해당 작업이 디스크 위치에 저장

3. 준비 : 프로세스가 프로세서를 할당 받으려고 대기 중인 상태, 준비상태큐에서 준비

4. 실행 : cpu 스케줄러에 의해 프로세스 할당받아 실행

5. 대기 : 입출력 처리 필요시 현재 프로세스가 중단되어 대기. (wake up : 대기 상태서 입출력 처리 끝나 준비단계 전이)

 

리눅스 프로세스 관리

- proc 디렉토리에서 확인 : 메모리에 저장된 프로세스 확인  가능

- ps 명령어 : PID 프로세스 고유 번호 확인 -> proc/해당번호 에서 세부정보 확인가능

- kill PID : 해당 프로세스 종료

300x250

'컴퓨터과학 > SW, DB' 카테고리의 다른 글

개체 관계 모델  (0) 2020.05.15
데이터베이스  (0) 2020.05.15
기억장치 관리  (0) 2020.05.15
OS 명령어  (0) 2020.05.15
결함과 어플리케이션  (0) 2020.05.15
728x90

기억장치 관리 전략

- 보조기억장치로부터 주기억장치에 로드하는 시기나 위치 등을 효율적으로 관리

- 반입, 배치, 교체 전략

 

반입 전략 fetch

- 보조 기억장치 데이터, 프로그램을 언제 주기억장치에 로드할 것인지 결정

- 요구 반입 : 해당 데이터나 프로그램 참조 요구 시 적재

- 예상 반입 : 필요한 데이터, 프로그램 미리 예상해서 적재

 

배치 전략 placement

- 어디다 배치할것인지

- 최초 적합 : 들어갈수 있는 가장 첫번째 공간

- 최적 적합 : 단편화가 가장 적은 영역에 배치

* 단편화 : 남은 빈 공간

- 최악 접합 : 단편화가 가장 큰 영역에 배치

 

교체 전략 replacement

- 어느 영역을 교체하여 사용

- FIFO First In Fisrt Out : 먼저 들어온걸 먼저 교체

- OPT Optimal replacement : 가장 오래 사용안할 영역 교체

- LRE Leaset Recently Used : 가장 오래전에 참조된 영역 교체

- LFU Least Frequently Used : 가장 적게 참조된 영역 교체

 

 

리눅스 메모리 관리

- meminfo로 메모리 상태 확인

- 부족시 swapping 방법이나 min_free_kbytes 명령어로 확보

 

swapping

- 프로그램에 할당된 메모리 일부 보조기억장치에 저장

- dd : 블록 단위로 파일 변환하거나 복사할때 사용

 -> dd if=/dev/zero of=파일명 bs=용량 count=반복회수

 

min_free_kbytes

- 최소 사용 가능한 메모리 크기를 kb 단위로 설정

 ex) min_free_kbytes=1024

 

 

300x250

'컴퓨터과학 > SW, DB' 카테고리의 다른 글

데이터베이스  (0) 2020.05.15
프로세스 관리  (0) 2020.05.15
OS 명령어  (0) 2020.05.15
결함과 어플리케이션  (0) 2020.05.15
개발 단계와 테스트  (0) 2020.05.15
728x90

운영체제 제어방법

- CLI Command Line Interface

- GUI Graphic User Interface

 

window 명령어

- ren : 이름 변경

- attrib : 파일 속성 변경

- chkdsk : 디스크 점검

- format : 디스크 포맷

 

unix 명령어

- chown : 소유자, 그룹 변경

- fsck : 파일 시스템 검사

- kill : 프로세스 종료

- ps : 실행중인 프로세스 표시

- top : 프로세스, 메모리 사용현황

- who : 현재 사용자

 

300x250

'컴퓨터과학 > SW, DB' 카테고리의 다른 글

프로세스 관리  (0) 2020.05.15
기억장치 관리  (0) 2020.05.15
결함과 어플리케이션  (0) 2020.05.15
개발 단계와 테스트  (0) 2020.05.15
테스트 종류  (0) 2020.05.15
728x90

네트워크 인터페이스 카드 NIC Network Interface Card

- 컴퓨터와 네트워크 연결. 이더넷 카드 or 네트워크 어댑터라고도 함

 

허브 hub

- 가까운 컴퓨터 끼리 연결

- 더미 허브 : 모든 데이터를 그냥 연결. 보유 대역폭을 컴퓨터 수 만큼 나눠 사용

- 스위칭 허브 : 데이터 흐름 제어로 최대 대역폭 사용가능한 허브

 

리피터 repeater

- 약해진 신호를 키워 전송

- 물리 계층

 

브리지 bridge

- LAN과 LAN 혹은 세그먼트 연결

- 데이터 링크 계층의 MAC Meadia Accesc Control 계층에서 사용

 

MAC 주소 : NIC의 고유 번호

 

스위치 switch

- LAN 끼리 연결하여 큰 LAN 만듬

- 많은 포트 사용. 로드벨런서 내장하기도함

- 데이터 링크 계층

 

로드 밸런서 : 트래픽 분산 장치

 

라우터 router

- 네트워크 간 연결 및 최적 경로 안내.

- 라우팅 테이블에 경로 정보 저장

 

게이트 웨이 gateway

- 프로토콜이 다른 네트워크와 연결. 출입구 역활

- 세션, 표현, 응용 계층끼리 연결하여 데이터 형식/주소/프로토콜 변환 수행

 

300x250

'컴퓨터과학 > 통신, 보안' 카테고리의 다른 글

네트워크 - 1 네트워크 기본 개념  (0) 2020.05.17
데이터교환방식과 라우팅  (0) 2020.05.15
TCP/IP와 프로토콜  (0) 2020.05.15
OSI 7 계층  (0) 2020.05.14
인터넷  (0) 2020.05.14
728x90

결함 fault

- 설계와 다른 동작

 

결함 관리 프로세스

1. 결함 관리 계획

2. 결함 기록 : 결함 DB에 등록

3. 결함 검토 : 개발자에 전달

4. 결함 수정

5. 결함 재확인

6. 결함 상태 추적 및 모니터링

7. 최종 결함 분석 및 보고

 

결함 추적 순서

1. 결함 등록

2. 결함 검토 : 담당자 검토

3. 결함 할당

4. 결함 수정

5. 결함 보류

6. 결함 종료

7. 결함 해제

 

결함 분류

- 시스템 결함 : 어플리케이션이나 DB 처리 중 발생 결함

- 기능 결함 : 요구사항 불일치, 프로세스 중 오류

- GUI 결함 

- 문서 결함

 

결함 관리 도구

- mantis : 결함 및 이슈 관리 도구

- trac : 결함 추적

- redmine : 프로젝트 관리 및 결함 추적

 

 

어플리케이션 성능 지표

- 처리량

- 응답 시간

- 경과 시간

- 자원 사용률

- 분석을 위해 성능 테스트 도구와 시스템 모니터링 도구 이용

 

성능 테스트 도구

- JMeter : 다양한 프로토콜 지원하는 부하 테스트 도구

- LoadUI : 편리한 부하 테스트 도구

 

 

성능 분석 절차

1. 성능 테스트, 시스템 모니터링 도구 특징 파악

2. 성능 점검 계획서 작성

3. 테스트 케이스 작성

4. 테스트 수행

5. 테스트 결과 분석

6. 저하 요인 분석

 

 

 

소스코드 최적화

- 클린 코드 : 이해하기 좋은 코드

- 나쁜 코드 : 로직이 복잡하고 이해하기 힘든 코드

- 클린 코드 작성원칙 : 가독성, 단순성, 의존 성 배제, 중복성 최소화, 추상화

 

소스 코드 최적화 유형

- 클래스 분할 배치 : 하나의 클래스는 하나의 역활. 응집도 높이고 크기 작게

- 느슨한 결합 : 인터페이스로 추상화 된 자료구조와 메소드 구현으로 의존성 최소화

- 코딩 형식 준수 : 줄바꿈, 지역변수 맨앞 선언, 호출 함수 앞 호출 되는 함수 뒤

- 적절한 이름과 주석

 

소스코드 품질 분석

- 정적 분석 : 실행 x. 코딩 표준, 스타일, 결함, 의존성, 복잡성 등 분석

- pmd : 미사용 변수 최적화안된 코드 검사

- cppcheck :: 메모리 누수, 오버플로 분석

- com : 코드 복잡도 분석

- 동적 분석 도구 : 실행 o. 메모리 누수, 스레드 결함 분석

- valgrint : 메모리, 스레드 결함 분석

 

성능 개선

- 소스 코드 최적화 : 인터페이스로 의존성 최소화 코드 작성

- 아키텍처 조정 : 팩토리 메소드 패턴으로 객체 생성과 사용 분리

- 호출 순서 조정 : 유사 코드는 가까이, 함수 호출은 앞에, 함수 정의 및 구현은 뒤에

300x250

'컴퓨터과학 > SW, DB' 카테고리의 다른 글

기억장치 관리  (0) 2020.05.15
OS 명령어  (0) 2020.05.15
개발 단계와 테스트  (0) 2020.05.15
테스트 종류  (0) 2020.05.15
UI  (0) 2020.05.15
728x90

테스트 단계

1. 단위 테스트 unit test

2. 통합 테스트 integration test

3. 시스템 테스트 system test

4. 인수 테스트 acceptance test

 

단위 테스트 unit test

- 코딕 직후 모듈이나 컴포넌트 중심 기능 테스트

- 인터페이스, 자료구조, 경로 등 검사

- 구조 기반/ 명세 기반 테스트

 

통합 테스트 integration test

- 단위 테스트 후 모듈 통합 과정에 발생 오류 및 테스트 기법

- 비점진적 통합 : 프로그램 전체 테스트, 점진적 통합 방식 : 단계적 통합하며 테스트

 

점진적 통합 방식 테스트

- 하향식 통합 테스트 : 상위 모듈에서 하위 모듈 방향으로 통합. 모듈-> 스텁 대체

- 상향식 통합 테스트 : 하위 모듈에서 상위 모듈 방향. 클러스터 이용

 

시스템 테스트

- 사용 환경 시스템에서 수행여부 테스트

 

인수 테스트 acceptance test

- 사용자 요구사항 중심 테스트. 사용자 직접 수행

- 사용자 인수, 운영상 인수, 알파 : 사용자가 개발자 앞에서, 베타 테스트 : 여러 사용자

 

테스트 프로세스

1. 테스트 계획

2. 테스트 분석 및 디자인

3. 테스트 케이스, 시나리오 작성

4. 테스트 수행

5. 테스트 결과 및 보고

6. 결함 추적, 관리

 

테스트 케이스

- 요구사항 검증 및 확인을 위한 테스트 항목에 대한 명세서

 

테스트 시나리오

- 테스트 케이스를 순서대로 묶은 집합

- 사용자 측면 요구사항인 유스 케이스(use case) 흐름이 정상인지 확인할 수 있도록

 

테스트 오라클

- 테스트 결과 판단위해 사전 정의한 값을 비교하는 활동

- 참 오라클, 샘플링 오라클, 추정 오라클, 일관성 오라클

 

테스트 자동화 도구

- 정적 분석 도구 : 프로그램 실행 없이 분석. 코딩 표준, 스타일 등 결함 발견

- 테스트 실행 도구 : 데이터, 실행 방법이 준비된 스크립트 언어로 테스트 수행. 

- 성능 테스트 도구 : 응답 시간, 경과 시간, 자원 사용률 등 정하여 테스트

- 테스트 통제 도구 : 테스트 관리함. 형상 관리 도구, 결함 추적 도구

 

 

300x250

'컴퓨터과학 > SW, DB' 카테고리의 다른 글

OS 명령어  (0) 2020.05.15
결함과 어플리케이션  (0) 2020.05.15
테스트 종류  (0) 2020.05.15
UI  (0) 2020.05.15
XML  (0) 2020.05.14
728x90

어플리케이션 테스트

- 결함 여부 확인. 요구사항 만족 validation 확인, 기능 수행 검증 vertification.

 

결함 집중

- 20% 코드에 80% 결함 발견. 파레토 법칙

살충제 페러덕스

- 동일 테스트 케이스로 반복시 결함 발견 x. 테스트 케이스 보완

정황(context)

- SW 특징, 환경, 테스터 역량 등 정황에 따라 테스트가 달라짐

오류-부재 궤변

- 결함 모두 제거해도 요구사항 불만족시 품질 x

 

프로그램 실행 여부 테스트

- 정적 테스트 : 실행 x. 소스코드 분석 - 워크스루, 인스펙션

- 동적 테스트 : 실행 o - 블랙박스, 화이트박스 테스트

 

테스트 기반

- 명세 기반 : 요구사항 스펙에 따라 테스트

- 구조 기반 : SW 로직 따라 테스트

- 경험 기반 : 테스터 경험 의존

 

테스트 주체 

- vertification 검증 테스트 : 개발자 중심

- validation 확인 테스트 : 사용자 중심

 

 

화이트 박스 테스트

- 모듈 소스코드 모든 로직흐름을 보며 테스트 케이스 설계

- 기초 경로 검사 : 설계 복잡성 측정

- 제어 구조 검사 : 조건, 루프, 데이터 흐름 검사

 

블렉 박스 테스트

- 기능 작동 여부 테스트

- 동치(동등) 분할 검사 : 입력 자료 중심 테스트 케이스 준비하여 검사

- 경계값 분석 : 경계값을 활용하여 검사

- 원인-효과 그래프 : 입력과 출력간 영향 분석

- 오류 예측 검사

300x250

'컴퓨터과학 > SW, DB' 카테고리의 다른 글

결함과 어플리케이션  (0) 2020.05.15
개발 단계와 테스트  (0) 2020.05.15
UI  (0) 2020.05.15
XML  (0) 2020.05.14
연계  (0) 2020.05.14

+ Recent posts