분류 전체보기 366

[C#] 오버라이딩 정리

* 오버로딩 (Overloading)   같은 이름, 다른 매개변수로 메서드를 여러 개 정의(컴파일 타임 다형성)* 오버라이딩 (Overriding)  부모로부터 상속받은 메서드를 자식 클래스에서 재정의(런타임 다형성)* sealed   더 이상 오버라이딩을 허용하지 않음(상속 제한) * 언어별 오버라이딩 비교 C++JavaC#기본 상속 구조다중 상속단일 상속 + 다중 인터페이스단일 상속+ 다중 인터페이스오버라이딩 키워드C++11 이후 override 키워드 지원@Overrideoverride강제성 선택 사항 선택 사항이지만IDE나 컴파일러가 경고 권장함 필수오버라이딩 목적- 기능 재정의- 다중 상속의 모호성 해결- 기능 재정의- 기능 재정의 * abstract와 virtual 비교(C# 기준)  abs..

IT공부 2025.04.11

[MMORPG 게임 개발(C#, Unity)] Part 1. 객체 지향

* 해당 글은 게임 프로그래머 입문 올인원 강의를 보고 정리한 글입니다   https://www.inflearn.com/roadmaps/355#introduce MMORPG 게임 개발, 켠김에 끝판왕까지! (유니티 + C#) 로드맵 - 인프런C#, Unity 스킬을 학습할 수 있는 게임 개발 로드맵을 인프런에서 만나보세요.www.inflearn.com    * 절차적 프로그래밍(Procedural Programming)   함수를 이용한 프로그래밍 패러다임 * 객체 지향 프로그래밍(Object-Oriented Programming, OOP)    프로그램을 수많은 객체라는 기본 단위로 나누고 이들의 상호 작용으로 서술하는 방식   속성 + 기능   은닉성, 상속성, 다양성 * Java는 new를 객체 생..

[C#] 문자열 리터럴 vs 참조 타입 문자열

🔠 1. string은 어떤 타입인가?string은 참조 타입 (Reference Type)System.String 클래스의 aliasimmutable 불변  🧳 2. 문자열 리터럴 vs 힙에 생성된 string 참조 타입 객체   문자열 리터럴 "..."힙에 생성된 string 참조 타입 객체 new string("...") 생성 시점컴파일 타임에 intern pool 등록런타임에 힙에 새 객체 생성메모리 위치Intern Pool (공유)Heap (새로운 인스턴스)ReferenceEquals 비교 결과true (같은 리터럴이면)false (항상 다른 참조)  📂 3. Intern Pool이란?.NET 런타임(CLR)이 중복된 문자열을 하나만 저장해서 재사용하는 공용 문자열 저장소 [사용 이유](1..

IT공부 2025.04.10

[시작하세요! C#10 프로그래밍] 3장. C# 기초

* 해당 글은 시작하세요! C#10 프로그래밍 도서를 읽고 정리한 글입니다.   https://product.kyobobook.co.kr/detail/S000200047759 시작하세요! C# 10 프로그래밍 | 정성태 - 교보문고시작하세요! C# 10 프로그래밍 | 이 책의 목표는 여러분이 C#을 이용해 프로그래밍 기초를 탄탄하게 다질 수 있게 하는 것이다. 이를 위해 C# 언어의 최신 버전인 C# 10의 문법까지 구체적인 예제와product.kyobobook.co.kr    * 정수형 기본타입   sbyte - System.Sbyte   byte - System.Byte   short - System.Int16   ushort - System.UInt16   int - System.Int32   ui..

IT공부/IT서적 2025.04.10

[시작하세요! C#10 프로그래밍] 1장. 들어가면서, 2장. 개발 환경 준비

* 해당 글은 시작하세요! C#10 프로그래밍 도서를 읽고 정리한 글입니다.    https://product.kyobobook.co.kr/detail/S000200047759 시작하세요! C# 10 프로그래밍 | 정성태 - 교보문고시작하세요! C# 10 프로그래밍 | 이 책의 목표는 여러분이 C#을 이용해 프로그래밍 기초를 탄탄하게 다질 수 있게 하는 것이다. 이를 위해 C# 언어의 최신 버전인 C# 10의 문법까지 구체적인 예제와product.kyobobook.co.kr    * 닷넷 프레임워크(.NET Framework)   마이크로소프트에서 발표한 응용 프로그램 개발 환경으로 프로그램 가상 머신에 속한다 * CLR(Common Language Runtime)   가상머신 역할 * 공통 중간 언어(..

IT공부/IT서적 2025.04.10

[ETC] 자바는 JVM 생략 OK, C#은 왜 .NET까지 묶일까?

☕ 자바는 "JVM 포함"이 당연한 생태계   자바는 애초에 "Write Once, Run Anywhere"를 목표로 만들어진 언어다   즉, 어디서든 돌아가려면 당연히 JVM이라는 실행 환경이 전제가 되어야 했다    그래서 자바라는 의미에 사실상 자바 + JVM + 표준 라이브러리가 통째로 담겨있는 거고,   이게 너무 당연하게 묶여 있어서 굳이 "자바 + JVM"이라고 말하지 않는다   그냥 자바라고 한다 JUST 자바 😎😎😎  🧩 자바는 JVM 하나면 끝, C#은 선택부터 고민   C#을 사용한다고 하면, 자연스럽게 따라붙는 게 하나 있다   바로 실행환경이다!    자바는 JVM 하나면 끝인데,   C#은 .NET Framework, .NET Core, Mono, Unity 등 실행 환경..

IT공부 2025.04.10

[MMORPG 게임 개발(C#, Unity)] Part 1. 데이터 처리, 코드의 흐름 제어

* 해당 글은 게임 프로그래머 입문 올인원 강의를 보고 정리한 글입니다   https://www.inflearn.com/roadmaps/355#introduce MMORPG 게임 개발, 켠김에 끝판왕까지! (유니티 + C#) 로드맵 - 인프런C#, Unity 스킬을 학습할 수 있는 게임 개발 로드맵을 인프런에서 만나보세요.www.inflearn.com    https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/builtin-types/integral-numeric-types 정수 숫자 형식각 정수 숫자 형식에 대한 범위, 스토리지 크기 및 용도에 대해 알아봅니다.learn.microsoft.com https://learn.microsoft..

Visual Studio에서 C# IL 코드 보는 방법 정리

🔍 목표C++의 디스어셈블리처럼, C# 코드도 실시간으로 중간언어(IL)를 보고 싶었다  ❓ Visual Studio에서 가능한가?   Visual Studio는 디버깅 중에는 기계어를 볼 수 있지만, IL 코드 자체를 분석하거나 확인하는 기능은 없다  🔧 시도해 본 Visual Studio 대안들   ildasm과 확장 관리에서 설치한 ILSpy를 시도해봤다   하지만 모두 dll 또는 exe 파일을 직접 열어야만 IL 코드를 확인할 수 있었다    정리하자면,    Visual Studio에서는 매번 빌드 후, 그 결과 파일을 다시 열어야 한다는 점이 매우 매우 매우!! 불편했다 😤  https://learn.microsoft.com/ko-kr/dotnet/framework/tools/ildas..

업무_메모 2025.04.09

[MMORPG 게임 개발(C#, Unity)] Part 1. 환경설정, 프로그래밍 OT

* 해당 글은 게임 프로그래머 입문 올인원 강의를 보고 정리한 글입니다   https://www.inflearn.com/roadmaps/355#introduce MMORPG 게임 개발, 켠김에 끝판왕까지! (유니티 + C#) 로드맵 - 인프런C#, Unity 스킬을 학습할 수 있는 게임 개발 로드맵을 인프런에서 만나보세요.www.inflearn.com    * 비주얼 스튜디오 2022 커뮤니티 설치   ASP.NET 및 웹 개발, .NET 데스크톱 개발, Unity를 사용한 게임 개발 반드시 선택 후 설치 * 실습할 때, 최상위 문 사용 안함(T) 체크 * 스크롤 막대 닫기   도구 > 옵션 > 모든 언어 > 스크롤 막대 > 가로 스크롤 막대 표시 체크 해제, 세로 스크롤 막대 표시 체크 해제 https..

[윤성우 열혈 C++프로그래밍] 어셈블리 코드 - Chapter5, Chapter6

* 복사 생성자를 정의하지 않으면,   멤버 대 멤버의 복사를 진행하는 디폴트 복사 생성자가 자동으로 삽입 * 복사 생성자가 호출되는 시점   (1) 기존에 생성된 객체를 이용해서 새로운 객체를 초기화하는 경우   (2) Call-by-value 방식의 함수호출 과정에서 객체를 인자로 전달하는 경우   (3) 객체를 반환하되, 참조형으로 반환하지 않는 경우(즉, 값으로 반환하는 경우) int main(void){008B10C0 push ebp 008B10C1 mov ebp,esp 008B10C3 sub esp,0Ch 008B10C6 mov eax,dword ptr [__security_cookie (08B5000h)] 008B10CB ..

IT공부/IT서적 2025.04.02