컴퓨터 일반·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은 사용자 정의 태그 / 자바 스크립트는 클라이언트 실행