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

[실기] 제 10과목 - 프로그래밍 언어 활용 요점 정리

by 3.14pie 2023. 5. 7.

연산자 우선순위

   - 괄호, 배열 > 부정, 증감 산술 > 곱셈, 나눗셈 산술 > 뎃셈, 뺄셈 산술 > 시프트 > 관계 > 논리 > 삼항 > 대입

   -    ( ), [ ]    >    !, ~, ++, --    >    *, /, %    >    +, -    >    >>, <<    >    <, <=    >    &, |, ^    >    ?    >    =, +

 

컴파일 - 고급 언어를 기계어로 번역, 실행에 필요한 정보가 컴파일 시간에 계산, 전체 프로그램 변환 및 실행, 빠른 실행 속도, 복잡한 번역 과정, C, C++

 

인터프리터 - 고급 언어를 명령어 단위로 하나씩 번역, 실행, 프로그램 실행 시 계산, 단순, 빠른 번역, 느린 실행 속도, Javascript, Python

 

혼합형 - 고급 언어를 컴파일 해 중간 언어로 변환 후 인터프리터에 의해 번역 실행, Java

 

절차적 프로그래밍 언어 - 프로시저 호풀의 개념을 바탕으로 하는 프로그래밍, 코드의 재사용, 프로그램 흐름 파악, 모듈화 및 구조화

   - 장점 : 매개 변수와 반환값, 유효 범위, 명시적 허가, 약 결합

   - 언어 : C, Fortran, ALGOL, BASIC

 

프로시저 - 루틴, 하위 프로그램, 서브루틴, 메서드, 함수를 의미

 

객체 지향 프로그래밍 - 인간이 사고하는 방식대로 프로그램을 개발하려는 것에서 시작, 객체를 이용해 프로그래밍

   - 언어 : Java, C#, 델파이, Swift

   - 객체 : 개체(현실 세계의 본질), 속성(변수), 메소드(함수)로 구성된 클래스의 인스턴스

   - 클래스 : 객체 타입 정의, 객체를 생성하는 틀

   - 메시지 : 객체 간 통신

   - 캡슐화, 정보은닉 : 기능과 데이터를 하나로 묶어 객체를 표현, 캡슐화를 통해 정보은닉 가능, 내부  동작을 몰라도 메서드를 사용해 클래스 기능 사용 가능, Private(동일 클래스), Protected(동일 클래스, 동일 패키지, 상속 관계), Package(동일 클래스, 동일 패키지), Public(전체 접근 가능)

   - 추상화 : 실체에서 공통되는 속성이나 관심 있는 부분만 추출해 모델링

   - 상속 : 상위 클래스의 속성, 메서드를 상속해 새로운 클래스 생성, 추상화된 클래스를 구체화 시키는 방법으로도 사용, C++은 다중 상속 가능, Java는 다중 상속이 불가능하지만 인터페이스로 다중 구현이 가능

   - 다형성 : 동일한 이름의 메서드가 각 클래스마다 다른 사양으로 정의될 수 있다는 의미, Overloading(하나의 클래스 안에서 사용). Overriding(상속 관계의 클래스에서 사용, OCP, LSP, DIP 필수 요소)

 

스크립트 언어 - 소스코드를 컴파일하지 않고도 실행할 수 있는 언어, 주로 다른 응용 프로그램에 삽입되어 인터프리터를 통해 해석 및 동작, Javascript, JSP, PHP, ASP, Perl, Python

 

선언형 언어 - 특정 선언으로만 프로그램을 동작시키는 프로그래밍 패러다임, 어떤 방법으로 해야하는지보다 무엇과 같은지 설명하는 방식, 참조 투명성, 지연 평가 지원, 빠른 개발, 적은 버그

   - 함수형 언어 : 자료 처리를 수학적 함수의 계산으로 취급, 상태와 가변 데이터를 멀리함, Haskell, LISP

   - 논리형 언어 : 논리 문장을 이용해 프로그램을 표현하고 계산을 수행, Prolog, SQL

   - 제약형 언어 : 변수 간의 관계를 제약하는 형태, 문제를 제약 만족 문제로 품, OZ

 

라이브러리 - 효율적인 프로그램 개발을 위해 필요한 프로그램을 모아 놓은 집합체, 도움말, 설치 파일, 샘플 코드 제공, 필요할 때 찾아서 쓸 수 있도록 모듈화되어 제공되는 프로그램

   - 표준 라이브러리 : 언어가 기본적으로 가지는 라이브러리, 별도 파일 설치 X, 알고리즘, 데이터 구조, 입출력을 위한 메커니즘 정의

   - 외부 라이브러리 : 별도 파일 설치 필요, 누구나 개발해 설치 가능, 공유 가능

 

모듈 - 한 개의 파일에서 기능 제공

 

패키지 - 여러 개 모듈을 한 개의 폴더에 묶어 기능 제공

 

C언어 - stdio.h, string.h, math.h, stdlib.h

 

Java - java.lang, util, io, net, sql

 

Python - String, Textwrap, Numbers, Math, detetime, calendar, os:path, tempfile