반응형
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 정보처리기사 실기 클래스'
반응형
댓글