본문 바로가기
정보처리기사/필기

[정보처리기사 필기 요약] 프로그램 개발 언어 (객체지향, 선언형)

by 채연2 2021. 3. 4.

* 프로그램 개발 언어 - 프로그램 실행 방식에 따른 종류

구분 설명
컴파일러 언어
(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

댓글