개발자의 기록장 블로그

만나서 반가워 !
이거 좋아해?

블록 체인 개론 #5
·
Computer Science/Block Chain
블록 체인 개론암호 화폐 지갑지갑의 개념에 앞서 어떻게 비트코인을 주고 받는지 알아보자. 사실 비트코인을 보낼때 아무것도 보내지 않는다. 내가 비트 코인을 소유한다는 것은 내가 비트코인을 가지고 있다는 것이 아니다. 비트코인은 네트워크 상에 영원히 존재한다. 즉 지갑에 비트코인을 넣는다는 개념이 애초에 잘못된 것이다. 그렇다면 어떻게 비트코인을 소유할 수 있는 것일까? 예를 들어서, 집을 산다고 했을 때 집의 주소가 바뀌는 것이 아니라 그 집 문서가 바뀐다.즉 비트코인을 거래할때 A가 B에게 5개의 비트코인을 준다고 할 때 5개의 비트코인의 소유주의 이름을 B로 변경하는 것. 여기서 이름을 지갑으로 바꿔보자. 비트코인 지갑은 굉장히 긴 문자열이다.16faewiobng1egBASkbsakn2 : 비트코인 ..
블록 체인 개론 #4
·
Computer Science/Block Chain
블록 체인 개론NFTNFT - Non Fungible Token대체 불가능 토큰이란 의미이다. Fungible: 예를 들어서 1달러 화폐와 1달러 화폐는 1 대 1 교환이 가능하다. Non-Fungible: 땅, 포켓몬 카드, 한정판 신발 등은 1 대 1 교환이 불가능하다. 이더리움을 이용하면 블록체인 기반 나만의 토큰을 발행할 수 있다.이더리움 기반의 코인들을 보면 블록체인의 안정성을 바탕으로 코인을 발행해 화폐로서의 기능을 수행할 수 있는 것이다.토큰 발행돈을 받으면토큰을 보내준다.라는 스마트 컨트랙을 작성하자.예로 1ETH를 보내주면 100코인(토큰)을 보내준다. 만약 딱 한 개의 코인만을 발행하면, 그리고 그 토큰 안에 데이터 ( 포켓몬 카드, 작품, 땅 계약 문서 등등 ) 을 넣는다면? 그러면 ..
블록 체인 개론 #3
·
Computer Science/Block Chain
블록 체인 개론Smart Contract스마트 컨트랙 덕분에 NFT, ICO (Initial Coin Offering), DEX(Decentralized EXchanges) 가 가능해졌다. 비트코인은 다른 사람들고 교류할 수 없다. 주고 받는 것만 가능하다. 하지만 스마트 컨트랙은 다른 사람들과 교류할 수 있고 코드로 소통할 수 있다. 이런 특징을 이용해 DecenterlizedApp ( dApp )을 개발 할 수도 있다. 개발자가 코드를 실제 검증이 이뤄지는 체인에 올려 영원히 거기에 존재하고 수정되지 않는 프로그램을 구동할 수도 있다. 내가 만든 프로그램을 주인 없는 백엔드에 올리고 코드를 검증받고 실행한다는 점이 스마트 컨트랙의 큰 매력이다.예시은행나만의 은행 계좌를 만들 수 있다.돈을 저축한다.시..
블록체인 개론 #2
·
Computer Science/Block Chain
블록체인 개론작업증명작업증명은 어떤 데이터가 블록체인에 올라갈 수 있는가를 정하는 것이다.전체 블록체인 시스템에 거짓말을 하지 않고 진실을 말하기 위한 과정으로 이를 위해 작업증명이 필요한 것. 작업 증명을 통해 비트코인, 이더리움 등 다양한 크립토들이 사기꾼으로부터 블록체인을 보호하고 있다.이를 이해하기 위해 채굴자 개념을 이해해야 한다.채굴채굴자의 일은 블록체인에 들어오는 데이터를 확인하는 일이다.채굴자가 데이터를 블록안에 넣어서 블록체인에 보내는 역할을한다. 예를들어 비트코인 블록체인에서 비트코인을 친구한테 보내면 그 거래내용은 확인되지 않는다.하지만 채굴자가 거래내역을 보고 확인한 후에 친구에게 돈을 보낸 모든 내용을 확인한다.내용의 검증이 끝나면 데이터를 블록에 넣고, 꽉 차면 블록을 닫고 온체..
블록체인 개론 #1
·
Computer Science/Block Chain
블록체인 개론정의간단히 말하면 고유한 해시값을 기준으로 링크된 링크드 리스트의 집합.링크드 리스트 각 원소는 노드라 불리고 그 노드는 previous block hash , current block hash, data, nonce 의 요소로 구성된다.해시값은 아주 작은 부분의 변경도 전체 큰 부분의 변화를 가져오기 때문에 수정 불가능하며 일방향성이란 특성을 가지고있다. 각 노드들은 해시값을 기준으로 링크되어 있기 때문에 하나의 노드에서 위변조가 발생하면, 링크된 노드들의 해시값들을 모두 변경해주어야 한다. 하지만 이는 아주 많은 컴퓨팅 파워가 필요하기 때문에 현실적으로 불가능하다. 이러한 내용을 바탕으로 짧게 다시 정리하면 블록체인은 신뢰할 수 있는 분산형 데이터 베이스 시스템이다. 수정이 불가능하다는 ..
FTP 원리
·
Computer Science/Computer Network
FTP는 일반 응용프로그램과 달리 제어 채널과 데이터 채널이라는 두가지 연결이 존재한다.제어 채널은 FTP 연결을 설정하고 데이터 채널은 파일 데이터를 전송한다. 유저로 부터 FTP 연결 요청이 들어오면 사용자 인터페이스 모듈이 사용자 이름과 암호를 해석하여 명령 송수신 모듈에 전달한다. 이때 사용자들은 무수히 많고 하나하나 아이디를 부여해 줄 수 없기 때문에 익명FTP 서비스를 제공한다. 익명 FTP 서비스는 아이디를 admin , 비밀번호를 관례상 사용자의 이메일주소로 설정한다. 명령 송수신 모듈은 FTP서버와 연결을 시도하여 제어 채널을 설정하고 명령이 입력될 때 마다 사용자 인터페이스를 통해 명령을 해석하고 명령 송수신 모듈을 통해 FTP서버에 전송된다. 이때 명령에 데이터 전송등의 내용이 존재하..
DNS
·
Computer Science/Computer Network
네트워크에서 통신을 하기 위해서는 IP주소가 반드시 필요하다. 호스트들을 IP주소로 구분하기 때문에 데이터가 어디서 어디로 가야할지 정할 때 반드시 필요하기 때문이다. 그러나 보통 우리는 숫자 주소를 외우지 않고 문자 주소를 외우고 있다. 즉 어디선가 문자 주소를 숫자 주소(IP주소)로 변환해 주고 있다는 것! 이 기능을 현대에선 DNS가 서비스해준다. 과거에는 호스트 이름과 IP 주소 쌍으로 이루어진 데이터들을 모아놓은 호스트 파일이란 것을 만들어 하나의 컴퓨터가 전적으로 관리했다. 그러나 인터넷이 발전함에 따라 사용자수가 기하급수적으로 늘고 중복된 IP와 도메인 이름을 수작업으로 관리할 수가 없어졌기 때문에 오늘날 DNS 서비스가 탄생하게 된 것!  DNSDNS란 계층적 주소를 지원하는 분산형 데이터..
WWW
·
Computer Science/Computer Network
웹은 인터넷 사용자(클라이언트)가 로그인 없이 WWW(World Wide Web) 서버에 접속할 수 있는 서비스를 말한다.웹 브라우저는 웹클라이언트와 웹서버 사이에서 웹서버의 정보를 웹클라이언트에게 보여주는 프로그램이다. 웹 클라이언트/서버웹브라우저는 URL(Uniform Resource Locator)이 새로 쓰여질 때마다 TCP 연결을 설정하고 해제한다. 즉 사용자가 웹 페이지를 봤을 때에는 이미 연결이 해제된 상태이다. (연결에 대한 정보가 없이 데이터를 주고받기 때문에 비상태 프로토콜이라고 한다.) URL은 전송프로토콜과 도메인 네임 그리고 파일경로로 이루어져있다. http://www.naver.com/index.html 클라이언트는 DNS 서버에 접속해 도메인 네임을 key로 하여 IP주소를 값..