[Go] 클로저(Closure)와 루프 변수 캡처 버그 (Feat. Go 1.22)
·
Language/Go
회사에서 에이전트로 개발을 하는데(Obviously.. 요즘 에이전트 없이 개발하는 사람도 있어?) 고루틴을 쓸 때 변수를 캡쳐해서 쓰도록 코드를 짜더라.그 이유가 궁금해서 에이전트랑 대화하다가 배운 내용을 정리하면 좋을 것 같아서 짧게 정리해봤다클로저(Closure)란?클로저는 자신이 정의된 렉시컬 스코프(lexical scope, 다른 말로 정적 스코프(static scope))에 있는 식별자들을 잡아두는 함수클로저는 '값' 아니라 '변수' 자체를 참조. 즉, 같은 변수를 여러 번 갱신하면, 그 변수를 캡처한 모든 클로저는 갱신된 값을 보게 됨package mainimport "fmt"func main() { x := 0 fn := func() { fmt.Println(x) } x = 42..
[Move] Sui Move 입문
·
Language/Move
해당 글은 Sui Dev Workshop 밋업에서 배운 내용을 토대로 작성한 Sui Move 입문 글입니다.배운 내용을 간단하게 정리하는 메모장 같은 글입니다.(Week 1~2 까지의 내용을 다룹니다. 3,4 업데이트 예정)🔆 스마트 컨트랙트 언어란 무엇인가기존 프로그래밍 언어: CPU를 조작해 Memory 에 있는 상태(데이터)를 변경할 수 있도록 프로그램을 만들 수 있는 도구와 문법시스템 프로세스(OS), 프로세스 관리, Network 통신, Disk 관리, 외부 장치 관리, 마우스/키보드/모니터, UI 등 조작 가능기존 프로그래밍 언어에서는 엄청나게 많은 라이브러리와 도구를 지원스마트 컨트랙트 언어: 블록체인 VM을 조작해 Global State/Storage(데이터)를 변경할 수 있는 도구와 문..
[Research] DEX Aggregator의 MEV Protection 메커니즘
·
BlockChain/Research
해당 리서치는 KAIST 기반 블록체인 학회 'Orakle' 의 리쿠르팅 과제 챌린지의 일환으로 작성한 리서치입니다. 📌 DEX Aggregator의 진화DEX Aggregator의 발전 과정은 MEV 라는 위협에 대한 직접적인 대응의 역사라고 할 수 있습니다. 이는 단순한 기능 추가를 넘어, 서비스의 핵심 가치 제안 자체가 변환하는 근본적인 전환이었습니다.1단계: 가격 Aggregation1inch의 초기 버전과 같은 1세대 Aggregator들은 파편화된 유동성 문제를 해결하는 데 집중했습니다. 이들의 핵심 기능은 여러 DEX를 스캔하여 최적의 환율을 찾아내고, 때로는 단일 거래를 여러 유동성 풀에 분할하여 슬리피지를 최소화하는 것이었습니다. 이 시기 Aggregator들의 경쟁력은 얼마나 많은 유..
[Go] Prometheus 대시보드를 활용한 메트릭 분석 가이드
·
Language/Go
~Go 프로파일링 적용 시리즈 - 배치 서버 ver.~[1] 배치 서버 OOM 분석을 위한 메트릭 설계와 프로파일링 전략[2] Prometheus 라이브러리를 활용한 Go 메트릭 구현[3] Prometheus 대시보드를 활용한 메트릭 분석 가이드🟨 OOM 발생 시나리오 분석OOM 발생 원인을 찾기 위해 다음 시나리오를 고려해볼 수 있습니다.▫️ 시나리오 1 : 순간적인 메모리 급증아주 짧은 순간에 발생하는 메모리 급증 시나리오입니다. 평소에는 메모리 사용량이 낮다가, 특정 순간에 시스템이 감당할 수 없을 만큼 한꺼번에 많은 메모리를 OS에 요청할 때 발생합니다. 예를 들어, 특정 작업을 위해 수백 개의 고루틴을 띄우는 순간이 있습니다.Prometheus는 보통 수 초~ 수십초(scrape interva..
[Go] Prometheus 라이브러리로 Go 애플리케이션 프로파일링 하기
·
Language/Go
보호되어 있는 글입니다.
[Go] 배치 서버 OOM 분석을 위한 메트릭 설계와 프로파일링 전략
·
Language/Go
~Go 프로파일링 적용 시리즈 - 배치 서버 ver.~[1] 배치 서버 OOM 분석을 위한 메트릭 설계와 프로파일링 전략[2] Prometheus 라이브러리를 활용한 Go 메트릭 구현[3] Prometheus 대시보드를 활용한 메트릭 분석 가이드🟨 이 시리즈를 연재하게 된 계기회사에서 운영 중인 배치성 서버에서 간헐적인 OOM(Out of Memory) Killed 현상이 발생하기 시작했다. 이 서버는 NFT 컬렉션 정보 수집, 메타데이터 수집, 토큰 가격/거래량 추적, 게임 라이브 데이터 수집 등 다양한 배치 작업을 주기적으로 수행하는 핵심 인프라였기 때문에, OOM으로 인한 서비스 중단은 전체 데이터 파이프라인에 치명적인 영향을 미칠 수 있는 상황이었다. 문제의 원인을 신속하게 파악하고 해결할 필요..