본문 바로가기

프로그래밍 관련/프로그래밍 관련 잡지식18

빌드.컴파일 그리고 makefile에 대하여 make 파일의 개요 리눅스 gcc에 대하여 1 (tistory.com)에서 gcc의 개념에 대해서 간략하게 알아보았다. gcc는 컴파일러 중 하나라고 하였다. 그래서 위 글에서 설명하는 내용은 사실 gcc에만 해당되는건 아니고 대부분의 다른컴파일러도 사용방법이 비슷하다. 근데 빌드해야 할 소스코드의 갯수가 몇 개 없을 때는 앞에서 말한것처럼 타이핑 해서 컴파일 하면되는데 프로젝트가 방대해지면 빌드 할 때 마다 이렇게 일일이 cmd에 명령을 쳐서 빌드하기가 어려워진다. 그래서 빌드와 관련된 이런저런 옵션,셋팅과 관련된 내용을 makefile 이라는 파일에 미리 작성해놓으면 일일이 cmd 창에 "gcc ... 어쩌구" 명령을 칠 필요가 없게 된다. 대신에 그냥 make 라는 명령만 실행하면 makefile.. 2021. 11. 25.
임베디드 리눅스.라즈베리파이 타겟보드에 맞는 실행가능한 리눅스 이미지가 필요하다. 이미지라는건 그림 파일을 말하는건 아니고. 리눅스 코드를 빌드해서 만들어진 실행가능파일 이라 생각하자. 타겟보드의 설정에 따라 다른데, 앞에서 말한 리눅스이미지 파일을 타겟보드의 SD카드에 저장하거나. 혹은 t32 를 통해 타겟보드의 플래시에 플래싱을 하거나 혹은 부트로더를 사용하는 등의 방식으로 타겟보드에 리눅스 이미지가 설치되게 된다. 타겟보드에 알맞은 리눅스 이미지가 설치되어있다면 이제 타겟보드 전원을 키면 해당 리눅스 이미지가 실행이 될 것이다. 그렇게 부팅이 끝나면 우리가 사용하는 pc에서 부팅 끝나고나면 뭔가 하는것 없이 바탕화면만 뛰어놓은 상태. 그런 상태에 타겟보드가 머물러 있게 된다. 이 상태에서 타겟보드를 제어하기 위한 sw 코딩을 .. 2021. 6. 24.
비트코인에 대하여(3) 코인베이스.트랜잭션에 중간점검하자 비트코인에 존재하는 데이터는 오직 출금기록 뿐이다. a가 b에게 10원 보냈다. e가 b에게 50원 보냈다. 위 상황에서 b는 잔액 60원이 생겼다. a와 e가 b에게 보낸돈이 60원이기 때문이다. 한편, 이러한 출금기록 한줄 한줄을 우리는 트랜잭션이라고 부른다. 한편, b는 잔액이 60원이므로 이 돈을 다른사람에게 보낼 수 있다. 즉, 새로운 트랜잭션을 만들 수 있다. 근데 이 트랜잭션을 만들때는 항상 source 트랜잭션이 필요하다. 말하자면 출처가 필요하다는 소리이다. 여기서 말하는 소스는 a가 b에게 10원 보냈다. e가 b에게 50원 보냈다 이다. 이것이 b가 가진 소스이다. b가 c에게 출금을 하려면 이 트랜잭션으로 부터 새로운 트랜잭션이 생성가능하다. 근데 .. 그건 알겠는데 그.. 2021. 4. 24.
비트코인에 대하여(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.