반응형
절차적 프로그래밍 언어
- 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술해나가는 언어
- 프로그램이 실행되는 절차(Procedure)를 중요시 한다.
장점 | 단점 |
- 컴퓨터의 처리 구조와 유사하여 실행 속도가 빠름 - 같은 코드를 복사하지 않고 다른 위치에서 호출하여 사용 가능 (이식성 Good) - 모듈 구성이 용이 (구조적인 프로그래밍 가능) |
- 프로그램 분석이 어려움 - 유지 보수나 코드 수정의 어려움 |
언어 | 특징 |
C | - 1972년 미국 벨 연구소의 데니스 리치에 의해 개발됨 - 시스템 프로그래밍 언어로 널리 사용됨 - 자료의 주소를 조작할 수 있는 포인터 제공 - 고급 프로그래밍 언어, 저급 프로그래밍 언어의 특징을 모두 갖춤 - UNIX의 일부가 C언어로 구현됨 - 컴파일러 방식의 언어 - 이식성이 좋아 컴퓨터 기종에 관계없이 프로그램 작성 가능 |
Algol | - 수치계산이나 논리 연산을 위한 과학 기술 계산용 언어 - PASCAL과 C언어의 모체 |
Cobol | - 사무 처리용 언어 - 영어 문장 형식으로 구성되어 있어 이해와 사용이 쉬움 - 4개의 DIVISION으로 구성됨 |
Fortran | - 과학 기술 계산용 언어 - 수학과 공학 분야의 공식이나 수식과 같은 형태로 프로그래밍 가능 |
Basic | - 교육용으로 개발되어 언어의 문법이 쉬움 - 다양한 종류가 존재하며 서로 다른 종류 사이의 소스 코드는 호환되지 않음 |
객체지향 프로그래밍 언어
구성 요소 | |
객체 (Object) |
- 클래스에서 정의한 것을 토대로 메모리에 할당된 것으로 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간 - 독립적으로 식별 가능한 이름을 갖고 있음 - 객체가 가질 수 있는 조건인 상태(State)는 일반적으로 시간에 따라 변함 - 객체와 객체는 상호 연관성에 의한 관계가 형성됨 - 객체가 반응할 수 있는 메시지의 집합을 행위(연산, Method)라고 함 - 행위의 특징을 나타냄 - 일정한 기억장소를 갖고 있음 |
클래스 (Class) |
- 공통된 속성과 연산(행위)를 갖는 객체의 집합 - 객체지향 프로그램에서 데이터를 추상화 하는 단위 - 각각의 객체들이 갖는 속성과 연산(Method)을 정의하고 있는 틀 - Super Class는 특정 클래스의 상위(부모) 클래스 - Sub Class는 특정 클래스의 하위(자식) 클래스 |
인스턴스 (Instance) |
- 클래스에 속한 각각의 객체 - 전통적 시스템의 함수(Function) 또는 프로시저(Procedure)에 해당하는 연산 |
메시지 (Message) |
- 객체에게 어떤 행위를 하도록 지시하기 위한 방법 |
특징 | |
캡슐화 (Encapsulation) |
- 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것 - 캡슐화된 객체의 세부 내용이 외부에 은폐(정보 은닉) 되어, 변경이 발생할 때 오류의 파급 효과가 적음 - 캡슐화된 객체들은 재사용이 용이 |
상속성 (Inheritance) |
- 이미 정의된 상위(부모) 클래스의 모든 속성과 연산을 하위(자식) 클래스가 물려받는 것 |
다형성 (Polymorphism) |
- 어떤 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있는 성질 - 메시지에 의해 객체(클래스)가 연산을 수행하게 될 때, 하나의 메시지에 대해 각 객체(클래스)가 가지고 있는 고유의 방법(특성)으로 응답할 수 있는 능력 |
추상화 (Abstraction) |
- 불필요한 부분은 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화, 모델화 하는 것 - 데이터의 공통된 성질을 추출해 슈퍼(부모) 클래스를 선정하는 개념 |
정보 은닉 (Information Hiding) |
- 캡슐화에서 가장 중요한 개념으로, 다른 객체에게 자신의 정보를 숨기고 자신만의 연산만을 통해 접근을 허용하는 것 |
반응형
'자격증 > 정보처리기사' 카테고리의 다른 글
정보처리기사 4과목 프로그래밍 언어 활용 (UNIX) (0) | 2023.05.08 |
---|---|
정보처리기사 4과목 프로그래밍 언어 활용 (운영체제OS 기능과 종류 / Windows 주요특징) (2) | 2023.05.08 |
정보처리기사 2과목 소프트웨어 개발 ('동적 테스트' 화이트박스 테스트와 블랙박스 테스트 정리) (0) | 2023.05.07 |
정보처리기사 2과목 소프트웨어 개발 (버전 관리 도구(클라이언트/서버 방식 SVN과 분산 저장소 방식 Git), 깃허브 차이점) (0) | 2023.05.07 |
정보처리기사 2과목 소프트웨어 개발 (형상관리) (0) | 2023.05.07 |