(최초 작성일: 2024.12 ...ㅎ...)프로젝트를 진행하면서 전체 코드 마무리를 내가 맡았는데, 데이터를 꼼꼼히 다시 재검토하면서 데이터가 기존과 상이한 것을 발견했다.대충 코드를 훑어보면 아무 문제가 없어 보였기 때문에 대체 왜!!! 왜!!! 데이터가 제대로 쌓이지 않는지 내 소중하 머리털을 쥐어 뜯으며 삽질에 삽질을 더했다.다른 이슈들도 병행했기 때문에 원인 발견에만 이틀 정도가 소요되었다!! 해결하지 못하면 어떡하지 싶은 아찔한 기분도 느꼈었다.원인을 알아내니 다행히 해결은 차근차근 빠르게 진행할 수 있었다. 나는 이 에러들을 'Go 서버의 악마들'이라고 감히 말하고 싶다!평소에는 Go 언어의 장점으로 개발자들에게 편의성을 제공하는걸로 알려져 있지만 잘못 사용하게 된다면 그야말로 악마로 탈변하..
이 글을 3월 9일에 쓰기 시작했는데 현생이 바빠서 6월에 완성..ㅎ..얼기설기 끼워 맞추기QA 테스트 기간 전까지 남은 개발 기간은 단 2-3일 밖에 없었다. 그래서 나는 시니어 개발자분의 원래 설계를 그대로 따르되 예외 처리와 추가 개발을 통해 현재 차트 오류를 해결하고자 했다. 첫 번째 시도: 동시성 제어를 위한 Race Condition 해결우선적으로 잡아야한다고 생각한 부분은 base chart generator와 event handler 간의 race condition이었다. base chart가 먼저 기본 차트 틀을 만들기 전에 event handler가 데이터를 업데이트하고, 그 이후에 base chart가 또 데이터를 업데이트하니, 차트 데이터가 엉망이 되었던 것이다. 가장 단순하게 생각..
블록체인 업계에서 핫했던 '밈 코인 발행 플랫폼'을 우리 회사에서도 개발하게 되었다.개요 '밈 코인 발행 플랫폼'이란 사용자가 쉽게 자신만의 토큰을 생성하고 거래할 수 있는 서비스로, ERC-20이나 SPL 토큰 표준을 활용해 복잡한 스마트 컨트랙트 지식 없이도 누구나 토큰을 발행하고 이를 AMM(Automated Market Maker) 기반 DEX(Decentralized Exchange)에 자동으로 상장시킬 수 있는 생태계를 제공한다. 밈 코인 플랫폼이 업계에서 핫해진 이유는 Web3의 접근성 문제를 해결하며 진입 장벽을 낮춤으로써 일반 사용자들도 쉽게 토큰 이코노미에 참여할 수 있게 되었기 때문이다. 또한 밈 문화와 블록체인의 결합은 커뮤니티 기반의 강력한 네트워크 효과를 만들어내며, 토큰 발행자..
Go로 서버를 개발하다 보면, 포인터와 슬라이스를 사용했을 때 '말도 안되는' 버그를 마주치게 될 때가 있다.그 사건들을 차례대로 정리해보려고 한다.문제 상황아래와 같이 주기적으로 호출되어 데이터를 업데이트하는 코드가 있다.type Token struct { Symbol string ... IsListed bool PairIdentifier string}func (o *TokenManager) refreshTokenData(tokens []*Token) error { o.tokenMutex.Lock() defer o.tokenMutex.Unlock() updatedTokens := make(map[string]*Token) for _, token := range tok..