Certificate/정보처리기사

[4과목 프로그래밍 언어 활용] 프로그래밍 언어 활용 - 142. 절차적 프로그래밍 언어 ~ 143. 객체지향 프로그래밍 언어

S_sun 2025. 11. 20. 09:51

142. 절차적 프로그래밍 언어

1. 절차적 프로그래밍 언어의 개요

  • 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술해나가는 언어
  • 프로그램이 실행되는 절차를 중요시함
  • 데이터를 중심으로 프로시저를 구현하며, 프로그램 전체가 유기적으로 연결되어 있음
  • 자연어에 가까운 단어와 문장으로 구성됨
  • 과학 계산이나 하드웨어 제어에 주로 사용됨

2. ⭐ 절차적 프로그래밍 언어의 장 · 단점

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

3. ⭐ 절차적 프로그래밍 언어 종류

  • C
    • 1972년 미국 벨 연구소의 데니스 리치에 의해 개발됨
    • 시스템 소프트웨어를 개발하기 편리하여 시스템 프로그래밍 언어로 널리 사용됨
    • 자료의 주소를 조작할 수 있는 포인터를 제공
    • 고급 프로그래밍 언어(인간친화적)이면서 저급 프로그램 언어(기계친화적)의 특징을 모두 갖춤
    • UNIX의 일부가 C언어로 구현됨
    • 컴파일러 방식의 언어
    • 이식성이 좋아 컴퓨터 기종에 관계없이 프로그램 작성 가능
  • ALGOL
    • 수치 계상이나 논리 연산을 위한 과학 기술 계산용 언어
    • PASCAL과 C언어의 모체
  • COBOL
    • 사무 처리용 언어
    • 영어 문장 형식으로 구성되어 있어 이해와 사용이 쉬움
    • 4개의 DIVISION으로 구성
  • FORTRAN
    • 과학 기술 계산용 언어
    • 수학과 공학 분야의 공식이나 수식과 같은 형태로 프로그래밍 가능

 

143. 객체지향 프로그래밍 언어

1. 객체지향 프로그래밍 언어의 개요

  • 객체들을 조립해서 프로그램을 작성할 수 있도록 한 프로그래밍 기법
  • 프로시저보다는 명령과 데이터로 구성된 객체를 중심으로 하는 프로그래밍 기법
  • 한 프로그램을 다른 프로그램에서 이용할 수 있도록 함

2. ⭐ 객체지향 프로그래밍 언어의 장 · 단점

  • 장점
    • 상속을 통한 재사용과 시스템의 확장이 용이
    • 코드의 재활용성 높음
    • 자연적인 모델링에 의해 분석과 설계를 쉽고 효율적으로 할 수 있음
    • 사용자와 개발자 사이의 이해를 쉽게 해움
    • 대형 프로그램 작성이 용이
    • 소프트웨어 개발 및 유지보수가 용이
  • 단점
    • 프로그래밍 구현을 지원해주는 정형화된 분석 및 설계 방법이 없음
    • 구현 시 처리시간이 지연됨

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

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

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

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

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

  • 캡슐화(Encapsulation)
    • 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것
    • 캡슐화된 객체의 세부 내용이 외부에 은폐(정보은닉)되어, 변경이 발생할 때 오류의 파급효과가 적음
    • 캡슐화된 객체들은 재사용이 용이
  • 정보은닉(Information Hiding)
    • 캡슐화에서 가장 중요한 개념
    • 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근을 허용하는 것
  • 추상화(Abstraction)
    • 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화하는 것 -> 모델화하는 것
    • 데이터의 공통된 성질을 추출하여 슈퍼 클래스를 선정하는 개념
  • 상속성(Inferitance)
    • 이미 정의된 상위 클래스(부모클래스)의 모든 속성과 연산을 하위 클래스가 물려받는 것
    • 하위 클래스는 상위 클래스의 모든 속성과 연산을 자신의 클래스 내에서 다시 정의하지 않고서도 즉시 자신의 속성을 사용할 수 있음
  • 다형성(Polymorphism)
    • 메시지에 의해 객체(클래스)가 연산을 수행하게 될 때 하나의 메시지에 대해 각 객체(클래스)가 가지고 있는 고유한 방법(특성)으로 응답할 수 있는 능력을 의미
    • 객체(클래스)들은 동일한 메소드명을 사용하며 같은 의미의 응답을 함

 

 

 

📖 Reference
 

2023 시나공 정보처리기사 필기 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

728x90
반응형