기초지식

01.프로그래밍 입문

로만주 2023. 5. 8. 21:53

▶ 프로그래밍이란?

ㆍ Program+ing로 지금 프로그램을 하고 있다라는 뜻으로 직역할 수 있다.

 

▶ 프로그래밍 언어란?

ㆍ 컴퓨터와 대화 또는 명령을 할 수 있는 일련의 명령문을 작성 할 수 있는 언어를 의미한다.

ㄴ 프로그래밍 언어를 이용하면 프로그램을 만드는 것이 가능

 

- 프로그래밍 언어에는 다양한 언어가 존재하지만 크게 2가지로 분류 할 수 있다.

ㄴ 1. 특정 기능 구현에 최적화 된 언어

   - 스크립트 언어. ex) C++스크립트, 블루프린트 등등

ㄴ 2. 범용적 언어

    - C++, Python, Java 등등

 

▶ 프로그래밍 언어를 컴퓨터에서 이해하는 방법

- C/C++ 언어로 작성되어 있는 코드는 컴퓨터가 이해 할 수 없는 명령문이기 때문에 C/C++언어는 중간에서 언어를 해석해주는 번역가 역할을 하는 그 무언가가 필요하다.

 

★그게 바로 "컴파일러"

ㄴ 컴파일러는 해당 코드를 컴퓨터가 이해 할 수 있는 언어로 변환하는 역할을 한다.

 

※ 즉, 컴파일러가 프로그래밍 언어와 컴퓨터 사이에서 통역사 역할을 해주기 때문에 프로그래밍 언어를 작성하는 사람은 컴퓨터의 언어를 모른다 하더라도 컴퓨터에게 명령을 내리는 것이 가능하다.

 

★ 컴파일러 != 인터프리터

▶ 프로그래밍 기술 및 기법

- 프로그래밍 기술은 점차 발전해 왔으며 앞으로도 계속 발전해 나갈 것이다.

ㄴ 하지만 현재는 크게 4가지로 분류 할 수 있다.

 

1. 순차적 프로그래밍 (절차지향) -> C언어

ㄴ 가장 초기부터 사용 된 기법

ㄴ 코드의 흐름에 따라 프로그래밍 한다.

ㄴ 이 방식은 프로그램의 흐름에 따라가기 때문에 구조적이지 못하고 코드가 여기저기 흩어져 있기 때문에 유지 보수가 아주 힘들다.

 

2. 구조적 프로그래밍 (함수 프로그래밍)

ㄴ 순차적 프로그래밍의 단점을 보완하기 위해 나온 방식

ㄴ 코드의 구조를 "기능" 단위로 묶는 방식

ㄴ 함수 지향 프로그래밍이라고 부르며 순차적 프로그래밍보다 유지보수가 용이하다는 장점이 존재한다.

ㄴ 문제가 생겼을 때 해당 문제가 발생한 기능만 중점적으로 살펴보면 되기 때문에.

 

※ 이러한 기능들을 한데 묶어 모듈이라는 형태로 만들고 이게 바로 라이브러리로 발전을 해왔다.

 

3. 객체지향 프로그래밍

ㄴ 위의 두 방식과는 달리 코드의 기준을 "객체" 단위로 묶어 프로그래밍 하는 방식을 의미한다.

ㄴ 모든 대상에는 속성과 메서드가 있고 이를 하나로 묶어 객체로 만드는 방법론 (여기서 말하는 대상에는 눈에 보이지 않는 것도 포함이 된다.)

ㄴ 객체지향 기법에는 상속이나 다형성 등 다양한 개념이 존재. 하지만 내용이 많아 나중에 따로 정리 예정

 

4. 컴포넌트 기반 프로그래밍 

ㄴ 비교적 최근에 등장한 개념

ㄴ 코딩의 기준을 객체가 아닌 컴포넌트 단위로 프로그래밍한다.

ㄴ 객체지향 프로그래밍이 사람이라는 객체를 프로그래밍 했다면 컴포넌트 방식은 사람이 가지고 있는 컴포넌트 (머리, 팔, 다리 등) 부품으로 세분화 하여 코딩하는 방법론

ㄴ 각각의 컴포넌트는 독립적으로 움직이는 부품과 같으므로 다리를 떼서 동물에게 붙여주면 걷거나 달리는 것이 가능하며 앞으로 배우게 될 언리얼에서 추구하는 방식

ㄴ 굉장히 많은 컴포넌트가 존재하며 이것을 추가하는 것으로 원하는 기능을 간단하게 구현 할 수 있다.

 

글꼴 변경은 도구->옵션->환경->글꼴 및 색 에서 변경 가능

consolas 글꼴 권장

◇ :: <- 범위지정연산자

ㄴ namespace나 class에서 불명확한 변수나 함수를 사용 가능하게 함.