정리 내용은 [수제비 2020 정보처리기사 실기]책을 기반으로 작성하였습니다.
2020 수제비 정보처리기사 실기(1권+2권 합본세트)
NCS 반영! 출제기준으로 전면개편한 교재이다. NCS 기반 반영 문제(예상문제 340제, 단원종합문제 360제, 모의고사 100제, 2020년기출문제)를 수록하였다. 수제비는 합격만을 위한 다양한 학습 콘텐츠
1. 프로그래밍 언어의 유형에 따른 분류
개발 편의성에 따른 분류
저급언어: 기계가 이해할 수 있도록 만들어진 언어 (기계어, 어셈블리어)
고급언어: 개발자 소스코드를 작성할 때 이해하기 쉽게 작성된 언어(C, C++, 자바, 파이썬)
실행 방식에 따른 분류
명령형 언어: 컴퓨터에 저장된 명령어들이 순차적으로 실행되는 언어. 절차적 언어(FORTRAN, COBOL, PASCAL, C)
객체지향언어: 객체간의 메시지 통신을 이용하여 프로그래밍 하는 방식(자바, C++)
함수형 언어: 수학적 수식과 같은 함수들로 프로그램을 구성하여 호출하는 방식(LISP)
구현 기법에 따른 분류
컴파일 방식의 언어: 고급언어를 기계어로 번역하는 방식의 언어. 컴파일러에 의해 미리 계산되어 속도 높음(C, C++, FORTRAN, PASCCAL)
인터프리터 방식의 언어: 고급 언어 명령문을 하나씩 번역하고 실행하는 방식의 언어. 프로그램의 실행과 동시에 동작
(BASIC, 프롤로그, LISP)
혼합형방식의 언어: 고급언어를 중간 언어로 변환한 후 인터프리터에 의해 번역을 실행(자바)
* 컴파일러: 고급언어를 기계어로 번역하는 프로그램이자 도구
* 인터프리터: 프로그램 문장을 하나씩 번역하고 실행할 수 있도록 하는 프로그램. 컴파일 과정이 없기 때문에 개발하는 과정에서 사용하면 유용하지만 실행속도가 느리고, 메모리 사용이 비효율적
2. 프로그래밍 언어별 특성
절차적 프로그래밍 언어
종류 | 설명 |
알골(ALGOL) | 알고리즘 연구 개발에 이용하기 위한 목적 생성 절차형 언어로는 최초로 재귀호출이 가능 이후 언어의 발전에 큰 영향 끼침 |
C언어 | 유닉스 운영체제에서 사용하기 위해 개발한 프로그래밍 언어 모든 컴퓨터 시스템에서 사용할 수 있는 설계된 프로그래밍 언어 |
베이직(BASIC) | 교육용으로 개발되어 언어의 문법이 쉬움 다양한 종류의 베이직이 존재 서로 다른 종류 사이의 소스코드는 호환되지 않음 |
포트란(POTRAN) | 과학계산에서 필수적인 벡터, 행렬 계산 기능 등이 내장된 과학 기술 전문 언어 산술기호, 삼각함수, 지수함수, 대수함수 등과 같은 수학 함수들 사용 가능 |
객체지향 프로그래밍 언어
종류 | 설명 |
C++ | C문법에 객체지향 프로그래밍 개념과 일반화 프로그래밍을 위한 탬플릿 기능 추가 C++ 개발자는 원하는 많은 작업을 성능 하락이 없는 형태로 개발 가능 직접 신경써야 하는 것들이 많은 언어이기 때문에 어려움 |
C# | 마이크로소프트에서 개발한 객체지향 프로그래밍 언어 C++과 자바의 문법과 비슷한 문법을 가지고 있음 자바와 달리 불안전 코드와 같은 기술을 통하여 플랫폼 간 상호 운용성 확보 |
자바 | 썬 마이크로 시스템즈가 개발한 객체지향적 프로그래밍 언어 현재 웹 애플리케이션 개발에 가장 많이 사용하는 언어 자바컴파일러는 자바언어로 작성된 프로그램을 바이트 코드라는 특수한 바이너리 형태로 변환 |
델파이(Delphi) | 기본적인 문법은 파스칼 문법에 여러기능 추가되어 존재 윈도즈 아래에서 모든 부분을 프로그래밍할 수 있는 언어 높은 생산성, 간결한 코드, C++과 비슷한 수준의 저수준 시스템 프로그래밍도 가능 |
스크립트 언어
종류 | 설명 |
PHP | 동적 웹페이지를 만들기 위해 설계됨 PHP로 작성된 코드를 HTML로 입력시 웹 서버에서 해당 코드를 인식하여 작성자가 원하는 웹 페이지 생성인터페이스 방식의 자체 인터프리터를 제공 |
펄(Perl) | 인터프리터 방식의 프로그래밍 언어 실용성을 모토로 하여 C, 쉘스크립트 등 다른 프로그래밍 언어에서 뛰어난 기능 많이 도입 불특정한 데이터 길이의 제약없이 강력한 문자열 처리 기능제공 |
파이썬 (Python) |
다양한 플랫폼에서 쓸 수 있고, 라이브러리 풍부 유니코드 문자열을 지원하여 다양한 언어의 문자 처리 들여쓰기를 사용하여 블록을 구분하는 문법 채용 다른 언어로 쓰인 모듈들을 연결하는 언어 |
자바스크립트 (JavaScript) |
객체 기반 스크립트 프로그래밍 언어. 웹 브라우저 내에서 주로 사용 다른 응용 프로그램의 내장 객체에서도 접근할 수 있는 기능 존재 자바스크립트는 브라우저마다 지원되는 버전이 상이 |
선언형 언어
구분 | 종류 | 설명 |
함수형 언어 |
하스켈 (Haskell) |
패턴 맞춤, 커링, 조건제시법, 가드, 연산자 정의 등의 기능이 존재 재귀 함수나 대수적 자료형도 지원 |
리스프 (LISP) |
수학 표기법을 나타내기 위한 목적으로 생성 트리자료구조, 가비지 컬렉션, 동적자료형과 인터프리터와 같은 개념 제시 함수 호출 시 이름 혹은 연산자가 첫번째로 위치하여 피연산자가 이어 위치 |
|
논리형 언어 |
프롤로그 (Prolog) |
논리식을 기반으로 객체 간의 관계에 관한 문제를 해결하기 위해 사용 인공지능이나 계산 언어학 분야, 자연언어 처리 분야에서 사용 |
특수분야 언어 |
SQL | 관계형 데이터베이스 관리 시스템(DBMS) 데이터를 관리하기 위해 설계된 특수 목적 프로그래밍 언어 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택 |
3. 객체 지향 프로그래밍
개념
객체와 객체간의 통신을 통해 프로그램 구현
객체와 속성, 메서드로 구성되는데 절차 지향에서의 모듈=객체, 변수=속성, 함수=메서드 대응
객체 지향 프로그래밍 구성요소
객체: 객체, 속성, 메서드로 구성된 클래스의 인스턴스
클래스: 객체지향 프로그래밍에서 객체를 표현하는 추상 데이터 타입으로 객체를 생성하는 틀. 클래스를 통해 추상화된 자료형을 제공
메시지: 객체간의 통신
객체의 구성요소
객체: 현실 세계에서 개채를 데이터 속성과 메서드를 결합한 형태로 표현한 것. 현실세계의 본질
속성: 자료 저장소 역할. 절차지향 프로그래밍의 변수에 대응
메서드: 호출 단위를 의미. 절차지향 프로그래밍의 함수와 대응
4. 라이브러리
개념
효율적인 프로그램 개발을 위해 필요한 프로그램을 모아놓은 집합체
프로그래밍 언어에 따라 일반적으로 도움말, 설치파일, 샘플코드 등 제공
필요할 때 찾아서 쓸 수 있도록 모듈화되어 제공되는 프로그램
구성
도움말: 라이브러리를 사용하는데 이해하기 쉽도록 설명해 놓은 문서
설치파일: 라이브러리를 제공하기 위해 제공되는 파일
샘플코드: 개발자가 라이브러리를 이해하고 손쉽게 적용하기 위해 제공되는 소스코드
종류
표준 라이브러리: 프로그래밍 언어가 기본적으로 가지고 있는 라이브러리
외부 라이브러리: 표준 라이브러리와 달리 별도의 파일 설치. 누구나 개발할 수 있으며 인터넷 등을 이용하여 공유
기능
문자열 연산 기능 / 문자열 탐색, 치환 기능/ 수치 계산 기능 / 난수 생성 기능 / 파일 경로 조작 기능 / 디렉터리 생성 기능 / 날짜 조작 기능 / 로그 출력 기능 제공
모듈과 패키지
모듈: 전역 변수, 함수 등을 모아둔 파일
패키지: 모듈을 디렉터리 형식으로 구조화한 라이브러리
'Study > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 11. 응용 SW 기초 기술활용-Chapter 1. 운영체제 특징 (0) | 2022.01.26 |
---|---|
[정보처리기사 실기] 10. 프로그래밍 언어 활용-Chapter 3. 프로그래밍 예제 및 알고리즘 (2) | 2022.01.25 |
[정보처리기사 실기] 10. 프로그래밍 언어 활용-Chapter 1. 기본 문법 활용하기 (0) | 2022.01.23 |
[정보처리기사 실기] 9. 소프트웨어 개발 보안 구축-Chapter 2. 소프트웨어 개발 보안 구현 (4) | 2022.01.22 |
[정보처리기사 실기] 9. 소프트웨어 개발 보안 구축-Chapter 1. 소프트웨어 개발 보안 설계 (2) | 2022.01.21 |