프로그래밍 언어 활용 > 언어특성 활용
1. 기본문법 활용
2. 언어특성 활용
(1) 절차적 프로그래밍 언어
(2) 객체지향 프로그래밍 언어
(3) 스크립트 언어
(4) 선언형 언어
3. 라이브러리 활용
(1) 라이브러리
(2) 데이터 입출력
(3) 예외 처리
(4) 프로토타입
2. 언어특성 활용
(1) 절차적 프로그래밍 언어
- 개념
- 프로시저 호출의 개념을 바탕으로함
- 명령형 프로그래밍이라고도 불림
- 특징
- 단순하고 유지보수 쉬움
- 순차적으로 진행되기 때문에 프로그램 흐름파악 용이
- 모듈화, 구조화 가능
- 종류
- 알골(ALGOL) : 알고리즘 연구개발에 이용할 목적으로 생성, 절차언어 최초로 재귀 호출이 가능
- C언어 : 유닉스 운영체제에서 사용하기 위해 개발됨, 모든 컴퓨터에서 사용할 수 있도록 설계됨
- 베이직(BASIC) : 교육용으로 개발되어 문법 쉬움, 다양한 종류의 베이직 존재
- 포트란(PORTRAN) : 과학기술 전문 언어
2. 언어특성 활용
(2) 객체지향 프로그래밍 언어
- 개념
- 프로그램을 "명령어의 목록"으로 보는 것이 아닌 여러개의 독립적인 "객체"를 중심으로 보는 프로그래밍 언어.
- 이 객체들의 상호작용으로 프로그램이 동작.
- 특징
- 클래스에 하나의 문제 해결을 위한 데이터를 모아놓음으로써 응집력을 강화
- 클래스 간에 독립적으로 디자인함으로써 결합력 약화
- 4가지 특징 : 추상화, 캡슐화, 상속, 다형성
- 기능
- 추상화 : 객체의 성질을 분해하여 공통된 성질을 추출하여 슈퍼클래스를 선정하는 것. 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화, 모델화 하는 것
- 캡슐화 : 관련성이 많은 데이터와 이와 관련된 함수들을 한 묶음으로 처리하는 기법, 재사용 용이
- 상속 : 새로운 클래스가 기존 클래스의 자료와 연산을 이용할 수 있게 하는 기능, 클래스 간의 종속 관계를 형성함으로써 객체를 조직화
- 다형성 : 일반적으로 오버라이딩*이나 오버로딩*을 의미함
- 다중 상속 : 2개 이상의 클래스로부터 상속받을 수 있게 하는 기능
- 동적 바인딩 : 프로그램의 한 개체나 기호를 실행 과정에서 여러 속성이나 연산에 바인딩 함으로써 다형 개념을 실현, 쉽게 말해 (컴파일 때와는 달라도) 런타임 시점의 객체 타입을 기준으로 실행될 함수를 호출하는 것을 의미한다. 이런 식으로 다형성이 적용되면, 어떤 변수가 컴파일 시점과 런타임 시점에 참조하는 클래스가 다르다.
- 종류
- C++ : C문법에 객체지향 프로그래밍 개념과 일반화 프로그래밍을 위한 템플릿 기능을 추가 한 것, 개발 과정에서 메모리 관리 등을 신경써야함
- C# : 마이크로 소프트사에서 개발한 객체 지향 프로그래밍 언어, C++와 Java의 문법과 유사, 플랫폼간 상호 운용성
- Java : 썬 마이크로 시스템즈가 개발,웹 애플리케이션 개발에 많이 사용, JVM에 의해 운영체제 없이 독립적으로 작동 (높은 이식성), Garbage Collector*에 의해 자동적으로 메모리 관리
- Delphi : 윈도우즈 아래에서 모든 부분을 프로그래밍 할 수 있는 언어, 높은 생산성과 간결한 코드, C++과 비슷한 수준의 로우레벨 시스템 프로그래밍 가능
* 오버라이딩과 오버로딩
오버라이딩(overrideing) 과 오버로딩(overloading)
오버라이딩은 상위 클래스가 가지고 있는 메서드를 하위 클래스에서 상속받아 다른 이름의 메서드로 재정의해서 사용하는 기법. 리턴 타입, 인수, 인수 자료형은 반드시 같아야한다.
오버로딩은 매개변수의 타입과 개수가 다르게 하여 같은 이름의 메서드를 여러개 가지는 것
* 가비지콜렉터(Garbage Collector)
가비지콜렉터(Garbage Collector)
JVM에 Young generation(YG), Old generation(OG) 두가지 물리적 공간 존재.
YG에선 새로이 생성된 객체 존재하고 'Unreachable' 상태가 되면 가비지콜렉터(GC) 동작에 의해 객체가 사라짐.
OG에선 YG에서 살아남은 객체가 복사됨
Heap 영역에 저장된 동적 생산된 객체, 배열 등은 사용이 끝나면 이러한 GC동작에 의해 사용 가능한 자원으로 회수된다.
2. 언어특성 활용
(3) 스크립트 언어
- 개념
- 소스 코드를 컴파일 하지 않고도 실행할 수 있음
- 응용 프로그램과 독립하여 사용됨
- 특징
- 빠르게 배워서 사용가능
- 구문이 단순
- 시작에서 끝날 때 까지 실행되며, 명확한 시작점(Entry Point) 가 없다.
- 종류
- PHP : 동적 웹페이지를 만들기 위해 제작됨, PHP로 작성된 코드를 HTML에 입력 시 웹 서버에서 해당 코드를 인식하여 작성자가 원하는 웹 페이지 생성, 자체 인터프리터 제공
- Perl : 인터프리터 방식의 프로그래밍 언어, 실용성이 모토, 텍스트 처리기능에 강점, C와 비슷한 구문
- Python : 라이브러리 풍부, 다양한 플랫폼에서 사용가능, 다른 언어로 쓰인 모듈을 연결하는 언어
- Javascript : 객체 기반 스크립트 프로그래밍 언어, 웹 브라우저에 주로 사용, 다른 응용 프로그램의 내장 객체에도 접근 가능
2. 언어특성 활용
(4) 선언형 언어
- 개념
- 문제를 설명하는 언어
- 유형
- 함수형 언어 : 자료 처리를 수학적 함수의 계산으로 취금
- 논리형 언어 : 논리 문장을 이용하여 프로그램을 표현
- 기능
- 함수형 언어의 기능
-- 순수 함수 : 어느 순간에 호출해도 동일한 값 반환, 스레드 안전, 병렬 계산 가능
-- 익명 함수 : 이름 없는 함수
-- 고계 함수 : 함수를 또 하나의 값으로 간주하여 함수의 인자 혹은 반환 값으로 사용 가능
-논리형 언어의 기능
-- 사실 : 객체간의 관계의 논리적 사실 포함
-- 규칙 : 목표에 이르는 원인 규명 과정은 지식베이스로부터 새로운 논리를 찾는 과정
-- 질문 : 추론 규칙인 참인지 거짓인지 확인하기 위한 문장
- 종류
- 함수형 언어
-- 하스켈(Haskell) : 패턴 맞춤, 커링, 조건제시법, 가드, 연산자 정의 기능 등 존재
-- 리스프(LISP) : 수학적 표기법을 나타내기 위한 목적으로 생성
- 논리형 언어
-- 프롤로그(Prolog) : 논리식을 기반으로 객체 간의 관계에 관한 문제를 해결하기 위해 사용, 인공지능이나 자연언어 처리 분야에서 사용
- 특수 분야 언어 :
-- SQL : 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적 프로그래밍 언어
ref : 수제비 2020 정보처리기사 필기
'study > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 프로그래밍 언어 활용 > 응용 SW 기초 기술 활용 (0) | 2020.04.03 |
---|---|
[정보처리기사] 프로그래밍 언어 활용 > 서버프로그램 구현 (0) | 2020.04.02 |