1. 스레드의 전역 변수 접근 아래의 코드를 보면 ThreadMain은 누군가가 전역변수 _stop을 true로 바꾸지 않으면 계속 무한 루프를 돌아서 프로세스가 끝나지 않는 함수이다. 1) Main 함수에서 Task를 이용하여 ThreadMain을 실행하는 스레드를 생상한다.(ThreadPool 중 하나의 Thread에게 ThreadMain을 실행하도록 함) 2) 후에 Main 함수(Main Thread)를 1초 동안 잠들게 한다. (Task 스레드가 실행하도록) 깨어나면 메인 스레드가 _stop을 true로 바꾼다. 이때 Task 스레드가 while문에서 빠져나올 수 있다 3) t.Wait()(Thread에서 Join 함수와 같은 역할)을 통해 Task t가 종료되기를 기다린 후 메인 함수 종료하도록..
1. 멀티쓰레드의 기본 개념 - 컴퓨터에서 실행되는 여러개의 프로그램(프로세스)가 실행됨, 하지만 CPU 코어는 단 하나의 프로세스만을 구동할 수 있음 -> 프로세스 내에서 실행되는 흐름의 단위를 스레드(Thread)라고 함, 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램에 경우에 따라 둘 이상의 스레드를 동시에 가지기도 한다. - CPU가 여러개의 프로그램의 스레드를 아주 짧은 시간 내에 번갈아가면서 실행시켜서 프로그램들이 동시에 사용되는 것처럼 느끼게 하는것이 멀티쓰레드(Multi Thread)이다. ex) 그림장, 메모장 등의 프로그램을 구동시키면 사용자는 동시에 프로그램이 실행되는 것처럼 느껴지지만, 실제로 CPU는 프로세스 하나의 스레드를 번갈아 가면서 실행시킴. 2. 커널 ..
1. 서버란 무엇인가? : 다른 컴퓨터에서 연결이 가능하도록 대기 상태로 상시 실행중인 프로그램 1) Web Server (aka. HTTP Server) ex) 테이크아웃 포장 전문 식당: 손님이 음식을 받아서 떠나면, 그 후론 연락이 끊긴다. -> 질의/응답 형태: request/response 형태 * 사용하게 되는 경우 - 드물게 정보를 요청/ 갱신 한다. - 실시간 Interaction이 필요하지 않음: 실시간 채팅 등이 필요 x - 식당에서 손님한테 먼저 접근할 일이 없다 - 주문 후 손님이 바로 떠나면, 손님의 상태를 당분간 잊고 지낸다(Stateless) => 게임 진행 후, 단순히 결과만을 저장할때 웹서버를 사용하면 편리 프레임워크를 하나 골라서 사용 ASP.NET Spring(Java)..
Coroutine 개념 : 굉장히 큰 작업을 하나의 로직으로 해야할 때, 한번에 처리하기엔 너무 많은 시간이 든다. -> 분할하여 작업하여 일정 시간 내에 끝내야 할 때 어떻게 처리해야하는가? ex) 아래의 코드를 보면 일정 작업을 1000000 만큼 반복하여 진행하고 있다. 10000번씩 끊어서 실행시키고자 할때 어떻게 해야하는가? void VeryComplicated() { for (int i = 0; i 일시 정지를 시킨 후 모든 상태를 복원된 상태로 시작을 할 수 있음 1. 다음과 같이 CoroutineTest class를 생성하여 실험해 본다. CoroutineTest는 IEnumerable을..
Login Scene 이전에 새롭게 만들었던 Login Scene을 위한 scripts 파일을 만든다. 1. Scripts -> Scenes 폴더 아래에 LoginScene.cs 파일을 만든다. 2. 그리고 위에서 진행했던 것과 같이 Empty Object를 생성하여 이름을 @Scene으로 한 후 LoginScene.cs를 component로 하여 추가한다. 3. LoginScene.cs 에서 다음과 같이 BaseScene을 상속 받도록한 후 추상화 함수( Init함수와 Clear 함수 )를 구현한다. 현재 Scene이 Login이기 때문에 Scene Type을 Login으로 한다. * LoginScene.cs using System.Collections; using System.Collections.G..
기존에 PlayerController 부분에 사용하고 싶은 UIManager 등을 넣어서 사용하였다. ▶ Scene에 배치되어있는 것이 Unity Chan 밖에 없었기 때문에 ▶ 누군가가 Manager 등의 Scene에 배치되어야할 component 부분을 가지고 선봉대 역할을 해야한다. => 새로운 Object가 선봉대 역할을 해줘야한다. 선봉대 1. Scripts -> Scenes 폴더를 만들어서 Scene에 관련된 scripts를 넣는다. 해당 폴더 아래에 BaseScene.cs 파일을 만든다. 해당 파일에 Init() 함수와 Clear 함수를 만드는데 Clear 함수는 abstract 로 선언하여 추상화 메서드를 가진 추상화 클래스로 바꾼다. *BaseScene.cs using System.Col..