포스트

[정보처리기사] 4과목 - 프로그래밍 언어 활용 (프로그래밍 언어 활용) 2

Computer Science / 정보처리기사

프로그래밍 언어 활용 이론 - 절차적/객체지향 프로그래밍 언어 정리

view

절차적 프로그래밍 언어


1. 개요

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

2. 장단점

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

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

  • C
    • 시스템 소프트웨어 개발이 편리하며, 시스템 프로그래밍 언어로 가장 적합
    • 자료 주소를 조작할 수 있는 포인터 제공
    • 고급 언어이면서 저급 언어의 특징을 모두 갖춤
    • 컴파이러 방식의 언어
    • 이식성이 좋아 컴퓨터 기종에 관계 없이 프로그램 작성이 가능
  • ALGOL
    • 수치 계산이나 논리 연산을 위한 과학 기술 계산용 언어
    • Pascal과 C 언어의 모체
  • COBOL
    • 사무 처리용 언어
    • 영어 문장 형식으로 구성되어 있어 이해와 사용이 쉬움
    • 4개의 Division으로 구성
  • FORTRAN
    • 과학 기술 계산용 언어
    • 수학/공학 분야의 공식이나 수식과 같은 형태로 프로그래밍 가능

객체지향 프로그래밍 언어


1. 개요

  • 객체지향 프로그래밍 언어는 현실 세계의 개체(Entity)를 기계의 부품처럼 하나의 객체로 만들어 소프트웨어를 개발할 때 객체들을 조립해서 프로그램을 작성할 수 있도록 한 프로그래밍 기법

2. 장단점

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

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

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

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

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

객체 (Object)

  • 데이터(속성)와 이를 처리하기 위한 연산(메소드)을 결합시킨 실체
  • 데이터 구조와 그 위에서 수행되는 연산들을 가지고 있는 소프트웨어 모듈
  • 속성 (Attribute)
    • 한 클래스 내에서 속한 객체들이 가지고 있는 데이터 값들을 단위별로 정의하는 것
    • 성질, 분류, 식별, 수량 또는 현재 상태 등을 표현
  • 메소드 (Method)
    • 객체가 메시지를 받아 실행해야 할 때 구체적인 연산을 정의하는 것
    • 객체의 상태를 참조하거나 변경하는 수단이 됨

클래스 (Class)

  • 두 개 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현하는 요소
  • 객체의 유형 또는 타입(Object Type)을 의미

메시지 (Message)

  • 객체들 간 상호작용에 사용되는 수단, 메소드(동작/연산)를 일으키는 외부의 요구사항
  • 메시지를 받은 객체는 대응하는 연산을 수행하여 예상된 결과를 반환

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

캡슐화(Encapsulation)

#[OOP] 객체 지향 프로그래밍의 특징 - 캡슐화 (Encapsulation) 참고

추상화(Abstraction)

#[OOP] 객체 지향 프로그래밍의 특징 - 추상화 (Abstraction) 참고

상속성(Inheritance)

#[OOP] 객체 지향 프로그래밍의 특징 - 상속 (Inheritance) 참고

다형성(Polymorphism)

#[OOP] 객체 지향 프로그래밍의 특징 - 다형성 (Polymorphism) 참고

6. 객체지향 기술

  • 객체지향 분석
    • 체 모델링: 메소드 식별
    • 적 모델링: 기능의 흐름 표시
    • 능 모델링: 상세 분석 (제한 사항, 성능 등)
  • 객체지향 분석 방법론
    • 럼바우 (Rumbaugh): 객체, 동적, 기능 모형으로 분리하여 접근
    • 부치 (Booch): 미시적(micro), 거시적(macro) 개발 프로세스로 접근
    • Coad & Yourdon: E-R 다이어그램 사용하여 모델링
    • Jacobson: 시나리오 접근
    • Wirfs-Brocks: 설계의 연속적인 프로세스

7. 스크립트 언어

  • HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 사용하는 것
  • 기계어로 컴파일 되지 않고 별도의 변역기가 소스를 분석하여 동작하게 함
  • 게시판 입력, 상품 검색, 회원 가입 등과 같은 DB 처리 작업에 주로 사용
  • 서버용 스크립트 언어
    • 서버에서 해석되어 실행된 후 결과만 클라이언트로 보냄
    • ASP, JSP, PHP, Python 등
  • 클라이언트용 스트립트 언어
    • 클라이언트의 웹브라우저에서 해석 + 실행
    • JavaScript, Visual Basic Script 등

8. 선언형 언어

  • 프로그램이 수행해야 하는 문제를 기술하는 언어
  • 알고리즘은 명시하지 않고 목표를 명시함
  • 함수형 언어, 논리형 언어 등이 있음
  • 명령형 언어의 반대 개념
  • 가독성과 재사용성이 좋으며 작동 순서가 구체적으로 작성되지 않기 때문에 오류가 적음
  • 프로그램 동작을 변경하지 않고도 관련 값을 대체할 수 있음
  • 종류
    • HTML, LISP, PROLOG, XML, Haskell 등

참고 사이트

욘블로그(Yon-Blog) - [정보처리기사 4과목] ✔ 프로그래밍 언어 활용(2)


이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.