본문 바로가기

Work158

[IDE] Goland 컴파일 시 already exists and is not an object file 에러 Goland 2020.3 (2020.11.25) 버전으로 업데이트 이 후 최초 컴파일에는 성공하지만 이 후부터는 이미 존재한다는 오류와 함께 컴파일에 실패하는 경우가 반복되었다. 해결하기 위해 아래와 같이 Ctrl + Shift + A를 클릭 후 표시되는 Actions 입력창에 Registry라고 입력한다. 아래 그림과 같이 "go.build.output.path.cache.enabled" 항목을 찾아 체크 표시를 해제 한다. 이 후 빌드 수행 시 실행 파일을 캐시하지 않기 때문에 해당 오류는 발생하지 않는다. 다만 캐시를 하지 않으면 빌드 실행 속도 개선의 이점을 잃게 되므로 다음 버전 업데이트 시에 다시 체크하고 실행을 해서 테스트해봐야할 듯 하다. 2020. 12. 14.
[Go언어] API 서버간 내부 통신 시 too many open files 문제 다수의 API 서버를 실행 중이고, 각 서버간에는 주기적으로 상호 통신을 실행하고 있다. 이 때 일정 시간이 경과하면 아래와 같은 오류가 발생하면서 먹통이 되는 현상이 발생하였다. dial tcp: lookup 127.0.0.1: too many open files 먼저 메시지 내용 처럼 현재 얼마만큼의 파일이 Open 되었는지 확인해보기 위해 아래와 같이 lsof 명령을 사용하였다. lsof | wc -l 문제가 발생한 대상 API 서버에서 too many open files 발생 시 file open 수는 17141개 였는데 재시작 후 6994로 감소하였다. 이로 인해 프로세스 실행 후 문제가 발생한 시점까지 대략 10147개의 file open이 추가된 것으로 추정되는 상황이다. (다른 프로세스로 .. 2020. 12. 5.
[리뷰] 스파크 완벽 가이드 개발 업무를 진행하면서 서비스를 런칭 했을 때 사용자들의 행위나 서비스가 제공하는 각 기능에 대한 가치를 파악하기 위해 데이터 분석을 해보고 싶다는 생각을 항상 해왔었다. 이 전에는 게임 서버 개발 진행과 병행하여 엘라스틱서치를 도입해 데이터 분석을 위한 준비를 했었고, 서비스 런칭 후 이를 통해 사업부와 협업하여 사용자 행위 지표에 대한 다양한 차트를 만들어보기도 했었다. 이로 인해 생각지 못했던 아이디어가 떠오르기도 하고, 업데이트 된 기능에 대한 사용자들의 반응을 바로바로 확인할 수 있어서 굉장히 큰 도움이 되었었다. 이 때의 경험을 계기로 어떤 개발을 할 때는 항상 데이터 분석도 함께 해보려고 노력하고 있다. 얼마전에는 본 업무와 별개로 사이드 프로젝트를 진행하며 데이터 분석을 해보기도 했다. 이.. 2020. 11. 22.
[k8s] kube-prometheus #1 - 설치 Amazon EKS를 사용하면서 초기에 Kubernetes 모니터링을 위해 Container Insights를 사용하였으나 500개 이상의 Custom Metric이 CloudWatch에 추가되면서 많은 비용이 발생하게 되었다. 비용 절감을 위해 Container Insights에서 현재는 Prometheus로 변경을 진행하였고, Prometheus를 간단하게 설치 할 수 있는 CoreOS의 kube-prometheus를 사용하였다. CoreOS에서 제공하는 kube-prometheus를 사용하면 Prometheus를 간단하게 설치할 수 있고, 설치 절차는 다음과 같다. 1. Git clone git clone https://github.com/coreos/kube-prometheus.git 2. 의존성.. 2020. 11. 18.