본문 바로가기

전체 글

(74)
[ASP.NET Core] ASP.NET Core 첫 시작 보호되어 있는 글입니다.
[ASP.NET Core] ASP.NET Core란 무엇인가 보호되어 있는 글입니다.
[쿠버네티스] 데비안 계열 리눅스 v1.30 설치법 설치법데비안 계열 리눅스에서 현 시점(2024/07) 최신 버전인 v1.30 버전을 다운 받기 위해서는 다음과 같은 작업을 진행해야 합니다.apt 패키지를 업데이트하고,  쿠버네티스 apt 저장소를 사용하는데 필요한 패키지를 설치합니다.sudo apt-get update# apt-transport-https는 더미 패키지일 수 있습니다. 그렇다면 해당 패키지를 건너뛰어도 됩니다.sudo apt-get install -y apt-transport-https ca-certificates curl gpg쿠버네티스 패키지 저장소의 공개 서명키를 다운로드합니다.# `/etc/apt/keyrings` 디렉토리가 존재하지 않는 경우, curl 명령 이전에 디렉토리를 생성해야 합니다.# sudo mkdir -p -m ..
[DataBase] Why? 데이터베이스 개발을 하다보면, 당연하게도 거의 매일 듣는 키워드로는 데이터베이스가 있다. 그렇다면, 왜 데이터를 저장하는데 데이터베이스가 필요한 것일까? 그냥 파일에 쓰는 것도 좋지 않을까? 프로그램을 사용하는 목적은 다양하다. 그리고 각각의 프로그램은 다양한 데이터를 가지고 있다. 그렇기 때문에, 만약 우리가 파일에 데이터를 저장한다고 가정한다면, 그 새로운 데이터를 저장하기 위한 새로운 견적서가 날아올 것이다. 그 때마다, 우리는 그에 맞는 파일에 쓰는 기능을 개발하고 클래스를 개발하고, 데이터를 가공하거나 잘 들고 오기 위한 튜닝 등등에 개발 공수가 꽤나 많이 들어갈 것이다. 그렇기 때문에, 데이터에 대한 다양한 시선으로 보았을 때, 이런 부분은 공통화되고 또 데이터를 체계적으로 관리하기 위해서 우리는 데이터베..
[C#] Thread 멀티 스레드에 대한 설명은 사실 예전에 C++로 설명하기 전에 간단하게 설명한 포스트가 있습니다. 이것을 간단하게 참조해주시면 되겠습니다. https://frokdevelop.tistory.com/43 [서버] 멀티스레드 멀티스레드는 서버 입장에서는 필수적인 요소임. 문제는 멀티스레드 프로그래밍을 하는 순간부터 굉장히 많은 문제가 생김. 예로 들어 내가 타이쿤 게임을 한다고 가정하자. 그리고 한식, 일식, frokdevelop.tistory.com 위의 글을 간단하게 설명하자면 결국 컴퓨터가 한 번에 많은 일을 동시에 처리할 수 있게, 스레드라고 부르는 작은 프로세스에 일감을 나눠주는 식을 말하는 겁니다. C#은 다행히도 최근 전까지만 해도(사실 좀 되긴 했지만) 그 OS에서 제공하는 API를 빠삭하게 ..
[C++/게임서버] WSAEventSelect 보호되어 있는 글입니다.
[C++/게임서버] select 모델 지난번 포스트를 통해서 단순히 논블로킹을 적용하고 while문으로 도배를 하는건 굉장히 CPU를 낭비하는 일이라고 소개를 했다. 그렇기 때문에 다양한 입출력 모델을 사용한다고 이야기를 했다. 오늘은 select 모델을 소개하겠다. Select 모델은 select 함수를 기반으로 한 모델이라 이름이 이렇게 명명되었다. 사실 뒤에서 소개할 IOCP 모델하고 비교를 한다면, 서버 입장에서는 사용하기 애매한 물건이다. 하지만 클라이언트 입장에서는 자신만 처리할 필요가 없기 때문에, IOCP같은 고급 기법까지 갈 필요도 없다. 사실 모기 하나 잡겠다고 다연장 로켓포를 날리는 수준이다. 그래서 사실 클라이언트에서 비동기로 쓰기 좋은 모델이라 볼 수 있겠다. 그리고 윈도우/리눅스 둘 다 사용되는 모델이기도 하다. (..
[C++/게임서버] 논블로킹 소켓 사실 지금까지 쓴 소켓은 블로킹 소켓이다. 이에 대한 증거 함수는 다음과 같다. accept : 접속한 클라이언트가 있을 경우 connect : 서버 접속 성공했을 경우 send, sendto : 요청한 데이터를 송신 버퍼에 복사했을 때 recv, recvfrom : 수신 버퍼에 도착한 데이터가 있고, 이를 유저 레벨에 복사했을 때 문제는 이 함수들은 이에 대한 역할을 하기 전까지 계속 멈춰있다는 점이다. 그래서 이를 해결하기 위해서 예로 들어 5000명이 온다고 가정할 때 5000개의 스레드를 만드는 것은 굉장히 좋지 않은 발상이란 것이 느껴진다. 그래서 나온 개념이 논블로킹이다. 사실 이것이 모든 것을 해결해주지 않는다. 암튼 진행해보자면, windows 기준에서 이를 어떻게 만들 것인가? 일단 소켓..