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

결함 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
728x90

웹 3요소

- 웹 표준

- 웹 접근성

- 웹 호환성

 

UI 스타일 가이드

1. 구동 환경 정의

2. 레이아웃 정의

3. 네비게이션 정의

4. 기능 정의

5. 구성 요소 정의

 

정황 시나리오

- 사용자 요구사항 도출 목적. 수행 방법 순차적 묘사

 

프로토타입

- 테스트를 위한 동적 모형

 

UI 박스

- 텍스트 박스

- 콤보 박스

- 라디오 박스

- 체크 박스

 

UI 설계

1. 요구사항 확인

2. 설계서 및 개정 이력 작성

3. UI 구조 설계

4. 메뉴 구조 설계

5. 화면 설계

 

300x250

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

개발 단계와 테스트  (0) 2020.05.15
테스트 종류  (0) 2020.05.15
XML  (0) 2020.05.14
연계  (0) 2020.05.14
웹 서버와 배치  (0) 2020.05.14
728x90

XML eXtensible Markup Language

- HTML 문법 호환과 SGML의 복잡함 해결을 위해 개발된 마크업언어로 데이터 구조 정의

 

구성

- 시작 : <?xml version="version" encoding="char set" standalone="yes or no"?> -> xml 문서임을 지정

- 문자셋 : UNICODE, UTF-8, EUC-KR 등

- standalone : 외부 문서 참조 여부 설정. 디폴트 no(외부 문서 참조)

- xml 요소 : <이름 속성="값" 속성="값" ... >내용 </이름>

 

 

SOAP Simple Object Access Protocol

- HTTP, SMTP 등으로 XML 교환하는 통신 규약

- 웹서비스 메시지 형식 및 처리 방법 정의

- 최근 SOAP보다 RESTful을 주로 이용

 

WSDL Web Service Description Language

- 웹서비스에 사용되는 서식, 프로토콜을 기술하고 게시하는 언어

- XML로 작성, SOAP, XML스키마와 함께 웹 서비스 제공에 사용

- 클라이언트는 WSDL 파일로 서버 기능 파악

300x250

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

테스트 종류  (0) 2020.05.15
UI  (0) 2020.05.15
연계  (0) 2020.05.14
웹 서버와 배치  (0) 2020.05.14
DBMS 커낵션  (0) 2020.05.14
728x90

통합 구현

- 요구사항에 따라 송신수신/중계 모듈들이 연계되도록하여 구현

 

연계 데이터 표준화

1. 연계 범위 및 항목 정의

2. 연계 코드 변환 및 맵핑

3. 연계 데이터 식별자 구분 추가

4. 연계 데이터 표현법 정의

5. 연계 정의/명세 작성

 

연계 메커니즘

- 송신/수신 모듈로 이루어짐

- 송신 모듈 : 연계 데이터 생성, 송신

- 수신 모듈 : 변환 후 DB 반영

 

직접 연계

- 송수신 모듈간 직접 연계

- API, JDBC

 

간접 연계

- 송수신 모듈 사이 중계 모듈을 통해 연계

- 다양한 환경서 사용 가능

- Socket ,웹서비스

 

연계 메커니즘에서의 데이터 보안

- 전송구간 혹은 데이터 암/복호화로 구분

- 전송 구간 암호화 : VPN 가상 사설망이나 암호화 프로토콜로 패킷 암호화

- 암호화 알고리즘 : 해시 사용하는 단방향 암호화, 개인키 공개키 분류되는 양방향 암호화

* 해시 : 키를 이용해 변환

* 개인키 암호화 :  개인키로 암호 복호화

* 공개키 암호화 : 공개키로 암호화 개인키로 복호화

 

300x250

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

UI  (0) 2020.05.15
XML  (0) 2020.05.14
웹 서버와 배치  (0) 2020.05.14
DBMS 커낵션  (0) 2020.05.14
모듈  (0) 2020.05.14
728x90

웹서버 개발 구성 요소

- DTO Data Transfer Object, VO Value Object : 데이터 송수신에 사용하는 객체

- DAO Data Access Object : DB에 접속, SQL로 데이터 조작하는 객체

- SQL : DB연동을 위한 SQL 구현

- service : 사용자 리퀘스트에 대한 로직

- controller : 사용자 요청에 적절한 service로 분기

 

배치 프로그램

- 미리 정한 여러 작업을 일괄 수행

- 정기 배치, 이벤트 배치, ondemand 배치

 

배치 스캐줄러

- 일정 주기에 따라 배치 처리하는 도구로 잡 스케줄러라고도함

 

300x250

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

XML  (0) 2020.05.14
연계  (0) 2020.05.14
DBMS 커낵션  (0) 2020.05.14
모듈  (0) 2020.05.14
개발환경  (0) 2020.05.14

+ Recent posts