Backend/go3 DataDog 연동기 (1) with Signoz, Otel 아마 무조건 나랑 같은 경험을 할 사람은 없을거라 생각한다회사에서 기존 사용하던 signoz를 갈아타고 datadog을 연동하는 작업을 맡게 되었다다른 서버들은 datadog agent를 사용하여 간단하게 apm과 service를 확인하는 과정을 거치고 있었다하지만 내 go 서버는 문제가 있었는데...문제 1.. Signoz - Otel일단 우리 파트에서는 모니터링 툴이 올해 말에 결제가 된다는 이야기를 듣고, 그 전까지 사용할 무료 툴이 뭐가 있는지 찾아 보게 되었다그 중 signoz라는 모니터링 툴을 알게 되었고, otel을 통해 모니터링이 가능하다는 이야기를 들었다그렇기 때문에 우리 파트는 signoz - otel을 이용하여 모니터링 작업을 시작하였고, 생각보다 만족스러운 결과와 활용을 통해 서비스.. 2025. 10. 24. 회사 서버 언어를 Go로 바꾸면서...(1) 2024년 7월 이번에 들어간 회사의 팀에서 Spring 서버를 리팩토링하게 되는 계기가 있었다 그 당시 신입으로서 일이 없는 나에게 Spring서버를 어떻게 리팩토링 할 지 언어와 프레임워크를 비교하고, 분석하라는 명령이 떨어졌다 그 당시 나의 선택은 Spring Boot ( Java or Kotlin )였으나 협력사에서 임시로 주 기능만 작동하는 Go 코드를 Fiber를 기반으로 작성을 했다고 해서, 총 3개를 분석하였다 직접 결과를 보여드릴 수는 없으나, 성능차이가 최대 5배 이상의 tps를 보여주는 것이었다솔직히 믿기지 않았기에, 여러번 테스트를 하고, 확인을 해보았으나 Go가 압도적인 성능 차이를 보여주는 것이었다... 이렇게 된 이상 분석결과 상으로는 Go를 하는 것이 맞다는 결과를 내게 되지.. 2025. 6. 20. [Bug Fix] GO - Random() - thread unsafe 이슈 상황현업에서 서버를 Spring -> Go로 리팩토링을 진행 했었다여기서 생겼던 이슈들 중 기억에 남는 이슈여서 적어본다로직서버 로직중 라우팅을 해야하는 로직이 존재 하는데(어떤 광고 서버로 라우팅을 할지 결정), 이 로직을 간단히 말하자면A: 50 B: 40 C:10으로 값이 들어온다면(DB에 존재 - 해당하는 기준에 맞추어 여러개가 존재) 라우팅을 통해 A에 50% 확률로 보내고, B는 40%, C는 10% 확률로 보내는 라우팅 기능을 하는 것이다이 기능을 위해서 우리는 Random 함수 기능을 사용했다! ( Spring 원본 코드에도 존재하는 로직 )Random에서 0에서 99 사이의 값이 나오게 하고 +1을 하여 1~100의 랜덤 숫자를 뽑은 후, A의 50부터 빼면서 계산하는 것이다 ( 랜덤 값.. 2025. 6. 19. 이전 1 다음 728x90