알고리즘과 소프트웨어개발(실기)
소프트웨어 생명주기
알고리즘 설계는 소프트웨어 설계 단계에 해당한다
프로그래밍 언어를 선택하여 알고리즘에 대해 코딩하는 것은 소프트웨어 구현 단계
소프트웨어 생명주기 단계
개발 타당성 검토
개발 계획 수립
요구사항 분석
소프트웨어 설계
소프트웨어 구현
테스트
운용
유지보수
소프트웨어 관리
요구 관리
고객 요구를 정확하게 추출 및 문서화
고객과 개발자가 상호 동의하는 과정에 대한 관리
형상 관리
소프트웨어 개발 및 유지보수 과정 중 발생하는 산출물들을 시간 흐름에 따라 시스템 형상을 만들어 가는 것
소프트웨어 버전을 체계적으로 관리
유지 관리
소프트웨어 개발 후 고객이 사용하는 과정 중 변경 사항이 발생할 경우 소프트웨어를 수정하는 것
고객이 소프트웨어를 지속적으로 잘 사용하도록함
품질 관리
개발된 소프트웨어가 원래의 개발 목적에 부합하며 요구를 만족하는지 검증
소프트웨어 품질 관리
기능성(funcionality)
고객이 요구하는 기능을 소프트웨어가 충분히 ...
어셈블리어와 어셈블러
어셈블리어어셈블리어는 기계어와 기호를 1 대 1 대응시켜 코드화한 기호 언어이다.
어셈블 : 원시 프로그램을 목적 프로그램으로 바꾼다
사용자가 프로그램을 쉽게 읽고 이해할 수 있음
프로그램에 기호화된 명령 및 주소를 사용한다
CPU 마다 사용되는 어셈블리어가 다를 수 있다
어셈블리어 명령
의사 명령(어셈블러 명령)
원시 프로그램을 어셈블할 때 어셈블러가 해야 할 동작을 지시하는 명령
프로그램의 시작과 끝을 나타내는 것, 변수를 위한 기억장소를 확보하는 것, 매크로를 정의하거나 호출하는 것
실행 명령
데이터를 처리하는 명령
어셈블리어의 명령어 형식
Label
데이터를 기억할 기억 장소, 분기할 위치, 기호 상수 등에 대한 기호를 기술하는 부분
OP
명령어를 기술하는 부분
OP-CODE
Operand
피연사자가 기술 된다
어셈블러와 어셈블 과정어셈블 과정은 2 단계로 나누어서 수행된다. 2 개의 Pass를 사용하면 기호를 정의하기 전에 사용할 수 있는 프로그램 ...
시스템 소프트웨어의 개념과 구성
시스템 소프트웨어란?
시스템 전체를 작동시키는 프로그램
프로그램을 제어장치에 적재시키거나 인터럽트 관리, 장치 관리, 언어 번역 등의 기능을 담당
OS, 언어 번역 프로그램, 매크로 프로세서, 링커, 라이브러리, 정렬/합병 프로그램, 로더 등
시스템 소프트웨어의 구성
제어 프로그램
감시 프로그램
작업제어 프로그램
Job Scheduler, Master Scheduler(shell 같은거)
자료 관리 프로그램
주 기억장치와 보조 기억 장치 사이에서 일하는 프로그램
처리 프로그램
언어 번역 프로그램
컴파일러, 어셈블러, 컴파일러
서비스 프로그램
연결 편집기, 링커
정렬/합병 프로그램
라이브러리안
유틸리티 프로그램
문제 프로그램
업무 프로세스(실기)
경영, 관리, 운용 관련 용어
정보 기술 아키텍처(ITA)
Information Technology Architecture
정보 시스템에 대한 요구사항 충족, 정보 시스템의 구성요소를 분석하고, 이들 간의 관계를 구조적으로 정리한 체계
즉 업무 처리 효율을 높이기 위해 각 업무와 업무에 필요한 정보들을 관리하는 것
ITA 구성요소
전사적 구조(Enterprise Architcture)
업무와 관리 프로세스 및 정보 기술 간의 관계를 나타내는 것
관계가 핵심
기술 참조 모델(Technical Reference Model)
조직의 업무에 필요한 정보 서비스를 식별, 설명하는 것
전사적 구조의 모든 부분에 고려됨
표준 프로파일
기술 참조 모델에 기재된 서비스를 지원하기 위한 정보 기술 표준들을 의미
업무 재설계(BPR)
Business Process Reengineering
경영혁신기법의 하나, 기업의 활동 및 업무의 전반적인 흐름을 근본적으로 분석,재설계,재구성하는 것 ...
운영체제 개요
운영체제의 개념운영체제의 정의
시스템 자원 효율적 관리, 여러 프로그램의 모임
사용자와 하드웨어 간의 인터페이스로 동작하는 시스템 소프트웨어의 일종
운영 체제의 목적(성능 평가의 기준)
처리능력(Throughput) : 일정 시간 내에 시스템이 처리하는 일의 양
반환 시간(turn around time) : 시스템에 작업을 의뢰한 시간부터 처리 완료까지 걸리는 시간
사용 가능도(availablility) : 시스템의 자원을 필요할 때 즉시 사용할 수 있는가
신뢰도(reliablity) : 시스템이 주어진 문제를 정확하게 해결하는 정도
운영체제의 기능
프로세서, 주 기억장치, 보조 기억장치 등의 자원 관리
자원의 스케줄링
사용자와 시스템간의 인터페이스 제공
시스템의 각종 하드웨어와 네트워크 관리 및 제어
데이터 관리, 데이터 및 자원의 공유 기능 제공
시스템 오류 검사 및 복구
자원 보호 기능 제공
입 출력에 대한 보조 기능
가상 계산기 기능
운영체제의 주요 자원 관리
프로세스 ...
운영체제
운영체제란?
OS(Operating System)
컴퓨터 사용자와 하드웨어간의 인터페이스
여러 프로그램 모음집 또는 그 모임의 자원들의 효율적인 관리를 목적으로한 프로그램
운영체제의 목표
처리능력 향상
일정 시간 내에 시스템이 처리하는 일의 양
일 잘하냐?
반환 시간
시스템에 작업을 의뢰한 시간부터 처리가 완료 될 때까지 걸린 시간
빠릿하냐
사용 가능도
자원이 필요할 때 즉시 사용 가능하냐
여유 있냐? 효율성이 목적이지
신뢰도
시스템이 주어진 문제를 정확하게 해결하는 정도
믿을만하냐?
운영체제의 기능운영체제 정의와 상이한데 전체적으로는 시스템 관리 기능이라는 틀안에서 움직인다
자원의 스케줄링
사용자와 시스템간의 인터페이스
하드웨어와 네트워크를 관리 및 제어
데이터와 자원 관리 및 공유
시스템 오류 검사 및 복구
자원 보호 기능
입.출력에 대한 보조 기능
VM
VM 나온건 조곰 뜬금포 같은데?
운영체제의 종류
단일 작업 시스템
DOS
다중 작업 처리 시스템 ...
자료구조
자료 구조의 개념자료 구조의 정의
자료의 표현과 그것과 고나련된 연산
일련의 자료들을 조직하고 구조화
어떠한 자료 구조에서도 필요한 모든 연산들을 처리하는 것이 가능
자료 구조에 따라 프로그램 실행시간이 달라진다.
자료 구조의 이용
정렬 : 기억 장치 내의 자료를 일정한 순서에 의해 나열하는 것
검색 : 기억장치 내의 자료를 찾는 것
파일 편성 : 자료를 기억 매체에 저장할 때의 파일 구조
인덱스 : 파일에서 특정 자료를 빠르게 찾기 위한 색인표
Stack스택의 개념
LIFO = 후입 선출 방식
TOP
STACK으로 할당된 기억 공간에 가장 마지막으로 삽입된 자료가 기억된 위치를 가리키는 요소
STACK 포인터라고 하기도 함
BOTTOM
스택의 가장 밑바닥
스택의 응용 분야
부 프로그램 호출 시 복귀주소를 저장할 때
함수 호출의 순서 제어
인터럽트가 발생하여 복귀주소를 저장할 때
후위 표기법으로 표현된 수식을 연산 할 때
0 주소 지정방식 명령어의 자료 저 ...
정규화(실기)
이상
데이터베이스의 논리적 설계 시 데이터 중복과 종속으로 인해 발생되는 문제점
이상 현상은 릴레이션 처리하는데 여러 가지 문제를 초래하게 된다.
이상의 종류에는 삭제 이상 삽입 이상 갱신 이상이 있다.
삭제 이상
테이블에서 하나의 자료를 삭제하고자 하는 경우 그 자료가 포함된 튜플이 삭제됨으로 인해 원하지 않은 자료까지 함께 삭제가 이루어져 발생하는 문제점을 말한다
삽입 이사
삽입 과정에서 원하지 않는 자료가 삽입됬을 때
삽입 과정에서 자료가 부족해 삽입이 되지 않아 발생하는 문제점
갱신 이상
관계 데이터베이스의 자료를 갱신하는 과정에서 갱신 과정이 정확하지 않거나 일부 튜플만 갱신됬을 때
정보가 모호해지거나 일관성이 없어지는 현상을 말한다
함수정 종속
어떤 릴레이션에서 속성 A , B 가 있을 때
A의 값을 알면 B의 값을 알 수 있을 때
A의 값이 B의 값에 따라 달라질 때
완전 함수 종속
릴레이션에서 한 속성이 오직 기본 키에만 종속이 되는 경우
부분 함수 종속 ...
정보 시스템
자료와 정보
자료 : 현실에서 수집한 자료나 정보로 가공되지 않은 상태
정보 : 의사 결정에 도움을 줄 수 있는 유용한 형태, 가공 되어 있는 상태
정보 시스템의 정의
정보 시스템이란 조직체에 필요한 DATA를 수집, 저장해 두었다가 필요 시에 의사결정에 유용한 정보를 생성하고 분배하는 시스템
자료 처리 시스템정보 시스템이 사용할 자료를 처리하는 정보 시스템의 서브 시스템
일괄 처리 시스템
일정량의 데이터를 모아 한꺼번에 처리한다
시스템 중심의 자료 처리 방법
반환 시간이 늦지만 CPU 유휴시간이 작음
순차 접근 방법을 사용하는 업무에 적합
단위 시간당 처리하는 작업수가 많아 시스템의 성능은 높아
트랙잭션당 처리 비용이 적다
온라인 실시간 처리 시스템
데이터 발생, 처리 요구가 있는 즉시 처리하여 결과를 산출하도록 하는 방식
사용자 중심의 처리 방식
처리 시간이 단축되고 처리 비용이 절감
시간에 제한을 두고 수행되어야 하는 작업에 사용된다
분산 처리시스템
지리적으로 분산 ...
컴파일러와인터프리터
프로그래밍 언어컴퓨터와 대화하기 위해 필요한 언어이지 우리가 다른 나라 말 배우는 이유랑 같은 거라 생각한다
크게 저급 언어, 고급 언어로 나뉘는데 기준이라면 인간과 기계 누구에게 맞춰줘 있냐가 포인트야
저급 언어
기계어
컴퓨터가 직접 이해할 수 있는 언어
수행시간이 빠르다
우리가 흔히 아는 0과 1 방식
언어의 호환성이 없다
cpu 내장 명령을 직접 사용하는 것으로 프로그램을 작성하고 이해하기 어렵다
기억해봐 micro operation 답답하잖아
어셈블리어
기계어와 1 : 1로 대응되는 기호로 이루어진 언어
하드웨어 제어에 주로 사용되며 역시나 언어의 호환성은 없다
컴퓨터가 직접 이해 못하므로 어셈블러로 기계어로 번역해줘야함
고급 언어
보통은 컴파일 해야하는 언어들을 의미하지
인간 친화적이야 그나마
하드웨어에 대한 깊은 지식이 없어도 프로그램을 만들 수 있어
컴파일러나 인터프리터가 필요하다
역시나 기계어로 번역하기 위해
컴파일러와 인터프리터컴파일러와 인터프리 ...