일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 러스트 기초
- 스마트 컨트렉트 함수이름 중복
- 오블완
- ambiguous function description
- ethers websocket
- ethers v6
- 러스트 기초 학습
- redux toolkit 설명
- 체인의정석
- 머신러닝기초
- chainlink 설명
- Vue.js
- erc4337
- multicall
- rust 기초
- 스마트컨트렉트 예약어 함수이름 중복
- redux 기초
- 러스트기초
- 컨트렉트 동일한 함수이름 호출
- ethers
- vue기초
- Vue
- 티스토리챌린지
- ethers type
- erc4337 contract
- git rebase
- 스마트컨트렉트 함수이름 중복 호출
- SBT표준
- ethers typescript
- 계정추상화
- Today
- Total
목록2025/06 (6)
체인의정석

요즘 바이브 코딩이 유행하면서 나도 AI 툴을 사용해서 생산성을 높이려고 노력중이다.매번 기본 설계 이후 예시와 목표등을 천천히 학습시키며 챗지피티랑 클로드를 같이 번갈아 쓰며 코딩중이였는데 이번에 클로드에서 만든 코드가 히트를 치면서 구글 제미나이에서 무료로 배포한 cli 툴이 있다하여 사용했다.https://github.com/google-gemini/gemini-cl GitHub - google-gemini/gemini-cli: An open-source AI agent that brings the power of Gemini directly into your terminal.An open-source AI agent that brings the power of Gemini directly into..

AWS에서 로그 관리를 클라우드 워치에서 할 수도 있다.보통은 그라파나에서 많이 사용한다고 하지만 내가 인계받는 부분은 클라우드 워치로 되어 있었고 AWS를 구성하면서 로그를 클라우드 워치에 맞게 남겨둘 경우 따로 대시보드 같은것도 만들기 편하다. 클라우드 워치에서의 로그는 쿼리문을 상세하게 검색이 가능하기 때문에 로그를 쿼리를 통해 검색할 수 있으며 기본적으로는 최근 시간 별로 검색이 가능하다.Cloud watch의 Log Insights 에서 로그 검색 시 특정 문자열 포함하여 검색하는 경우 다음과 같이 검색이 가능하다.특정 메세지 검색fields @timestamp, @message | filter @message like "오류메세지"최근 로그 25개 검색fields @timestamp, @mes..
Cloud HSM에서 공개키에 대한 값을 받을 때 지갑 주소 형태가 아닌 ec-point 라는 값을 받았다.찾아보니 해당 값에서 공개키를 도출할 때는 상황에 따라 다 다르게 도출을 해야하는것 같다.일단 설정 값 중 "key-length-bytes": 135 라는 문구가 보였는데원래 HSM을 쓰기 전 정석적으로 65바이트의 공개키를 사용하고 이후에 그 공개키를 지갑 주소로 변환하는 형태이다.따라서 135 만큼의 길이가 있다는 것은 특정 부분을 제외하고 공개키를 찾아야 한다는 점이다.📦 정석적인 EC 공개키 길이Ethereum에서 사용하는 secp256k1 곡선 기준:항목 길이 (bytes)0x04 (접두어)1 byteX 좌표32 bytesY 좌표32 bytes합계 (정상 EC_POINT)65 bytes ..
블록체인 지갑 주소의 경우 대소문자 구분이 존재하지만 db상에는 소문자 기준으로 저장하거나 하는등의 특별한 기준이 필요하다.이렇게 만들 경우 api에서 지갑 주소에 공백이 들어오거나 대소문자가 들어오게 되면 자동으로 변환해서 검색해주는 부분이 필요하게 된다.filter["wallet_address"] = bson.M{ "$regex": wallet, "$options": "i",}위와 같이 옵션에 i를 넣게 되면 대소문자 무시를 하게 되기 때문에 지갑 검색에 용이해지게 된다. wallet 문자열을 정규표현식으로 검색하되,"0xAaBb..."와 "0xaabb..."와 같이 대소문자를 구분하지 않고 비교합니다.예: 사용자가 "0xAabb"라고 입력해도, DB에 "0xaabb", "0XAABB" 등..
interface를 따로 쓰면 쓰면 따로 응답 값 타입을 지정하지 않고도 리턴이 가능하다고 한다.마치 ts의 any 같다.✅ interface{} = TypeScript의 anyGo에서는 모든 타입이 interface{}를 만족하기 때문에, 아래와 같이 어떤 값이든 담을 수 있다.var v interface{}v = 123 // intv = "hello" // stringv = []string{} // slice🔄 예: TypeScript와 비교TypeScriptGoanyinterface{}Recordmap[string]interface{}any[][]interface{}map[string]interface{} 가 쓰이는 경우는 다음과 같다고 한다.외부 API의 응답 구조가 계속..

Mongo DB에서는 db단에서 null을 막아주는 not null 개념이 없다.대신 객체를 bson으로 전환할 때 빈값을 막아주는 omitempty 설정만 존재한다고 한다." Go 유형을 BSON으로 변환하는 프로세스를 마셜링(marshalling)이라고 하고, 그 반대의 과정을 언마셜링(unmarshalling)이라고 합니다." 라고 mongo db docs에 써져 있었는데db의 테이블에 해당하는 entitiy는 주로 struct형태로 작성하기 때문에 옵션에 omit empty를 설정하면 마셜링 과정에서 빈 값을 걸러내 주기 때문에 not null과 유사하게 사용할 수 있다는 생각을 했다.하지만 omit empty가 걸러내는 빈값에는 0, false, "", [] 가 모두 포함된다고 하니 0이 들어..