본문 바로가기

전체 글291

비트코인에 대하여(2) utxo 앞의 내용 복습 비트코인 세상에 존재하는 모든 데이터는 출금 기록이다. a에게 10원을 보낸다. b에게 7원을 보낸다. a에게 5원을 보낸다. 따위의 기록들이다. 근데 누군가에게 돈을 보내려면 일단 내가 가진 돈이 있어야 그걸 누군가에게 보낼 것이다. 내가 가진 돈이란 무엇인가? 앞에서 봤던 기록을 다시보자 a에게 10원을 보낸다. b에게 7원을 보낸다. a에게 5원을 보낸다 만약 이 기록이 비트코인 세상에 존재하는 기록의 전부이고, 내가 a라면? 내가 가진 돈은 총 15원이다. 이때 위와 같은 출금기록 하나하나를 트랜잭션 이라고 한다. 한편 트랜잭션에는 utxo냐. 아니냐 라는 프로퍼티가 존재하는데, utxo란 unspent 트랜잭션 즉. 아직 지불이 안된 트랜잭션이라는 소리인데.. 그니까 누군가의 잔.. 2021. 4. 21.
비트코인에 대하여(1) 개요 1. 비트코인은 출금 기록들이 적혀있는 데이터의 모음일 뿐이다. 비트코인 세상에서 저장되어 있는 정보들은 전부 출금 기록이다. 예를 들어 아래와 같은 기록들이다. Ex) A가 B에게 100원을 보냈다. C가 D에게 500원을 보냈다 A가 E에게 300원을 보냈다 이러한 기록들이 모여서 하나의 블록(블록A)을 이룬다. 그리고 또 추가적인 출금 기록들이 발생하면 이것들이 모여서 새로운 블록(블록B)에 담기게 된다. 이 때 이 새로운 블록(블록B)에 적히는 내용중에, 출금기록 외에 앞에서 만들어진 블록(블록A)의 hash값도 인풋으로 갖게 된다. 그리고 이 두개의 블록은 링크드리스트 형태로 묶이게 되어 체인이 형성된다. 그리고 추가로 발생되는 출금기록들이 모여서 또 새로운 블록(블록C)이 만들어지고.. 여기에.. 2021. 4. 20.
리눅스 gcc에 대하여 개요 사용방법 옵션들 정의: gcc는 리눅스에서 사용하는 컴파일러의 한 종류이다. 가장 널리 알려지고 사용되는 컴파일러이다. 사용방법 : 비쥬얼스튜디오에서 프로젝트를 하나만들어서 c코드를 만든다고 생각해보자 test.c 라는 파일을 만들고 코드를 작성한다. 그러고나서 빌드를 누르면 하나의 exe 파일이 생성된다. 리눅스에서도 똑같은 test.c 라는 파일을 만든다. 근데 리눅스에는 비쥬얼스튜디오가 없다. 이 c파일을 어떻게 빌드해서 실행파일을 만들어낼까? 참고로 리눅스에서는 실행파일 확장자가 .exe가 아니라 .out이 나온다. 이때 사용하는게 gcc 컴파일러다. test.c라는 소스코드가 위치한 디렉토리에서 cmd를 연다. 그리고나서 다음과 같이 입력한다 gcc test.c 이렇게 입력하고 엔터를 누르면 a.out이라는 실.. 2021. 4. 19.
VS Code. Extension Offline 설치 다운로드 받은 vsix 파일을 설치하려는 Offline 컴퓨터로 이동Offline 컴퓨터에서 extension 설치탭으로 이동 2021. 4. 19.
REST API. 그리고 JWT 토큰 & 인증에 대하여 REST API를 이용하여, 클라이언트가 서버에게 데이터전송을 요청한다는 것을 알게되었다. 그런데 만약 회원의 전화번호, 집주소 이런 정보를 REST API 를 사용하여 요청하면 어떻게 될까? 공개된 REST API를 사용해서 누구나 다른 사람의 개인정보를 Return 받을 수 있다면, 이는 문제가 된다. 따라서, 인증을 거쳐서 인증이 통과된 사람만 특정 데이터를 받을 수 있도록 하는 보안절차가 필요하다. =====토큰? 이러한 보안절차 중에 사용되는 방법 중 하나가 바로 JWT 토큰을 이용한 인증이다. 토큰이라는 것은 '어떤 데이터' 인데, 인증의 증거물로 사용되는 데이터 라고 할 수 있다. (비밀번호 같은 느낌이라고 해야되나?) 예시를 들어보자. 회원의 전화번호를 서버에게 요청하는 Case를 생각해보.. 2021. 4. 15.
REST API에 대하여(Feat. 업비트 API) 업비트 거래소를 이용하여, 코인 자동 매매 프로그램을 만들어보자그럴려면 REST API의 개념에 대해 알아야한다. 일단 REST API가 뭔지, 구체적인 예시를 보자. 웹상에서 서로 간에 데이터를 주고 받으려면, 클라이언트(수신자)가 서버(송신자)에게 이런이런 정보를 주세요~ 하고 요청을 해야 서버가 클라이언트에게 데이터를 줄 것이다. 그런데, 그 요청을 어떻게 할건지를 정해놔야 서버와 클라이언트가 서로 소통을 할 수 있을것이다. 이 때, 클라이언트가 서버에게 요청하는 방법(형식?)을 표준화 해놓은걸 REST API라고 한다. 자잘한 설명보다 구체적인 예시를 보이는게 이해가 빠를 것 같다. 위 그림은 가상화폐 거래소인 업비트에서 제공하는 API에 대한 설명을 제공하는 페이지이다.위 그림을 보면 "마켓코드.. 2021. 4. 14.
배치파일 관련 https://www.snoopybox.co.kr/m/1404 배치파일 기초 작성법 예전부터 한번 정리하려고 했는데 시간이 많이 걸리는 일이라 차일피일 미루다 오늘에야 올려봅니다. 처음에는 간단히 작성하려고 했는데 쓰다보니 글이 꽤 길어지더군요. 관심있는 분들만 www.snoopybox.co.kr 참고 2021. 3. 12.
VSCODE 유용한것 메모 https://hjcode.tistory.com/m/14 vscode 유용한 기능 Vscode의 유용한 기능들 셀렉션 위/아래로 이동 alt + 방향키 위/아래 셀렉션 복사 alt + shift + 방향키 위/아래 멀티 커서 에디팅 (Multi Cursor Editing) ctrl + alt + 방향키 위/아래 떨어져 있는 단어들을.. hjcode.tistory.com 파일 안에서 특정 줄로 이동 : CTRL + G (커맨드이름 Go to Line/Column) ctrl + alt + 방향키 : 멀티 커서 생성 (참고로 해당 기능 정확한 이름은 Add Cursor Above Add Cursor Below 이다.) alt + 클릭 : 멀티 커서 생성 ctrl + d : 내가 특정 단어나 문장을 선택했을 때.. 2021. 2. 19.
가정법 그리고 if 일반적으로 우리가 사용하는 if 문은 만약 ~하면 , ~한다. 이런식으로 쓴다. 근데 영어에서 if 문을 쓸때는 좀 더 상황을 구분하고, 상황에 따라서 동사의 시제가 달라진다. 두가지 케이스로 구분해야한다. 만약 ~라면, ~할텐데 라는 의미(아쉬움의 늬앙스) 만약 ~라면, ~ 한다. 라는 의미(할거라는 의지표현) 첫번째 케이스는 이룰 수 없는 상황에 대한 아쉬움을 나타내는 부류이다. 두번째 케이스는 만약 어떤 조건이면 무엇을 할거라는 의지가 담긴 표현이다. 예를 들어서, 비가 안오면 여자친구랑 데이트 할텐데.. (현재 비오는 상황) 내일 비가 오면 여자친구랑 데이트 안 할거야. 이런 식으로 구분된다. 첫번째는 If it didnt rain, I would have a date with my girl fr.. 2020. 12. 22.