[정보처리기사실기] 알고리즘 / 변수명 / 프로그래밍 언어

반응형

7과목. 프로그래밍 언어

📒 01. 알고리즘 표현방법 / 프로그램 언어 특성


1. 알고리즘 표현 방법

(1) 자연어

  • 우리가 일상적으로 사용하는 언어로 알고리즘을 자유롭게 표현
  • ex) 라면 포장지에 있는 조리법
  • 이해하기 쉽지만, 모호성이나 해석의 여지가 있을 수 있음

(2) 의사코드(Pseudo Code)

  • 프로그래밍 언어의 형식을 모방하여 알고리즘을 표현한 코드

(3) 순서도(Flow Chart)

  • 기호와 도형을 사용하여 문제 해결의 흐름이나 프로세스를 시각적으로 표현

(4) 나씨 슈나이더만 차트(Nassi-Schneiderman Chart)

  • 구조적 프로그래밍의 순차, 선택, 반복 구조를 사각형으로 도식화하여 표현하는 기법

(5) UML(Unified Modeling Language)

  • 시스템의 구조와 설계를 시각적으로 표현한 표준화된 모델링 언어

 

2. 변수명 표기법

(1) 카멜 표기법(Camel Case)

  • a) 개념
    - 여러 단어가 결합된 경우, 첫 단어를 제외하고 각 단어의 첫 글자를 대문자로 표기
  • b) 사용
    - 주로 메서드나 변수명
  • c) 예시
    - flowChart

(2) 파스칼 표기법(Pascal Case)

  • a) 개념
    - 모든 단어의 첫 글자를 대문자로 표기
  • b) 사용
    - 클래스나 네임스페이스의 이름
  • c) 예시
    - FlowChart

(3) 스네이크 표기법(Snake Case)

  • a) 개념
    - 모든 단어를 소문자로 표기하고, 단어 사이으 언더바(_) 사용
  • b) 사용
    - 주로 변수명, 함수명, 특히 C언어나 Python에서 선호
  • c) 예시
    - flow_chart

(4) 헝가리안 표기법

  • a) 개념
    - 변수의 자료형이나 특성을 나타내는 접두사를 붙여 변수의 용도 명시
  • b) 사용
    - 변수명
  • c) 예시
    - strFlowChart, intCount

(5) 케밥 표기법(Kebab Case)

  • a) 개념
    - 모든 단어를 소문자로 표기하고, 단어 사이에 하이픈(-) 사용
  • b) 사용
    - 주로 웹 개발에서 URL, 파일명, CSS 클래스명
  • c) 예시
    - flow-chart

 

3. 프로그래밍 언어 유형 분류

(1) 개발 편의성 측면에 따른 분류

  • a) 저급언어(Low-Level Language)
    - 컴퓨터가 직접 이해할 수 있는 언어
    - 기계어, 어셈블리어
  • b)급언어(High-Level Language)
    - 인간이 이해할 수 있는 소스 코드로 되어있는 언어
    - C언어, JAVA, 파이썬, PHP 등

(2) 실행 및 구현 방식에 따른 분류

  • a) 명령형 언어(Imperative Language)
    - 컴퓨터가 수행해야 할 절차를 기술하여 프로그래밍 상태 변경에 중점을 둠
  • b) 함수형 언어(functional Language)
    - 데이터 처리를 수학적 함수 계산으로 취급
  • c) 논리형 언어(Logic Language)
    - 논리 문장을 사용하여 표현
  • d) 객체지향 언어(Object-Oriented Language)
    - 객체 간의 메시지 통신을 통해 동작

(3) 빌드 방식에 따른 분류

  • a) 컴파일 언어(Compile Language)
    - 소스코드를 컴퓨터가 이해할 수 있는 목적 코드로 변환
  • b) 인터프리터 언어(Interpreter Language)
    - 한 줄씩 실행하며, 컴퓨터가 이해할 수 있는 언어로 통역
  • c) 바이트 코드 언어(Byte Code Language)
    - 컴파일을 통해 가상 머신이 이해할 수 있는 바이트 코드로 변환하고, 이후 기계어로 번역
  • d) 어셈블리 언어(Asssembly Language)
    - 어셈블러를 통해 기계어로 변환되는 언어

 

4. 절차적 프로그래밍 언어

(1) 절차적 프로그래밍 언어의 개념

  • 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술하는 프로그래밍 언어
  • 순차적인 처리를 중시하며, 하향식 언어

(2) 절차적 프로그래밍 언어의 종류

  • a) C언어
    - 데니스 리치에 의해 개발된 언어로 이식성이 뛰어남
  • b) COBOL
    - 비느지스 컴퓨터 프로그램을 위해 설계되었으며 금융 및 인적 자원 등의 분야에 사용
  • c) FORTRAN
    - 주로 과학 계산용으로 사용되는 언어
  • d) BASIC
    - 교육용으로 개발된 언어

 

5. 객체지향 프로그래밍 언어

(1) 객체지향 프로그래밍 언어의 개념

  • 소프트웨어의 구조를 객체로 만들고, 객체들 간의 상호작용으로 소프트웨어를 동작시키는 프로그래밍 언어
  • 상향식 언어

(2) 객체지향 프로그래밍 언어의 특징

  • a) 캡슐화(Encapsulation)
    - 데이터와 연산을 하나로 묶어 캡슐화하여 외부에 은폐
  • b) 정보은닉(Information Hiding)
    - 객체가 자신의 정보를 외부에 숨기고, 연산을 통해서만 접근 허용
  • c) 상속(Inheritance)
    - 상위 클래스의 데이터와 연산을 하위 클래스가 물려받음
    - extends 키워드 사용
  • d) 다형성(Polymorphism)
    - 같은 이름의 메서드가 상황에 따라 다르게 동작하는 것
    - 오버로딩(인자값만 다르게 생성), 오버라이딩(상속 관계에서 재정의) 포함
  • e) 추상화(Abstraction)
    - 불필요한 부분을 생략하고 중요한 부분에만 초점을 맞추어 개략화
    - 공통의 성질을 묶는 것

(3) 객체지향 프로그래밍 언어의 종류

  • a) JAVA
    - 데니스 리치에 의해 개발된 언어로 이식성이 뛰어남
  • b) 시뮬라67
    - 최초의 객체지향 언어
  • c) 스몰토크
    - 최초로 GUI를 제공한 언어
  • d) 오브젝티브-C
    - 애플의 iOS에서 사용되는 언어
  • e) C++
    - C언어에 객체지향 추가한 확장형 언어
  • f) 파이썬
    - 인터프리터식, 객체지향적, 동적 타이핑을 지원하는 대화형 언어

 

6. 스크립트 언어

(1) 스크립트 언어의 개념

  • 응용 소프트웨어를 제어하는 컴퓨터 프로그래밍 언어
  • 다른 응용 프로그램에 삽입되어 동작하는 프로그래밍 언어

(2) 객체지향 프로그래밍 언어의 종류

  • a) 자바스크립트
    - HTML 문서 내에 삽입되며, 동적인 웹 페이지 제작 가능
  • b) JSP
    - HTML 페이지 안에 자바 코드를 직접 삽입하여 웹 서버에서 동적 웹 페이지 생성
  • c) PHP
    - 서버 측 스크립트 언어로 HTML 문서 안에서 사용
  • d) ASP
    - 마이크로소프트의 윈도우 서버에서 운영되는 웹 프로그래밍 언어

 

7. 선언형 언어

(1) 선언형 언어의 개념

  • 프로그램이 수행해야 할 문제를 기술하는 언어
  • 목표는 명시하지만, 알고리즘은 명시하지 않음

(2) 선언형 언어의 종류

  • a) 하스켈
    - 순수 함수형 프로그래밍 언어
  • b) SQL
    - 데이터베이스를 관리하기 위한 특수 목적의 프로그래밍 언어

 

더보기

알고리즘 : 문제를 해결하는 능력

원시코드 : 인간이 만든 코드

목적코드 : 컴퓨터가 동작할 수 있는 코드

객체지향의 구성 요소 : 클래스, 속성, 메서드, 객체(인스턴스), 메시지

객체지향 설계 원칙 : SOLID 원칙

 

참고자료

흥달쌤,  '흥!나게 합격 달성! 2024 정보처리기사 실기 클래스'
 

1억뷰 N잡

[1회 연장 포함] 흥!나게 합격 달성! 2024 정보처리기사 실기 클래스

www.njobler.net

반응형

댓글