컴퓨터 소프트웨어
소프트웨어 프로그래밍 언어 웹 프로그래밍 언어
소프트웨어(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) 사용자가 프로그래밍 언어로 작성한 프로그램 목적 프로그램(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) 선 마이크로시스템즈 사가 개발한 객체 지향 프로그래밍 언어 자바 스크립트 (Java Script) 넷스케이프 커뮤니케이션 사가 개발한 스크립트 언어 자바 애플릿 (Java Applet) 자바로 작성된 작은 소프트웨어 네트워크 전송에 적합 자바 스크립트 자바 애플릿 컴파일 불필요 컴파일 필요 클라이언트의 웹 브라우저에서 인터프리트 서버에서 컴파일, 클라이언트에서 인터프리트 객체 지향 언어의 특성 HTML 문장 안에 포함 별도의 애플릿 파일 존재
ASP (Active Server Page) 동적 웹 페이지 작성을 위한 스크립트 언어 VB Script 사용 PHP (Hypertext Preprocesor) Unix, Linux, Windows 등의 환경에 작동 C, Java, Perl 문법과 유사 JSP (Java Server Page) 자바 서블릿 코드로 변환 수행