개발 공부/기타 3

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

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

크롤러의 함정: 42Noti 서비스에서 발생한 401 에러와 그 해결 과정

상용 서비스에 크롤러가 포함되어있다면 늘 주목하자 내가 서비스하고 있는 프로그램 중에서 42Noti가 오늘 갑자기 에러를 뿜어내기 시작했다. 나는 내 프로그램들에 문제가 발생하면 즉각적으로 알 수 있도록 Slack WebHook을 걸어두는데, 이 웹 훅에 401에러가 지속적으로 발생하기 시작한 것이다. 401 코드를 보아하니 권한에서 문제가 생긴 것 같은데.. 도대체 무엇이 문제일까 직접 한번 확인을 해봐야만 했다. 그러면서 머리를 스치고 지나가는 것이 최근에 내가 크롤링하는 부분이 문제가 되었나 싶었다. 최근에 크롤링 하는 사이트의 UI가 변경되면서 문제가 되었을 것이라는 추측을 했다. 401에러의 원인 결과적으로 예상은 적중했다. 내 42Noti는 3주마다 갱신해야되는 Secret를 셀레니움으로 제작..

Python Sumy 사용법 및 후기(파이썬 요약 라이브러리)

사용방법 1. 일단 Sumy를 사용하기 위해서는 JDK가 필요하다 먼저 JDK를 설치하도록 하자 sudo apt install openjdk-17-jdk java -version # 잘 설치되었는지 확인하자 2. 필요한 라이브러리를 설치하자 #반드시 python과 pip은 설치되어있어야한다 pip3 install sumy # pip3 혹은 pip pip3 install konlpy # konlpy는 한국어를 사용하기 위한 형태소분석기이다. 3. 예제 코드 작성 from sumy.summarizers.lex_rank import LexRankSummarizer from sumy.nlp.tokenizers import Tokenizer from sumy.parsers.plaintext import Plain..