팀스파르타 코딩

📚 TIL - 2025년 4월 12일 (토) / C# 입문 일지

creator2041 2025. 4. 12. 21:57

📅 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에 익숙해지기 위해 일부러 자주 사용하였다. 무엇보다 더 효율적인 것이 있다면. 배우고 싶다. 평일에 튜터님 찾아가서 배워 봐야겠다. 헤헤.