전체 글 69

[Palworld] Palworld 서버 최적화하기(서버 내부에서)

Palworld(이하 팔월드) Dedeicated 서버를 운영하고 있다면, 가장 신경 쓰이는 부분은 게임 서버의 퀄리티일 것이다. 특히, 현재 팔월드 게임은 콘텐츠는 알차나 게임의 기술적인 완성도를 보면 만들어졌다고 보기 어렵기 때문에 더더욱 그렇다. 메모리 누수는 기본에, 멀티쓰레딩도 제대로 처리되고 있는지 확신이 들지 않을 정도이다. 이런 상황이지만, 게임을 잘 만들어서 즐기고 싶으니, 그리고 또 내 서버에 온 플레이어들이 재미있게 즐길 수 있게 하기 위해서 여러가지 최적화 방법을 고민해 봤고, 그 과정을 공유해보고자 한다. 아래 내용은 모두 리눅스(정확히는 우분투)를 기준으로 구성되어 있다. 윈도우도 파일 위치나 큰 내용적인 부분에서 차이가 없기 때문에 OS 간 차이를 이해하고 있다면 쉽게 따라 할..

나는 책을 읽으며 살고 싶다

어느 날부터 책을 읽을 수 있는 능력을 잃어버렸다 나는 스스로 독서량이 적다고 생각해오지 않았었다. 그래도 매주 1권 이상 내가 관심 있는 분야의 책을 읽어왔고, 그래서 내 정서적 인내력 혹은 독서능력에 대해서 크게 생각해오지 않았던 것 같다. 하지만, 최근 긴 여행을 다녀오면서 또 회사에 다니면서 나의 여유시간들은 유튜브와 웹서핑이 차지하게 되었고 독서와 반년이상 거리를 두게 되었다. '출퇴근하니까 지하철에서 어쩔 수 없이' 혹은 '여행 중인데 책을 어떻게 읽어?'같은 생각들이 독서와 나 사이를 이간질했고, 그렇게 나는 책을 읽지 않게 되었다. 그리고 며칠 전 오래간만에 내 생각을 정리할 겸 자유론을 꺼냈는데 하나도 읽을 수 없었다. 글의 문장이 이해가 안 되는 것은 아니었으나, 책의 내용이 머릿속에 ..

Bjarne Stroustrup(C++ 창시자)의 C++ Q & A(1)

해당 글은 C++의 창시자인 Bjarne Stroustrup의 블로그 글 중 C++ Q&A를 번역할 글이며, 아래 글의 모든 내용은 링크에서 확인할 수 있습니다. 글을 읽으며 흥미로운 질의응답만을 번역해봤습니다. 코딩 표준을 추천해줄 수 있나요? 추천해주는 코딩 표준 추천하는 코딩 표준은 C++ 코어 가이드라인입니다. 이는 사람들을 효과적인 최신 C++ 스타일로 안내하고 그 규칙을 지원하는 도구를 제공하기 위한 야심찬 프로젝트입니다. 이 프로젝트는 성능 저하나 장황함을 추가하지 않으면서도 완전히 유형 및 리소스 안전성이 보장된 언어로 C++를 사용하도록 권장합니다. 가이드라인 프로젝트를 설명하는 동영상이 있습니다. (현재 404표시됨, 원래 주소 ) C++ 코딩 표준의 요점은 특정 환경에서 특정 목적을 ..

나의 첫 취업준비 기록

내 첫 번째 취직의 결과는 25 지원, 12 서류 합격, 9 면접 참여, 9 합격으로 마무리되었다. 나의 첫 취준을 회고하며 내가 내 첫 이력서를 작성한 지 8주가 지났다. 내 첫 이력서는 프로그래머스에서 작성한 이력서인데, 지금 다시 한번 살펴보니 얼기설기 불필요한 말들이 잔뜩 들어가 있는 불필요한 이력서인 것이 이제는 보인다.(이런 이력서를 봐주고 조언해 주신 멘토님 한 분 한 분에게 정말 감사드린다) 폭풍 같았던 8주 간 나는 25곳의 회사에 나를 뽐냈고, 12곳에서 나를 만나보고 싶다고 이야기했으며, 면접 일정상 9곳의 면접을 진행했다. 또, 최종적으로는 9곳의 최종 오퍼를 받아 회사를 선택할 수 있게 되었다. 오늘 글을 통해 짧았지만, 폭풍 같았던 나의 취준 이야기를 풀어보려고 한다. 한파에 내..

42 내 공유우산 프로젝트 회고(42OpenUmbrella)

또 하나의 프로젝트를 마치며 42 내에서 진행한 프로젝트가 벌써 6개가 되었다. 하나하나 다들 사랑받는 서비스로 성장하고 있어서 뿌듯하면서도, 요즘은 너무 많이 개발했나?라는 생각도 들곤 한다. 특히, 요즘 몇몇 분들이 내게 '42 내에서 몇 개의 서비스를 했냐고' 묻지 않고 '몇 개의 서비스에 참여하지 않았냐고' 물어볼 때는 깜짝 놀라기도 했다. 그래서 막상 세보니 42 내부에서 작동하는 웹서비스 9개 중 5개에 리딩 혹은 인볼브 한 흔적이 있어서, 정말 많이 참여했구나라는 생각과 동시에 잘 살았구나 하는 생각이 들었다. 이번 프로젝트는 장마 기간에 공유우산을 42 일원들에게 제공해주자는 생각으로 진행된 프로젝트였다. 42 내에는 좋은 커뮤니티 일원들이 많고, 그중 jmaing님이 자신의 사비를 들여서..

"인프라 올 인원" 프로젝트(쿠버네티스)

들어가면서 지난 8개월 동안 여러 프로젝트를 진행하면서, 관리하게 된 인프라의 수가 기하급수적으로 늘고 있다. 문제는 그때마다 AWS에 있는 EC2를 이용해서 관리를 진행했는데, 프로젝트가 진행됨에 따라서 관리의 난이도가 기하급수적으로 높아진 것이다. 내가 42 내부에서만 관리하는 프로젝트만 해도 총 5가지인데, 아래와 같이 관리하고 있다. 42 내부에서 관리 중인 인프라 42 모글 - EC2, 서울 리전, T3.micro (링크) 평가지표 사이트 - EC2, 서울 리전, T3.small (링크) 42 베네핏 공식 사이트 - EC2, 파리 리전, T3.micro (링크) 42 공지 알람이, 개발자 구직 공고 알림이방(카톡, 슬렉) - EC2, 서울 리전, T3.micro (링크) 42 내부 공유우산 관리..

간단하게 슬렉 봇 만드는 방법

들어가면서 42서울에는 달리기 기록을 올리는 채널이 있다. 그런데 잘 살펴보면 이 채널에 사람이 매일 날짜를 올리고 그 아래에 쓰레드를 통해서 사람들이 자신의 달리기 기록을 인정받는다. 개인적으로 날짜 치는 것이 귀찮을 것이라고 생각했고, 그래서 채널을 위해서 간단한 날짜 봇 및 날씨를 알려주는 봇을 만들었다. 이번에는 다른 회고와 다르게 실제로 어떻게 만드는지도 설명해볼까 한다. 간단하게 슬렉 봇 만들기 준비물 : 파이썬에 대한 간단한 지식, Slack Bot TOKEN, 파이썬이 설치된 PC 아래 방법은 LINUX 및 MAC 기준입니다. 1. 가장 먼저 필요한 라이브러리를 설치해줍니다. pip3 install slack_sdk pip3 install request 2. 필요한 파일들을 만듭니다. (m..

토이 프로젝트 확장(42JOBS, 이제는 카톡으로도!)

들어가면서 슬렉으로 완전하게 만들기를 하루, 간단한 사이드 프로젝트였지만 에러를 유발할 수 있는 부분(네트워크)과 엣지 케이스들(용량 이슈 혹은 사진 크기 등등)에 대한 처리 로직도 포함하다 보니까 생각보다 시간이 길어졌다. 42 서울에서 가장 중요하게 여기는 것이 완전하게 돌아가는 프로그램을 만드는 것이다보니까, 이런 부분은 몸에 배는 것 같다. 아주 습관이라 하기 싫어도 알아서 하게 된다(특히, C언어에서 malloc이 안되었을 경우 등에 대한 처리 등등...) 만들고 보니, 이렇게 애정을 쏟은 프로젝트를 그냥 42슬렉에서만 쓰게 하기에는 너무 아쉬웠다. 그래서 이것을 카톡으로도 확장하면 좋겠다고 생각했고, 오늘 점심 먹다가 이 생각을 하게 되어서 저녁까지 마무리했다. 이 프로젝트를 하면서 몇 가지를..

토이프로젝트 후기(42JOBS, 42슬렉 취업공고 채널 봇)

들어가면서 무엇이든, 내가 필요해서 만드는 토이 프로젝트가 최고인 것 같다. 이번과 같은 경우 내가 취준생이다 보니까 계속 취업공고 사이트를 들락날락해야만 했는데 그 과정에서 너무 큰 시간소모를 하고 있었다. 이 시간소모가 나뿐만 아니라 42커뮤니티 모두가 느낄 것이라고 생각했고, 그래서 나는 우리 커뮤니티를 위해 42슬렉 취업공고 봇을 하나 만들어야겠다고 생각했다. 저녁 먹다 시작한 개발 취업공고 봇을 만들기 위해서 필요한 것은 크게 3가지 정도였다. 첫 번째로는, 해당 프로그램을 돌릴 서버에 대한 이해(프로세스, VM, CRONJOB 등에 대한 이해) 두 번째로는, 크롤링에 대한 이해(동적, 정적 사이트 가리지 않고 긁어올 수 있는 능력, 또한 HTTP Request에 대한 이해) 마지막으로는, Sl..

42베네핏 개발기 발표 회고(benefit.42seoul.link)

들어가면서 모든 발표를 만족스럽게 할 수는 없지만, 나는 발표는 최대한 내 발표를 들으러 와주신 모든 분들의 시간이 아깝지 않게 하려고 노력하고 있다. 하지만, 이번 발표는 내가 만든 원칙에 충분하지 않았다고 생각한다. 발표를 마친 후, 잘 들었다고 이야기해 주는 많은 분들이 계셨지만 그 말을 들으면서도 마음이 편하지는 않았다. 집에 와서도 나는 '도대체 내가 왜 그렇게 발표를 했을까?'라고 하루종일 자책했다. 오늘은 내 자책에 대한 이야기를 해보려고 한다. 발표영상 42베네핏 개발기 발표 충분하지 못한 준비 나는 원래 발표를 하기 전에 내 발표를 들으러 와주시는 분들의 시간 만큼 발표를 준비한다. 예를 들어 50명이 내 30분짜리 발표를 들으러 와준다면 최소한 25시간은 발표를 준비해야 되는 것이다. ..

발표/42서울 2023.07.13

ARM64에서 만든 컨테이너 AMD64에서 안 올려질 때

컨테이너가 안올라가진다.. 평화롭던 어느날 언제나와같이 쿠버네티스를 파드를 만들고 있었는데, 내가 방금 만든 컨테이너가 지속적으로 FAIL하는 문제가 발생했다. 분명 내가 바로 앞에서 MAC으로 빌드하고, 그것을 바로 Docker Repository에 push하고 해당 이미지로 실행시켰는데도 안되는 문제였다. 1시간정도 고민 끝에 모든 것을 다 해결하고도 혹시나 싶어서 한 부분이 맞아서 해당 해결방법을 서술하기 위해서 작성해본다. 해결의 실마리 이번 문제의 실마리는 kubectl logs 이 작동하지 않는 것이었다. 어떻게든 문제 원인을 찾고싶어서 kubectl logs를 사용하는데 지속적으로 entrypoint를 잡지 못했다. 이런 경우는 거의 없기에 혹시나 이런 가능성을 야기할 수 있는 시스템적인 차..

AWS 중복 계정 이슈 발생시 해결방법

혹시 AWS Skill builder와 같은 서비스를 이용하다가 갑자기 다른 계정으로 로그인된 경험이 있다면, 높은 확률로 중복 계정 이슈 때문일 것이다. 나는 아마존 Skill Builder Support와 나눈 수 많은 대화를 통해서 해당 문제가 발생할 수 있다는 것을 알았는데, 혹시 다른 누군가도 해당 문제를 겪을 수 있을까봐 해결방법을 작성해본다. 문제 원인 해당 문제는 당신이 여러 아마존 계정을 한 이메일로 가지고 있을 때 발생한다. 위 말은 그냥 들으면 말도 안되는 소리라고 생각이 될 수 있지만, 실제로 아마존에서는 가능한 문제이다. 왜냐하면, 아마존은 국제 서비스를 제공하고 있고 각 국가마다 새롭게 회원가입을 진행해야하기 때문이다. 당신이 a@naver.com으로 미국에서 가입을 했더라도, ..

TOPCIT 후기(수준 3)

이번에 내가 소속된 이노베이션 아카데미가 IITP 예하였기 때문에, 무료 응시기회를 얻을 수 있어 생각지도 못하게 TOPCIT에 응시할 수 있게 되었다. 사실 존재만 어렴풋하게 알고 있었지, 어떤 시험인지에 대해서는 하나도 모르고 있었기 때문에 응시해볼 생각이 전혀없었는데, 재단에서 무료로 보게해주겠다고 하니까 '횡재했다!'라는 마음으로 응시하게 되었다. 처음에, 응시를 할 때만해도 미리 준비를 하고 가야겠다고 마음 먹었으나, 사람 일정이라는 것이 마음대로 되지 않아서 준비는 고사하고 전날 잠도 제대로 못자고 응시하게 되었다. 사실, TOPCIT 관련되어서 인터넷에 검색해봐도 별로 자료도 안나온다. 그래도 시험인데, 뭐가 나오는지는 알고가야겠다고 생각해서 새벽같이 일어나 아침 내내 유튜브, 블로그들을 뒤..