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

    반응형

    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

    반응형

    댓글