본문 바로가기

Server

(2)
Unicode vs UTF-8 차이점 및 golang rune이란? 쉽게 이해하기 Unicode vs UTF-8 비교는 도커 vs VM 만큼 바보같은 비교이다. 이는 Unicode, UTF-8에 대해 제대로 이해하지 못하고 있다는 증거이며 인코딩에 대한 개념이 부족한 것이다. 이와 관련하여 설명해 본다. 우선, Unicode는 모든 문자를 정리해두고 이 문자에 순번을 매겨둔 표이다. ASCII가 영어만을 고려해서 1Byte로 만들었다면 Unicode는 4Byte로 훨씬 넓은 범용성을 제공한다. 또한 ASCII에 대한 하위호환성을 유지한다. (무슨 뜻이냐면 ASCII에는 '김'에 해당하는 순번이 없지만 Unicode에는 있음.) 이에 반해 UTF-8은 인코딩, 디코딩 방식이다. 인코딩에 대한 사전적인 정의는 정보의 형태나 형식을 변환하는 처리나 처리 방식이라고 나와있는데, 쉽게 생각하면..
Prepared statment란? (golang) 서버에서 db에 쿼리를 할 때 일반 statement와 prepared statement의 차이점에 대해 설명한다. 기본적으로 db에 쿼리가 도착하면 db에서는 분석, 컴파일, 실행 3가지 과정이 일어난다고 한다. 그리고 이 실행을 하고 난 뒤 db cache에 해당 정보를 저장해두고 사용하는데 cache hit 기준은 쿼리 문자열이 100% 일치하였는가이다. 예를 들어, select name from test where no=30; 이 구문과 select name from test where no=31; 이 구문은 다르게 인식 되기 때문에 같은 유형의 쿼리임에도 불구하고 cache hit이 되지 않는다. 이 cache hit을 시키기 위해 사용하는 것이 바로 prepared statement 이다. 따..