사전 캠프를 들었기 때문에 아직 특별히 어려운 점은 없다.

기존에 있던 인터랙티브 공간을 업그레이드했다.
문 스태틱 메시를 떼어 문틀과 문짝을 분리했다.






Seperate 하면 이렇게 분리가 되는데, 기존 메시 파일에서도 떨어져나간 부분이 없어진다. 떨어져나간 부분을 복구하려면 원본 메시에서 메시 리임포트를 눌러주면 된다.

기존 스태틱 메시에서 막히지 않아야하는 부분이 막혀있다면, 스태틱 메시를 열어 필요에 따라 수정해준다.


C언어 세션
챕터 1-8 : 자료형
수업 목표
- 자료형의 필요성에 대해 알아본다.
- 다양한 자료형들을 배워본다.
자료형의 필요성
컴퓨터는 아주 단순히 말해서, 계산하고 저장하는 기계. 우리가 입력한 모든 값은 결국 0과 1로 저장됩니다. 하지만 컴퓨터는 그 0과 1의 묶음들이 무엇을 의미하는지 전혀 알 수 없습니다. 어디서부터 어디까지(크기)를 어떻게 해석해야하는지 알려줘야합니다. 이 역할을 하는 것이 자료형입니다.
컴퓨터 공학에서의 크기 단위
컴퓨터 공학에서 가장 작은 크기 단위는 1 bit입니다. 이진법의 한 자리에 해당하는 크기입니다.
컴퓨터 상식적으로 8 bits를 1 byte라고 부릅니다.
다시 1024 bytes를 1 mb라고 부릅니다.
자료형(Type)
저장될 데이터의 크기와 해석 방법에 대한 정보.
자료형 크기 == 표현 가능한 수 서식 지정자| char | 1 byte. -(2^7) ~ (2^7) - 1 | |
| [-128 ~ 127] | %c or %hhd | |
| short int | 2 byte. -(2^15) ~ (2^15) - 1 | |
| [-32768 ~ 32767] | %hd | |
| int | ||
| [기본 정수 자료형] | 4 byte. -(2^31) ~ (2^31) - 1 | |
| [-2147483648 ~ 2147483647] | %d or %i | |
| long | 4 byte or 8 byte. | %ld |
| long long | 8 byte. -(2^63) ~ (2^63) - 1 | %lld |
| float | 4 byte. 유효 자리수 6~7자리. | |
| [부호: 1bit, 지수: 8bit, 가수: 23bit] | %f | |
| double | ||
| [기본 실수 자료형] | 8 byte. 유효 자리수 15~16자리. | |
| [부호: 1bit, 지수: 11bit, 가수: 52bit] | %lf | |
| long double | 8 byte 이상. | %Lf |
| </aside> |
Ex010801**)** 리터럴과 자료형
#include <stdio.h>
int main(void)
{
65536; // int 자료형의 리터럴. 즉, int는 "기본 정수 자료형".
65536LL; // LL은 long long의 약자. 즉, long long 자료형의 리터럴 기호. l은 1과 헷갈리기 때문에 잘 안씁니다.
65536u; // u는 unsigned의 약자. unsigned의 리터럴 기호.
3.141592; // double 자료형의 리터럴. 즉, double은 "기본 실수 자료형".
3.141592f; // float 자료형의 리터럴 기호 f.
'd'; // char 자료형의 리터럴. ''는 char 자료형의 리터럴 기호.
"Hello, world!"; // 문자열 리터럴. ""는 문자열 리터럴 기호. const char[] 자료형 리터럴 기호.
return 0;
}
챕터 1-9 : 변수
수업 목표
- 변수에 대해 배워본다.
- unsigned 키워드와 signed 키워드에 대해 배워본다.
- 오버플로우(Overflow)란 무엇인지 살펴본다.
변수(Variable) <-> 상수(Constant) [중요 샘플 코드]
변할 수 있는 수. 아래와 같은 형식으로 선언하게 됩니다.
자료형 변수명 = 값;
Ex010901) 자료형 변수명 = 값; [중요 샘플 코드]
// Main.c
#include <stdio.h>
int main(void)
{
// 자료형 변수명 = 값;
int Num = 2147483647; // 선언과 동시에 초기화
double PI; // 선언
printf("Num = %d\\n", Num);
PI = 3.141592;
printf("PI = %lf\\n", PI);
return 0;
}
unsigned 키워드와 signed 키워드
부호 없는 Vs. 부호 있는. unsigned를 자료형 앞에 붙히면 음수는 표현 불가능. 대신 양수 부분이 2배 늘어납니다. 서식 지정자로는 %u를 쓰면 됩니다. 모든 자료형은 사실 앞에 signed 키워드가 생략되어 있습니다.
Ex010902) 오버플로우
아래와 같은 코드를 작성 후 실행 결과 예측하고 실행해서 확인해봅시다.
// Main.c
#include <stdio.h>
int main(void)
{
char CharNum = -128;
signed char SignedCharNum = -128;
unsigned char UnsignedCharNum = 255;
unsigned char UnsignedCharNumWithOverflow = -1;
short ShortNum = -32768;
signed short SignedShortNum = -32768;
unsigned short UnsignedShortNum = 65535;
unsigned short UnsignedShortNumWithOverflow = -1;
printf("CharNum: %hhd\\n", CharNum);
printf("SignedCharNum: %hhd\\n", SignedCharNum);
printf("UnsignedCharNum: %hhu\\n", UnsignedCharNum);
printf("UnsignedCharNumWithOverflow: %hhu\\n", UnsignedCharNumWithOverflow);
printf("ShortNum: %hd\\n", ShortNum);
printf("SignedShortNum: %hd\\n", SignedShortNum);
printf("UnsignedShortNum: %hu\\n", UnsignedShortNum);
printf("UnsignedShortNumWithOverflow: %hu\\n", UnsignedShortNumWithOverflow);
return 0;
}
오버플로우(Overflow)
자료형이 표현 가능한 수를 넘어서는 경우. 그릇에 물을 너무 많이 따르면 넘쳐 흐르는 것과 같습니다.
챕터 1-10 : ASCII
수업 목표
- 인코딩과 디코딩이 무엇인지 배워본다.
- ASCII에 대해 배워본다.
컴퓨터는 문자를 이해할 수 없음.
누군가는 “어, char 자료형의 변수에 문자 저장 가능한데요?” 라고 반문할 수 있습니다. Nope!!! 프로그래머는 문자로 작성된 소스코드를 컴퓨터가 그대로 이해할 수 없기에 컴파일러를 통해 이진패턴으로 만들었다는 걸 기억해야 합니다. 이 과정을 빌드 프로세스라고 불렀습니다. 즉, char 자료형의 변수에 문자를 그대로 저장할 수 없다는 뜻입니다. 뭔가 처리가 필요합니다.
인코딩(Encoding) Vs. 디코딩(Decoding)
형태 A에서 형태 B로 변환하는 것을 인코딩이라 합니다. 반대로 형태 B에서 형태 A로 변환하는 것을 디코딩이라 합니다.
ASCII(American Standarded Code for Information Interchange)
문자 형태의 데이터와 숫자 형태의 데이터 사이의 인코딩 규약 중 하나. 여러 인코딩 규약이 있으나, 그 중 가장 쉽고 대표적인 규약. 규칙 표는 [여기]를 참고하시면 됩니다. 어쨋든 컴퓨터에 값이 저장되기 위해서는 숫자 형태여야 한다는 점을 기억합시다.
Ex011001**)** ASCII
아래와 같은 코드를 작성 후 실행 결과 예측하고 실행해서 확인해봅시다.
// Main.c
#include <stdio.h>
int main(void)
{
char ch1 = 'A';
char ch2 = '1';
printf("ch1 = %c\\n", ch1);
printf("ch1 = %d\\n", ch1);
printf("ch1 + 2 = %c\\n", ch1 + 2);
printf("ch1 + 2 = %d\\n", ch1 + 2);
printf("ch2 = %c\\n", ch2);
printf("ch2 = %d\\n", ch2);
printf("ch2 + 2 = %c\\n", ch2 + 2);
printf("ch2 + 2 = %d\\n", ch2 + 2);
printf("'A' + 24 = %c\\n", 'A' + 24);
printf("'A' + 24 = %d\\n", 'A' + 24);
return 0;
}
[참고] 지역별 문자 인코딩과 유니코드
과거에는 ASCII, EUC-KR 등등 각 나라마다 다른 문자 인코딩들이 존재했습니다. 이는 서로 호환되지 않아 다국어 지원에 문제가 생겼습니다.
그래서 전세계 모든 문자를 표현 및 처리하기 위해 만들어진 문자 인코딩이 유니코드(Unicode)입니다.
유니코드에는 UTF-8, UTF-16, UTF-32가 있습니다.
챕터 1-11 : 입력 기초
수업 목표
- scanf() 함수에 대해 짧게 살펴본다.
scanf()
키보드로부터 데이터를 입력 받을 수 있게끔 해주는 함수.
Ex011101**)** scanf() 함수 [중요 샘플 코드]
// Main.c
#define _CRT_SECURE_NO_WARNINGS
// scanf() 함수를 쓸때는 이걸 정의해줘야 합니다.
// 다만 scanf() 함수는 stdio.h에 정의되어 있으므로, stdio.h 파일 인클루드 전에 정의해야 합니다.
#include <stdio.h>
int main(void)
{
int Num;
scanf("%d", &Num); // "Num에다가(&) %d 형식으로 입력받아라."
printf("%d", Num); // "Num을 %d 형식으로 출력해라."
return 0;
}
</aside>
'게임 개발 > 학습 일지' 카테고리의 다른 글
| 260226 Unreal 부트캠프 - 플레이어 입력 받기/ 플랫포머 디자인해보기 - 깜빡이는 플랫폼 (0) | 2026.02.26 |
|---|---|
| 260225 Unreal 부트캠프 - 구조체를 활용한 블루프린트 탄약 시스템 만들기 + 화면에 표시하기 (0) | 2026.02.25 |
| Unreal 언리얼 엔진 학습 - 게임속 TV 화면에 영상 출력하기 (0) | 2026.02.24 |
| 260223 Unreal 부트캠프 - 본캠프 첫날 (0) | 2026.02.23 |
| Unreal 언리얼 엔진 학습 - 콘텐츠 파일 열 때 새 탭에서 열기 (0) | 2026.02.23 |