[목차]
1. 컴파일러 / 인터프리터
2. 절차적 / 객체지향 프로그래밍 언어
3. 스크립트 언어
[컴파일러 / 인터프리터]
* 시험에 자주 출제 됨!
1. 고급 프로그래밍 언어
: 사람이 이해하기 쉽게 작성된 프로그래밍 언어로
가독성이 높고 다루기 간단함
: 컴파일러나 인터프리터에 의해 저급 프로그래밍 언어로
번역되어 실행됨 (C / JAVA / Python / Basic 등 대부분의 프로그래밍 언어들)
2. 저급 프로그래밍 언어
: 컴퓨터가 이해하기 쉽게 작성된 프로그래밍 언어로
기계어 및 어셈블리어가 있다.
3. 컴파일러, 인터프리터
원시(Source) 번역 및 해석 툴 목적(Object)
-------------------------------------------------------------------------------
C(고급) 컴파일러 기계어 (0,1)
Python (고급) 인터프리터 기계어 (0,1)
Assembly (저급) 어셈블러 기계어 (0,1)
* 컴파일러를 이용해 번역을 하게 되면 목적 프로그램이 만들어지나
* 인터프리터의 경우는 목적 프로그램이 만들어지지 않는다 (번역 후 바로 실행)
4. 컴파일러와 인터프리터의 차이점
* 자료형을 검사하는 시점이
컴파일(compile time) 할때 검사할 수도 있고
실행(runtime) 할때 검사할 수도 있는데,
파이썬은 자료형을 실행할 때(runtime) 정의한다.
자료형 검사 시점이 컴파일 때 하는 것을 정적 타이핑,
실행할 때 자료형을 검사하는 것을 동적 타이핑이라 한다.
[절차적 / 객체지향 프로그래밍 언어]
1. 절차적 프로그래밍 언어
: 일련의 처리 절차를, 정해진 문법에 따라
순서대로 기술해 나가는 언어
예)
int main() {
돈을 준비해 자판기에 넣는다;
자판기에서 돈을 검사한 후 제품과 잔돈을 꺼낸다;
제품과 잔돈을 받는다;
}
2. 절차적 프로그래밍 언어 종류
2-1) C
: 시스템 프로그래밍 언어로 널리 사용 됨
: UNIX 일부가 C로 구현되어 있음
: 고급 프로그래밍 언어이면서 저급 프로그래밍 언어의 특징
(하드웨어 제어 등 시스템 프로그램 개발)을 모두 갖추고 있음
: 이식성이 좋아 컴퓨터 및 OS 기종에 관계없이 프로그램 작성 가능
2-2) ALGOL
: 수치 계산이나 논리 연산과 같은 알고리즘 연구개발을 목적으로 한 언어
2-3) COBOL
: 사무처리용 언어
2-4) FORTRAN
: 주로 과학적인 계산을 하기 위해 시작된 과학 기술 계산용 언어
2-5) BASIC
: 교육용 대화형 언어
3. 객체지향 프로그래밍 언어
: 현실 세계의 개체(Entity)를 기계의 부품처럼 하나의 객체(Object)라는
기본 단위로 나눠, 이 객체들의 상호작용으로 프로그래밍 하는 방식으로,
프로시저(함수 등의 프로그램 단위)보다 객체 중심이다.
: 자판기 클래스(추상적인 개념)의 특성을 물려받아
고객, 기계라는 객체를 만들 수 있고
자판기라는 클래스의 인스턴스가 이러한 객체들이다.
3-1) 구성 요소
ㄱ. 객체(Object)
: 클래스의 인스턴스이며 객체들간의 상호작용은 메시지를 통해 이루어짐
- 데이터 : 객체가 가지고 있는 상태(속성, Attribute, 변수, 자료구조) (돈, 제품 등)
- 연산자 : 객체의 데이터를 처리하는 행위(메소드, Method, 동작, Operation, 함수, 프로시저) (돈을 넣는다 등)
ㄴ. 클래스(Class)
: 하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현한 데이터 추상화(모델링)을 의미
: 공통된 속성과 연산을 갖는 객체의 집합 (객체의 일반적인 타입)
- 인스턴스 (Instance) - 클래스에 속한 각각의 객체 (객체는 클래스의 인스턴스)
ㄷ. 메시지(Message)
: 객체들 간에 상호작용을 하는데 사용되는 수단
: 객체에서 객체로 메시지가 전달되면 메소드(행위)를 시작함
3-2) 특징 (암기!!!!!)
ㄱ. 캡슐화 (Encapsulation)
: 속성(데이터)과 메소드(연산)를 하나로 묶어서 객체로 구성한다.
: why? 정보 은폐 등 외부에서의 조작을 금지하기 위해
- 프로그램 변경으로 인한 오류의 파급효과가 적음
- 재사용 용이
ㄴ. 정보은닉, 정보은폐 (Information Hiding)
: 객체는 다른 객체로부터 자신의 자료를 숨기고
자신의 연산만을 통하여 접근을 허용하는 것
: why? 고려되지 않은 영향들을 최소화하기 위해
ㄷ. 추상화 (Abstraction)
: 복잡한 문제의 본질을 이해하기 위해 세부 사항은 배제하고
중요한 부분을 중심으로 간략화하는 기법
: 데이터의 공통되는 성질이나 기능을 묶어서 추출하는 것
: 각 과목 교수들이라는 객체의 특성을 이끌어 추상화 시켜보면
교수라는 추상적인 클래스를 만들 수 있다.
- 기능 추상화 : 입력 자료를 출력 자료로 변환하는 과정을 추상화하는 방법
- 자료 추상화 : 자료와 자료에 적용할 수 있는 오퍼레이션(메소드, 행위)을 함께 정의하는 방법
- 제어 추상화 : 외부 이벤트에 대한 반응을 추상화하는 방법
ㄹ. 상속성 (Ingeritance)
: 상위 클래스의 메소드와 속성을 하위 클래스가 물려받는 것
: 다중 상속은 한 클래스가 여러 상위 클래스로부터 상속 받는 것
(상위 클래스 : 비행기, 자동차) -> 재사용
ㅁ. 다형성 (Polymorphism)
: 한 메시지가 객체에 따라 다른 방법으로 응답할 수 있는 것
: 많은 상이한 클래스들이 동일한 메소드명을 이용하는 능력
3-3) 장점
: 프로그램을 유연하고 변경이 용이하게 만들기 때문에
대규모 소프트웨어 개발에 많이 사용됨
: 프로그램을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 함
: 보다 직관적인 코드 분석을 가능하게 함
: 상속을 통한 재사용과 시스템의 확장이 용이
: 사용자와 개발자 사이에 이해를 쉽게 해줌
3-4) 단점
: 프로그래밍 구현을 지원해 주는 정형화된 분석 및 설계 방법이 부족
3-5) 종류 (암기!!!!!!!!)
ㄱ. JAVA
: 썬 마이크로시스템에서 개발된 객체지향 프로그래밍 언어
: 응용 프로그램의 개발 도구로 각광받고 있음
: 운영체제 및 하드웨어에 독립적이며 이식성이 강함
ㄴ. C++
: C언어에 객체지향 개념을 적용한 언어
ㄷ. C#
: C와 C++의 발전된 형태로 JAVA와 비슷한 특색을 가진 객체지향 프로그래밍 언어
: MS사의 닷넷(.NET) 플랫폼에서 쓰임
ㄹ. Smaltalk
: 1세대 객체지향 언어로, 최초의 GUI를 제공한 언어
ㅁ. Delphi(델파이)
: 기본적인 문법은 객체지향적인 파스칼 문법과 같지만
델파이라는 언어로 존재함
[스크립트 언어]
* 필기 출제 됨!
1. 설명
* 스크립트 : 영화나 방송의 대본으로 배우들의 행동을 지시한다
(이미 존재하는 소프트웨어를 제어하기 위한 용도)
: 응용 소프트웨어를 제어하는 컴퓨터 프로그래밍 언어로
응용 프로그램과 독립하여 사용되고, 일반적으로
응용 프로그램의 언어와 다른 언어로 사용되어
사용자가 응용 프로그램의 동작을 사용자의 요구에 맞게 수행할 수 있도록 해준다.
기계어로 컴파일 되지 않고 별도의 번역기가 소스를 분석하여 동작하는 언어 (인터프리터 개념)
2. 장점
: 컴파일 없이 바로 실행하므로 결과를 바로 확인할 수 있음
: 배우고 코딩하기 쉬움
: 개발 시간이 짧고 소스 코드를 쉽고 빠르게 수정할 수 있음
3. 단점
: 컴파일 없이 실행되므로 실행 속도가 느림 (실행할 때마다 코드를 읽고 해석하는 작업이 필요하기 때문)
: 런타임 오류가 많이 발생함
4. 분류
- 서버용 : ASP, JSP, PHP, Python
- 클라이언트용 : JavaScript
* 참고
: 파이썬은 프로그램 개발에도 사용되지만
스크립트 언어로 사용되기 편하므로
스크립트 언어라고 불리기도 한다.
5. 종류
5-1) Python
: 객체지향 기능을 지원하는 대화형 인터프리터 언어
(대화형 : 복잡한 문법 구조 없이 코드를 입력하면 그 값이 바로 계산)
5-2) PHP (Professional Hypertext Preprocessos)
: 동적 웹 페이지를 만들기 위해 설계된 언어로
Linux, Unix, Windows 운영체제에서 사용이 가능
: C, JAVA 등과 문법이 유사하므로 배우기 쉬워
웹 페이지 제작에 많이 사용됨
5-3) ASP (Active Server Page)
: 서버 측에서 동적으로 수행되는 페이지를 만들기 위한 언어로
마이크로소프트 사에서 개발
: Windows 운영체제에서만 수행 가능한 프로그래밍 언어
5-4) JSP (JAVA Server Page)
: JAVA 로 만들어진 언어로, 다양한 운영체제에서 사용 가능
5-5) JCL (Job Control Language)
: IBM 메인프레임 운영체제에서 사용되는 언어로
일괄 처리 작업을 수행하거나 하부 시스템을 시작하는 방법을
시스템에 지시
(IBM 메인프레임: IBM이 현재까지 생산중인 대형 컴퓨터 시스템)
5-6) 자바스크립트 (Java Script)
: 클라이언트 웹 브라우저 내에서 주로 사용하며, 객체 기반의 스크립트 언어
출처 : 유튜브 기사퍼스트 권우석
https://www.youtube.com/watch?v=kYKYAMf2My4&list=PLz95GL3y9Hv1pC1yOWBV1yqHxi4jEOKez&index=27
'정보보안공부 > 정보처리기사' 카테고리의 다른 글
7. 프로그래밍 언어 활용 - 라이브러리 특성 활용&기출풀이 (0) | 2022.01.17 |
---|---|
6. 프로그래밍 언어 활용 - 언어 특성 활용(2) PHP (0) | 2022.01.13 |
4. 프로그래밍 언어 활용 - 기본 문법 활용 & 기출풀이 (0) | 2022.01.12 |
3. 프로그래밍 언어 활용 - Python (0) | 2022.01.12 |
2. 프로그래밍 언어 활용 - JAVA (0) | 2022.01.11 |