분류 전체보기 23

Carryduo | [nodeJS] child-process를 이용한 데이터 분석 자동화

1. 개요 - Carryduo는 기존에 데이터 분석을 개발하는 과정에서 toad-scheduler 패키지를 활용했다. - toad-scheduler 패키지는 특정 시간 간격으로 스케줄을 실행하는 패키지이다. - 예컨대, "1시간마다 naver-sens를 통해 알람을 보내!"와 같은 기능을 구현할 때 유용하게 사용될 수 있다. - Carryduo는 데이터 분석에 할애되는 단위시간을 고려하여, 이 toad-scheduler를 이용해 데이터분석을 자동화했었다. - 문제는 데이터가 쌓일수록 필연적으로 데이터 분석에 할애되는 시간이 늘어나는 구조로 데이터 분석 로직이 설계되어 있었다는 것이다. - 즉, 축적된 데이터가 많아지면서, 다음과 같이 데이터분석 한 사이클이 종료되지 않았는데 새로운 사이클을 실행하는 현상..

Carryduo 2023.01.26

Carryduo | ubuntu crontab을 이용한 pm2 로그 관리 스케줄링

1. 개요 - Carryduo는 매일 약 25000개 이상의 롤 게임 데이터를 분석한다. - 게임 데이터 분석에는 별도의 서버를 운영하고 있으며, 데이터 분석 과정은 로그로 꼼꼼히 모니터링한다. - 데이터 분석은 개발 편의상 javascript로 작성하고, pm2를 이용해서 프로세스를 관리하고 있었는데, 다음과 같은 로그를 확인할 수 있었다. - 요컨대, 로그가 계속 누적되면서 더 이상 로그를 작성할 용량이 남아있지 않아, 서버에서 프로세스를 중단시킨 것이다. - 의문이었다. 필자는 winston 라이브러리를 이용해서 일주일 간격으로 로그를 관리해주고 있었기 때문이다. - 구글링을 해본 결과, pm2는 자체적으로 .pm2 -> logs 경로에 서버에서 기록되는 로그들을 모두 저장하고 있다는 것을 확인할 ..

Carryduo 2023.01.25

Carryduo | AWS S3를 이용해 롤 챔피언 이미지 버전 관리

1. 개요 - Carryduo를 지속적으로 운영하면서, 이미지 관리에 대한 고민이 생겼다. - Carryduo는 롤 듀오 데이터를 제공해주는 사이트이므로, 자연스레 롤 챔피언/스킬/티어 등 다양한 이미지들을 사용한다. 총 개수는 대략 1100개 가량 된다. - 기존에는 그 이미지들을 라이엇에서 제공하는 이미지 url을 그대로 가져와서 사용했었다. (라이엇 이미지 url 예시) - 롤을 플레이하면서 문득 든 생각이 "만약 라이엇 서버가 다운되면, 우리 사이트에서 보여지는 이미지들이 모두 오류 처리가 나겠구나"였다. - 그래서 사이트의 안정적인 운영을 위해, 이미지를 사이트 자체적으로 관리할 필요성을 느껴, AWS S3에 라이엇 이미지를 자체적으로 저장하고 이를 FE에 제공하는 방식을 도입하기로 하였다. *..

Carryduo 2023.01.13