[목차]

 

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

 

728x90

+ Recent posts