프로그래밍 354

Unity 생명주기에 관해 알아보자

위 그림은 유니티에서 제공하는 생명주기 도식인데, 나같은 입문자들이 보기에는 너무 세세한 정보를 담고 있으므로...중요한것만 뽑아서 정리를 해보려한다. Awake() Scene이 시작되고, 모든 Monobehavior의 Start()전에 호출된다. Prefab이 초기화되고난 직후다. | Start() 첫번째 프레임이 업데이트 되기전에 호출된다. 단, Script의 인스턴스가 활성화 되어있을때만 호출된다. 게임 플레이 중에 Object를 생성한다고해서 Start()가 호출되지 않는다. | OnApplicationPause() 게임이 중단되고, 프레임과 프레임 사이에 호출된다. 게임이 중단된 상태를 핸들링하기 위해서 OnApplicationPause이후에 하나의 프레임이 더 있다. | FixedUpdate(..

[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..