자격증/정보처리기사

정보처리기사 4과목 프로그래밍 언어 활용 (절차적 프로그래밍 언어와 객체지향 프로그래밍 언어)

ByeongJun 2023. 5. 8. 15:55
반응형

절차적 프로그래밍 언어

  • 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술해나가는 언어
  • 프로그램이 실행되는 절차(Procedure)를 중요시 한다.

 

장점 단점
- 컴퓨터의 처리 구조와 유사하여 실행 속도가 빠름
- 같은 코드를 복사하지 않고 다른 위치에서 호출하여
  사용 가능 (이식성 Good)
- 모듈 구성이 용이 (구조적인 프로그래밍 가능)
- 프로그램 분석이 어려움
- 유지 보수나 코드 수정의 어려움
언어 특징
C - 1972년 미국 벨 연구소의 데니스 리치에 의해 개발됨
- 시스템 프로그래밍 언어로 널리 사용됨
- 자료의 주소를 조작할 수 있는 포인터 제공
- 고급 프로그래밍 언어, 저급 프로그래밍 언어의 특징을 모두 갖춤
- UNIX의 일부가 C언어로 구현됨
- 컴파일러 방식의 언어
- 이식성이 좋아 컴퓨터 기종에 관계없이 프로그램 작성 가능
Algol - 수치계산이나 논리 연산을 위한 과학 기술 계산용 언어
- PASCALC언어의 모체
Cobol - 사무 처리용 언어
- 영어 문장 형식으로 구성되어 있어 이해와 사용이 쉬움
- 4개의 DIVISION으로 구성됨
Fortran - 과학 기술 계산용 언어
- 수학과 공학 분야의 공식이나 수식과 같은 형태로 프로그래밍 가능
Basic - 교육용으로 개발되어 언어의 문법이 쉬움
- 다양한 종류가 존재하며 서로 다른 종류 사이의 소스 코드는 호환되지 않음

 

 

 

객체지향 프로그래밍 언어

구성 요소
객체
(Object)
- 클래스에서 정의한 것을 토대로 메모리에 할당된 것으로
  프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간

- 독립적으로 식별 가능한 이름을 갖고 있음
- 객체가 가질 수 있는 조건인 상태(State)는 일반적으로 시간에 따라 변함
- 객체와 객체는 상호 연관성에 의한 관계가 형성됨
- 객체가 반응할 수 있는 메시지의 집합을 행위(연산, Method)라고 함
- 행위의 특징을 나타냄

- 일정한 기억장소를 갖고 있음
클래스
(Class)
- 공통된 속성과 연산(행위)를 갖는 객체의 집합
- 객체지향 프로그램에서 데이터를 추상화 하는 단위
- 각각의 객체들이 갖는 속성과 연산(Method)을 정의하고 있는 틀
- Super Class는 특정 클래스의 상위(부모) 클래스
- Sub Class는 특정 클래스의 하위(자식) 클래스
인스턴스
(Instance)
- 클래스에 속한 각각의 객체
- 전통적 시스템의 함수(Function) 또는 프로시저(Procedure)에 해당하는 연산
메시지
(Message)
- 객체에게 어떤 행위를 하도록 지시하기 위한 방법
 
특징
캡슐화
(Encapsulation)
데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것
- 캡슐화된 객체의 세부 내용이 외부에 은폐(정보 은닉) 되어, 변경이 발생할 때 오류의 파급 효과가 적음
- 캡슐화된 객체들은 재사용이 용이
상속성
(Inheritance)
- 이미 정의된 상위(부모) 클래스의 모든 속성과 연산을 하위(자식) 클래스가 물려받는 것
다형성
(Polymorphism)
- 어떤 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있는 성질
- 메시지에 의해 객체(클래스)가 연산을 수행하게 될 때, 하나의 메시지에 대해
  각 객체(클래스)가 가지고 있는 고유의 방법(특성)으로 응답할 수 있는 능력
추상화
(Abstraction)
- 불필요한 부분은 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화, 모델화 하는 것
- 데이터의 공통된 성질을 추출해 슈퍼(부모) 클래스를 선정하는 개념
정보 은닉
(Information
Hiding)
- 캡슐화에서 가장 중요한 개념으로,
  다른 객체에게 자신의 정보를 숨기고 자신만의 연산만을 통해 접근을 허용하는 것
반응형