* 프로그램 개발 언어 - 프로그램 실행 방식에 따른 종류
구분 | 설명 |
컴파일러 언어 (Compiler) |
- 번역사 같은 작업 - P/G 전체 라인을 처음부터 끝까지 해독해 목적 코드로 만든 후 실행 |
- C, C++, COBOL, Ada, FORTRAN, PASCAL 등 | |
인터프리터 언어 (Interpreter) |
- 통역사 같은 작업 - P/G 라인 단위로 한 줄씩 해석하고 바로 실행 |
- 자바스크립트, BASIC, LISP 등 | |
스크립트 언어 | - 소스 코드 컴파일 하지 않고도 실행 가능한 프로그래밍 언어 - 별도 컴파일 없이 내장된 번역기에 의해 번역되므로 바로 실행 가능 - 컴파일러 언어와는 다르게 인터프리터(interpreter) 사용해서 코드 한줄 한줄을 즉시 해석하고 실행 - 인터프리터 방식 언어를 보통 스크립트 언어와 혼용하여 사용 |
- 자바스크립트, ActionScript, AutoHotKey, JSP, Perl, PHP, Python, Lua, Ruby, VBS 등 |
* 객체 지향 프로그래밍 언어
- 실세계에 존재하거나 또는 개념적인 그 어떤 것을 의미하는 객체 이용하여 프로그래밍 하는 방식
절차 지향 프로그래밍 | 객체 지향 프로그래밍 |
- 모듈, 변수, 함수 사용하여 개발 - P/G 순차적으로 수행시키는 방법 - 자료구조와 명령 중심으로 P/G 구성 |
- 객체와 객체 간 통신 통해 P/G 구현 - 객체와 속성, 메소드로 구성 - 절차지향에서의 모듈은 객체에, 변수는 속성에, 함수는 메소드에 대응 |
- 객체 지향 프로그래밍 특징을 이용하여 시스템 복잡성 제어하기 위해 서로 연관되는 기능을 하는 것
- 객체 지향 프로그래밍 특징
특징 | 설명 |
캡슐화 (Encapsulation) |
- 속성(데이터)과 메소드(연산) 하나로 결합하여 객체로 구성 - 클래스 선언하고 그 클래스 구성하는 객체에 대해 public, private, protected 등 접근 지정자 선언하여 처리 |
추상화 (Abstraction) |
- 공통 성질 추출하여 슈퍼클래스 설정 1) 기능추상화 : 클래스 내 메소드 정의 (obj.getName()) 2) 자료(데이터)추상화 : 객체 클래스 자체를 데이터 타입으로 사용 (String, Class) 3) 제어추상화 : 제어 행위에 대한 개념화, 명령 및 이벤트 (if, for, while) |
다형성 (Polymorphism) |
- 동일 이름 오퍼레이션(메소드)이 각 클래스마다 다른 사양으로 정의될 수 있다는 것 1) Overloading : 메소드 이름 같으나 argument나 return type 다른 경우 2) Overriding : Argument나 return type이 같은 경우 |
정보 은닉 (information Hiding) |
- 클래스 속성에 직접 접근하는것은 데이터 무결성에 치명적 - 속성들을 접근제어자인 private로 감춰두고 getter, setter 메서드 통해서만 접근 가능케 함 |
상속 (Inheritance) |
- 하위 클래스에게 자신의 속성과 메소드 사용 가능토록 허용 1) 단일 상속 : 부모와 자식 클래스 간 관계가 슈퍼클래스와 서브클래스로 유지 2) 다중 상속 : 하나의 클래스가 하나 이상의 클래스로부터 상속 받음 3) 반복 상속 : 같은 조부모 클래스로부터 상속 받은 두 부모 클래스로부터 상속 받음 |
- 객체 지향 프로그래밍 구성 요소
구성요소 | 설명 |
객체(Object) | - 개체, 속성, 메소드로 구성된 클래스 인스턴스 |
클래스(Class) | - 객체 타입 정의하고 객체 생성하는 틀 |
메시지(Message) | - 객체 간 통신 |
- 1. 객체(Object) : 현실 세계에서 개채(Entity)를 데이터 속성(Attribute)과 메소드(Method) 결합시킨 형태로 표현
구성요소 | 설명 |
개체(Entity) | - 현실 세계에 보이는 본질 의미 |
속성(Attribute) | - 자료 저장소 역할. 절차 지향 프로그래밍 변수와 대응 |
메소드(Method) | - 호출 단위 의미. 절차 지향 프로그래밍 함수와 대응 |
- 2. 클래스(Class) : 객체 표현하는 추상 데이터 타입으로 객체 생성하는 틀
* 선언형 프로그래밍 언어
- 특징 선언으로만 P/G 동작시키는 프로그래밍 패러다임
- 선언형으로 기술하는 가장 유명한 라이브러리로는 제이쿼리(jQuery)가 있으며 앵귤러js(Angular.js)는 선언형 언어의 최신 트랜드인 반응형웹 개념 도입
- 선언형 언어 특징
특징 | 설명 |
참조 투명성 | - P/G 동작 변경 없이 관련 값 대체 가능하다면 그 표현식을 참조상 투명하다고 함 |
지연평가 지원 | - 계산 필요한 순간 올 때까지 수행 미룬다는 개념 |
빠른 개발 | - 알고리즘에 집중하며 이미 만들어진 것을 선언 통해 사용 |
적은 버그 | - 구체적인 작동 순서 나열하지 않기에 버그 적음 |
- 선언형 프로그래밍 언어 종류
언어 | 설명 |
하스켈(Haskell) | - 난립하고 있는 함수형 언어들을 통합 정리하여 만든 일반적인 순수 함수형 프로그래밍 언어 |
SQL | - RDBMS 데이터 관리하기 위해 설계된 특수 목적 프로그래밍 언어 |
프롤로그 | - 논리식 토대로 하여 오브젝트와 오브젝트 간 관계에 관한 문제 해결 위해 사용 |
XML | - 특수한 목적 갖는 마크업 언어 만드는데 사용하도록 권장하는 다목적 마크업 언어 |
320x100
'정보처리기사 > 필기' 카테고리의 다른 글
[정보처리기사] Part04-01-1. 개발환경 구축 (0) | 2022.02.10 |
---|---|
[정보처리기사 필기 요약] 시스템 소프트웨어 (0) | 2021.03.04 |
[정보처리기사 필기 요약] 배치 프로그램 (0) | 2021.03.04 |
[정보처리기사 필기 요약] 소프트웨어 개발 보안 (0) | 2021.03.04 |
[정보처리기사 필기 요약] 취약점 (0) | 2021.03.04 |
댓글