[Go] Decimal decoder : Decimal을 MongoDB에 바로 String으로 저장
·
Language/Go
Go 서버에서 mongoDB에 데이터를 넣을 때 추가할 수 있는 신기한 기능(?)을 리팩토링 코드 리뷰를 받으면서 알게되어 그 내용을 정리하여 글을 쓰고자 한다.리뷰받은 코드는 다음과 같다.types.DataToUpdateInMongo{ ... TotalTradingVolume: totalTradingVolume.String() ...} 여기서 TotalTradingVolume 엄청나게 큰 숫자 값(블록체인 서비스다보니 기본 단위가 10^18 이기 때문)이다. 이래저래 사칙연산도 필요하다 보니 decimal.Deciaml 타입인 totalTradingVolume을 변수로 계산을 마친 후, 이제 mongo db 저장을 위해 최종 구조체에 값을 저장하려고 하는 코드이다. mongo에 이..
[Go] 메모리 누수(Memory Leak) 예방하기
·
Error Handling
회사 프로젝트 서버에서 메모리 누수로 인해 서버가 계속 죽다 살아나는 현상이 관찰되었다. 70%을 향해 치솟는 memory usage와 10% 이하에서 평온하게 노는 cpu usage 메모리 누수가 어디서 발생하는지 정확하지 않아서 인터넷 검색을 통해 go 프로젝트에서 주의해야할 부분에 예방 코드를 모조리 집어넣었다. 아래 그 예방 코드들과 이유에 관해 정리해보려고 한다. -> 그리고 현재는 프로젝트에서 발생하는 메모리릭 문제를 완전히 해결했다! (마무리 부분을 참고) 아래 글을 참고하여 작성되었다. Avoiding Memory Leak in Golang APIFinding Memory Leak in Go Service50 Shades of Go0) Lock 확인하기여러 프로젝트에서 발생하는 메모리 누수..