01.프로그래밍 입문
▶ 프로그래밍이란?
ㆍ Program+ing로 지금 프로그램을 하고 있다라는 뜻으로 직역할 수 있다.
▶ 프로그래밍 언어란?
ㆍ 컴퓨터와 대화 또는 명령을 할 수 있는 일련의 명령문을 작성 할 수 있는 언어를 의미한다.
ㄴ 프로그래밍 언어를 이용하면 프로그램을 만드는 것이 가능
- 프로그래밍 언어에는 다양한 언어가 존재하지만 크게 2가지로 분류 할 수 있다.
ㄴ 1. 특정 기능 구현에 최적화 된 언어
- 스크립트 언어. ex) C++스크립트, 블루프린트 등등
ㄴ 2. 범용적 언어
- C++, Python, Java 등등
▶ 프로그래밍 언어를 컴퓨터에서 이해하는 방법
- C/C++ 언어로 작성되어 있는 코드는 컴퓨터가 이해 할 수 없는 명령문이기 때문에 C/C++언어는 중간에서 언어를 해석해주는 번역가 역할을 하는 그 무언가가 필요하다.
★그게 바로 "컴파일러"
ㄴ 컴파일러는 해당 코드를 컴퓨터가 이해 할 수 있는 언어로 변환하는 역할을 한다.
※ 즉, 컴파일러가 프로그래밍 언어와 컴퓨터 사이에서 통역사 역할을 해주기 때문에 프로그래밍 언어를 작성하는 사람은 컴퓨터의 언어를 모른다 하더라도 컴퓨터에게 명령을 내리는 것이 가능하다.
★ 컴파일러 != 인터프리터
▶ 프로그래밍 기술 및 기법
- 프로그래밍 기술은 점차 발전해 왔으며 앞으로도 계속 발전해 나갈 것이다.
ㄴ 하지만 현재는 크게 4가지로 분류 할 수 있다.
1. 순차적 프로그래밍 (절차지향) -> C언어
ㄴ 가장 초기부터 사용 된 기법
ㄴ 코드의 흐름에 따라 프로그래밍 한다.
ㄴ 이 방식은 프로그램의 흐름에 따라가기 때문에 구조적이지 못하고 코드가 여기저기 흩어져 있기 때문에 유지 보수가 아주 힘들다.
2. 구조적 프로그래밍 (함수 프로그래밍)
ㄴ 순차적 프로그래밍의 단점을 보완하기 위해 나온 방식
ㄴ 코드의 구조를 "기능" 단위로 묶는 방식
ㄴ 함수 지향 프로그래밍이라고 부르며 순차적 프로그래밍보다 유지보수가 용이하다는 장점이 존재한다.
ㄴ 문제가 생겼을 때 해당 문제가 발생한 기능만 중점적으로 살펴보면 되기 때문에.
※ 이러한 기능들을 한데 묶어 모듈이라는 형태로 만들고 이게 바로 라이브러리로 발전을 해왔다.
3. 객체지향 프로그래밍
ㄴ 위의 두 방식과는 달리 코드의 기준을 "객체" 단위로 묶어 프로그래밍 하는 방식을 의미한다.
ㄴ 모든 대상에는 속성과 메서드가 있고 이를 하나로 묶어 객체로 만드는 방법론 (여기서 말하는 대상에는 눈에 보이지 않는 것도 포함이 된다.)
ㄴ 객체지향 기법에는 상속이나 다형성 등 다양한 개념이 존재. 하지만 내용이 많아 나중에 따로 정리 예정
4. 컴포넌트 기반 프로그래밍
ㄴ 비교적 최근에 등장한 개념
ㄴ 코딩의 기준을 객체가 아닌 컴포넌트 단위로 프로그래밍한다.
ㄴ 객체지향 프로그래밍이 사람이라는 객체를 프로그래밍 했다면 컴포넌트 방식은 사람이 가지고 있는 컴포넌트 (머리, 팔, 다리 등) 부품으로 세분화 하여 코딩하는 방법론
ㄴ 각각의 컴포넌트는 독립적으로 움직이는 부품과 같으므로 다리를 떼서 동물에게 붙여주면 걷거나 달리는 것이 가능하며 앞으로 배우게 될 언리얼에서 추구하는 방식
ㄴ 굉장히 많은 컴포넌트가 존재하며 이것을 추가하는 것으로 원하는 기능을 간단하게 구현 할 수 있다.
◇ 글꼴 변경은 도구->옵션->환경->글꼴 및 색 에서 변경 가능
◇ consolas 글꼴 권장
◇ :: <- 범위지정연산자
ㄴ namespace나 class에서 불명확한 변수나 함수를 사용 가능하게 함.