본문 바로가기
2020 정보처리기사

[정보처리기사 실기] 프로그래밍 언어 활용(2/2)

by SungJe 2020. 7. 17.

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 사용자 인터페이스와 관련된 기능을 제공