[CS] TCP vs UDP의 차이점과 사용 사례
·
개발/CS
TCP vs UDP의 차이점과 사용 사례목차개요TCP (Transmission Control Protocol)UDP (User Datagram Protocol)TCP vs UDP 비교실제 사용 사례정리개요네트워크 통신에서 데이터를 전송하는 방법은 크게 두 가지로 나뉩니다: TCP(Transmission Control Protocol) 와 UDP(User Datagram Protocol) 입니다.이 두 프로토콜은 각각 다른 특성을 가지고 있어서, 용도에 따라 적절한 프로토콜을 선택하는 것이 중요합니다.TCP (Transmission Control Protocol)특징연결 지향적 (Connection-oriented): 통신 전에 연결을 먼저 설정신뢰성 보장: 데이터 손실, 중복, 순서 보장흐름 제어: 수신..
[Blockchain] ZK - noir, cairo 섞어쓰기
·
개발/BlockChain
ZK - noir, cairo 섞어쓰기모든 코드는 깃허브에서 볼수 있습니다.이전에 ZK [Cairo] - 나이 인증 회로 구현 에서 나이 인증 회로를 만들어봤다.위 과정에선 굉장한 문제점이 있다.zk proof 를 만들때 포세이돈 해시로 만드는데 이 과정만 알아버리면 누구든지 verify를 통과하는 proof를 만들수 있다는 것이다.그래서 이 부분을 숨기고싶었다.굉장히 많이 찾아봤지만 cairo 에서 proof를 만들고 온체인에서 verify를 하는걸 못 찾았다.그래서 noir로 circuit을 짜고 proof를 만들어서 noir가 제공해주는 verifier를 통해서 구현해보고 싶었다.(1) Noir circuit다시 보니 vscode 에는 noir 하이라이팅 익스텐션이 있는데 cursor 에는 없다.예..
[DB] MySQL 인덱스 사용 가이드
·
개발/Database
MySQL 인덱스 (Index) 사용 가이드목차인덱스란 무엇인가?인덱스의 작동 원리인덱스의 종류인덱스 생성 및 관리인덱스 성능 최적화실제 예제인덱스란 무엇인가?인덱스는 데이터베이스에서 데이터를 빠르게 찾을 수 있도록 도와주는 자료구조입니다. 책의 목차나 색인과 같은 역할을 하며, 전체 테이블을 스캔하지 않고도 원하는 데이터를 빠르게 찾을 수 있게 해줍니다.인덱스가 필요한 이유전체 테이블 스캔(Full Table Scan) 방지: 대용량 데이터에서 성능 향상정렬된 데이터 접근: ORDER BY, GROUP BY 성능 개선중복 값 제거: DISTINCT 연산 최적화조인 성능 향상: 외래키 인덱스 활용인덱스의 작동 원리1. B-Tree 구조MySQL의 기본 인덱스는 B-Tree(Balanced Tree) 구조..
[DB] - MySQL B-Tree
·
개발/Database
MySQL B-Tree 배워보기모든 코드는 깃허브에서 볼수 있습니다.1. B-Tree란?B-Tree는 데이터베이스 인덱싱에서 가장 널리 사용되는 자료구조입니다. 이진트리를 확장한 형태로, 각 노드가 여러 개의 자식을 가질 수 있는 균형잡힌 트리입니다.B-Tree의 특징각 노드는 여러 개의 키를 가질 수 있음모든 리프 노드가 같은 레벨에 있음 (균형잡힌 구조)검색, 삽입, 삭제 연산이 모두 O(log n) 시간복잡도디스크 기반 저장소에 최적화B-Tree vs 이진트리이진트리: 각 노드가 최대 2개의 자식B-Tree: 각 노드가 여러 개의 자식 (보통 수백~수천개)B-Tree: 디스크 I/O 최소화에 특화B-Tree의 핵심 메커니즘1. 노드 분할 (Node Splitting)B-Tree에서 노드가 가득 찰 ..
[BlockChain] ZK (Cairo) - 나이 인증 회로 구현
·
개발/BlockChain
ZK [Cairo] - 나이 인증 회로 구현모든 코드는 깃허브에서 볼수 있습니다.(0) 흐름zk 에서 핵심은 내 나이를 밝히지 않고 20세 이상인걸 만족하는지 증명하는 것이다.먼저 나이와 nonce(랜덤값)을 받아서 해시값(commitment)을 만든다.이 해시값을 조건(20세)과 함께 해시값(zk-proof)을 만든다.컨트랙트에서 commitment 와 조건(20) 으로 해시값을 만들어서 zk-proof와 비교한다.commitment는 공개될 값이므로 nonce가 없다면 dictionary attack 으로 내 나이를 알수 있다.(1) 세팅scarb new proverscarb new verfier이제는 scarb new 가 어느정도 자연스러워졌다.의도는 prover 에서 age, nonce, min_..
[Blockchain] ZK - STARKNET SEPOLIA에 배포해보기
·
개발/BlockChain
ZK - STARKNET SEPOLIA에 배포해보기0. 환경 설정배포 전 로컬에서 배포를 진행해 볼건데 관련 환경설정은 아래에서 한다.starknet environment-setup1. 프로젝트 생성scarb new deploy모든 명령어는 deploy 폴더에서 진행된다.2. Local 배포Local devnet 띄우기starknet-devnet --seed=0이러면 devent 이 세팅되고 지갑주소들이 보인다.그중 하나를 선택해서 address와 private key를 입력하면된다.sncast account import \ --address=0x064b48806902a367c8598f4f95c305e8c1a1acba5f082d294a43793113115691 \ --type=oz \ -..