엘키의 주절 주절

소소한 개발 이야기

온라인 코드 리뷰에 대해서

코드 리뷰. 말만 들어도 시간도 많이 쓰고, 리뷰 중에 삼천포로 빠지기 쉬운 그런 절차. 졸려서 반쯤 잠든 상태에서 동의 하는척하고, 나중에 이 코드 누가짰냐고 리뷰때 건너뛴 코드 아니냐고 말하기 쉬운 절차. 그래서 몇번씩 오프라인 코드 리뷰를 하다가, 바빠지면 건너뛰고 그러다보면 자연스레 흐지부지되곤 하는 바로 그 절차다. 또한 눈에 보이지 않는...

게임 서버에서의 DB 사용 전략 - 1. DB를 사용하는 방식

게임 서버에서 DB를 사용하는 것은 당연히 필요하다. 여러번 언급한대로 게임 서버에서는 정적 데이터만으로 서비스를 구성하는 것이 애초에 거의 불가능 하기 때문에 그렇다. 그렇다면 게임 서버에서 DB를 다루는 방법은 어떻게 나뉠까? 극단적으로 저장소로서만 사용 게임 서버 메모리에 오랜 기간 캐싱하다, 특정 간격, 특정 이벤트 때만 기록 ...

게임과 웹에서 다른 프로토콜 하위 호환

Node.js가 모바일 게임에서 많이 쓰이며, 처음 의아했던 것은 v1, v2, v3와 같은 버전의 API 구조에 포함되었다는 점이다. API가 개별적으로 동작하고, 하위호환을 지원하는 것인데, 왜 게임은 이런 하위호환을 하지 못하는가? 우선 웹도 하위호환을 딱히 지원하지 않았던 과거가 있으나, REST API가 등장하면서 하위호환을 지원하는 Op...

Docker로 소켓 서버를 운용하기 어려운 이유

꽤 많은 분들이 물어보셨다. 그래서 왜 소켓 게임 서버는 Docker 도입 어려워요? Docker 자체를 공부하고 사용해본 결과…! 바로 메모리에 상태를 보유하고, 이를 기반으로 응답성을 끌어올리는 방식이 게임 서버의 기본 전제인데, Docker는, 아주 더 정확히는 K8S류의 관리 시스템 다수가, 서비스를 언제 올렸다 내려도 상관없게끔 구현된 ...

C# VS Java

내가 가장 오래 사용한 언어는 단연 C++이다. 게임 업계에선 꽤나 오랜 기간 이견이 없었던 언어이다. 이후 루비 파이썬 등을 접했고, 그리고 C#, 자바, 자바 스크립트를 사용해가며 감상이 많았다. 이 중 가장 많은 대중적인 비교를 당하는 것이 바로 C#과 자바라고 할 수 있다. C++처럼 실수하기 쉽고, 실수의 리스크가 큰 어려운 언어에 비...

Notion (노션) 추천

모든 기록을 남기는 곳을 OneNote에서 Notion으로 변경하게 됐다. 여러가지 이유에서 였는데, 먼저 EverNote → Google Drive → OneNote → Notion 으로 오게된 이야기를 해보고자 한다. 우선 Evernote를 사용할 당시를 보면, 우선 간단한 메모, 스티키 노트 (포스트잇) 용도로써 사용을 시작했다 아무래도 모...

Ocelot - ASP.NET CORE API Gateway

나는 2년 정도 자바로 외도(?)를 하다 왔다보니, 자바 생태계의 패키지나 프레임 워크를 접하고 사용해보게 되었었는데, 그 중 API Gateway 및 서비스 구성 관리용 4종 세트인 Netflix Zuul, Hystrix, Ribbon, Eureka를 사용하게 됐었다. 그러던 중 다시 게임 개발을 하게 되면서, C#으로 모든 서버군을 구축하게 되었...

트랜잭션 이야기 - 개발자 마다 다른 DB를 대하는 자세

내 입장에서 웹 개발자 분들과 같이 협업하고 대화하면서 아이러니 했던 두가지가 있었다. 10년도 더 넘게 지난 얘기지만, 한가지는 비동기 응답이 어렵다는 이야기였고, 그렇다보니 여러가지 고민들 중의 해결책인 Ajax라는 이름으로 화두가 되고 있다는 얘기였다. Native Socket를 다루는게 너무나도 당연하던 나에겐 어째서 비동기 응답을 받을 ...

Kubernetis 이야기

개요 쿠버네티스가 이미 너무나 당연한 대세가 된지 꽤 됐으나… 여러가지 속설과 사용해본 분들의 단편적인 감상만으로는 부족했다. 나는 작년이 되서야 제대로 사용해보게 되었는데, 그에 대한 감상과 경험담을 써보도록 하겠다. 직접 사용해본 결과, 확실히 어려운 부분이 존재는 하지만, 대부분의 학습 곡선이 네트워크 구성이고, 나머지 구성요소는 어차피 도...

Docker 이야기

개요 도커가 대중화된지 꽤 오래됐으나 배포 빈도/ 새 환경 구성, 오토 스케일링이 덜 필요한 환경에서 일할 수록 도커의 필요성이 상대적으로 우선 순위에서 밀리는 일이 비일비재했다. 나 역시 그랬고, 가볍게 사용해보거나 일부 서비스에서 도입했을 뿐이었다. 대 다수 개발자들은 아직도 서버를 새로 띄울 때 Dockerfile을 작성하고 Docker위에 ...