Game Develop/C# Programming(22)
-
C# Practicing(가비지 컬렉션)
이번 포스트가 C# Practicing의 마지막 포스트가 될 것이다. 마지막으로 알아볼 주제는 가비지 컬렉션이다. 가비지 컬렉션 (Garbage Collection) : 여러가지 이유로 생기는 쓰레기를 알아서 치워준다. - Garbage : 쓰레기. - 쓸데없이 메모리를 차지하는 데이터, 객체 등을 말함. - 쓰레기를 치워서 메모리를 절약하지만, 쓰레기를 치우는 일 자체가 힘든 일이다 (컴퓨터의 렉을 유발) 가비지 컬렉션은 여러 세대로 나뉜다. 세대별 가비지 컬렉션 - 세대별로 객체를 검사한다. 0 세대, 1 세대, 2세대 - 0 세대에 메모리가 꽉 차면 0 세대를 검사함. 쓰레기가 아닌 객체는 다음 세대로 넘어감. - 1 세대에 메모리가 꽉 차면 1 세대를 검사함. 쓰레기가 아닌 객체는 다음 세대로 넘..
2023.10.24 -
C# Practicing(파일 입출력)
이번 시간은 파일 입출력에 대해 알아보자 파일 입출력 : 파일 입력, 파일 출력 텍스트 파일 입출력. 텍스트 파일 출력 = 텍스트 파일을 윈도우로 출력함. 텍스트 파일을 만듦. 텍스트 파일 입력 = 텍스트 파일의 내용을 읽어서 도스창에 보여지게 만듦. 텍스트 파일을 불러옴. ※ 콘솔창에서 보여지도록 하는게 입력이다. 유의하자!! 파일 입출력을 위해선 아래와 같은 네임스페이스를 불러와야한다. System.IO : IO = Input/Output : 입출력 다음은 파일 입출력을 위한 명령어 중 주로 쓰이는 것들을 적어놓았다. FileMode Append : 파일이 존재하면 파일을 열고 맨 끝부분부터 시작. 파일이 없으면 생성. Open : 해당하는 경로의 파일이 존재하면 열기. 존재하지 않으면 예외 발생 O..
2023.10.24 -
C# Practicing(스레드)
이번 시간은 스레드에 대해서 알아보려고 한다. Thread 스레드 : 운영체제가 CPU 시간을 할당하는 기본 단위이다. 스레드가 여러 개 = 여러 가지 일을 동시에(따로 따로) 처리할 수 있다는 얘기가 된다. 먼저 스레드를 사용하기 위해선 네임 스페이스가 필요하다. 스레드의 생성자는 매개변수로 메서드를 받는다. 그렇기 때문에 간단한 메서드를 만들어준다. 1초마다 한 번씩 실행이 된다. 다음은 Thread.sleep(1000을 쓰지 않았을때의 실행 결과다) 순식간에 10까지 찍혀버렸다.. 자 이 스레드를 정지키시는 데에는 두 가지 방법이 있다. 스레드 정지 Thread.abort() : 이 친구는 C# 스레드에 도가 트지 않은 이상 사용하지 않는다. 프로그램에 심각한 오류가 생길 수 있다. Thread.I..
2023.10.24 -
C# Practicing(C#의 자료구조)
오늘은 Insert 메서드의 마지막 문장 arr = resultArr;를 ref를 쓰면 왜 바꿔줄 수 있는지 자료구조로 설명해보겠다. C#의 메모리 영역은 크게 4가지로 나뉜다(Stack, Heap, Data, Code). 오늘 설명할 것은 이중 Stack과 Heap으로 설명할 수 있다. 그렇다면 Stack 영역과 Heap 영역은 무엇일까? Stack 영역 https://stillchobo.tistory.com/119 값 형식(Value Type)이 들어가는 메모리 공간이다. 일반적인 value type인 int, char, bool 같은 것이 있다. (string은 reference type이다) 사용자가 선언한 struct도 value type으로 stack에 저장된다. 선언되었던 코드 블록이 끝나면..
2023.10.24 -
C# Practicing(Generic Programming2)
오늘은 데이터 형식만 다른 메서드를 추가하지 않고도 다른 데이터 타입의 변수를 사용할 수 있는 메서드를 만들어 보려고 한다. 저번 시간에 만들었던 메서드를 다시 가져와 보자 이를 1번 코드라하겠다. 자 우리는 저번 시간에 int형 배열에 int형 변수를 집어넣는 insertNum 메서드를 만들었다. 하지만 char 형 배열에 char 형 변수나 string, float 등의 데이터는 넣어줄 수 없었다. 그렇다면 데이터 형식만 다른 메서드를 만들 수 밖에 없나? 다행히도 우리는 일반화 프로그래밍을 통해 메서드 하나만으로 int가 아닌 다른 데이터 타입의 변수도 함께 사용할 수 있다. 일반화 프로그래밍 일반화란 여러 개체들이 가지고 있는 공통된 특성을 부각시켜 한 개념이나 법칙을 성립시키는 과정 혹은 그 결..
2023.10.24