170 likes | 418 Views
컴퓨터 소프트웨어. 소프트웨어 프로그래밍 언어 웹 프로그래밍 언어. 소프트웨어 (software) 의 개념 시스템을 동작시키고 임의의 작업을 처리할 순서와 방법을 지시하는 명령어의 집합인 프로그램과 프로그램의 수행에 필요한 절차 , 규칙 , 관련 문서의 총칭 소프트웨어의 분류 시스템 소프트웨어 (system software) 운영체제 (OS; Operating System) DOS, Windows, OS/2, Unix, Linux 등
E N D
소프트웨어 • 프로그래밍 언어 • 웹 프로그래밍 언어
소프트웨어(software)의 개념 • 시스템을 동작시키고 임의의 작업을 처리할 순서와 방법을 지시하는 명령어의 집합인 프로그램과 프로그램의 수행에 필요한 절차, 규칙, 관련 문서의 총칭 • 소프트웨어의 분류 • 시스템 소프트웨어(system software) • 운영체제(OS; Operating System) • DOS, Windows, OS/2, Unix, Linux 등 • 언어 번역 프로그램(language translation program) • 인터프리터, 컴파일러, 어셈블러 • 유틸리티 프로그램(utility program) • 압축, 통신, 쉘 프로그램 등
응용 소프트웨어(application software) • 워드프로세서, 스프레드시트, 그래픽 소프트웨어, 설계 소프트웨어, 데이터베이스 관리 시스템 등 • 소프트웨어의 분류 • 상용 소프트웨어 • 공개 소프트웨어(freeware) • 셰어웨어(shareware) : 상용 소프트웨어를 일정기간 사용 후 구매 • 데모버전(demo version) : 홍보 목적으로한 시연 • 트라이얼 버전(trial version) : 체험판 소프트웨어 • 알파 버전(alpha version) • 베타 버전(beta version) • 패치 프로그램(patch program)
유틸리티 • 유틸리티 개념 • 사용자가 컴퓨터를 보다 쉽게 사용할 수 있도록 해 주거나 운영체제에서 제공하지 않는 기능을 제공함으로써 컴퓨터를 이용하여 보다 편리하게 특정한 작업을 수행할 수 있도록 해주는 프로그램 • 압축 프로그램 • 목적 • 파일 압축을 통하여 디스크 공간 절약 • 데이터 통신시 소요되는 시간 절약 • 여러 개의 파일을 한 개의 압축 파일로 관리, 파일 백업 용이 • WinZip, WinRAR, Alzip, 지펜놀(Zip'N'All) 등 • 통신 프로그램 • 웹 브라우저, 에뮬레이터, Outlook, FTP 프로그램 등
시스템 관리 프로그램 • 쉘(shell) 프로그램 • 컴퓨터를 보다 쉽게 사용할 수 있도록 해주는 프로그램 • 명령어 해석기 • 유닉스(unix)의 대화형 사용자 인터페이스 • 사용자가 입력하는 명령어를 이해하고, 실행하는 역할 수행 • DOS Shell, MDIR, Bourne shell, Korn shell, C shell, Bourne Again shell 등 • 노턴 유틸리티 • 컴퓨터 사용 중에 발생하는 각종 문제들을 해결해 주는 유틸리티
프로그래밍 언어 개념 • 각종 프로그램을 작성하기 위한 언어 • 일반 프로그래밍 언어 • 저급 언어(low level language) – 기계 중심 언어 • 기계어(machine language) • 컴퓨터가 이해할 수 있는 바이너리 코드 • 컴퓨터 기종에 따라 각기 다른 기계어 사용 • 수행 속도 빠름 • 프로그램 작성이 어렵고 복잡 • 어셈블리어(assembly) • 기계어에 1:1로 대응하는 명령어를 가진 언어 • 기계어에 비해 작성 용이하지만, 어셈블러(assembler) 필요 • 기종 마다 다른 어셈블리어 사용 • 고급언어에 비해 사용이 불편 • 실행 속도 빠름 • 하드웨어와 관련된 시스템 프로그램 작성에 사용
고급 언어(high level language) – 사용자 중심 언어 • 자연어에 가까운 표현을 사용 • 프로그램 작성 용이 • 컴파일러나 인터프리터를 통해 기계어로 번역 • 기계어에 비해 처리 속도 느림 • 기계어와 어셈블리어를 제외한 대부분의 언어 • Fortran : 과학 계산용 프로그래밍 언어 • COBOL(COmmon Business Oriented Language) : 사무처리용 프로그래밍 언어 • C 언어 : H/W 에 대한 직접적인 조작이 가능한 언어(중급 언어) • C++, Java : 객체 지향 언어 • Algol, Basic, Pascal , Ada, Lisp 등
언어 번역기(language translation program) • 기계어가 아닌 언어로 작성된 프로그램을 기계어로 변환 • 인터프리터(interpreter) • 대화식 언어 번역기 • 기억 장소 낭비 방지(상대적) • 실행 시간 증가 • 컴파일러(compiler) • 한꺼번에 번역하여 일시에 수행 • 실행 속도 빠름 • 기억 장소 낭비 우려(상대적) • 어셈블러(assembler) • 어셈블리어로 작성된 프로그램을 기계어로 번역
언어 번역 과정 • 원시 프로그램(source program) • 사용자가 프로그래밍 언어로 작성한 프로그램 • 목적 프로그램(object program) • 언어 번역기에 의해 기계어로 번역된 프로그램 • 로드 모듈(load module) • 링커(linker)에 의해 실행 가능한 상태로 만들어진 프로그램 모듈 (컴파일) 컴파일러 (로드) 로더 (링크) 연계 편집 프로그램 원시 프로그램 (Source Program) 목적 프로그램 (Object Program) 실행 가능한 프로그램 (Load Module) 실행
프로그래밍 작성 기법 • 구조적 프로그래밍 기법 • 상향식 프로그래밍 기법 • 하향식 프로그래밍 기법 • 객체 지향 프로그래밍 기법 • 비주얼 프로그래밍 기법
HTML (HyperText Markup Language) • 하이퍼텍스트 문서를 작성하기 위한 언어 • SGML (Standard Generalized Mark-up Language) • HTML의 바탕이 된 언어 • XML (eXtensible Markup Language) • HTML과 SGML의 장점을 수용한 언어 • Perl (Practical Extraction and Reporting Language) • CGI 프로그램을 작성에 이용되는 인터프리터 언어 • CGI (Common Gateway Interface) • 서버와 응용 프로그램 간에 데이터를 주고 받기 위한 규약 • 카운터, 방명록, 게시판과 같이 방문자 상호간의 정보 전달에 이용
자바 (JAVA) • 선 마이크로시스템즈 사가 개발한 객체 지향 프로그래밍 언어 • 자바 스크립트 (Java Script) • 넷스케이프 커뮤니케이션 사가 개발한 스크립트 언어 • 자바 애플릿 (Java Applet) • 자바로 작성된 작은 소프트웨어 • 네트워크 전송에 적합
ASP (Active Server Page) • 동적 웹 페이지 작성을 위한 스크립트 언어 • VB Script 사용 • PHP (Hypertext Preprocesor) • 동적 웹 페이지 작성을 위한 스크립트 언어 • Unix, Linux, Windows 등의 환경에 작동 • C, Java, Perl 문법과 유사 • JSP (Java Server Page) • 동적 웹 페이지 작성을 위한 스크립트 언어 • 자바 서블릿 코드로 변환 수행