넷마블 영상·디자인실은 업무 효율 향상의 목적과 최신 디자인 트렌드에 맞추고자, 웹 기반의 인터페이스 디자인 프로토타이핑 툴인 피그마(Figma)를 사용하고 있습니다. 피그마는 기존의 다른 툴과 비교했을 때 가볍고, 다양한 플러그인을 업무에 적용할 수 있다는 장점이 있습니다. 이러한 장점을 업무에 적용하려던 과정에서 직접 피그마 플러그인을 제작해 보았고, 이 글을 통해 경험을 공유해 보고자 합니다. 무겁고 깊이 있는 내용보다는 비전공자 입장에서 ChatGPT를 활용하여 실제 플러그인 제작까지 진행한 과정을 소개해, 누구나 업무 효율을 높일 수 있다는 자신감을 가졌으면 하는 바람을 담았습니다.
CPU 성능 모니터링에는 CPU 이용률, 멀티 코어 부하 평균, 코어별 사용률, 컨텍스트 스위치, 유휴 스레드, 대기 큐 길이, 인터럽트 및 시스템 호출 등의 주요 메트릭이 있습니다. 이러한 메트릭을 모니터링하면 애플리케이션의 성능 병목 현상을 식별하고, 리소스 사용을 최적화하며, 전반적인 시스템 성능을 개선할 수 있습니다. 그런데 이 글에서 다룰 CPU 이용률 메트릭은 윈도우에서 두 가지 다른 개념으로 나뉘어 있습니다. 그리고 그 두 가지 개념을 정확하게 이해해야 성능 측정을 효율적으로 수행할 수 있습니다.
넷마블 QA실에서는 ‘크래시리포트’라는 시스템을 운영하고 있습니다. 크래시리포트는 게임 실행 과정에서 예상치 못한 종료 현상이 발생할 때, 그 상황을 저장한 데이터를 크래시라 합니다. 이러한 크래시리포트 운영용으로 마련한 엣지 서버 클러스터 환경에서는 신규 파드 추가마다 최소 1분 이상 필요했습니다. 게임 사용자가 언제 급증할지 예측할 수 없기에, 스케줄에 맞춘 확장도 적합하지 않았습니다. 또한 서버에 접속하는 클라이언트의 통신 연결 대기 시간은 대략 10~20초로 설정돼 있어서, 신규 파드를 준비하기 위해 소모하는 1분 동안 누락되는 데이터도 늘어날 수밖에 없었습니다.
랜섬웨어나 멀웨어는 보통 침투 시점과 실제 동작하는 시점이 분리돼 있습니다. 동작 트리거로 시간 조건을 사용할 때 이 두 명령어를 활용합니다. 서버에 기본으로 설치돼 있는 명령어이므로 간편하게 실행할 수 있기 때문이죠. 만약 서버 안에서 동작할 예약 작업이 없다면, 이 두 기능 모두를 제거하는 것도 하나의 방법일 수 있습니다. 하지만 써야 하는 경우는 필연적으로 생기기 마련이므로, 허가된 사용자만 이를 실행할 수 있도록 점검하는 것이 좋습니다.
WAS 프로세스를 보호하려면 관리자 계정으로 구동하지 말아야 합니다. 이는 프로세스의 실행 계정이나 그룹이 root나 Administrator여서는 안 된다는 뜻입니다. 여기에서는 윈도우의 IIS(Internet Information Services), 아파치 HTTP 서버(Apache HTTP Server), 톰캣(Tomcat), 엔진엑스(NGINX), 스프링 부트(Spring Boot), Node.js의 여섯 가지 WAS에서 root 이외의 계정으로 프로세스를 실행하는 방법을 살펴봅니다. 또한 주요 프로세스의 소유권을 바꾸는 방법도 함께 살펴봅니다.
얼마 전, 도커 데스크톱 없이 구축하는 WSL2와 도커 개발 환경글을 보다가 멀티패스에서도 이 같은 방법으로 도커를 쓸 수 있으리라는 생각이 들었습니다. 아니나 다를까, 멀티패스에는 모든 것이 이미 준비돼 있었습니다. 멀티패스가 어색하신 분들도 계시므로, 간략한 해설을 추가해서 도커 개발 환경 구축 방법을 공유합니다. 이하 내용은 WSL2에 대칭되는 부분에 멀티패스를 넣는 만큼, 윈도우 환경을 기준으로 하겠습니다. (맥이나 리눅스에서도 초기 설정 방법은 크게 다르지 않습니다.)