프로그래밍/C#
[C#] C#으로 네이버웍스 봇 만들기
0. 기본 세팅 1. JWT 발급 코드 작성 및 인증서 rsa로 변환 2. 해당 토큰으로 코드를 받고 코드로 채널에 post 2.1 포스트맨으로 테스트 3. 잘 되면 코드에 올리고 봇 돌리기 4. 토큰 만료시간은 24시간 + request 응답하는 기능의 정리해서 올려야징
[C#] 쓰레기 수집기 (Garbage Collector)
1. 사전 학습 using System; class Program { public static void Foo() { int n2 = 0; // 1초 후 } static void Main() { int n1 = 0; // 1시간 경과 Foo(); } } Q. 누가 더 오래 살 수 있을까? 코드를 보기 전 위의 Case를 살펴보자. Case 1의 경우 사람의 경우이다. 사고를 제외하고 객관적으로 오래 살 수 있는건 A이다. 사람은 보통의 경우 젊은 사람이 더 오래 살 것이다. Case 2의 경우 프로그램의 경우이다. 위의 1번 Case는 최근에 태어난 사람이 오래 살게 되는데 프로그램은 어떨까? 위의 코드에서 Main에서 n1을 만들고 1시간이 경과한 후 Foo가 실행 됐다고 생각해보자. Foo를 호출해도..
[C#] Dispose() 메소드
1. 핵심 정리 using System; using System.IO; class Program { static void Main() { int[] arr = new int[] {1, 2, 3, 4, 5}; FileStream fs = new FileStream("a.txt", FileMode.CreateNew, FileAccess.ReadWrite, FileShare.None); // ... fs.Dispose(); } } C와 C++은 위와 같이 new를 통해 자원을 할당하면 반드시 자원을 반납해야 한다. C#은 자동으로 메모리 관리를 해주기 때문에 new로 자원을 할당해도 반납하지 않아도 된다. 하지만 C#에서도 파일 같은 것을 오픈하면 Dispose를 통해 반납을 해주어야 한다. 왜 Dispose..
[C#] Task 클래스
1. 핵심 정리 using System; using System.Threading; using system.Threading.Tasks; class Program { public static void Foo() { Console.WriteLine($"Foo : {Thread.CurrentThread.ManagedThreadID}"); Thread.Sleep(3000); } public static void Main() { Thread t = new Thread(Program.Foo); t.Start(); Task t = Task.Run(Program.Foo); Console.ReadKey(); } } 스레드를 만들어 사용하는 코드이다. 위의 코드에서 12~13번 라인의 코드와 15번 라인의 코드는 동일한..
[C#] 스레드 클래스 멤버
1. Thread 클래스 멤버 using System; using System.Threading; class Program { public static void F1() { Console.WriteLine("F1 Start"); Thread.Sleep(1000); Console.WriteLine("F1 End"); } public static void Main() { Thread t1 = new Tread(F1); t1.Start(); Console.WriteLine($"{t1.ManagedThreadID}"); Console.WriteLine($"{t1.Priority}"); Console.WriteLine($"{t1.IsThreadPoolThread}"); Console.WriteLine($"{t1...
[C#] 스레드 개념 (Thread)
1. 사전 개념 using System; using System.Threading; class Program { public static void Foo() { Console.WriteLine("Foo Start"); Thread.Sleep(10000); Console.WriteLine("Foo End"); } public static void Main() { Foo(); } } 위의 그림과 같이 컴퓨터에는 HDD / SSD와 같은 저장장치와 MEMORY가 있다. 보통 저장장치에 확장자 exe와 같은 것들이 있는데 이러한 것을 통들어 프로그램이라 부른다. 그리고 프로그램을 실행시키게 되면 컴퓨터가 프로그램을 실행시키기 위해 메모리에 올리게 된다. 이렇게 메모리에 올라와 있는 상태를 프로세스라고 한다. 모..