📅 4월 12일 C# 스터디: 파트1 기초 다지기
🚀오늘은 C# 기초 강의 파트 1을 들었다. 처음 배우는 거라 용어도 많고 정신이 없었지만, 중요한 내용들을 까먹기 전에 얼른 정리해봤다. 나중에 이 글 보면서 꼭 복습해야겠다. 파이팅이다! 🔥
✅ 복습 요약: [1파트 1강] C# 언어와 .NET 프레임워크
☑️ C# 핵심 특징
- 객체 지향 프로그래밍 언어
- 강력한 형식 시스템(타입 안전)
- 가비지 컬렉션(자동 메모리 관리)
- 다양한 플랫폼 & .NET 프레임워크에서 실행 가능
- C/C++/Java와 구조 유사
☑️ .NET 프레임워크란?
- MS에서 만든 개발 플랫폼
- 코드 → 중간언어(IL) 생성 → 각 플랫폼에 맞게 실행 재생성
☑️ 비주얼 스튜디오 설치와 특징
- C# 전용 강력한 코딩 툴 (자동완성, 디버깅 탁월)
- Community 버전 무료!
☑️ Hello World 출력
- C# 콘솔 앱에서 Console.WriteLine() 사용
- 빌드 시 실행파일 생성 (bin/Debug/net8.0)
- 실행 방식: F5(디버깅), Ctrl+F5(비디버깅)
- Ctrl+S 저장 습관 중요!
☑️ 자동완성과 보조 기능
- for + Tab x2 = for 문법 템플릿 생성
- Tab, Ctrl+Space로 자동완성
- 너무 마우스에 의존하지 말고, 키보드 중심 습관화
- 이 기능은 좋지만. 교육과정에서 너무 쓰지말것. 문법을 익히는게 중요.
☑️ 초보자를 위한 조언 ✍️
- What보다는 Why를 먼저 이해하자 (예: 자동자는 왜 이렇게 움직일까 보단, 브레이크를 왜 밟는지부터!)
- 완벽한 코드보다 많이 부딪히고 실패해보는 것이 중요
- 코드를 많이 보면서 눈을 키워나가기 💪
📌 소감 => .NET이나 비쥬얼 스튜디오. 그리고 자동완성이라는게 이렇게까지 방대한 기능이라는것도, 정확한 개념도 몰랐다. 그리고 마지막 조언에 진심이 느껴진다. 그래. 벌써 C#이란 무엇일까. 이 원리는 무엇일까 보단. 배우는데 집중하고. 부딫혀보자. 일단 해보고. 안되보자. 두려워말자. 아자아자.
✅ 복습 요약: [1파트 2강] 프로그래밍의 기본 요소
☑️ Hello World 코드 구조
- using System: C# 기본 네임스페이스 사용
- class Program: 클래스 정의
- Console.WriteLine(): 문자열 출력 + 줄 바꿈
- Console.Write(): 줄 바꿈 없이 출력
☑️ 이스케이프 시퀀스
- 문자열 안에 특별한 기능을 담는 문자
- \n(줄 바꿈), \t(탭), \"(큰따옴표), \\(역슬래시) 등
☑️ 주석 사용법
- //: 한 줄 주석
- /* */: 여러 줄 주석
- Ctrl+K+C: 블록 주석 단축키
- 주석은 설명을 보완하는 수단일 뿐, 코드는 직관적이어야 함
☑️ 자동완성 팁
- Console.까지만 입력해도 Tab으로 완성 가능
- 템플릿 기능은 학습 초기엔 지양, 자동완성 활용 권장
📌 소감 => 아는 내용들도 더 세부적으로 안느낌. 더 배우고. 더 익혀서 좋았다. 그리고 무엇보다. 감으로 알던것을 조금더 정석 용어로 알게 된 느낌.
✅ 복습 요약: [1파트 3강] 변수와 자료형 - 1
☑️ 주요 자료형
- 정수형: int, long
- 실수형: float, double
- 문자/문자열: char, string
- 논리형: bool
☑️ 리터럴(Literal)
- 코드에 직접 쓰는 고정된 값
- 예: 10, 10L, 3.14f, 'A', "Hello"
☑️ 변수 선언 & 초기화
- int hp; / int hp = 100;
- 선언과 동시에 초기화 가능
- =는 대입 연산자, '같다' 아님!
☑️ 변수 이름 규칙 & 컨벤션
- 예약어 사용 불가: int, class 등은 변수명으로 못 씀
- 첫 글자: 알파벳 또는 _만 가능 (숫자 시작 ❌)
- 두번째 글자: 여기서부턴 숫자도 가능
- 식별자 스타일:
- camelCase: 소문자로 시작, 다음단어는 대문자. 변수, 매개변수 (예: playerHealth)
- PascalCase: 단어단위로 대문자로 시작. 클래스, 메서드 (예: GameManager, CalculateHP())
- 대문자 약어는 그대로 유지 (ID, HTTP 등.)
- 이름은 명확하고 읽기 쉬워야 함
- 의미 없는 축약(tmp, a1) ❌
- 한글 변수명 ❌, 자동완성 있으니 길어도 명확하게
- 코드 스타일:
- 들여쓰기: Tab 또는 스페이스 4칸
- 중괄호는 한 줄 아래에 시작
-
if (조건){ // 실행 코드 }
- 메서드 간 두 줄 띄우기, 관련 없는 블록 사이엔 한 줄 띄우기
☑️ 형변환 (Type Casting)
- 명시적: (long)num 처럼 직접 지정
- 암시적: 작은 자료형 → 큰 자료형 자동 변환
int a = 10;
long b = (long)a; // 명시적
byte c = 1;
int d = c; // 암시적
📌 소감 => 오....컨벤션에 대한건 몰랐다. 이건 잘 알아두면 나도 익숙해지고, 협업에도 좋을듯! 배울것 많아! 너무 좋아!!....아닌가. 나도 이상해지나. 이게 다 맥도날드 음료가 복잡한 탓이다. 그리고 리터럴은 뭔가 유니티 개발 강좌 보면 3
.14f 이런식으로 표현하길래 그런가보다 했는데. 이런 정식 기능이었구나. 잘 알아둬야겠다.
✅ 복습 요약: [1파트 4강] 변수와 자료형 - 2
☑️ Console.ReadLine() 입력
- 모든 입력은 문자열(string)로 받는다
- 숫자 입력은 int.Parse(), double.Parse()로 변환 필요
☑️ 주석 처리 단축키
- Ctrl + K, C → 주석 처리
- Ctrl + K, U → 주석 해제
☑️ Split()으로 여러 값 처리
- Split(' ')로 공백 기준 나누기 → 배열에 저장
- 배열에서 원하는 값 꺼내고 형변환
☑️ var 키워드
- 타입을 생략하고 선언 (var x = 10;)
- 초기값을 통해 타입 자동 추론
- 초보자일 땐 사용 주의 (가독성 저하 가능)
📌 소감 => 와 Split()이거 처음 봄. 문자열을 나눠서 배열로 저장할수있다니. var는 또 뭐임. 괜히 마법 자료형이 아니네.
✅ 복습 요약: [1파트 5강] 연산자와 문자열 처리
☑️ 연산자 정리
- 산술: +, -, *, /, %
- 관계: ==, !=, >, <, >=, <=
- 논리: &&, ||, !
☑️ 비트 연산자
- &, |, ^, <<, >>, ~ 등
- 2진수 연산. 기본 구조는 알고만 있자
☑️ 복합 대입 & 증감 연산자
- +=, -=, *=, /=, ++, --
- a++과 ++a는 사용 위치에 따라 동작 순서 다름
☑️ 연산자 우선순위
- 괄호 > 단항 > 산술 > 시프트 > 관계 > 논리 > 할당
- 헷갈릴 땐 괄호로 명시해주는 게 가장 안전함
☑️ 문자열 처리 기능
- Split(), Replace(), ToUpper(), ToLower(), ToString(), Format() 등
- 출력과 가공에 매우 중요! 자주 쓰일 기능들
📌 소감 => 이건 알던것을 복습한 느낌!! 다만....비트 연산자는. 어...내가 2진수를 몰라서 그런가. 이건...나중에라도 한번 검색 복습 해봐야겠다.
✅ 복습 요약: [1파트 시험] 실습 과제 정리 🧪
각 문제는 Console 입력 → 문자열 처리 → 데이터 파싱 → 출력이라는 흐름으로 구성되며, 문자열 조작과 형변환, 그리고 연산자 적용이 핵심 포인트입니다. 아래는 내가 작성한 실제 풀이 코드와 함께 복습 키워드 요약입니다.
☑️ 1번 문제: 이름과 나이 입력 → 출력
Console.WriteLine("이름과 나이를 띄어쓰기로 구분하여 입력하세요.");
Console.WriteLine("예: 홍길동 25");
string input = Console.ReadLine();
string[] output = input.Split(' ');
string name = output[0];
int age = int.Parse(output[1]);
Console.WriteLine($"이름: {name}, 나이: {age}세");- 핵심 키워드: 문자열 입력 처리, 배열 분리, int.Parse()
☑️ 2번 문제: 두 수 입력 → 사칙연산
Console.WriteLine("임의의 두 숫자를 쉼표로 구분하여 입력하세요.");
Console.WriteLine("예: 1,2");
string input = Console.ReadLine();
string[] output = input.Split(',');
int first = int.Parse(output[0]);
int second = int.Parse(output[1]);
Console.WriteLine($"두 수의 합: {first + second}");
Console.WriteLine($"두 수의 차: {first - second}");
Console.WriteLine($"두 수의 곱: {first * second}");
Console.WriteLine($"두 수의 나눗셈: {first / second}");
Console.WriteLine($"두 수의 나머지: {first % second}");- 핵심 키워드: 기본 연산자, 문자열 파싱, Console 출력 포맷
☑️ 3번 문제: 섭씨 → 화씨 변환기
Console.WriteLine("현재 섭씨지역의 온도를 입력해주세요. 숫자만 입력해주세요.");
string input = Console.ReadLine();
double inputDouble = double.Parse(input);
double output = (inputDouble * 1.8) + 32;
Console.WriteLine("섭씨온도: " + input + "°C");
Console.WriteLine("화씨온도: 대략 " + output.ToString("N2") + "°F");- 핵심 키워드: 수식 적용, 실수 연산, 문자열 포맷팅
☑️ 4번 문제: BMI 계산기
Console.WriteLine("안녕하세요. BMI 계산기입니다.");
Console.WriteLine("이름을 입력하세요.");
string name = Console.ReadLine();
Console.WriteLine("키를 입력하세요.(cm)");
string heightInput = Console.ReadLine();
Console.WriteLine("몸무게를 입력하세요.(kg)");
string weightInput = Console.ReadLine();
double heightMeter = double.Parse(heightInput) / 100.0;
double weightKg = double.Parse(weightInput);
double bmi = weightKg / (heightMeter * heightMeter);
Console.WriteLine($"{name}님의 BMI는 {bmi.ToString("N2")}입니다.");
Console.WriteLine("BMI 수치에 따른 비만도는 다음과 같습니다.");
Console.WriteLine("저체중: 18.5 미만, 정상체중: 18.5 ~ 22.9, 비만전단계(과체중): 23 ~ 24.9, 1단계 비만: 25 ~ 29.9, 2단계 비만: 30이상");- 핵심 키워드: double.Parse(), Math 연산, 다중 입력 처리
📌 시험 소감란 => 후후....double을 많이 쓰는 것 같아서. float말고 double에 익숙해지기 위해 일부러 자주 사용하였다. 무엇보다 더 효율적인 것이 있다면. 배우고 싶다. 평일에 튜터님 찾아가서 배워 봐야겠다. 헤헤.
'팀스파르타 코딩' 카테고리의 다른 글
| 📚 TIL - 2025년 4월 15일 (월) / C# 객체지향 기본 (0) | 2025.04.15 |
|---|---|
| 📚 내일의 학습 목표 - 클래스와 객체 (C#) (0) | 2025.04.14 |
| 📚 TIL - 2025년 4월 14일 (월) / C# 입문 일지 (배열, 컬렉션, 메서드, 구조체) (0) | 2025.04.14 |
| 📚 TIL - 2025년 4월 13일 (일) / C# 입문 일지 (0) | 2025.04.13 |
| C# 객체 지향 프로그래밍(OOP) (0) | 2025.03.19 |