1. 로컬 테스트넷 실행 $ anvil 2. 최상위 경로에 .env 파일 생성 PRIVATE_KEY= RPC_ENDPOINT=http://localhost:8545 이 때 PRIVATE\_KEY가 0x로 시작하면 파싱에서가 발생하므로 0x를 지워준 16진수값만 넣어줍니다. 3. 배포 코드 작성 cmd/deploy/main.go package main import ( "context" "crypto/ecdsa" "fmt" token "go-ethereum-example/gen" "math/big" "os" _ "github.com/joho/godotenv/autoload" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go..
1. 스마트 컨트랙트 contracts/MyToken.sol // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.19; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract MyToken is ERC20 { constructor(uint256 initialSupply) ERC20("MyToken", "MTK") { _mint(msg.sender, initialSupply); } } @openzeppelin/contracts 라이브러리의 ERC20.sol 컨트랙트를 상속하여 MyToken 컨트랙트를 작성 2. solc를 사용해 abi 및 binary 파일 생성 build 디렉토리 생성 $ mkd..
문제 1124번: 언더프라임 자연수 X를 소인수분해하면, 곱해서 X가 되는 소수의 목록을 얻을 수 있다. 예를 들어, 12 = 2 × 2 × 3이다. 1은 소수가 아니다. 어떤 수 X를 소인수분해 해서 구한 소수의 목록의 길이가 소수이면, www.acmicpc.net 자연수 X를 소인수분해하면, 곱해서 X가 되는 소수의 목록을 얻을 수 있다. 예를 들어, 12 = 2 × 2 × 3이다. 1은 소수가 아니다. 어떤 수 X를 소인수분해 해서 구한 소수의 목록의 길이가 소수이면, 그 수를 언더프라임 이라고 한다. 12는 목록에 포함된 소수의 개수가 3개이고, 3은 소수이니 12는 언더프라임이다. 두 정수 A와 B가 주어졌을 때, A보다 크거나 같고, B보다 작거나 같은 정수 중에서 언더프라임인 것의 개수를 구..
문제 24040번: 예쁜 케이크 Good Bye BOJ, 2021!이 열리는 오늘, 12월 31일은 종서의 생일이다. $N$ 명의 친구들은 종서에게 생일 선물로 예쁜 케이크를 만들어주려 한다. 여기에서, 예쁜 케이크는 다음과 같은 조건을 만족하는 www.acmicpc.net Good Bye BOJ, 2021!이 열리는 오늘, 12월 31일은 종서의 생일이다. N명의 친구들은 종서에게 생일 선물로 예쁜 케이크를 만들어주려 한다. 여기에서, 예쁜 케이크는 다음과 같은 조건을 만족하는 케이크를 의미한다. 케이크는 높이가 1$1$이고, 부피가 N인 직육면체 모양이다. 케이크를 적절히 칼질해서 한 변의 길이가 1인 정육면체 모양 조각 N개로 나눌 수 있어야 한다. 케이크의 옆면에 가로 너비가 1인 직사각형을 이어..
⚠ Vault란? HashiCorp Vault는 ID 기반 시크릿 및 암호화 관리 시스템입니다. 여기서 시크릿은 API 암호화 키, 비밀번호, 인증서 등 액세스를 엄격하게 제어하고자 하는 모든 것을 아우릅니다. Vault는 인증(authentication) 및 인가(authorization) 방법에 따라 게이트화된 암호화 서비스를 제공합니다. Vault의 UI, CLI 또는 HTTP API를 사용하여 기밀 및 기타 중요 데이터에 대한 액세스를 안전하게 저장 및 관리하고, 엄격하게 제어(restrict)하며, 감사(audit)할 수 있습니다. 🎮 초기화 $ go mod init vault-example $ touch main.go $ touch docker-compose.yml $ go get github..
🪓 우아하지 않은 종료 다음과 같이 모든 요청에 "hello world"로 응답하는 간단한 http 서버가 있습니다. 코드의 실행 순서는 다음과 같습니다. DB 연결 http 서버 시작 http 서버 종료 DB 연결 종료 package main import ( "context" "database/sql" "log" "net/http" _ "github.com/mattn/go-sqlite3" ) func main() { // 1. DB 연결 db, err := ConnectDB() if err != nil { log.Fatal(err) } log.Println("DB connection established") srv := &Server{ Server: &http.Server{ Addr: ":8080", ..
📺 시리즈 2023.10.02 - [Go/디자인 패턴] - [Go] SOLID in Go - SOLID란? 2023.10.03 - [Go/디자인 패턴] - [Go] SOLID in Go - 구조체와 메서드 2023.10.04 - [Go/디자인 패턴] - [Go] SOLID in Go - 인터페이스 2023.10.09 - [Go/디자인 패턴] - [Go] SOLID in Go - 컴포지션 2023.10.10 - [Go/디자인 패턴] - [Go] SOLID in Go - 패키지 2023.10.11 - [Go/디자인 패턴] - [Go] SOLID in Go - 단일 책임 원칙 2023.10.12 - [Go/디자인 패턴] - [Go] SOLID in Go - 개방 폐쇄 원칙 2023.10.13 - [Go/디자인..
문제 21920번: 서로소 평균 첫 번째 줄에 입력될 수들의 개수 $N$이 주어진다. $(2 \le N \le 500,000)$ 두 번째 줄에는 수열 $A$를 이루는 자연수 $Ai$ 가 공백으로 구분되어 주어진다. $(2 \le A_{i} \le 1,000,000)$ 수열 $A$에 $X$와 서로 www.acmicpc.net 효성이는 길이가 N인 수열 A에서 X와 서로소인 수들을 골라 평균을 구해보려고 한다. 효성이를 도와 이를 계산해주자. 입력 첫 번째 줄에 입력될 수들의 개수 N이 주어진다. (2≤ N ≤500,000) 두 번째 줄에는 수열 A를 이루는 자연수 Ai 가 공백으로 구분되어 주어진다. (2≤A ≤1,000,000) 수열 A에 X와 서로소인 수가 최소 1개 이상 존재한다. 마지막 줄에는 X가..
문제 11815번: 짝수? 홀수? B를 A로 나누었을 때 나머지가 0 이라면 A는 B의 약수라고 할 수 있다. (A > 0, B > 0) 예를 들면 15 의 약수는 1, 3, 5, 15 이다. 주어진 수가 가지는 약수 개수가 홀수인지 짝수인지 판별해보자. www.acmicpc.net B를 A로 나누었을 때 나머지가 0 이라면 A는 B의 약수라고 할 수 있다. (A > 0, B > 0) 예를 들면 15 의 약수는 1, 3, 5, 15 이다. 주어진 수가 가지는 약수 개수가 홀수인지 짝수인지 판별해보자. 입력 첫 번째 줄에는 전체 테스트 개수 (N) 가 주어진다. (1 ≤ N ≤ 100) 두 번째 줄에는 약수 개수를 판별할 수 (X) 가 주어진다 (1 ≤ X ≤ 1018). 출력 주어진 수의 약수 개수가 홀..
📺 시리즈 2023.10.02 - [Go/디자인 패턴] - [Go] SOLID in Go - SOLID란? 2023.10.03 - [Go/디자인 패턴] - [Go] SOLID in Go - 구조체와 메서드 2023.10.04 - [Go/디자인 패턴] - [Go] SOLID in Go - 인터페이스 2023.10.09 - [Go/디자인 패턴] - [Go] SOLID in Go - 컴포지션 2023.10.10 - [Go/디자인 패턴] - [Go] SOLID in Go - 패키지 2023.10.11 - [Go/디자인 패턴] - [Go] SOLID in Go - 단일 책임 원칙 2023.10.12 - [Go/디자인 패턴] - [Go] SOLID in Go - 개방 폐쇄 원칙 2023.10.13 - [Go/디자인..