전체 글 539

[영상] 레이 달리오, 변화하는 세계질서

투자원칙 1 중앙은행이 위기 극복을 위해 화폐를 찍어내면 주식, 금, 원자재를 매수하라. 정부가 세금 수입보다 더 많은 지출을 했을 경우 재정 상태는 악화되어 돈이 바닥난다. 그를 극복하기 위해 화폐를 많이 찍어내면 화폐가치가 하락하며, 주식, 금, 원자재를 포함한 대부분의 자산 가격을 상승시킨다. 투자원칙 2 다가올 미래를 전망하기 위해서는 과거의 역사를 알아야 한다. 한 국가의 경제가 흥하다가 투자가 활발히 일어나고, 결국 대출을 하면서 까지 투자, 버블은 부의 격차를 가져오고, 버블이 터지면서 돈을 찍어내고...빈부갈등이 심해지며 부를 재분배하기 위한 혁명이 일어난다. 이런 일이 벌어질동안 다른 신흥 강국이 등장한다. 세계 패권의 역사는 이러한 부상과 쇠락 싸이클의 반복이었다. 영상 번역 https..

나/독후감 2022.03.15

[Android Studio] 범블비 Network Inspector 인코딩 깨짐 해결방법

안드로이드 스튜디오 범블비(Bumblebee) 버전으로 업데이트하니 원래 잘 나오던 Network Inspector에서의 응답 글자 인코딩이 깨져보였다. 해결방법 해결방법은 Retrofit Request Header에 Accept-Encoding을 추가해주면된다. Accept-Encoding: identity; 이는 클라이언트가 지원하는 인코딩을 서버에 알려주는 것인데, identity의 경우 압축이나 수정없이 어떠한 인코딩도 수행되지 않음을 의미한다. 실제 프로덕션에서는 gzip 인코딩등 압축을 이용할 수 있기때문에 Debug 모드일때만 Accept-Encoding을 identity;로 바꿔주도록 조건문을 추가하는 것이 좋다. 1. 개별 API에 추가하는 방법 @Headers("Accept-Encodi..

NFT 이해를 위해 꼭 알아야하는 용어들

메인넷 기존 플랫폼에서 벗어난 독립적인 네트워크 생태계를 구축한 블록체인이다. 코인을 생성할 수 있고, 다른 파생 토큰을 만들고 호환가능하게 개방된다. 코인과 토큰의 차이 자체 메인넷이 있는 암호화폐를 코인이라고 한다. 반면 다른 코인의 플랫폼을 기반으로 하는 응용 프로그램을 탈중앙화 응용 프로그램(Decentralize Application, dApp)이라고 하며 이 dApp에서 사용가능하게끔 개발된 암호화폐를 토큰이라고 한다. 예로 자체 메인넷을 보유하고 있는 이더리움 네트워크의 이더(ETH)는 코인, ERC-20 표준을 따라 이더리움 네트워크에서 파생된 토큰인 샌드박스(SAND)가 있다. 메인넷 없이 파생 토큰으로 시작해서 자체 메인넷을 구축하는 사례도 많다. (이오스 EOS, 트론 TRX) 거래소..

MySQL Database 주기적으로 자동 백업하는 법

너굴리스트 최근 업데이트에 일부 유저분들 정보를 날려먹고ㅜㅜ DB가 언제나 영원할꺼라 생각했던 나 자신의 어리석음을 반성하며 뒤늦게나마 자동 백업을 도입하기로 했다. 사실 어려운일이 아닌데 1인 개발인데 뭐 날려먹거나 하진 않겠지하는 막연한 믿음때문에 이 사태가 벌어졌다. 앱에서 사용하는 DB를 백업하는 스크립트를 적고, crontab으로 사용자 수가 적은 매일 오전 6시에 돌리려고 한다. 1. Shell script 작성 먼저 db_backup이라는 쉘 스크립트를 작성해야한다. $ vi db_backup.sh#!/bin/bash DATE=$(date +%Y-%m-%d) BACKUP_DIR=/home/lou/db_backups if [ ! -d $BACKUP_DIR ]; then mkdir $BACKUP..

프로그래밍/SQL 2022.02.14

HTTP 연결과 커넥션 관리

연결 수립 클라이언트와 서버가 HTTP 요청/응답으로 교환하기 전 , TCP 커넥션을 설정해야한다. HTTP/1.0의 기본 동작은 각 요청/응답에 대해 별도의 TCP 커넥션을 여는 것이다. TCP를 이용할 경우, 컴퓨터 상의 HTTP 서버를 위한 기본 포트는 80이다. 요청을 위한 페이지 URL은 도메인 이름과 포트번호 둘 다를 포함하는데, 포트 번호가 80일 경우 생략가능하다. HTTP 흐름 1. TCP 커넥션을 연다. TCP 커넥션은 요청을 보내거나 응답을 받는데 사용된다. 클라이언트는 새로운 커넥션을 열거나, 기존 커넥션을 재사용하거나, 서버에 대한 여러 TCP 커넥션을 열 수 있다. 2. HTTP 메세지를 전송한다. HTTP/2 이전의 메세지는 사람이 읽을 수 있을 정도다. GET / HTTP/1..

HTTP Request/Response의 메세지 구조 뜯어보기

HTTP 메세지 HTTP 메세지는 서버와 클라이언트 간 데이터가 교환되는 방식이다. 메세지 타입은 Request와 Response가 있다. HTTP 메세지는 ASCII로 인코딩된 텍스트 정보이며 여러 줄로 되어있다. HTTP/2에와서는 최적화와 성능 향상을 위해 HTTP 프레임으로 나누어지게되었다. Request Request는 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔하는 메세지이며, 다음 요소들로 구성된다. Method: GET/POST/PUT/DELETE/OPTIONS/HEAD 등 클라이언트가 수행하고자 하는 동작이다. Path: 가져오려는 리소스의 경로다. 프로토콜, 도메인, TCP 포트를 제거한 리소스의 URL이다. Version of protocol: HTTP 프로토콜의 버전 Hea..

MIME 타입

MIME 타입은 클라이언트에게 전송된 문서의 형식을 알려주기 위한 메커니즘이다. 웹 서버는 브라우저들이 각 리소스를 내려받았을때 해야할 기본 동작이 무엇인지를 결정하는데 도움을 주기위해 올바른 MIME 타입을 제공 해주어야한다. MIME 타입 외에도 매직 넘버(Magic number)라고 하는 파일을 열면 가장 처음보이는 16진수값들로 파일 형식을 구분할 수 있기도하지만 100% 신뢰할만한 시스템은 아니다. - GIF: 47 49 46 38 - PNG: 89 50 4E 47 # 일반적인 구조 type/subtype '/'로 구분된 두개의 문자열인 타입과 서브 타입으로 구성됨. 스페이스는 허용하지 않는다. # 대표적인 타입과 서브타입 예시 타입 설명 일반적인 서브타입 예시 text 텍스트를 포함하는 모든 ..