전체 글 80

두번째 프로젝트 회고

프로젝트 - 인센티브 기반 커뮤니티 개발 - 자체적인 토큰을 가지고 참여자를 유도하는 생태계 빌딩 프로젝트 기간 - 2023.07.03 ~ 2023.07.14 기술스택 Front-End Back-End Contract Tools Collaboration - React - Nodejs - Express - MongoDB - Mongoose - Solidity - Truffle - OpenZepplin - vscode - Ganache GUI - MongoDB Compass - Git - GitHub - Notion - Discord 구현 완료 화면 맡은 역할 : 백엔드 개발 느낀점 git에 좀 더 익숙해졌고, mongoDB를 처음 사용해 봤는데 생각보다 사용하기 쉬워서 놀랐다. DB 스키마를 설계하는데 아..

프로젝트 2023.07.14

첫번째 프로젝트 회고

프로젝트 - react, nodejs, soilidity를 이용하여 OpenSea 따라 만들어보기 프로젝트 기간 - 2023.06.23 ~ 2023.06.30 맡은 역할 - 백엔드 개발 - 컨트랙트 개발 기술 스택 - react - nodejs - express - nft.stroage - remix - (자세하게 추가 예정) 설계 느낀점 이번 프로젝트는 백엔드 비중이 적어서 힘들진 않았다. 프론트에 일이 많아서 백엔드를 끝내고 프론트쪽에 붙어서 진행을 해야했는데 reacrt를 다루는게 서툴러서 힘들었다. react 쪽 공부가 필요할 것 같다. github https://github.com/codestates-beb/beb-09-first-miumiu GitHub - codestates-beb/beb-0..

프로젝트 2023.06.30

[블록체인 기술 1] 블록체인 트릴레마

블록체인 트릴레마 (Trilemma) - 블록체인 기술의 3대 요소인 확장성(Scalability), 보안성(Security), 탈중앙성(Decentralization) 중 하나는 희생해야 한다는 문제 * 트릴레마 (Trilemma) - 선택해야 하는 길은 3가지가 되는데 그 어느 쪽을 선택해도 남은 두 가지는 또는 한 가지의 문제를 악화시키는 상황 블록체인 기술의 3대 요소 1. 확장성 (Scalability) - 사용자 수가 늘어나더라도, 유연하게 대응할 수 있는 정도 ** 확장성이 높으면 사용자 수가 증가해 거래 건수가 늘더라도, 무리 없이 전송 처리용량을 증가시킬 수 있음 ** TPS가 높다고도 표현함 (블록체인 네트워크의 성능지표로 사용함) - 높은 트랜잭션 처리량과 미래의 증가량을 얼마나 견딜..

블록체인 2023.05.10

[블록체인 기술 1] 암호화

암호학 - 암호화 및 복호화를 연구하는 학문 * 암호화 - 일반 메시지(평문)를 이해하기 위한 어려운 암호문으로 변경하는 과정 * 복호화 - 암호문을 읽을 수 있는 일반 메시지(평문)으로 변경하는 과정 * 암호 사람이 읽을 수 있는 평문을 타인이 이해할 수 없는 암호문으로 만들어 전송하고, 그것을 다시 사람이 읽을 수 있는 평문으로 복구하는 것 ⇒ 암호화폐에는 해시 함수, 공개키 암호화, 디지털 서명과 같은 다양한 함호화 기술을 사용함 ⇒ 블록체인에 저장된 데이터의 일관성을 보호하고 거래를 인증하는데 사용 블록체인에서 암호는 대표적으로 보안을 위해서 사용 → 기밀성, 익명성, 무결성, 부인 방지를 위해 사용 아래의 기능들은 크게 대칭키 암호 방식, 비대칭키 암호 방식, 해시 함수를 사용해 구현 기밀성 타..

블록체인 2023.05.08

[블록체인 기술 1] 블록체인 지갑 (+ 영지식 증명)

핫 월렛 (Hot Wallet) - 온라인 - 네트워크에 연결되어 있어 실시간으로 거래 정보를 주고 받을 수 있음 - 개인 키가 온라인에 노출되기에 해킹 등의 보안 문제에 취약함 - 암호화폐 거래를 자주 사용하는 경우 사용하는 것이 바람직 핫 월렛의 종류 1. 웹 월렛 - 웹 기반으로 호스팅되는 지갑 - 인터넷 브라우저를 통해 접속하는 지갑으 ** 브라우저 확장 프로그램이나 웹 사이트 형태로 제공됨 - 항상 인터넷에 노출되어 있어 보안에 가장 취약 / 즉시 거래가 가능하기에 가장 실용적 - 종류 : 메타마스크(MetaMask), 카이카스(Kaikas) 등 2. 데스크톱(PC) 월렛 - OS에 다운로드하여 작동할 수 있는 앱 - 인터넷 접속 여부에 따라 핫 월렛이나 콜드 월렛으로 작동함 - 웹 월렛보단 불..

블록체인 2023.05.05

[블록체인 기술 1] 암호화폐 내용 정리

암호화폐(Cryptocurrency) - 암호화 (crypto) + 화폐 (currency) - 암호화 기술을 이용한 가상화폐 - 분산 장부(Distributed Ledger)에서 비대칭키 암호화를 통해 안전하게 전송하고, 해시 함수를 이용해 쉽게 소유권을 증명할 수 있는 디지털 자산 - 단일 주체가 소유하거나 관리하지 않는 탈중앙화된 전자 화폐 시스템 탈중앙화 모델 - 네트워크에 참여한 노드(서버 역할)들이 서로 연결되어 있고 서로 거래 정보를 전달함 - 네트워크 탈중앙성은 상당한 수준의 차단과 검열 저항성을 가능하게 함 ** 검열 저항성 : 거래를 감시하더라도 막지 못함한다는 뜻 - 중앙화된 모델에 비해 가용성 측면에서 우수함 ** 모든 노드가 동일한 DB 사본을 보관 → 일부 노드가 공격당해 정상적..

블록체인 2023.05.04

[블록체인 기술 1] 머클트리와 머클 패트리샤 트리

머클트리 (Merkle tree) - 여러 데이터에 대해 단계적으로 해시함수를 적용하여 하나의 해시값으로 나타내는 데이터 구조 ⇒ 여러개의 데이터를 하나의 해시값으로 만드는 데이터 구조 - 블록체인에 있는 데이터의 위변조를 방지하고, 데이터가 변하지 않았음을 보장하는데 사용 - 여러 데이터를 모아 만들어진 하나의 해시값 ⇒ 머클루트 (Merkle Root) 머클트리의 동작 방식 1. 머클 루트를 만들기 위한 데이터 A, B, C, D를 해시함수에 넣어 해시값을 만든다. 2. 각 해시값을 2개씩 짝지어 연결 후 해싱 ** ex ) hA와 hB를 하나로 연결하고 이를 해시함수에 넣어 해싱 3. 최종적으로 하나의 해시값만 남을 때가지 이 과정을 반복 함 4. 마지막으로 남은 값을 다시 한번 해싱 → merkl..

블록체인 2023.05.03

[블록체인 기술 1] 분산원장 내용 정리 1

분산 데이터베이스 (Distributed Database) - 분산된 저장소(노드)들이 네트워크를 통해 연결되어 작동하는 하나의 데이터베이스 관리 시스템(DBMS) - 물리적으로는 여러 위치에 분산 저장하고 흩어져 있지만 논리적으로는 하나인 것 처럼 활용 ** 물리적으로 떨어져 있는 저장소(노드)들은 네트워크를 통해 연결됨 ** 노드들은 투명성 확보가 가장 중요함 분산 데이터베이스에서 목표로 하는 투명성의 특징 종류 내용 특징 병행 다수의 트랜잭션 실행 시 결과가 일관성 유지 자원처리 양 및 속도 개선 장애 장애 발생이 All or Nothing 유지 (원자성 유지) 데이터 일관성 지역사상 개별 지역의 물리적 이름과 관계없이 접근 가능 확장성 확보 위치 데이터를 물리적 저장 위치가 아닌 논리적 입장에서 ..

블록체인 2023.05.02

Node.js 설치 방법 (nvm)

nvm (Node Version Manager) 으로 nodejs 설치 NVM (Node Version Manager) - 패키지 매니저처럼 nodejs 버전을 관리할 수 있음 - 간단하게 nodejs를 설치하고 다양한 version을 옮겨다니며 사용 가능 # nvm 설치 $ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash # nvm 활성화 $ source ~/.bashrc # nvm 설치 확인 $ nvm --version # node.js 설치 # 최신 버전 설치 $ nvm install --lts # nodejs 버전 확인 $ node -v nvm 간단 사용법 # nvm을 통해 설치한 node versio..

Node.js 2023.04.06

Node.js 기초 정리

Node.js - Chrome V8 JS 엔진을 기반으로 만들어진 오픈 소스, 크로스 플랫폼 서버 사이드 런타임 환경 * 프레임워크가 아닌 JS 언어의 실행환경임 * 브라우저 밖에서도 JS 실행 가능 - 웹 서버로도 사용 가능 * 웹 서버 기능을 내장하고 있음 ** 런타임 (run time) - 프로그래밍 언어가 구동되는 환경 ex) JS 런타임 : 웹 브라우저, node.js ... Node.js로 할 수 있는 일 - 서버에서 사용되는 프로그램을 만들 수 있음 - 데스크탑에서 사용되는 GUI 프로그램을 만들 수 있음 - 작은 로봇용 프로그램 만들 수 있음 package.json과 package-lock.json - Node.js 애플리케이션에서 사용되는 파일 - 프로젝트의 종속성 관리를 돕는 데 사용됨..

Node.js 2023.04.05