전체 글

backend/blockchain

20231005 블록체인 baseball

truffle config.js development: { host: "127.0.0.1", // Localhost (default: none) port: 8545, // Standard Ethereum port (default: none) network_id: "*", // Any network (default: none) }, development 의 host와 portf 위와같이 설정함으로 ganache와 소통할 준비를 한다. 컴파일러는 solc의 버전 설정을 위해 사용된다. 0.8.13 버전사용의 이유는 명확하지는않다. compilers: { solc: { version: "0.8.13", // Fetch exact version from solc-bin (default: truffle's ver..

backend/blockchain

20231005 블록체인

블록체인 메타마스크를 통한 이더리움 지갑연결 truffle이용한 배포및 테스트 그리고 빌드 web3라이브러리 Counter.sol // SPDX-License-Identifier: MIT pragma solidity ^0.8.13; contract Counter{ uint256 private value; // function setValue(uint256 _value) public { // value = _value; // } function increment() public { value +=1; } function decrement() public { value -=1; } function getValue() public view returns(uint256) { return value; } } tr..

backend/blockchain

20230912 블록 체인 지갑

지갑에대한 이록적인 내용 # 지갑 구성 및 지갑의 역할 - 기본적인 역할로 암호화폐를 안전하게 보관할수있고 암호화폐를 전달하거나 받을수있다. - 자산의 소유권을 암호화 방식으로 증명 지갑의 개인키를 사용해서 거래의 서명을 검증하고 본인의 자산을 관리 - 본인의 암호화폐의 보유량 확인 - 지갑의 거래내역확인 - 복구 문구를 사용해서 지갑 복원(복구 문구를 가지고 특정 알고리즘을 거쳐서 개인키를 추출한다.) ## 금융 - 금융쪽에서는 장부를 가지고 모든 거래내역을 기록하는방식 - 은행이라는 금융기관은 장부에 거래 내역으로 의존 할수 밖에 없는 중앙 집권 방식 # 분산 원장 - 분산원장은 금융과 반대로 거래에 참여하는 모든 참여자가 장부를 가지고있고 거래가 발생했을때 해당 거래 내역을 각자의 장부에 기록하는 ..

frontend/react

react hook

react hook 메모리 관리에도 유용하다 # react hook ## useContext ### 저삭컴포넌트들의 전역 상태 관리를 도와준다. ## useReducer ### 공식문서에 state의 대체 함수라고 나와있음 ### 다수의 하위값을 복잡한 로직으로 만드는 경우 ### 상태값을 여러가지 사용할 경우 stateqheksms ### Reducer를 사용하는것이 좋다. ### 이전 상태를 다룰경우에도 이점이 있음 ## useCallBack ### 메모이제이션 기법을 사용해서 콜백을 반환해준다. ### 컴퓨터가 동일한 연산을 반복할떄 이전연산값을 ### 메모리에 저장하고 반복수행을 줄이는것 (연산의 반복을 제거하는것) ### 최적화 시키기위해 사용하는 기법 ### 실행속도가 빨라진다. ## useM..

frontend/react

20230710 react 변수의 전역화

// 리덕스 // 스토어, 액션 ,리듀서 // 스토어는 상태가 관리되는 오직 하나의 공간 컴포넌트와 별개로 store라는 공간이있어서 // 펼요한 상태값을 담아둔다. // 컴포넌트에서 전역상태값이 필요할때 store에 접근해서 데이터를 가져온다. // 액션은 스토어에 전달할 데이터를 자칭 액션을 사용해서 스토어에 데이터를 보내게된다. // 액션은 자바 스크립트 객체 형식으로 만들어져 있으 dispatch 함수라는것을 사용해서 인자로 매개변수로 // 액션을 전달하면 리듀서가 호출되면서 매개변수로 액션을 받게되고 // dispatch(액션) => 리듀서가 호출되면서 리듀서에 액션을 전달하게된다. // 리듀서 dispatch 함수를 통해 액션을 리듀서 함수에 전달한다. // 리듀서 함수는 매개변수로 전달받은 ..

frontend/react

20230628~29 react시작

// react 첫날 // react는 페이스북에서 2011년도 쯤에 만들어졌고 // react는 개발자들 사이에서 라이브러리다 프레임워크다 얘기가 많은데 // 공식홈페이지 에서는 라이브러리라고 말하고있다. // 공식 홈페이지에서도 라이브러리다 라고 얘기를 하는데 // 라이브러리와 프레임워크의 차이는: 폴더의 구조가없음 // 프레임워크 : 폴더구조가 있음 // 패키지를 설치 할수있기때문에 // 리액트 개발을 할때 편하게 초기세팅을 설치받아서 사용할수있다. // 메타에서 개발한것은 react,react-router 라이브러리 // 메타에서 개발하고 오픈소스에 기여중임 // 리액트를 프레임워크라고 하는 이유? // 메타에서 라이브러리를 개발하고 npx create-react-app [폴더명] // react..

배포/AWS

20230601 aws배포

// AWS EC 배포하기 // 1. EC2 ubuntu로 인스턴스 // AWS 페이지에 로그인하고 서비스탭 옆에 EC2 검색 // EC2 클라우드 가상서버 클릭 // 오른쪽 상단에 아이디 옆에 지역 : 최대한 가깝게 // 한국이 안될때 거의 일본 씀 : 먼지역하면 시간 오래걸림 // 인스턴스 클릭 해서 인스턴스 창으로 이동 // 실행중인 인스턴스 있으면 중지 시키기, 종료는 인스턴스 삭제시키기임 // 인스턴스 시작 클릭 // 인스턴스 이름 작성 // 아래 애플리케이션 및 OS 이미지 => ubuntu 클릭 // 인스턴스 유형 : 프리티어 사용 가능 확인 // 키 페어(로그인) => 새 키 페어 생성 // 키페어는 절대 노출 금지 // 카톡, 메시지로 저장하지말고 이동시에 저장매체에 담아서 옮기는게 보안..

backend/nodejs

20230516 엑세스 해싱

엑세스 해싱 정확히 무슨기능을 만드는지 인식하고 들어가는게 중요하다. 회원가입을 진행하면 비밀번호를 해싱해서 저장하는것. 비밀번호 탈취시에도 뚫리는시간을 오래걸리게끔 방지한다. 과정에서 암호화하는데 두가지 방법이있다. 하나는 내부 모듈 crypto 다른 하나는 외부 모듈 bcrypt bcrypt //express path mysql ejs const express= require("express"); const path= require("path"); const mysql2=require("mysql2/promise"); const ejs= require("ejs"); const joinRouter=require("./routers/joinrouter"); const loginRouter=require(..

goldenbeer
정현욱의 방법론