전체 글 14

[개발메모라이즈] 한글이 깨지는 유형

인코딩된 charset 을 혼동하여 잘못 디코딩한 경우를 왕왕 보게 된다."설정" 이란 문자열을 기준으로 잡으면:1. EUC-KR(혹은 CP949)를 UTF-8로 디코드: �궭뚥쀍 혹은 ����: 2. UTF-8을 EUC-KR(혹은 CP949)로 디코드: ��ㅼ�� 그 유명한 궭뚥쀍은 설정이란 단어가 잘못 디코딩 된 것이다. �는 “유니코드 대체 문자”(replacement character, U+FFFD) 이므로,디코드 charset 이 표현할 수 없는 어떤 바이트들이 대체되었다고 이해하면 된다. 파이썬같은 경우, 이 "replace" 동작이 default 가 아니고 "strict" 이다.즉 주어진 바이트가 "유효시작바이트" 가 아니면 에러가 난다. 같은 인코딩으로 한번 더 인코딩해서 깨지는 경우도 있..

K8S 컨테이너 런타임에 대한 잡지식

서론과거 API Gateway 작업의 일환으로 SSE 부하 테스트를 진행한 바 있다. 이 과정에서 우리 개발계 k8s ingress gateway 컨테이너의 istio-proxy(envoy-proxy)가 죽는 현상을 목격했다. SSE 연결 수가 일정 범위에 도달할 때 istio-proxy 는 Too Many Open Files 에러메세지를 찍으며 죽었다. 결과적으로는 containerd 를 위한 systemd 의 unit configuration 중 프로세스의 파일 오픈 수를 조정함으로써 해결된 사례이다. k8s 내부 동작에는 큰 관심을 두지 않았던 당시라서 컨테이너 런타임인 containerd 가 무엇인지, 애초에 컨테이너 런타임이란 무엇인지 알고 있는게 없었다. 이 부분을 채우기 위해 가볍게 서치하고..

Enter passpharase for key: 매번 입력하지 않도록 설정하기

git pull origin master # Enter passphrase for key '/Users/ssk/.ssh/id_ed25519': 로컬 머신에 ssh key 를 발급하고, passpharase 를 설정한 경우, ssh 연결에 앞서 passpharase 입력을 요구받습니다. 대표적으로 git cli 와 같은 툴을 통해 url 을 origin 으로 등록한 upstream 으로부터 pull/push 를 받는 경우겠습니다. 매번 입력하면 귀찮죠. 해서, 이번 시간에는 passpharase 를 매번 입력하지 않을 수 있도록 설정하는 방법을 알아보겠습니다. ssh-agent 설정하기 ssh-agent 는 ssh private key 를 메모리에 저장하고 forwarding 하는 proxy 입니다. 우리..