C#의 기본. 언어 문법 공부하는 날입니다.
꽤나 오래 전에 했던 것을 다시 이렇게 보니, 약간 헛 살았다는 느낌(?)도..
하긴 전공 수료했는데 부트캠프 수료하는 것 자체가 말이 안되는 거긴 합니다.
그래도 안하고 집에서 뒹굴거리는 것보다는 나으니, 한 번 힘 내서 해보겠습니다.
📕 챕터1-1 : C#소개, 개발 환경 설정

C언어란 무었이냐.
컴퓨터 언어죠.
너무 기본은 패스하겠습니다.
📌 C# 기본 구조 설명
- using System;
→ C#에서 기본 제공 네임스페이스(System)를 사용하기 위한 코드
→ Console 클래스 같은 기능을 사용하려면 필요 - namespace
→ 코드를 논리적으로 묶는 역할
→ 클래스나 다른 네임스페이스의 컨테이너 역할 - class Program
→ C# 클래스 정의 키워드
→ 클래스 이름을 Program으로 지정 - static void Main()
→ C# 프로그램의 진입점(entry point)
→ 프로그램 실행 시 자동으로 호출되는 메서드
→ 필수 메서드 (없으면 실행 불가)
Console.WriteLine("Hello World"); 이 C+에서 printf 같은 느낌입니다.
저 문구 안에 다양한 사칙연산이 가능하고, 띄어 쓰기 등등이 있는데, 얄짤없이 C언어만의 규칙이 있기 때문에 외워야 합니다.
따로 설명도 필요 없습니다. 그냥 외워야 합니다.


이 부분은 자주 까 먹는 부분인데, 하다보면 대부분 float 혹은 double을 쓰게 되는 것 같습니다.
양이 많은 실수들이라서,
범위랑 상관 없는 char, ,string, bool.은 각각 문자, 문자열, 참 혹은 거짓 이란 뜻인 것들입니다.
Console.ReadLine
은 입력받는 것.



뭐 설명 필요 없습니다. 그냥 외워야 합니다. 어차피 많이 쓰이는 놈들은 정해져 있긴 합니다.


간단한 수학이라 한 번씩만 보면 거의 다 외워집니다.
조건문, 반복문




고1 때 영어 공부해 봤으면 다 아는 영문법입니다. ~~동안, ~~라면, 의 영어를 컴퓨터 식으로 옮겨 놓은 것 뿐입니다.
이 외에도 switch, foreach 등이 있지만 약간의 쓰임이 다르니 약간 씩만 찾아 보면 됩니다. 웬만하면 저 위의 3개로 다 함

위 사진은 배열에 관한건데, 배열은 특히나 자주 쓰이는 것 같습니다.
물론 여기서 자주 쓰이지 않는 것은 없긴 합니다.
데이터의 유형과 이름,
그리고 우성 배열 초기화 해 주고
데이터 선언 및 어떤 식으로 할 건지.
📌 요약 : 메서드
1) 메서드란?
- 특정 작업을 수행하는 코드 블록(기능 단위)
- 역할
- 코드 재사용 → 반복 줄임
- 모듈화 → 작은 단위로 관리
- 가독성·유지보수성 향상
- 코드 중복 제거
- 추상화 → 이름만 봐도 기능 이해
그리고 매서드 방식. 매서드. 방식, 방법이라는 뜻이죠.
내가 정한 메소드를 하나 만들어 놓고, 나중에 가져오면 그 방식 대로, 그 메소드 대로 처리해 주는겁니다.
앞으로 숫자 2개 받으면 난 그걸 무조건 더할거야. 라는 메소드를 정해두고, 이름을 sum 메소드 라고 지으면
숫자 2개를 받은 후에, sum메소드를 사용하겠다! 라고 하면, 그 과정을 적지 않고 그냥 sum만 호출(가져오기)하면 되는 것이지요.
그리고 이것들을 적용시킬 클래스와 객체,
📌 클래스와 객체 요약
1) 클래스의 특징 (OOP 핵심 4가지 + 객체)
- 캡슐화(Encapsulation)
- 데이터 + 기능을 하나로 묶음
- 외부 접근 제한 → 안정성, 유지보수성 ↑
- 상속(Inheritance)
- 기존 클래스 재사용, 확장
- 코드 중복 ↓, 계층 구조 형성
- 다형성(Polymorphism)
- 하나의 메서드/인터페이스 → 다양한 구현
- 오버로딩/오버라이딩으로 구현
- 추상화(Abstraction)
- 복잡한 시스템 단순화
- 핵심만 모델링 (세부 구현 감춤)
- 객체(Object)
- 클래스에서 생성된 실체
- 상태(필드) + 행동(메서드)를 가짐
- 서로 상호작용하며 프로그램 동작
2) 클래스 구성 요소
- 필드(Field) : 데이터 저장 (객체 상태)
- 메서드(Method) : 동작 정의 (객체 행동)
- 생성자(Constructor) : 객체 초기화 (자동 호출)
- 소멸자(Destructor) : 객체 해제 시 실행
3) 클래스 vs 구조체
- 구조체(struct) : 값 형식, 스택에 저장, 상속 불가 → 작은 데이터 구조에 적합
- 클래스(class) : 참조 형식, 힙에 저장, 상속 가능 → 복잡한 객체 표현에 적합
4) 접근 제한자
- public : 외부에서 자유롭게 접근 가능
- private : 같은 클래스 내부에서만 접근
- protected : 같은 클래스 + 상속받은 클래스에서 접근 가능
5) 생성자
- 정의: 객체 생성 시 호출되는 특별한 메서드
- 클래스 이름과 동일, 반환 타입 없음
- 오버로딩 가능 (매개변수에 따라 여러 개 정의 가능)
- 사용자가 생성자를 정의하면 기본 생성자는 자동 생성되지 않음
간단하게,
큰 클래스 안에, 이런 저런 객체들이 있고, 그 객체들을 어떤 구조로 할 것인지 정하고, 캡슐화, 상속, 다형성 등 어떤 방식으로 짤건지 구상.
입니다.
📌 상속 (Inheritance) 요약
1) 상속의 개념
- 기존 클래스(부모, 상위 클래스)를 기반으로 새로운 클래스(자식, 하위 클래스)를 만드는 것
- 자식 클래스는 부모의 필드, 메서드, 프로퍼티 등을 상속받아 사용 가능
- 부모의 기능을 재사용, 확장, 수정할 수 있음
2) 상속의 장점
- 코드 재사용 → 중복 줄임
- 계층 구조 표현 → 구조 명확
- 유지보수성 향상 → 부모 클래스만 수정해도 자식 클래스에 반영됨
3) 상속의 종류
- 단일 상속 : C#은 클래스 간 단일 상속만 지원
- 다중 상속 : 여러 부모 클래스를 동시에 상속 (C#은 지원 ❌)
- 인터페이스 상속 : 클래스는 여러 인터페이스를 동시에 상속 가능
4) 상속의 특징
- 부모 멤버 접근 가능 → 재사용
- 메서드 재정의(override) → 다형성 구현
- 상속 계층 구조 → 여러 단계 가능 (너무 깊으면 복잡해짐)
- 접근 제한자 영향 → public, protected는 자식이 접근 가능, private는 불가능
✔ 핵심 정리:
상속은 코드 재사용 + 확장 + 다형성 구현의 핵심 도구이며,
C#은 단일 상속 + 다중 인터페이스 상속 구조를 채택합니다.
이 외에도
out, ref 키워드, 다중 상속을 사용하지 않는 이유, 인터페이스를 사용하는 이유, 예외 처리, 델리게이트, 람다식, Nullable 형, 문자열 빌더 (StringBuilder) 등등 많습니다.
일단은 개념 및 예제 위주로 문제를 풀었고, 내일은 Text RPG를 만들건데, 이렇게 이틀은 좀 가볍게 하고, 그 다음 날에 하루 종일 다시 복습하고 풀고 설명하면서 개념 확실히 잡아가보도록 하겠습니다.
'공부 > 게임 공부' 카테고리의 다른 글
| C# 기초 문법 [연산자와 조건문] (0) | 2025.10.01 |
|---|---|
| C# 기초 문법 [변수와 타입] (0) | 2025.10.01 |
| TIL을 왜 써야 하는가? <그걸 ㄹㅇ 모르냐?>라는 강의 (1) | 2025.09.26 |
| 팀원들이 만든 기능들 리팩토링 및 구조 확장 (0) | 2025.09.25 |
| 게임 플로우 차트와 갤러리 씬 (1) | 2025.09.24 |