🌐 이전 게시글 [Go] Polygon ID와 Websocket을 사용한 신원 인증 - 2. Websocket 🌐 이전 게시글 [Go] Polygon ID와 websocket을 사용한 신원 인증 - 1. Polygon ID 💜 Polygon ID? Polygon ID는 자기주권신원(Self-Sovereign Identity) 및 개인정보 보호 원칙에 따라 사용자의 개인 정보를 안전하게 보 piatoss3612.tistory.com 🛒 로그인 절차 클라이언트 => 서버 websocket 연결 요청 websocket 이 연결되면 websocket을 통해 서버 => 클라이언트 세션 아이디 전달 세션 아이디와 함께 클라이언트 => 서버 로그인 QR 코드 요청 서버 => 클라이언트 세션 아이디와 매칭되는 로그인 ..
🌐 이전 게시글 [Go] Polygon ID와 websocket을 사용한 신원 인증 - 1. Polygon ID 💜 Polygon ID? Polygon ID는 자기주권신원(Self-Sovereign Identity) 및 개인정보 보호 원칙에 따라 사용자의 개인 정보를 안전하게 보호하면서도, 앱과 사용자 사이의 신뢰할 수 있는 신원 검증 절차를 제 piatoss3612.tistory.com 📫 Websocket 웹소켓(WebSocket)은 웹 브라우저와 웹 서버 간의 양방향 통신을 제공하는 프로토콜입니다. 웹소켓의 특징과 동작 방식은 다음과 같습니다. 양방향 통신: 웹소켓은 양방향 통신을 지원하며, 클라이언트나 서버가 언제든 데이터를 보낼 수 있습니다. 지속적인 연결: 웹소켓은 연결을 생성하고 유지하는 데..
💜 Polygon ID? Polygon ID는 자기주권신원(Self-Sovereign Identity) 및 개인정보 보호 원칙에 따라 사용자의 개인 정보를 안전하게 보호하면서도, 앱과 사용자 사이의 신뢰할 수 있는 신원 검증 절차를 제공하기 위해 사용할 수 있는 프레임워크입니다. Polygon ID를 통해 생성된 신원은 DID(Decentralized Identity)라고 불리며, 신원에 기반한 부가적인 정보들은 VCs(Verifiable Credentials)라고 불립니다. VCs에는 나이나 학위 같은 간단한 정보부터 특정 DAO에서 발행된 멤버십 증명과 같이 다양한 정보들을 담을 수 있습니다. Polygon ID는 DID에 기반해 VCs를 발행하고 검증하는 프로세스를 제공하며, 이는 다음과 같이 세 ..
문제 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). 출력 주어진 수의 약수 개수가 홀..