* 프로그램 개발 언어
1. 프로그램 실행 방식에 따른 분류
▶ 개발 언어
▷ 컴파일러 언어
→ 번역사 같은 작업
→ 프로그램 전체 라인을 처음부터 끝까지 해독해 목적 코드로 만든 후 실행
→ C, C++, COBOL, Ada, FORTRAN, PASCAL 등
▷ 인터프리터 언어
→ 통역사와 같은 작업
→ 프로그램 라인 단위로 한 줄씩 해석하고 바로 실행
→ 자바스크립트, BASIC, LISP 등
▷ 스크립트 언어
→ 소스 코드 컴파일 하지 않고도 실행 가능한 프로그래밍 언어
→ 별도 컴파일 없이 내장된 번역기에 의해 번역되므로 바로 실행 가능
→ 컴파일러 언어와는 다르게 인터프리터 사용해 코드 한줄 한 줄을 즉시 해석 및 실행
→ JavaScript, ActionScript, AutoHotKey, JSP, Perl, PHP, Python, Lua 등
2. 절차적 프로그래밍 언어
→ 절차 지향 프로그래밍 혹은 절차 지향적 프로그래밍
→ 프로시저 호출 개념을 바탕으로 하는 프로그래밍 의미
▶ 장점
▷ 코드 재사용
→ 같은 코드를 다른 장소에서 호출만으로 재사용 가능
▷ 쉬운 프로그램 흐름 파악
→ GOTO문, JUMP문 사용이 아닌 쉬운 흐름 파악 가능
▷ 모듈화 및 구조화
→ 재사용 단위인 모듈로 구성하여 프로그램 구조화
▶ 대표적인 절차적 프로그래밍 언어
▷ C
→ 정규화된 표준 C 라이브러리 이용한 프로그래밍 언어. 유닉스 시스템 바탕 프로그램은 모두 C로 작성됨
▷ 포트란
→ 주로 과학적 계산 하기 위해 시작된 컴퓨터 프로그래밍 언어
▷ 알골
→ 알고리즘 연구 개발에 이용하기 위한 목적으로 만들어졌으며 ALGOL계 언어 총칭
▷ 베이직
→ 교육용으로 개발되어 언어 문법이 쉬운 절차형 언어
3. 객체 지향 프로그래밍 언어
→ 실세계에 존재하거나 또는 개념적인 그 어떤 것을 의미하는 객체 이용하여 프로그래밍 하는 방식의 언어
▶ 절차 지향 프로그래밍과 객체 지향 프로그래밍 비교
▷ 절차 지향 프로그래밍
→ 모듈, 변수, 함수 사용하여 개발
→ 프로그램 순차적으로 수행시키는 방법으로 자료구조와 명령 중심 프로그램 구성
▷ 객체 지향 프로그래밍
→ 객체와 객체 간 통신 통해 프로그램 구현
→ 객체, 속성, 메소드로 구성되는데, 절차 지향에서의 모듈은 객체에, 변수는 속성에, 함수는 메소드에 대응
▶ 특징
▷ 캡슐화 (Encapsulation)
→ 속성과 메소드를 하나로 결합하여 객체로 구성
→ 클래스 선언 후 그 클래스 구성하는 객체에 대해 public, private, protected 등 접근 지정자 선언해 처리
▷ 추상화 (Abstraction)
→ 공통 성질 추출하여 슈퍼클래스 설정
1. 기능 추상화 : 클래스 내 메소드 정의 (obj.getName())
2. 자료 추상화 : 객체 클래스 자체를 데이터 타입으로 사용 (String.Class)
3. 제어 추상화 : 제어 행위에 대한 개념화, 명령 및 이벤트 (if, for, while)
▷ 다형성 (Polymorphism)
→ 동일한 이름의 오퍼레이션이 각 클래스마다 다른 사양으로 정의될 수 있다는 것
1. Overloading : 메소드 이름은 같으나 argument나 return type 다른 경우
2. Overriding : Argument와 return type이 같은 경우
▷ 정보 은닉 (Information Hiding)
→ 클래스 속성에 직접 접근은 데이터 무결성에 치명적
→ 속성들을 접근제어자인 private로 감춰두고 getter, setter 메소드 통해서만 접근 가능하게 하는 것
▷ 상속 (Inheritance)
→ 하위 클래스에게 자신의 속성과 메소드 사용 가능토록 허용
1. 단일 상속 : 부모와 자식 클래스 간 관계가 수퍼클래스와 서브클래스로 유지
2. 다중 상속 : 하나의 클래스가 하나 이상의 클래스로부터 상속
3. 반복 상속 : 같은 조부모 클래스로부터 상속 받은 두 부모 클래스로부터 상속
▶ 구성요소
▷ 객체
→ 개체, 속성, 메소드로 구성된 클래스의 인스턴스
■ 구성요소
□ 개체 (Entity)
→ 현실 세계에 보이는 본질
□ 속성 (Attribute)
→ 자료 저장소 역할. 절차 지향 프로그래밍의 변수와 대응
□ 메소드 (Method)
→ 호출 단위 의미. 절차 지향 프로그래밍의 함수와 대응
▷ 클래스
→ 객체 타입 정의하고 객체 생성하는 틀
▷ 메시지
→ 객체 간 통신
▶ 종류
▷ C#
→ 마이크로소프트에서 개발한 언어. 닷넷 프레임워크 환경에서 동작
▷ 자바
→ 썬 마이크로시스템즈에서 개발
▷ 델파이
→ 기본 문법은 파스칼 문법과 같지만 파스칼에 여러 기능 추가되어 발전
▷ 스위프트
→ 애플의 iOS와 MacOS 위한 언어. objective-C 와 함께 공존할 목적으로 만들어짐
4. 스크립트 언어
→ 응용 소프트웨어 제어하는 컴퓨터 프로그래밍 언어
→ 상대적으로 단순한 구문과 의미 내포하며 빠르게 배우고 작성하기 위해 개발된 언어
→ 짧은 소스 코드 파일이나 설치하지 않아도 코딩이 가능한 REPL 환경으로 상호작용에 적합
▶ 종류
▷ 파이썬
→ 플랫폼 독립적인 인터프리터식, 객체 지향적, 동적 타입 대화형 언어
▷ PHP
→ 동적 웹 페이지 만들기 위해 설계 되었으며 작성자가 원하는 웹 페이지 생성
▷ JCL
→ 일괄 처리 작업 수행하거나 하부 시스템 시작하는 방법을 시스템에 지시
▷ 자바스크립트
→ 웹 브라우저 내에서 주로 사용, 다른 응용 프로그램 내장 객체에도 접근 가능한 기능
5. 선언형 프로그래밍 언어
→ 특정 선언으로만 프로그램 동작시키는 프로그래밍 패러다임
→ 가장 유명한 라이브러리로는 제이쿼리가 있으며 앵귤러는 선언형 언어의 최신 트랜드인 반은형 웹 개념 도입
▶ 특징
▷ 참조 투명성
→ 프로그램 동작 변경 없이 관련 값 대체할 수 있다면 그 표현식을 참조상 투명하다고 함
▷ 지연평가 지원
→ 계산 필요한 순간이 올 때까지 수행 미룬다는 개념
▷ 빠른 개발
→ 알고리즘에 집중하며 이미 만들어진 것을 선언 통해 사용
▷ 적은 버그
→ 구체적인 작동순서 나열하지 않기에 버그 적음
▶ 종류
▷ 하스켈 (Haskell)
→ 난립하고 있는 함수형 언어들을 통합 정리하여 만든 일반적인 순수 함수형 프로그래밍 언어
▷ SQL
→ RDBMS 데이터 관리 위해 설계된 특수 목적의 프로그래밍 언어
▷ 프롤로그
→ 논리식 토대로 오브젝트와 오브젝트 간 관계에 관한 문제 해결하기 위해 사용
▷ XML
→ 특수 목적 갖는 마크업 언어를 만드는데 사용하도록 권장하는 다목적 마크업 언어
'정보처리기사 > 필기' 카테고리의 다른 글
[정보처리기사] Part05-01-1. 소프트웨어 개발방법론 선정 (1) (0) | 2022.02.16 |
---|---|
[정보처리기사] Part04-02-3. 라이브러리 활용 (0) | 2022.02.16 |
[정보처리기사] Part04-02-1. 기본 문법 활용 (0) | 2022.02.15 |
[정보처리기사] Part04-01-4. 배치 프로그램 구현 (0) | 2022.02.15 |
[정보처리기사] Part04-01-3. 서버 프로그램 구현 (0) | 2022.02.15 |
댓글