← 개념서태블릿/PC 버전
컴퓨터 일반·1·2급 공통·4장

소프트웨어와 프로그래밍 언어

시스템·응용 소프트웨어의 구분, 사용권에 따른 분류(프리웨어·셰어웨어·패치 등), 언어 번역 과정과 객체지향 언어, 웹 언어를 정리합니다.

노란 밑줄n회 기출에 나온 지점(숫자는 등장 문항 수)✎ 는 덧붙인 필기

출제 비중 — 컴퓨터 일반 20문항 중 1~2문항. 개수는 적지만 사용권에 따른 분류19회는 거의 고정 출제다. 용어 정의만 외우면 되는 구간이다.

1. 소프트웨어의 분류

구분 내용
시스템 소프트웨어 하드웨어를 제어·관리 — 운영체제, 컴파일러, 링커, 로더, 유틸리티, 장치 드라이버
응용 소프트웨어 사용자의 업무 처리 — 워드프로세서, 스프레드시트, DBMS, 그래픽 프로그램

2. 사용권에 따른 분류 — 표째로 외운다

용어 뜻
상용 소프트웨어 정식 대가를 지불하고 사용
프리웨어12회 무료로 사용·배포할 수 있으나 상업적 이용은 제한되는 경우가 많다
셰어웨어14회 일정 기간·일부 기능만 무료로 써 보고, 계속 쓰려면 구입
데모 버전 기능을 제한해 홍보용으로 배포
트라이얼 버전 사용 기간을 제한해 배포
알파 버전 개발사 내부에서 테스트하는 버전
베타 버전 정식 출시 전 일반 사용자에게 테스트를 맡기는 버전
패치(Patch) 버전8회 이미 배포된 프로그램의 오류 수정·일부 변경을 위해 배포
번들 하드웨어나 다른 소프트웨어에 끼워서 제공
공개 소프트웨어 소스 코드까지 공개(오픈 소스)

3. 프로그래밍 언어와 번역

언어의 수준

  • 저급 언어: 기계어(0·1), 어셈블리어(니모닉) — 실행은 빠르나 호환성이 낮다.
  • 고급 언어: C, Java, Python 등 — 사람이 이해하기 쉽고 호환성이 높다.

번역 과정

원시 프로그램 → (번역) → 목적 프로그램 → (링커) → 로드 모듈 → (로더) → 실행

구분 컴파일러 인터프리터
번역 단위 프로그램 전체 행(줄) 단위
목적 프로그램 생성함 생성하지 않음
실행 속도 빠름 느림
번역 속도 느림 빠름
예 C, FORTRAN, COBOL BASIC, Python, JavaScript
  • 어셈블러: 어셈블리어 → 기계어. 링커: 목적 프로그램을 묶어 실행 가능한 모듈로. 로더: 실행 모듈을 주기억장치에 적재.

4. 객체지향 프로그래밍

  • 객체(Object) = 데이터 + 함수(메서드) 를 하나로 묶은 것.
개념 뜻
캡슐화6회 데이터와 처리 방법을 하나로 묶고 내부를 숨긴다
상속8회 상위 클래스의 속성과 메서드를 하위 클래스가 물려받는다
다형성 같은 이름의 메서드가 상황에 따라 다르게 동작
추상화 공통 속성을 뽑아 단순화
  • 대표 언어: Java, C++, C#, Python, Smalltalk. 장점은 재사용성·생산성·유지보수성 향상.

5. 웹 프로그래밍 언어

언어 특징
HTML18회 웹 문서를 만드는 표준 언어. 태그로 구성
XML16회 사용자가 태그를 정의할 수 있는 확장형 언어. 데이터 구조와 의미를 표현
DHTML HTML + CSS + 스크립트로 동적 문서
자바 스크립트 클라이언트(브라우저)에서 실행되는 스크립트
ASP·JSP·PHP 서버에서 실행되는 스크립트
VRML 3차원 가상 공간 표현
WML 무선 단말기용 마크업 언어

마무리 체크

  • 컴파일러·링커·로더는 시스템 소프트웨어
  • 데모=기능 제한 / 트라이얼=기간 제한 / 알파=내부 / 베타=외부
  • 컴파일러는 목적 프로그램 생성 O, 인터프리터는 X
  • 번역 순서: 원시 → 목적 → (링커) → 로드 모듈 → (로더) → 실행
  • 캡슐화·상속·다형성·추상화
  • XML은 사용자 정의 태그 / 자바 스크립트는 클라이언트 실행