개발

    [Docker] 이미지와 컨테이너

    1. 이미지란? 이미지는 템플릿, 컨테이너의 청사진이다. 이미지는 실제로 코드와 코드를 실행하는데 필요한 도구를 포함한다. 그 다음 컨테이너가 실행되어 코드를 실행한다. 이미지를 기반으로 여러 컨테이너를 만들수 있다. 예를 들어 NodeJS 웹 서버 애플리케이션의 경우 한번만 정의하면 다른 시스템과 다른 서버에서 여러번 실행할 수 있다. 컨테이너는 그러한 이미지의 구체적인 실행 인스턴스이다. 즉, 이미지는 블루프린트이고 템플릿은 코드와 애플리케이션을 포함하며 컨테이너는 실행 애플리케이션이 된다. 2. 컨테이너 생성 로컬에 노드 이미지가 없다면 도커허브에서 자동으로 다운받는다. docker run node 기본적으로 컨테이너는 주변 환경과 격리되어 있으며 컨테이너 내부에서 실행중인 인터렉티브 쉘이 있다고 ..

    [Docker] 도커의 개념

    1. 도커란? 도커는 컨테이너를 생성하고 관리하기 위한 도구이다. 2. 컨테이너란? 소프트웨어 개발에서 컨테이너란 표준화된 소프트웨어 유닛이다. 이는 기본적으로 코드 패키지이며 해당 코드를 실행하는데 필요한 종속성과 도구가 포함되어있다. 예를 들어 NodeJS 애플리케이션을 구축하는 경우 NodeJS는 서버에서 js코드를 실행하는데 사용할수 있는 런타임이다. 도커로 빌드된 컨테이너에는 애플리케이션 소스 코드 뿐만 아니라 코드를 실행하는데 필요한 기타 도구가 있을수 있다. 동일한 NodeJS코드와 동일한 NodeJS도구를 사용하는 동일한 컨테이너는 항상 동일한 버전을 사용하는 동일한 js런타임에 항상 동일한 동작과 결과를 제공한다. 3. 컨테이너의 필요성 개발을 하다 보면 버전에 따라 실행이 안되는 코드도..

    [ERC토큰] ERC20 ERC721 ERC777 ERC1155

    1. ERC20 ERC20은 대체가능한 자산에 가장 많이 사용되는 토큰 표준이다. 토큰표준인 ERC20은 여전히 가장 널리 퍼져있어 이를 사용하는 토큰이 이더리움 네트워크의 모든 프로젝트 및 이더리움 기반 지갑과 호환된다. ERC20은 블록체인의 특정 행위를 규제하기 위한 일련의 지침이므로 대부분의 사용자는 조직 및 관리 기관이다. 이 유형의 토큰은 분할 될수 있으며 소유권은 많은 주소에 귀속된다. 예를 들어 1이더를 소유하고 있다면 0.5이더를 친구에게 보낼 수 있다. 그렇게 하면 해당 토큰을 친구의 주소에 귀속시킬수 있다. ERC20은 스테이블코인생성, ICO, 크라우드 펀딩 및 유사한 이벤트에 유용하다. 또한 가상통화, 스테이킹 토큰 및 투표토큰을 포함하여 이더리움 블록체인의 대체가능한 토큰에 대한..

    [정리] 해싱과 암호화

    1. 해싱과 암호화 (1) 해싱 [자료구조] 해시테이블 1. 해시테이블이란 js의 객체와 같다고 생각하면된다. 해시테이블은 객체와 마찬가지로 키-값 쌍을 저장하는데 사용한다. 배열과는 다르게 해시테이블은 순서를 가지지 않는다. 값을 찾거나, 새 diary-blockchain.tistory.com 해싱이란 원본 문자열을 다른 값으로 변환시키는 것이다. 즉, 원본 문자열을 내가 미리 짜놓은 해시 알고리즘을 거쳐 다른 값으로 나오게 하는 것이다. 해시 알고리즘을 통해 길이가 매우 긴 문자열도 내가 정해놓은 틀에 맞춰 변형시킬수 있다. 동일한 문자열은 동일한 해시 알고리즘을 사용하면 동일한 해시값을 생성해야한다. 서로 다른 문자열은 동일한 해시 알고리즘을 사용하면 서로 다른 해시값을 생성해야 한다. 해싱이 완료..

    [알고리즘] 동적 프로그래밍

    1. 동적프로그래밍 문제를 더 작은 조각으로 나눈 다음에 앞에 위치한 조각을 기억하는것을 통해서 해야하는 작업의 양을 줄이는 방식으로 문제를 푸는 접근법이다. 사용 조건 최적 부분구조가 존재하는지, 반복되는 하위 문제가 있는지를 확인하고 사용할 수 있다. 문제에 어떤방식으로든 중첩되는 하위 문제들이 있어야 한다. 이 말은 한문제를 더 작은 문제들로 나눌수 있고 그 조각들중 일부가 재활용이 가능하다는 말이다. 최적부분 구조 하위 문제의 최적 해답을 통해서 더 큰 범주의 문제의 최적 해답을 구성할 수 있는 경우 해당 문제가 최적 부분 구조를 가진다고 한다. 예시) 피보나치 수열은 5번째의 수를 찾기 위해 4번째수와 3번째수를 이용한다. 2. 피보나치 function fib(n) { if (n

    [자료구조] 다익스트라 알고리즘 (길찾기)

    1. 다익스트라 알고리즘 다익스트라의 이름을 딴 알고리즘으로 그래프의 두 정점사이에 존재하는 최단경로를 찾는 알고리즘이다. 그래프를 가로지르면서 순회하고 우선순위큐를 사용한다. gps, 네트워크 라우팅, 전염병 등등 많은 부분에서 씅니다. 2. 우선순위큐 class PriorityQueue { constructor() { this.values = []; } enqueue(val, priority) { this.values.push({ val, priority }); this.sort(); } dequeue() { return this.values.shift(); } sort() { this.values.sort((a, b) => a.priority - b.priority); } } 3. 다익스트라 알고리..