안녕하세요 @realmankwon입니다.
제가 맡은 sct 관련 개발 작업들이 생각보다 더디게 진행되고 있습니다.
당초에 맡았던 개발 작업들을 안정적으로 운영하기 위한 프로세스를 정의하고 기반이 되는 체계를 구축하는데 제가 생각했던 것보다 더 많은 시간이 걸리고 있습니다.
가장 큰 이유는 본업과 가정을 등한시 할 수 없는 것입니다.
이전 포스팅에서도 언급했지만 현재 제가 sct 개발팀으로 참여할 수 있는 가장 큰 이유는 본업을 통해 저희 가족들의 생계를 유지할 수 있기 때문입니다.
참 감사한 일입니다.
또한 그 이유가 저희 가족들과 행복하게 살기 위한 것이기 때문에 퇴근하고 집에 와서 아이들과 시간을 보내고 아내와 담소를 다누는 등의 행복한 시간을 배제할 수가 없습니다.
주말이면 강의를 하고 공부를 하는 아내를 위해 혼육을 해야 하는 상황이기에 거의 작업을 할 수가 없습니다.
즉 물리적인 시간 자체가 적은 것이 제일 큰 이유입니다.
다음으로는 생소한 것들에 대해서 공부하고 바로 개발하는 것 사이에서 예상치 못한 에러들이 발생하는 것입니다.
제가 주로 다루었던 프로그래밍 언어는 C#, Java 입니다.
그 중에서 C#이 가장 편하고 가장 자신 있는 언어입니다.
하지만 현제 니트로스 및 스팀 관련 개발은 javascript, node.js 등으로 하고 있습니다.
물론 해당 언어를 가지고 사내에서 동호회 활동도 하고 몇차례 입상도 하였지만 그렇다고 수준급의 실력이 아닌지라 아직까지 바로바로 개발하는 것이 조금은 힘이 듭니다.
또한 스팀 자체의 api 도 완전히 다 아는 것이 아니기에 찾는데 참 많은 시간들이 소요되고 있습니다.
마지막으로 기반 체계를 안정화하는데 많은 시간들이 소요되고 있습니다.
node.js 라는 플랫폼은 대용량 데이터를 처리하는 아주 효율적인 것입니다.
하지만 싱글 스레드라 exception이 발생하면 바로 시스템이 중단이 되어 버립니다.
때문에 exception 처리를 아주 잘 해야 합니다.
앞으로 sct 에서 출시될 많은 프로젝트 들이 node.js 을 이용한 것들 많습니다.
특히 블럭 정보를 모니터링하여 몽고 db 에 저장하는 봇의 경우 통계 정보의 근간이 되고 다른 시스템들에 자료를 전달하고 실행시키는 가장 중요한 역할을 하는 것이기에 아주 안정적으로 처리가 되어야 합니다.
이를 위해서 매일 매일 체크를 하고 빠진 데이터는 없는지 중복으로 들어가는 것들이 없는지 테스트하고 그런 오류들이 발생되지 않도록 프로그램을 수정합니다.
에러가 발생해서 서버가 뻗으면 원인을 분석하고 다시 실행시켜서 데이터를 쌓고 또 모니터링하면서 점점 안정화시켜 나가고 있습니다.
그 과정이 사실 제일 어렵게 느껴집니다.
그래서 시간이 많이 걸리고 제가 맡은 다른 개발에 영향이 갈지라도 더 많은 시간과 노력을 들이고 있습니다.
어제는 sct.krwp 계정으로 베네피셔리를 설정하였을때 이것을 감지하는 부분을 개발하였습니다.
테스트를 여러번 한 후 실서버에 적용을 하였지만 아침에 확인하니 서버가 뻗어 있었습니다.
몇 차례 exception이 난 부분을 고치고 실행하는 것을 반복하여 현재는 정상적으로 실행이 되고 있고 그동안 쌓지 못했던 정보들을 빠르게 저장하고 있습니다.
오리가 수면 위를 유유히 돌아다닐때 물 아래에서는 끊임없이 발을 움직이는 것처럼 현재 더디게 진행되고 있는 것처럼 보이지만 안정적인 운영을 위해 제가 그 동안 유지보수하면서 익혔던 많은 지식들을 하나하나 반영해 가고 있습니다.
실제 서비스가 배포되었을 때 최대한 혼란이 일어나지 않도록 더 많은 노력을 기울일려고 합니다.
내일이면 급 개발해야했던 krwp 보상 기능이 윤곽을 드러낼 것 같습니다.
안정적으로 기본 기능이 충실한 서비스가 나올 수 있길 저 역시도 기도합니다.
다들 평안한 밤 되세요 ^^