엘키의 주절 주절

소소한 개발 이야기

MSA 그리고 API Gateway

내가 웹 서버 개발에 어렵지 않게 적응 할 수 있었던 데에는 웹과 게임 서버간에 의외로 비슷한 요소가 많았던 것이 크게 작용했다. 클라이언트와 서버의 연동이 어떻게 이루어지는가, 사용자에게 개방되는 요소가 무엇 인가, 이벤트를 어떻게 주고 받을 것인가 등등 사실상 이질감이 느껴지는 요소가 아주 많지는 않았다. 또 한가지 비슷한 요소가 있었는데, 백...

윈도우 10 앱 추천

RSS Nextgen Reader https://www.microsoft.com/ko-kr/p/nextgen-reader/9wzdncrfj262?activetab=pivot%3aoverviewtab 3300원을 지불해야 하는 유료 앱. Feedly Desktop 지원 앱 중에...

크롬 확장 프로그램 추천

생산성 Check Plus for Gmail Gmail 알리미 별도의 메일 클라이언트가 없이도 간단히 확인 가능해서 좋다 Google Calander 일정 확인 위젯처럼 씀 일정 등록은 지원하지 않아서 구글 캘린더 웹 페이지 띄워놓고 해야 함 Feed...

안드로이드 앱 추천

멀티미디어 나만의 웹툰 https://play.google.com/store/apps/details?id=com.Naman.Webtoon 웹툰 링크를 모아두는 앱. 원래 모두의 웹툰 썼는데, 마이너한 웹툰 링크 달기 기능이 여기에만 있어서 이걸 쓰게 됨. ...

내가 다양한 언어를 익힌 이유

최근에 이런 질문을 여러 차례 받았다. 왜 그렇게 다양한 언어를 하세요? 나는 C언어로 프로그래밍을 시작했고 자연스레 C++을 하게 됐다. 내가 프로그래밍을 배우던 시기나, 그리고 처음 취업을 했던 2005년 게임 업계에서 게임 개발을 위해선 차선이 없었다. C++을 제외한 언어는 툴 개발이나, 일부 스크립팅에 제한적으로 사용했을 뿐이다....

브루스 테이트의 세븐 랭귀지

(국내에선 더더욱) 마이너하지만, 컨셉이 확실해 장점이 있는 언어들의 개념을 이해시켜주는 책이었다. 루비, lo, 스칼라, 프롤로그, 얼랭, 클로저, 하스켈 7개 언어를 이야기하는데, 그 패러다임이 어떤 것인지 이해하는 데에 쉽도록 짤막하게 잘 요약되어 있었다. 루비 생산성에 특화된 언어 언어의 기능을 ...

100만건이상의 데이터를 다룰때 생기는 RDB성능 이야기

나는 작은 온라인 게임회사에서 커리어를 시작했다. MMORPG 클라이언트 개발자로 시작했던 나는, 길지 않은 시기에 회사가 매각되면서 자연스레 퇴사하게되었다. 그렇게 군입대를 준비하던 중 병역 특례 지정 업체였던 또 다른 온라인 게임 회사에 지원하게 됐고, 면접 과정을 통해 서버 프로그래머 전향을 권유 받으며, 서버 프로그래머로써의 커리어를 시작하게...

샤딩과 레플리카

샤딩을 왜 할까? 샤딩은 단일 논리적 데이터 셋을 다수의 데이터 베이스에 쪼개고 나누는 방법이다. 레플리카란 뭔가? 이중화를 의미하며, 미러링, 백업 디비 등의 용어로도 통용되는데 다양한 방식으로 구현되는 복제를 지칭한다. 샤딩의 목적은 데이터를 분산 저장함으로써, 트래픽...

L4 스위치 도입시 생겼던 이야기

예전 회사 이야기다. 적어도 나는 알지 못하던 상태에서 L4 스위치가 점검 시간에 도입이 됐다. 네트워크 트래픽 제어는 기존 라우터에서 중간 L4 스위치를 하나 더 거치게 됐다. 나로썬 왜 되입되는지 이유를 알 수 없었다. 왜냐면 TCP 서버이다보니 로드밸런싱의 주체는 로직이 들어간 우리 게임 서버 일부이기 때문이다. 브로드 캐스팅 대상을 좁히...

프로그래밍에서의 기본기란?

축구로 비유하자면 드리블, 패스, 볼 트래핑 등에 해당하는 부분이 과연 프로그래밍에선 무엇일까? 로우 레벨에 대한 이해도? 다양한 분야에 대한 폭넓은 지식? 신 기술에 대한 경험과 관심? 낮은 러닝 커브? 알고리즘 구현 능력? 코드 리딩 능력? 여러 지인들과 토의 해본 결과, 너무 다양한 이야기가 나와서 새삼 놀랐다. 어느 한명 같지 않았다...