2. 언어 특성 활용하기
절차적 프로그래밍 언어
-
개요 : 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술해 나가는 언어
-
특징
-
프로그램이 실행되는 절차를 중요시
-
데이터를 중심으로 프로시저를 구현하며, 프로그램 전체가 유기적으로 연결됨
-
자연어에 가까운 단어와 문장으로 구성
-
과학 계산이나 하드웨어 제어에 주로 사용
-
-
장·단점
-
컴퓨터의 처리 구조와 유사하여 실행 속도가 빠름
-
같은 코드를 복사하지 않고 다른 위치에서 호출하여 사용 가능
-
모듈 구성이 용이하며, 구조적인 프로그래밍이 가능
-
프로그램을 분석하기 어려움
-
유지보수나 코드의 수정이 어려움
-
-
종류 : C, ALGOL, COBOL, FORTRAN
객체지향 프로그래밍 언어
-
개요 : 현실 세계의 개체(Entity)를 기계 부품처럼 하나의 객체로 만들어, 조립하여 프로그램을 개발하는 언어
-
구성 요소
-
객체(Object) : 속성과 이를 처리하기 위한 메소드를 결합시킨 실체
-
속성(Attribute) : 객체들이 가지고 있는 데이터 값들의 단위
-
메소드(Method) : 객체가 메시지를 받아 실행해야 할 구체적인 연산
-
-
클래스(Class) : 공통된 특성과 행위를 갖는 객체의 집합
-
메시지(Message) : 객체들 간에 상호작용의 수단
-
-
특징
특징 | 설명 |
캡슐화(Encapsulation) | 클래스는 속성, 메소드로 구성, 속성은 특정 메소드를 통해서만 접근 허용 |
정보 은닉 (Information Hiding) |
캡슐화에서 가장 중요한 개념, 중요한 정보는 숨기고 연산을 통해서만 접근 허용 |
추상화(Abstraction) |
불필요한 부분을 생략하고 가장 중요한 것에만 중점을 두어 모델화 |
종류 : 과정 추상화, 데이터 추상화, 제어 추상화 | |
상속성(Inheritance) |
상위 클래스(부모 클래스)의 모든 속성과 연산을 하위 클래스가 상속받는 재정의 없이 사용 가능 |
종류 : 단일 상속, 다중 상속 | |
다형성(Polymorphism) | 추상화 클래스의 속성, 기능을 상속받아 재정의하거나 동명의 메소드를 선언 가능 |
-
장·단점
-
상속을 통한 재사용과 시스템의 확장이 용이
-
코드의 재활용성이 높음
-
자연적인 모델링에 의해 분석과 설계를 쉽고 효율적
-
사용자와 개발자 사이의 이해가 쉬움
-
대형 프로그램 작성이 용이
-
개발 및 유지보수가 용이
-
정형화된 분석 및 설계 방법이 없음
-
구현 시 처리 시간이 지연
-
-
종류 : Java, C++, Smalltalk
스크립트 언어
-
개요 : 기계어로 컴파일 되지 않고 별도의 번역기가 소스를 분석하여 동작하게 하는 언어
-
장·단점
-
컴파일 없이 바로 실행하므로 결과를 바로 확인 가능
-
배우고 코딩하기 쉬움
-
개발 시간이 짧음
-
소스 코드를 쉽고 빠르게 수정 가능
-
코드를 읽고 해석해야 하므로 실행속도가 느림
-
런타임 오류가 많이 발생
-
-
종류 : Java Script, ASP, JSP, PHP, Pythen
선언형 언어
-
개요 : 프로그램이 수행해야 하는 문제를 기술하는 언어, 목표는 명시하되 알고리즘은 명시하지 않음
-
함수형 언어 : 수학적 함수를 조합하여 문제를 해결하는 언어
-
논리형 언어 : 기호 논리학에 기반을 둔 언어
-
장·단점
-
가독성과 재사용성이 좋다
-
작동 순서를 구체적으로 정의하지 않기 때문에 오류가 적음
-
프로그램 동작을 변경하지 않고도 관련 값을 대체 가능
-
-
종류 : HTML, LISP, PROLOG, XML, Haskell
3. 라이브러리 활용하기
라이브러리
-
개요 : 효율적인 개발을 위해 자주 사용하는 함수나 데이터들을 미리 만들어 모아 놓은 집합체
-
표준 라이브러리 : 프로그래밍 언어에 기본적으로 포함되어 있는 라이브러리
-
외부 라이브러리 : 개발자들이 필요한 기능들을 만들어 공유해 놓은 것
-
C 언어 대표적인 표준 라이브러리
헤더 파일 | 기능 |
stdio.h | 데이터의 입·출력에 사용되는 기능을 제공 |
math.h | 수학 함수들을 제공 |
string.h | 문자열 처리에 사용되는 기능들을 제공 |
stdlib.h | 자료형 변환, 난수 발생, 메모리 할당에 사용되는 기능들을 제공 |
time.h | 시간 처리에 사용되는 기능들을 제공 |
-
Java 언어 대표적인 표준 라이브러리
패키지 | 기능 |
java.lang | 자바의 기본적으로 필요한 인터페이스, 자료형, 예외 처리 등에 관련된 기능을 제공 |
java.util | 날짜 처리, 난수 발생, 복잡한 문자열 처리 등에 관련된 기능을 제공 |
java.io | 파일 입·출력과 관련된 기능 및 프로토콜을 제공 |
java.net | 네트워크와 관련된 기능을 제공 |
java.awt | 사용자 인터페이스와 관련된 기능을 제공 |
'2020 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 응용 SW 기초 기술 활용 (0) | 2020.07.21 |
---|---|
[정보처리기사 실기] 프로그래밍 언어 활용(1/2) (0) | 2020.07.16 |
[정보처리기사 실기] 소프트웨어 개발보안 구축 (0) | 2020.07.13 |
[정보처리기사 실기] SQL 응용 (0) | 2020.07.11 |
[정보처리기사 실기] 애플리케이션 테스트 관리 (0) | 2020.07.09 |