Programming language/C#(6)
-
[C#]닷넷(.Net)의 구성 요소
서론 이전에 올린 [C#]닷넷(.Net)에 관하여 에서 간단한 소개를 해봤다면, 오늘은 .Net이 여러 언어로 개발된 소프트웨어를 여러 환경에서 실행될 수 있게 해주는 구성 요소들에 관하여 적어보려 합니다. 구성 요소에는 이전 글에서 자세히 설명하는 별도의 글을 올리겠다 한 CLI, CLR 등이 포함됩니다. .Net의 구성 요소와 동작 구조 대표적인 구성 요소를 단순히 나열해 보겠습니다. CLI : Common Language Infrastructure, 공통 언어 기반 CIL : Common Intermediate Language, 공통 중간 언어 CLS : Common Language Specification, 공용 언어 규격 CLR : Common Language Runtime, 공용 언어 런타임 ..
2022.08.09 -
[C#]닷넷(.Net)에 관하여
서론 C# 은 .Net 기반으로 돌아가는 언어입니다. 이 말인즉슨, C#을 쓴다 = .Net을 쓴다 와 거의 같은 말일 수 있습니다. 윈도우 플랫폼을 여러 언어로 개발 가능하게 해주던 .Net의 과거. 지금은 크로스 플랫폼을 개발할 수 있게 해주는 마이크로소프트(MS)에서 제공하는 개발/실행 환경인 .Net의 현재와 미래에 대해서 간략하게 알아보겠습니다. .Net 관련 여러 명칭 개발자가 아니더라도, 윈도우 환경을 경험하신 분들이라면. Net Framework(닷넷 프레임워크)나 .Net Core(닷넷 코어)같은 것들을 종종 봤을 수 있습니다. 이런 것들을 설치해야 특정 프로그램이 실행되거나, 없어서 오류가 나는 경험들 말입니다. .Net Framewrok혹은 .Net Core 같은 것들을 검색하면 비슷..
2022.08.07 -
[C#]컬렉션(Collection)
서론 C++에 STL이 있다면, C#에서는 데이터 원소들을 저장, 관리하는 컬렉션이 있습니다. 이번 글에서는 C#의 데이터 저장과 처리를 위한 자료구조 컬렉션에 대해서 다뤄보려 합니다. 제네릭/논제네릭 컬렉션 (Generic/Non-Generic Collection) 이전에 [C#] 제네릭(Generic)에 관한 글을 쓴 적이 있습니다. 컬렉션을 알기 전에, 컬렉션에 두 가지 타입이 있다는 걸 먼저 말하고 싶습니다. 컬렉션이 Generic/Non-Genrice이냐는 컬렉션에 담기는 데이터(원소) 타입이 명시적 인지 아닌지에 따라 다릅니다. 다른 부가적인 사항들 말고, 핵심적인 것 하나만 알면 됩니다. 데이터의 타입이 명시적이냐는 겁니다. 아래 예시를 보겠습니다. //Generic collection : ..
2022.04.19 -
[C#]제네릭(Generic)
서론 이전에 쓴 글 중 [C#] Boxing/Unboxing (박싱/언박싱)에 관한것이 있었습니다. 이때 한 이야기 중, 타입이 명시적이다라는 것이 있었는데요. 오늘은 이와 연관이 깊은 제네릭(Generic)에 관해 써보려 합니다. 제네릭(Generic) 제네릭(Generic)의 사전적 의미는 '포괄적인, 통칭(총칭)의'라는 뜻입니다. 이 말 고도 '일반적인'이라는 뜻 도 있습니다. 프로그래밍적으로 보자면, '아직 정해지지 않았지만, 어쨌든 타입을 총칭'한다라는 뜻이 아닐까 싶습니다. 예를 들어 보겠습니다. 아래는 싱글톤객체를 instance로 생성하는 일반적인 로직입니다. public class CustomSingleton : MonoBehaviour { private static object _syn..
2022.04.14 -
[C#]가비지 컬렉터(Garbage collector)
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 예전 글 중에 [Android] 가비지 컬렉터(Garbage collector)에 관한 글을 쓴 적이 있습니다. Java와 같은 Managed 언어인 C#에서도 메모리 관리를 도와주는 가비지 컬렉터가 존재하는데요. Android 가비지 컬렉터와는 어떤 게 다른 것인지, 알아보고자 합니다. 가비지가 무엇인지, 컬렉터는 무슨 일을 하는 녀석인지 등은 동일하기에 별도로 다루지 않고, C#의 가비지 컬렉터는 가비지 수집을 어떻게 하는지 방식 위주로 다뤄보려 합니다. C# 가비지 컬렉터의 컬렉션 방식 C#(. Net환경)의 가비지 컬렉터는 어떤 방식으로 가비지를 수집할까요? 아래 설명은 가비지를 판단하고 회수하는 법에 관한 간단한 설명입니다. 프로그램..
2022.04.12 -
[C#]Boxing/Unboxing (박싱/언박싱)
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 C#을 이용하여 코딩을 하면서, 혹은 유니티 스크립트를 짤 때 'object'라는 자료형을 자주 봤을 겁니다. 이 자료형은 어떤 타입의 변수든 할당하여 사용할 수 있는 녀석입니다. object number = 10; objcet str = "CodingGom"; 위처럼 같은 자료형인 것 같은데, 다른 값을 사용할 수 있습니다. 마치 C/C++의 'auto' 나 C#의 'var'처럼 말이다. 물론 같은 것 이라거나, 비슷한 개념이라는 건 아닙니다. 전혀 다른 개념이죠. auto, var 키워드는 타입을 추론하는 자동 변수들입니다. 런타임이 아닌 컴파일 단계에서 타입이 정해지도록 지정해 놓는 녀석들인 것이죠. 즉, 타입을 '명시적'으로 지정하지 ..
2022.04.12