Terriermon - Digimon

6. 프로그래밍 언어 활용

2022. 9. 23. 14:01자격증/정보처리기사

📌 프로그래밍 언어 유형 분류

✅ 개발 편의성에 따른 분류

  • 저급언어 : 기계가 이해할 수 있도록 만들어진 언어
    e.g. 기계어, 어셈블리어
  • 고급언어 : 개발자가 코드 작성시 쉽게 이해할 수 있도록 작성된 언어
    e.g. C, C++, 자바, 파이썬

✅ 실행방식에 따른 분류

  • 명령형 언어 (절차형 언어) : 컴퓨터에 저장된 명령어들이 순차적으로 실행
    e.g. FORTRAN, COBOL, PASCAL, C
  • 객체지향 언어 : 객체 간 메세지 통신을 이용하여 프로그래밍
    e.g. JAVA, C++
  • 함수형 언어 : 수학적 수식과 같은 함수들로 프로그램 구성하여 호출
    e.g. LISP
  • 논리형 언어 : 논리 문장을 이용하여 프로그램 표현하고 계산을 수행하는 개념에 기반한 프로그래밍 방식
    e.g. Prolog

✅ 구현 기법에 따른 분류

  • 컴파일 방식의 언어
    • 고급언어를 기계어로 번역
    • 컴파일러에 의해 실행에 필요한 정보가 미리 계산 -> 실행 속도 빠름
      e.g. FORTRAN, PASCAL, C, C++
  • 인터프리터 방식의 언어
    - 하나씩 번역하고 실행하는 방식
    • 프로그램 실행과 동시에 동작
      e.g. BASIC, PROLOG, LISP
  • 혼합형 방식의 언어
    - 고급언어를 컴파일하여 중간 언어로 변환 후 인터프리터에 의해 번역 실행
    e.g. Java

📌 프로그래밍 언어별 특성

✅ 절차적 프로그래밍 언어 종류

  • 알골
    • 알고리즘의 연구개발에 이용하기 위한 목적
    • 절차형 언어로는 최초로 재귀호출 가능
    • 이후 언어 발전에 큰 영향
  • C언어
    • 유닉스 OS에서 사용하기 위해 개발
    • 모든 컴퓨터 시스템에서 사용할 수 있도록 설계됨
  • 베이직
    • 교육용으로 개발되어 언어의 문법 쉬움
    • 다양한 종류 존재
    • 서로 다른 종류 사이 소스코드는 호환X
  • 포트란
    • 벡터, 행렬 계산 기능 등이 내장된 과학 기술 전문 언어
    • 수학함수들 사용가능

✅ 객체지향 프로그래밍 언어 종류

  • C++
    • C문법에 객체지향 프로그래밍 개념과 일반화 프로그래밍을 위한 템플릿 기능 추가
    • 많은 작업을 성능 하락 없는 형태로 개발 가능
    • 메모리 관리 등 직접 신경써야 하는 것들이 많아 개발 어려움
  • C#
    • 마이크로소프트에서 개발
    • C++, Java와 비슷한 문법
    • 자바와 달리 불안전 코드(Unsafe Code)와 같은 기술을 통해 플랫폼 간 상호운용성 확보
  • JAVA
    • 썬 마이크로 시스템즈가 개발
    • 웹 애플리케이션 개발에서 가장 많이 사용
    • 자바 컴파일러는 자바언어로 작성된 프로그램을 바이트 코드로 변환
  • 델파이
    • 기본적인 문법은 파스칼 문법에 여러 기능이 추가되어 존재
    • 윈도즈 아래에서 모든 부분을 프로그래밍 할 수 있음
    • 높은 생산성과 간결한 코드의 장점, C++과 비슷한 수준의 저수준 시스템 프로그래밍도 가능

✅ 스크립트 언어 종류

  • PHP
    • 동적 웹페이지를 만들기 위해 설계
    • PHP 코드를 HTML에 입력시 코드 인식하여 웹페이지 생성
    • 인터페이스 방식의 자체 인터프리터 제공
    • 인터프리터 방식
    • 실용성 모토, 다른 프로그래밍 언어에서 뛰어난 기능 많이 도입
    • 강력한 문자열 처리 기능 제공
  • 파이썬
    • 다양한 플랫폼에서 쓸 수 있고 라이브러리 풍부
    • 유니코드 문자열 지원하여 다양한 언어의 문자 처리
    • 들여쓰기 사용하여 블록 구분 문법
    • 다른 언어로 쓰인 모듈들 연결
  • 자바스크립트
    • 객체기반 스크립트 프로그래밍 언어
    • 웹 브라우저 내에서 주로 사용, 다른 응용 프로그램의 내장 객체에도 접근 기능 존재
    • 브라우저마다 지원되는 버전 상이

✅ 선언형 언어 종류

  • 함수형 언어
    • 하스켈
      - 패턴 맞춤, 커링, 조건제시법, 가드, 연산자 정의 등 기능 존재
      - 재귀함수나 대수적 자료형도 지원
    • 리스프
      - 수학 표기법을 나타내기 위한 목적
      - 트리 자료구조, 가비지 컬렉션, 동적 자료형과 인터프리터 제시
      - 함수 호출시 이름 또는 연산자 위치 후 피연산자 위치
  • 논리형 언어
    • 프롤로그
      - 논리식 기반으로 객체 간의 관계에 관한 문제 해결
      - 인공지능, 계산 언어학 분야, 자연언어 처리 분야에서 사용
  • 특수분야 언어
    • SQL
      - RDBMS 데이터 관리하기 위해 설계
      - DB 관련 프로그램들이 표준으로 채택

📌 객체지향 프로그래밍

✅ 구성요소

  • 객체 : 개체, 속성, 메서드로 구성된 클래스의 인스턴스
  • 클래스 : 객체를 표현하는 추상 데이터 타입으로 객체를 생성하는 틀
  • 메시지 : 객체 간 통신

✅ 객체의 구성요소

  • 개체 : 현실 세계에 보이는 본질
  • 속성 : 자료 저장소 역할, 변수와 대응
  • 메서드 : 호출 단위 의미, 함수와 대응

📌 라이브러리

✅ 개념

  • 필요할 때 찾아 쓸 수 있도록 모듈화되어 제공되는 프로그램
  • 도움말, 설치 파일, 샘플 코드 등 제공

✅ 종류

  • 표준 라이브러리
    • 기본적으로 가지고 있는 라이브러리
    • 여러 종류의 모듈과 패키지를 가지며, 별도의 파일 설치 없이 날짜와 시간 등 기능 사용 가능
  • 외부 라이브러리
    • 별도의 파일 설치
    • 누구나 개발하여 설치할 수 있고 공유 가능

✅ 기능

  • 문자열 연산 기능
  • 문자열 탐색/치환 기능
  • 수치 계산 기능
  • 난수 생성 기능
  • 파일 경로 조작 기능
  • 디렉터리 생성 기능
  • 날짜 조작 기능
  • 로그 출력 기능

📌 모듈과 패키지

: 모듈은 개별 파일, 패키지는 파일들을 모아 놓은 폴더

✅ 모듈

: 전역변수, 함수 등을 모아 놓은 파일

✅ 패키지

: 모듈을 디렉터리 형식으로 구조화한 라이브러리

반응형

'자격증 > 정보처리기사' 카테고리의 다른 글

8. 서버 프로그램 구현  (0) 2022.09.23
7. SQL 응용  (1) 2022.09.23
5. 인터페이스 구현  (1) 2022.09.23
4. 통합 구현  (1) 2022.09.23
3. 데이터 입출력 구현  (0) 2022.09.23