[정보처리기사] 4과목 - 프로그래밍 언어 활용 (프로그래밍 언어 활용) 2
프로그래밍 언어 활용 이론 - 절차적/객체지향 프로그래밍 언어 정리
절차적 프로그래밍 언어
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 등
참고 사이트
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.