-
다시한번 개발자도전! 2일 (깃허브,데이터 형식)다시한번 개발자도전! 2026. 1. 5. 11:25
오늘 첫 시작은 깃허브 까는 것부터!
나는 일단 깔려있어서 까는 법은 패스 😛
그나저나 잠이 안 와서 밤을 새우고 수업을 들으니까 너무 졸리다
너무 졸려서 커피하나 낋여왔다. 오늘은 진짜 일찍 자기로 다짐,,
이제 다시 집중 모드! 아자스‼️‼️

📌상수 (Constant)
- 상수 선언법: const 데이터타입 변수명 = 값;
- 특징: * 한 번 선언하면 값을 변경할 수 없다. (Read-only)
- 선언과 동시에 반드시 값을 할당(초기화)해야 한다.
- 실수로 값을 변경해서 발생하는 버그를 원천 봉쇄가능.
static void Main(string[] args) { //상수:변하지 않는 변수 const double pi = 3.14159; //상수 선언 및 초기화 int i = 0; i++;// 일반 변수이기 때문에 값이 변함 pi++;// *error 상수로 선언하였기 떄문에 값이 변경될 수 없음 }🔥실습예제🔥
**실행 결과**
최대플레이어: 4명
시작 골드: 1000G
버전: 1.0.0static void Main(string[] args) { const int maxPlayer = 4; const int gold = 1000; const string version = "1.0.0"; Console.WriteLine($"최대플레이어: {maxPlayer}명"); Console.WriteLine($"시작골드: {gold}G"); Console.WriteLine($"버전: {version}"); }
🔢숫자 데이터 타입
1️⃣ 정수 타입 (소수점 x)
- 정수는 부호(음수 -)를 넣을 수 있는지 없는지에 따라 이름이 살짝 달라짐.
- 앞에 'u'가 붙으면 Unsigned, 즉 '부호가 없다(0 이상)'는 뜻
종류 타입 크기 표현 범위 용도 및 꿀팁 부호 있음 sbyte 1바이트 -128 ~ 127 아주 작은 숫자용 (음수 가능) short 2바이트 약 -3만 ~ 3만 적당히 작은 숫자 int 4바이트 약 -21억 ~ 21억 제일 많이 사용 long 8바이트 우주만큼 큰 수 21억 넘어가면 사용 부호 없음 byte 1바이트 0 ~ 255 레벨, 나이, RGB 색상값 (0 이상) ushort 2바이트 0 ~ 65,535 0 이상의 적당한 수 uint 4바이트 0 ~ 약 42억 0 이상의 큰 수 ulong 8바이트 0 ~ 겁나 큰 수 마이너스 없는 끝판왕 2️⃣ 실수 타입 (소수점 o)
타입 크기 정밀도 특징 및 주의사항 float 4바이트 낮음 (7자리) 가볍지만 오차 있음. 숫자 뒤에 f 필수!(단정밀도) double 8바이트 중간 (15~16자리) 실수형의 기본 상자! 웬만하면 이거 써.(배정밀도) decimal 16바이트 매우 높음 (28~29자리) 돈 계산(금융) 할 때 무조건! 뒤에 m 필수!(고정밀도) 💡 1바이트(1 Byte)란?
더보기⭐컴퓨터가 글자 하나를 저장하는 최소 단위
- 8비트(Bit): 컴퓨터는 0이랑 1밖에 모름, 이 0이나 1이 들어가는 전구 하나가 '1비트'. 이 전구 8개를 묶어서 **'1바이트'**라고 부름. ($1 Byte = 8 Bits$)
- 표현 범위: 전구가 8개니까 $2^8 = 256$, 즉 0부터 255까지의 숫자를 표현할 수 있다. byte 범위가 0~255였던 이유
- 글자 한 개: 영어 알파벳 한 글자(A, b 등)나 숫자 한 개를 저장할 때 딱 1바이트가 필요. (한글은 좀 더 복잡해서 2~3바이트를 씀)
💡 비유하자면?
- 비트(Bit): 불이 꺼졌다 켜졌다 하는 스위치 1개
- 바이트(Byte): 스위치 8개가 모인 스위치 박스 1개
int가 4바이트인 건 스위치 박스를 4개 붙여서 더 큰 숫자를 표현하는 것
💡 실수형은 부호가 필요 없는 이유!
더보기- 기본적으로 '부호'를 포함하는 구조
- 실수는 컴퓨터 내부에서 저장될 때, 맨 앞의 1비트를 **"너 플러스(+)야, 마이너스(-)야?"**를 결정하는 '부호 비트'로 아예 고정해서 사용. 그래서 따로 나눌 필요가 없다.
- 정수형은 부호 없는(uint) 상자를 쓰면 양수 범위를 2배로 늘릴 수 있지만 실수는 이미 표현할 수 있는 숫자의 범위가 넓기 때문에 굳이 부호를 표시할 필요없다.
💡 한눈에 보는 요약
구분 정수 타입 (int, long 등)/b> 실수 타입 (float, double 등) 부호 구분 있음 (int vs uint) 없음 (그냥 하나로 다 됨) 음수 사용 선택 가능 언제나 가능 이유 양수 범위를 늘리려고! 이미 범위가 무한대급이라 굳이
🏷️ 숫자 뒤에 붙는 '접미사'
✅ 상황별 꼬리표(접미사) 정리
int (없음) 100 꼬리표 없으면 int로 인식함. long L 100L 큰 정수야 (대문자 L 추천) float f 3.14f 단정밀도 f double (없음) 3.14 아무것도 없으면 double decimal m 3.14m 고정밀도)이니까 m 붙여!" 🔥실습예시 🔥
캐릭터 능력치
float 이동속도: 5.5
double 공격속도 1.25
decimal 아이템가격 12.99static void Main(string[] args) { float speed = 5.5f; double attackSpeed = 1.25; decimal price = 12.99m; Console.WriteLine("캐릭터능력치"); Console.WriteLine($"이동속도: {speed}"); Console.WriteLine($"공격속도: {attackSpeed}"); Console.WriteLine($"아이템 가격 {price}"); }
💬문자형 데이터 (char)
- char 는 단일 문자를 저장하는 데이터 형식.
- 2 바이트 크기로 Unicode 표준을 사용.
- 반드시 **작은따옴표(' ')**로 감싸야 됨
문자"0"과 숫자 0은 코딩에서 다르게 쓰임
static void Main(string[] args) { char charVal = '9'; int asciiVal = charVal; Console.WriteLine(asciiVal); // 출력: 57,문자형 9가 유니코드로 57이기때문 }💬문자열 (string)
- 문장을 사용 (0개 이상의 문자)
- 반드시 **큰따옴표(" ")**로 감싸야 됨
- 문자형과 같이 안에 숫자가 있어도 큰따옴표가 붙으면 숫자가 아니라 그냥 '글자'임.
🎓논리형 데이터(bool)
- 오직 두 가지 값, 참(true) 또는 거짓(false)만을 저장
- 논리 연산에 필수적으로 사용
🔥실습예시🔥
=== 게임 상태 ===
게임 실행 중:true
일시정지:false
열쇠 소지:false
문 열림:false
플레이어 생존:truestatic void Main(string[] args) { bool isGameRunning = true; bool isGamePaused = false; bool hasKey = false; bool isDoorOpen = false; bool isPlayerAlive = true; Console.WriteLine("=== 게임 상태 ==="); Console.WriteLine($"게임 실행 중: {isGameRunning}"); Console.WriteLine($"일시정지: {isGamePaused}"); Console.WriteLine($"열쇠 소지: {hasKey}"); Console.WriteLine($"문 열림: {isDoorOpen}"); Console.WriteLine($"플레이어 생존: {isPlayerAlive}"); //삼항연산자 사용 ex bool hasWeapon = true; bool hasArmor = false; bool hasPotion = true; Console.WriteLine("\n=== 인벤토리 ==="); Console.WriteLine($"무기 보유: {(hasWeapon ? "있음" : "없음")}"); Console.WriteLine($"방어구 보유: {(hasArmor ? "있음" : "없음")}"); Console.WriteLine($"포션 보유: {(hasPotion ? "있음" : "없음")}"); }💡삼항연산자
더보기변수 = (조건식) ? 참일_때_값 : 거짓일_때_값;
- ? (물음표): "이 조건이 맞니?"라고 물어보는 거야.
- : (콜론): "맞으면 왼쪽(앞), 틀리면 오른쪽(뒤)!"이라는 뜻.
- 보통 코드를 줄일때 많이 쓰지만 헷갈릴 수 있음!
static void Main(string[] args) { int gold = 500; const int price = 1000; // 돈이 충분한지 삼항연산자로 체크! string message = (gold >= price) ? "아이템 구매 완료!" : "골드가 부족합니다"; Console.WriteLine(message); // 출력: 골드가 부족합니다 }
▪️닷넷 데이터 형식 (System Types)
- C# 별명 (int, bool...): 프로그래머들이 타이핑하기 편하고 읽기 좋게 만든 이름.
- System 형식 (Int32, Boolean...): .NET이라는 큰 동네에서 모든 언어(C#, VB.NET, F# 등)가 공통으로 알아듣기 위해 정해놓은 본명.
- 둘은 결국 같은 명령어
static void Main(string[] args) { // c# int number = 123; bool flag = true; //System 타입 // using System; 이 없으면 'System.'까지 붙여야한다. System.Int32 number2 = 123; // int와 동일 System.Boolean flag2 = true; // bool과 동일 }
🎁래퍼 형식(Wrapper Class):
- 기본형 (Primitive): 알맹이(값)만 있음. (예: int)
- 래퍼 형식 (Wrapper): 알맹이를 **기능(메서드)**이 들어있는 포장지로 감쌈. (예: ToString)
언제 래퍼 형식을 쓸까?
- 문자열을 숫자로 바꿀 때: int.Parse()나 Int32.Parse() 처럼 기능을 호출할 때!
- 숫자의 최댓값/최솟값이 궁금할 때: int.MaxValue 같은 걸 조회할 때!
- 데이터를 객체(Object)로 취급해야 할 때: 박싱(Boxing)할 때
static void Main(string[] args) { int gold = 1500; // 1. 단순 변환 string goldText = gold.ToString(); Console.WriteLine(goldText + "G"); // 출력: 1500G // 2. 실수의 소수점 제어 (꿀팁!) double pi = 3.141592; Console.WriteLine(pi.ToString("F2")); // 출력: 3.14 (소수점 둘째 자리까지!) // 3. 숫자에 콤마(,) 넣기 int money = 1000000; Console.WriteLine(money.ToString("N0")); // 출력: 1,000,000 (보기 편해짐 ㅋ) }💡확장메서드란?
더보기‼️내가 헷갈려서 만든 확장메서드와 래퍼형식 차이점‼️
📊 한눈에 비교하는 표
구분 래퍼형식 확장 메서드 소속 해당 타입 내부 (기본 탑재) 외부 클래스에서 정의 등장 배경 모든 객체의 공통 기능 기존 타입을 더 편하게 쓰고 싶을 때 제작 정의 위치 조상 클래스(Object) static class 안에서 this 키워드 사용 비유 타고난 목소리 나중에 산 마이크
🐝오늘의 꿀팁
1️⃣ n0 키워드 (Number with 0 decimals)
- 용도: 숫자에 **천 단위 구분 기호(콤마, ,)**를 찍고 싶을 때 사용.
- 의미: n은 숫자(Number) 형식, 0은 소수점 아래 자릿수를 0개로 하겠다는 뜻.
- 언제 쓸까?: 게임 골드, 아이템 가격, 경험치 등 큰 숫자를 보여줄 때 필수!
int gold = 1000000; Console.WriteLine(gold.ToString("n0")); // 결과: 1,000,0002️⃣ f2 키워드 (Fixed-point with 2 decimals)
- 용도: 소수점 자릿수를 딱 2개로 고정하고 싶을 때 사용.
- 의미: f는 고정 소수점(Fixed-point) 형식, 2는 소수점 아래 둘째 자리까지 보여주겠다는 뜻
- 언제 쓸까?: 캐릭터의 이동 속도, 공격 속도, 승률 등 정밀한 수치를 깔끔하게 보여줄 때.
double speed = 5.56789; Console.WriteLine(speed.ToString("f2")); // 결과: 5.57 (셋째 자리에서 반올림됨!)앞으로도 아자스-‼️‼️

'다시한번 개발자도전!' 카테고리의 다른 글
다시한번 개발자도전! 6일차 (배열,컬렉션) (0) 2026.01.09 다시한번 개발자도전! 5일차 (이중반복문 , 콘솔 좌표이동) (0) 2026.01.08 다시한번 개발자도전! 4일차(삼항연산자,연산자 우선순위,제어문,반복문) (0) 2026.01.07 다시한번 개발자도전! 3일차 (외부입력받기,연산자,형변환) (0) 2026.01.06 멋쟁이사자처럼 부트캠프 유니티게임개발7기 (변수,리터럴,vsc) (0) 2025.12.31