IT공부/IT서적

[헤드퍼스트 C#] Chapter 3. 이해하기 쉬운 코드 만들기

shine94 2025. 6. 7. 13:50

* 해당 글은 시작하세요! 헤드퍼스트 C# 도서를 읽고 정리한 글입니다.

   https://product.kyobobook.co.kr/detail/S000211338172

 

헤드 퍼스트 C# | 앤드류 스텔만 - 교보문고

헤드 퍼스트 C# | 상상을 초월하는 객체지향 C# 학습법 직관적인 설명과 다채로운 구성으로 생생하게 체험하는 C# 프로그래밍재치 넘치는 설명과 틀에 박히지 않은 구성으로 복잡한 개념도 쉽게

product.kyobobook.co.kr

   https://github.com/head-first-csharp/fourth-edition

 

GitHub - head-first-csharp/fourth-edition: Code and graphics for the projects in the 4th edition of Head First C#

Code and graphics for the projects in the 4th edition of Head First C# - head-first-csharp/fourth-edition

github.com

 

 

 

 

* 재사용(reuse)과 재활용이 되는 유용한 코드 짜기는 중요!

 

* 클래스 다이어그램(class diagram)

   클래스의 멤버 메소드를 볼 수 있다

 

* 매개 변수를 이용한 카드 게임 만들기

▼ 클래스 다이어그램(class diagram)

CardPicker
PickSomeCards
RandomSuit
RandomValue

 

* 어셈블리 단위 접근 제한자

접근 제한자 접근 가능 범위
internal 같은 어셈블리 내에서만 가능
protected internal 같은 어셈블리 또는 상속받은 자식 클래스
둘 중 하나라도 만족하면 접근 가능
private protected 같은 어셈블리 그리고 상속받은 자식 클래스
둘 다 만족해야 접근 가능

어셈블리(Assembly)란?

    하나의 프로젝트가 빌드되어 생성된 결과물(예: 실행 파일, 라이브러리 파일)을 어셈블리라고 한다

 

* .Net SDK 버전 에러

https://learn.microsoft.com/ko-kr/dotnet/core/install/how-to-detect-installed-versions?pivots=os-windows#check-sdk-versions

 

Windows, Linux 및 macOS에 설치된 .NET 버전 확인 - .NET

컴퓨터에 설치된 .NET 버전을 확인하는 방법을 알아봅니다. 여기에는 .NET 런타임 및 SDK가 포함됩니다.

learn.microsoft.com

https://learn.microsoft.com/ko-kr/dotnet/core/install/windows#install-with-visual-studio

 

Windows에 .NET 설치 - .NET

지원되는 .NET SDK 및 .NET 런타임 버전에 관해 알아보고 Windows에 .NET을 설치하는 방법을 알아봅니다.

learn.microsoft.com

https://dotnet.microsoft.com/ko-kr/download/dotnet

 

다운로드할 모든 .NET 버전 찾아보기 | .NET

Linux, macOS 및 Windows용 공식 .NET 다운로드. .NET은 다양한 유형의 애플리케이션을 빌드하기 위한 무료 플랫폼 간 오픈 소스 개발자 플랫폼입니다.

dotnet.microsoft.com

 

* 프로토타입(prototype)

   플레이, 테스트, 개선이 가능한 초기 버전의 게임이다

   최종 결정을 내리기 전,

   초기에 다양한 아이디어를 빠르게 실험해 볼 수 있기 때문에 게임을 변경할 수 있도록 해 주는 매우 유용한 도구이다

 

* HUD(Head-Up Display)

   화면 상단이나 특정 위치에 고정된 UI

 

* 클래스(class)로부터 만든 새 객체, 인스턴스(Instance)

   ㄴ 클래스로부터 객체를 생성하는 것을 클래스를 인스턴스화 한다고 표현한다

 

* 클래스 다이어그램은 클래스의 모든 필드와 메서드를 포함한다

   ㄴ 필드와 메서드를 묶어 클래스 멤버(class member)라고 부른다

 

* 메서드는 객체의 행동을 나타내고, 필드는 객체의 상태를 나타낸다

   객체의 동작은 메서드로 정의되고, 객체는 필드를 사용해 자신의 상태를 관리한다

 

* static 키워드를 사용하면 클래스의 필드나 메서드를 인스턴스 없이도 이 클래스의 멤버에 접근할 수 있다

   즉, static 필드는 하나의 사본만 존재하며, 모든 인스턴스가 이를 공유한다

 

* 클래스를 쓰는 이유

   자신의 상태(데이터)를 저장하고 관리해야 하는 객체가 필요할 때 사용

 

* 힙(heap)

   C#에서는 모든 객체는 참조 타입이며,

   객체는 new로 생성하여 힙(heap)에 저장되며, 해당 객체의 참조(주소)는 스택에 저장되어 반환된다

 

* 리팩터링(refactoring)

   코드의 기능은 그대로 유지하면서 구조를 수정하는 일을

 

* 객체 이니셜라이저(initializer)

   객체 생성 후 속성을 한 줄로 설정할 수 있어 가독성이 높고 코드 작성 시간이 줄어든다

Human shine = new() { age = 30, name = "Shine" };

 

   (+) C++에서는 생성자 초기화 목록(initializer list)을 통해 setter 없이 멤버 변수를 초기화할 수 있다

 

   ✅ 결국 이니셜라이저는 영어 단어 의미 그대로 초기값을 설정하는 문법이라고 이해하면 된다