본문 바로가기
정보처리이론

1-7. 절차적 프로그래밍 언어와 객체지향 프로그래밍 언어

by 공부합시다홍아 2020. 10. 18.

절차적 프로그래밍 언어
절차적 프로그래밍 언어는 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술해 나가는 것이다. 
쉽게 말하자면 정해진 순서에 따른다고 생각하면 이해하기 편하다.

- 프로그래밍이 실행되는 절차를 중요시 한다.
- 데이터를 중심으로 프로시저를 구현하며, 프로그램 전체가 유기적으로 연결되어 있다.
  ※ 유기적이라는 뜻은 프로그램 하나하나가 상호간 밀접한 관계를 유지한다고만 이해하기만 하면 될꺼같아요.
- 자연어에 가까운 단어와 문장으로 구성된다.
- 과학 계산이나 하드웨어 제어에 주로 사용된다.

절차적 프로그래밍 언어의 장단점

장점 단점
컴퓨터의 처리 구조와 유사 → 빠른 실행 속도 프로그램 분석의 어려움
같은 코드를 복사하지 않고 다른 위치에서 호출하여 사용 가능  유지보수의 어려움
모듈 구성이 용이하며, 구조적인 프로그래밍이 가능  코드의 수정이 어려움

 

절차적 프로그래밍 언어의 종류

언어 특징
C 1972년 미국 벨 연구소의 데니스 리치에 의해 개발
시스템 소프트웨어를 개발하기 편리, 시스템 프로그래밍 언어로 널리 사용
자료의 주소를 조작 가능한 포인터 제공
고급 프로그래밍 언어부터 저급 프로그래밍 언어의 특징 모두 보유
UNIX의 일부가 C언어로 구성
º컴파일러 방식의 언어
이식성이 좋아 컴퓨터 기종에 관계없이 프로그램 작성 가능
ALGOL 수치 계산, 논리 연산을 위한 과학 기술 계산용 언어
PASCAL과 C언어의 모체
COBOL 사무 처리용 언어
영어 문장 형식으로 구성 → 이해와 사용의 편리함
4개의 DIVSION으로 구성
FORTRAN 과학 기술 계산용 언어
수학과 공학 분야의 공식이나 수식과 같은 형태로 프로그래밍 가능

◎ 컴파일러

FORTRAN, COBOL, C, ALGOL등의 고급언어로 작성된 프로그램을 기계어로 번역하는 프로그램


객체지향 프로그래밍 언어

객체지향 프로그래밍언어는 현실 세계의 개체(Entity)를 기계의 부품처럼 하나의 객체로 만들어 기계적인 부품들을 조립하여 제품을 만들 듯이 소프트웨어를 개발할 때도 객체들을 조립 후 프로그램을 작성 가능하게 한 프로그래밍 기법이다.
- 프로시저보다는 명령과 데이터로 구성된 객체를 중심으로 하는 프로그래밍 기법으로 한 프로그램을 다른 프로그램에    서 사용 가능하다.

 

객체지향 프로그래밍 언어의 장단점

장점 단점
상속을 통한 재사용과 시스템 확장의 용이성 정형화된 분석 및 설계 방법의 부족
높은 코드의 재활용성 구현 시 처리 시간의 지연
자연적 모델링에 의한 분석과 설계의 용이와 효율성  
사용자와 개발자 사이의 쉬운 이해성  
소프트웨어 개발 및 유지보수의 용이  

 

객체지향 프로그래밍 언어의 종류

언어 특징
JAVA ◎ 분산 네트워크 환경에 적용 가능, 멀티스레드 기능 제공하므로 여러 작업을 동시 처리 가능
운영체제 및 하드웨어에 독립적, 강한 이식성
캡슐화가 가능, 재사용성 높음
C++ ◎ C언어에 객체지향 개념을 적용한 언어
◎ 모든 문제를 객체로 모델링하여 표현
Smalltalk ◎ 1세대 객체지향 프로그래밍 언어 중 하나로 순수한 객체지향 프로그래밍 언어
◎ 최초로 ºGUI를 제공한 언어

※ GUI : 아이콘이나 메뉴를 마우스로 선택하여 작업을 수행하는 그래픽 환경의 인터페이스

 

객체지향 프로그래밍 언어의 구성 요소 

이 부분은 20년도 기사 실기에서 나온 부분이니 참고하시길 바랍니다. 

객체지향 프로그래밍 언어의 구성요소에는 객체(Object), 클래스(Class), 메시지(Message)가 있습니다.

객체(Object) ◎ 데이터(속성)와 이를 처리하기 위한 연산(메소드)을 결합시킨 실체
◎ 데이터 구조와 그 위에서 수행되는 연산들을 가지고 있는 소프트웨어 모듈
● 속성(Attribute)
    한 클래스 내에 속한 객체들이 가지고 있는 데이터 값들을 단위별로 정의한 것
    성질, 분류 식별, 수량 또는 현재 상태 등을 표현
● 메소드(Method)    
    객체가 메시지를 받아 실행행 할 때 구체적인 연산을 정의하는 것
    객체의 상태를 참조하거나 변경하는 수단
클래스(Class) ◎ 두 개 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현하는 요소
    → 공통된 특성과 행위를 갖는 객체의 집합
◎ 객체의 유형 또는 타입(Object Type)을 의미
메시지(Message) ◎ 객체들 간에 상호작용을 하는데 사용되는 수단으로 객체의 메소드(동작, 연산)를 일으키는
    외부의 요구사항
◎ 메시지를 받은 객체는 대응하는 연산을 수행하여 예상된 결과를 반환하게 된다.

 

객체지향 프로그래밍 언어의 특징

캡슐화 ( Encapsulation ) ◎ 데이터(속성)와 데이터를 처리하는 함수를 한로 묶는 것
◎ 캡슐화된 객체의 세부 내용이 외부에 은폐되어, 변경 발생 시 오류 ↓
◎ 캡슐화된 객체들은 재사용 용이

정보 은닉 ( Information Hiding ) ◎ 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근 허용
추상화 ( Abstraction ) ◎ 불필요한 부분을 생략, 객체의 속성 중 중요한 것에만 중점을 두어 개략화하는 것
    → 모델화하는 것
◎ 데이터의 공통된 성질을 추출하여 슈퍼 클래스를 선정하는 개념
상속성 ( Inheritance ) ◎ 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것
◎ 하위클래스는 상위 클래스의 모든 속성과 연산을 정의 없이 바로 사용 가능
다형성 ( Polymorphism ) ◎ 메시지에 의해 객체가 연산을 수행하게 될 때 하나의 메시지에 대해 각 객체가 
    가지고 있는 고유한 방법(특성)으로 응답 가능
◎ 객체들은 동일한 메소드명을 사용하며 같은 의미의 응답을 함

캡슐화와 정보은닉의 장점 유지보수의 용이성
객체 이용의 용이성
추상화의 종류 과정 추상화 
    자세한 수행과정 정의 X, 전반적인 흐름만 파악할 수 있도록 설계
데이터 추상화
    데이터의 세부적인 속성이나 용도 정의 x, 데이터 구조를 대표할 수 있는 표현으로 대체
제어 추상화
    이벤트 발생의 정확한 절차나 방법을 정의하지 않고, 대표할 수 있는 표현으로 대체
상속성의 종류 ◎ 단일상속
    하나의 상위 클래스로 부터 상속받는 것
◎ 다중 상속
    여러 개의 상위 클래스로 부터 상속받는 것

 

 

728x90