1.소프트웨어의 개요
- 컴퓨터 시스템은 크게 하드웨어와 소프트웨어로 구분됨
- 소프트웨어는 시스템 소프트웨어와 응용 소프트웨어로 구분됨
- 시스템 소프트웨어 : 컴퓨터 하드웨어 구성요소를 부드럽게 작동하도록 설계된 프로그램
- 응용 소프트웨어 : 개인이나 조직의 일에 대한 컴퓨터 활용수단
2.시스템 소프트웨어
- 하드웨어와 응용 프로그램 간의 매개체
- 컴퓨터 시스템을 효율적으로 운영해주는 기능을 갖춘 프로그램의 집단
1) 운영체제
- 가장 기본이 되는 컴퓨터 프로그램
- 컴퓨터를 작동시켜 중앙처리장치, 주기억장치, 키보드 등 하드웨어 시스템을 인식
- 응용 프로그램을 실행시키고 통신할 수 있는 기반 제공
- 운영체제의 4가지 중요한 작업
ㄱ. 사용자가 컴퓨터와 대화할 수 있도록 인터페이스 제공
ㄴ. 컴퓨터에서 하드웨어 장치를 관리
ㄷ. 디스크에 있는 파일시스템들을 관리, 보존
ㄹ. 다른 프로그램들을 지원
2) 언어번역기
- 컴파일러 : 고급 언어인 원시프로그램(source)을 기계어 명령들로 변환시켜 목적프로그램(object)을 생성시키는 프로그램
- 인터프리터 : 원시프로그램의 한 문장을 읽고 곧바로 그 문장을 수행한다. 실행시 번역시간이 필요해서 미리 번역시키는 컴파일러보다 수행 속도가 느리다
3) 유틸리티 프로그램
- 운영체제처럼 시스템을 사용하기 위해 반드시 필요한 프로그램 외에 이용자들이 자주 사용하는 프로그램들을 미리 작성해두어 사용자가 쉽게 이용할 수 있도록 하는 프로그램이다.
- 프로그램이나 데이터를 다른 매체로 옮기거나, 데이터의 내용이나 배치순서를 바꾸거나, 프로그램 개발 시 에러를 쉽게 찾아낼 수 있게 하는 등 여러 종류의 프로그램을 집합적으로 일컫는 용어이다.
3.응용 소프트웨어
- 컴퓨터 사용자가 시스템 소프트웨어들을 바탕으로 특정 분야의 응용을 목적으로 개발하는 프로그램
1) 사용자 프로그램
- 이용자가 컴퓨터를 활용하기 위해 작성하는 모든 프로그램을 통칭
- 컴퓨터의 개별 사용자나 조직의 전산실에서 그들의 필요에 따른 응용목적을 달성하기 위해 제작
2) 응용패키지 프로그램
- 표준화되고 특성화된 프로젝트에 대해서 사용자들이 쉽게 활용하도록 소프트웨어 개발회사에서 제작한 프로그램
- 일반적으로 상품화되어 판매됨
- 예 : 워드프로세서, 스프레드시트, 멀티미디어 소프트웨어 등
3)멀티미디어 도구
- 멀티미디어 툴북, 매크로미디어 디렉터 5, 오소웨어 등
4.프로그래밍 언어 개요
- 저급언어 : 하드웨어 지향의 기계 중심 언어. 컴퓨터 개발 초기에 사용되었던 프로그래밍 언어로 주로 시스템 프로그래밍에 사용 ( 기계어, 어셈블리어 )
- 고급언어 : 응용 소프트웨어 지향의 문제 중심 언어이며, 컴파일러나 인터프리터를 이용해 처리가 이루어진다. ( 절차지향언어, 객체지향언어 )
- 제5세대 언어 : 인공지능의 구현이나 전문가 시스템을 만드는데 이용 ( 함수언어, 논리언어, 자연어 )
1) 저급언어 ( 기계어, 어셈블리어)
- 기계어 : 컴퓨터의 전기적 회로를 통해 직접적으로 해석되어 실행되는 언어. 컴퓨터를 매우 효율적으로 활용할 수 있으나, 언어 자체가 복잡하고 어렵기 때문에 프로그래밍하는데 시간이 오래 걸리고 에러가 많이 발생한다.
- 어셈블리어 : 기계어의 명령들을 알기 쉬운 기호로 표시하여 사용. 기계어와 1:1로 대응되어 기계어의 장점을 가지고 있으나, 어셈블리어는 다른 기종의 어셈블리어와 거의 일치하지 않아 다른 기종의 컴퓨터에선 처리될 수 없다.
2)고급언어 (절차지향언어, 객체지향언어 )
- 절차지향언어 : 프로그래머가 명령을 순서에 맞게 코드화하면 순차적으로 명령이 실행되어 문제를 해결하는 것.
- 절차지향언어의 예 : COBOL, 파스칼, FORTRAN, C
- 객체지향언어 : 객체, 클래스, 상속이라는 개념을 기반으로 하는 프로그래밍
- 객체지향언어의 예 : C++, 자바, 비주얼베이직
3)비절차어 (4세대 언어)
- 데이터베이스의 검색, 리포트 생성, 데이터 조작 및 분석등을 위한 언어
- 예 : SQL, QBE
4)함수언어, 논리언어 (5세대 언어)
- 수학적 논리에 근거하여 만들어진 언어
- 인공지능이나 전문가시스템 개발에 사용
- 예 : Lisp(함수언어), Prolog(논리언어)
5)비주얼 언어
- 문자 기반 명령을 기호 아이콘으로 교체
- 기호 아이콘은 각각 객체나 공통적인 프로그래밍 함수 표현
- 아이콘 지향, 객체 지향 개념의 자연적인 확장
- 비주얼 C++, 비주얼 베이직, 델파이 등
5.고급 언어의 종류별 특성
1) 비주얼 베이직
- 구조적 프로그래밍 마우스로 화면을 구상한은 언어. 초보자도 쉽게 작성가능
- 프로그램 안에서 폼, 클래스, 일반 모듈을 지원함으로 객체로 구성함에 있어 독립적 구조를 가짐
- 구조적 프로그래밍 언어로 완벽한 응용프로그래밍 개발환경이 하나의 패키지에 다 들어있음
2) C언어
- 미국의 벨연구소 리치가 1972년 구현
- UNIX 운영체제 시스템으로 작성된 언어로 융통성, 이식성이 뛰어남
- B라는 언어를 기반으로 개발됨
- 기존의 유닉스운영체제 어셈블리어는 C언어로 대체됨
3) C++
- C 언어에 객체지향 프로그램 개념을 추가하여 만듬
4) 비주얼 C++
- 복잡한 Win 프로그램을 쉽게 만들 수 있게 프로그램이 자동적으로 컴퓨터가 알아서 수행 가능
- 프로그램 입력기와 컴파일러, 디버거가 하나의 프로그램으로 통합됨
5) 포트란
- 주요 사용자는 엔지니어와 과학자들이다
6) 코볼
- 주로 비지니스 데이터 처리를 위해 사용된다
7) 파스칼
- 구조적 프로그래밍을 가르치기 위해 설계된 언어이다
8) HTML
- 마크업언어 : 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어
- HTML은 본문을 위한 구조를 나타내는 것뿐만 아니라 링크, 인용과 그 밖의 구조적 문서를 만들 수 있는 방법 제공
9) 자바
- SUN사에서 만든 웹과 인터넷 기반의 응용프로그램 객체지향 프로그래밍 언어 (대화형 접근)
- C++과 유사하지만 훨씬 간단
- 메모리 관리를 언어 차원에서 처리함으로써 보다 안정적인 프로그램 가능 (가비지컬렉터)
- 네트워크 분산 환경에서 이식성이 높고, 인터프리터 방식으로 동작
10) XML
- HTML과 SGML의 단점을 보완하여 설계한 마크업 언어
- 전자상거래 표준 환경에 적용, 전자출판, 의학, 경영, 법률, 판매 자동화, 디지털 도서관 등
- 웹상에서 구조화된 문서를 전송 가능하게 설계된 표준화된 텍스트 형식
6.데이터베이스
- 컴퓨터시스템을 이용하기 위해선 데이터를 저장하고 엑세스할 수 있어야 한다.
- 파일에 의한 처리방법 : 프로그래밍 언어에 의해 직접 데이터 활용
- 데이터베이스의 처리방법 : 데이터베이스 관리 시스템에 의해 조작
6.1 파일
- 어떤 프로그램에 의하여 사용되는 데이터의 집합 또는 사용자에 의하여 작성된 문서 등 고유의 이름이 할당된 컴퓨터의 기본적인 저장단위
-데이터가 구성되는 방법 : 순차적 구성, 상대적 혹은 직접적 구성, 인덱스된 구성
-구성된 데이트에 액세스하는 방법 : 순차 액세스, 임의 액세스
1)파일 구조
- 순차적 파일구조 : 레코드에 있는 키(key)를 기준으로 순차적으로 저장됨
- 상대적(직접적)파일구조 : 파일 내의 상대적 위치에 레코드들을 저장하고 검색. 레코드가 저장될 장소를 레코드에 있는 키의 값을 기준으로 결정
- 인덱스된 파일구조 : 레코드를 인덱스에 따라 저장하고 검색. 파일은 레코드 키에 따라 오름차순이나 내림차순으로 정렬됨
2)파일 시스템
- 파일 관리 시스템은 응용 프로그램이 필요로 하는 데이터파일 처리루틴을 하나의 공동 접근루틴으로 작성하여 제공
- 각각의 파일을 따로 관리하기 때문에 데이터의 불일치나 중복이 발생할 수 있다
6.2 데이터베이스
- 어떤 조직이나 단체를 유지하고 관리하는 데 필수적인 관련 데이터들의 집합
- 자료파일을 통합하고 응용하며 자료 항목의 중복을 없애고 자료를 구조화하여 놓는 자료의 집합체
- 정보 검색과 갱신의 효율화가 목적
- 데이터베이스 모델링 : 실세계의 데이터들 가운데 운영에 필요한 데이터를 식별하고, 식별된 데이터의 정형적 표현과정을 통해 컴퓨터에 기록하는 솨정
7.데이터베이스 관리시스템(DBMS)
- 데이터베이스를 구현하기위한 소프트웨어
- DB내의 정보를 검색DB에 저장하기에 편리하게 통제하며 중재 역활을 함
- DB를 생성하고 액세스 및 갱신을 할 수 있도록 지원하는 기본 소프트우에ㅓ
- 구성요소 : 질의처리기, 저장관리기, 데이터관리기
1) 데이터베이스 관리 시스템의 필수기능
- 정의 기능 : 다양한 응용 프로그램과 데이터베이스가 서로 인터페이스를 할 수 있는 방법 제공
- 조작 기능 : 사용자와 데이터베이스 사이의 인터페이스를 위한 수단 제공
- 제어 기능 : 공용목적으로 관리되는 데이터베이스의 내용에 대해 항상 정확성과 안전성을 유지할 수 있는 기능
2) 데이터베이스 정의어(DDL)
- 스키마를 생성, 변경, 삭제, 인덱스와 같은 객체를 정의하는데 사용
- DBMS에 관련된 특정언어를 사용하여 자료간의 관게를 정의하고 기억장치에 DB를 구축
3) 데이터베이스 조작어
- 대화식 질의어 : SQL과 같은 4세대 언어. 일반 사용자나 관리자가 DB를 취급하고 데이터의 삽입, 갱신, 삭제 검색을 지원
- 데이터 부속어(DSL) : 비주얼 베이직, C언어로 작성된 응용프로그램에서 사용되는 명령어의 집합. DB 조작어의 저 처리과정을 거쳐 주프로그램 언어로 번역된 다음 컴파일을 통해 실행
8.데이터베이스시스템의 3계층 스키마구조
1) 스키마
- 데이터베이스 구조를 전반적으로 기술한 것
- 데이터베이스의 논리적 정의, 즉 데이터베이스 구조와 제약조건에 대한 명세를 기술한 것
- 외부 스키마, 개념 스키마, 내부 스키마로 구성
2) 외부 스키마
- 데이터베이스의 개개 사용자나 응용 프로그래머가 접근하는 데이터베이스를 정의한 것
- 보통 데이터베이스 전체의 한 논리적 부분이 되는 것이기 때문에 서브스키마라고도 부름
3) 개념 스키마
- 사용자가 필요로 하는 정보를 생성할 수 있는 모든 데이터 객체.
- 객체관계, 제약조건을 포함할 뿐만 아니라 추가로 이들이 효율적으로 관리하는데 필수적인 정보(데이터베이스 접근권한, 보안정책, 무결셩 규칙)에 관한 명세도 포함
4) 내부 스키마
- 물리적 단계보다 한단계 위에 존재
- 실제로 저장될 내부 레코드의 형식, 인덱스의 유무, 저장 데이터의 표현 방법, 내부 레코드의 물리적 순서에 관한 명세를 포함
9.데이터베이스 시스템의 장단점
1) 장점
- 데이터의 공유, 중복의 최소화, 독립성 보장, 무결성 유지
- 응용 프로그램이 데이터에 종속되지 않고 독립적으로 사용될 수 있도록 하는데 필요
- 물리적으로 하드웨어의 교체가 이루어져도 응용프로그램은 간단히 변경하여 사용가능
- 사용자 인터페이스 표준화 : 정의어 및 조작어와 같은 표준 인터페이스 지원
2) 단점
- 운영비의 증대, 데이터 처리방법의 복잡성, 백업과 회복의 복잡성, 시스템 취약성
10.데이터 웨어하우스
- 의사 결정에 필요한 정보 처리 기능을 효율적으로 지원하기 위한 통합된 데이터를 가진 양질의 데이터베이스
1,2,3 -
https://m.blog.naver.com/xbomb/140189679612
3 - http://blog.daum.net/nillmoris/15565427
4 - http://blog.daum.net/vldksh707/4833485
http://gtlac.gweduone.net/files/board/disk/19291/166150/html/4unit/4unit_content_2.htm
5 - http://valentis.pe.kr/Suhdang/Lecture_C/Lecture1-1.html
https://ko.wikipedia.org/wiki/HTML
6,7,8,9,10 - http://blog.daum.net/vldksh707/4833485
'학위공부 > 독학사 요점정리' 카테고리의 다른 글
[독학사/국민윤리]한국윤리사상 (~조선시대) (0) | 2020.06.28 |
---|---|
[독학사/국민윤리]윤리일반(산업사회, 안락사와 사형, 환경윤리) (0) | 2020.06.28 |
[독학사/국민윤리]윤리일반(인간본성론, 국가, 윤리) (0) | 2020.06.28 |
[독학사/컴퓨터의이해]요점정리 ~ 5장 (0) | 2020.06.28 |
[독학사/컴퓨터의이해]요점정리 ~ 3장 (0) | 2020.06.28 |