이사 + 네트워크 설정하기
지난 달 초에 (또) 이사. 네트워크 새로 구성한 내용 정리. AP와 작업실 허브의 분리 여러 개의 AP 눈에 보이는 선 최소화 대략 이런 목표. 우선 유/무선 분리. 이번에 실행에 옮기진 못했지만 vlan 쪼개서 별도 게스트 네트워크 구성하려고 함. 그리고 AP 보안 패치 끊겨도 편하게 바꾸려고. 이전 집이나 지금 집이나 벽이 좀 두꺼워서 벽 두 개 지나면 신호 감쇄가 너무 심하다. 안방과 서재는 괜찮은데 애들 방에서 잘 안잡힘. 그러니 그냥 AP 두 개로.
macOS 에서 외장 모니터 레터박스 문제 해결
2015년에 나온 맥북을 델 U2713H 에 연결하니 화면 꽉차도록 출력하는게 아니라 주변이 검게 레터박스처럼 나오더라. 모니터 주변부가 화면 출력없이 검게 나온 상태 해상도를 잘못 설정하고 있나 봤는데, 우선 위 사진에서 처럼 정상적인 해상도고 모니터 상태 정보에서도 원하는 해상도 (2560 × 1440 @ 60㎐) 로 나오고 있다. 흔히 생각하는 케이블 문제는 아니고 — 얼마 전에 썼던 글에서 새로 구입한 케이블과 동일한 HDMI 2.0 스펙의 케이블을 구매했다 — 뭐가 문제일까 어리둥절. 혹시나 하는 마음으로 화면을 한 번 90도 돌려봤다.
TLS 연결 디버깅: Forward Secrecy 재확인하기
앞선 글과 같이 쓰려고 했던 내용 정리. 글이 길어지고 쓸 시간도 모자라서 쪼개서 옮긴다. SSL/TLS 연결로 메시지를 주고 받는 서버/클라이언트를 디버깅하는 작업이라 우선 wireshark 를 써서 덤프를 떴다. 아래 내용은 해당 디버깅 세션의 덤프는 아니고, 임의로 비슷한 TLS 설정을 쓰고, 거기서 HTTP GET을 보내고 응답을 받는 과정을 실행해서 해당 덤프를 얻었다. 이 메시지 덤프를 분석해서 “왜 이 메시지를 wireshark 에서 디코딩 할 수 없는지” 그리고 “TLS의 이런 기능 덕분에 우리의 사생활이 더 잘 키져지는지” 를 정리해보겠다.
TLS 연결 디버깅: 인증서 오류를 찾아서
몇 주 전이 아니라 거의 석달 아니면 넉달 전 일인데, TCP 기반 서비스의 SSL/TLS 를 사용한 연결이 제대로 동작하지 않는 문제를 확인할 일이 생겼다. 문제 자체는 굉장히 단순했다. 나는 TLS 연결 문제를 확인할 때 주로 OpenSSL 의 opeenssl s_client 명령을 이용하는데, 첫 문제는 이 명령어 한 번으로 찾을 수 있었다. 잘못된 TLS 설정을 사용하는 nginx 서버에 openssl s_client -connect 10.0.12.34:443 -servername hub.prgmr.net 명령을 실행하면 아래와 같은 로그를 출력한다. 테스트를 위해서 실제 서버가 아니라 10.
새 모니터와 맥북 그리고 HDMI 문제
몇 년 만의 가전 제품 교체 이후의 일. 얼마 전에 집에 사용 중인 모니터 하나를 교체했다. 내 모니터는 아니어서 쓸일이 없었는데, 11월 말 – 12월 초에 독감으로 집에서 일하다가 잠시 이 4k지원 모니터를 맥북에 연결해서 써봄. … 잘 나오더라? 이전에 회사에서 2560 × 1600 모니터 (아마도 Dell U2713HM) 에서 레터박스가 나와서 쓰는걸 포기하고 그 이후에는 Dell 24″ 만 연결해서 사용했는데 이건 왜 문제 없지? 라고 생각. 며칠 후에 애플 홈페이지를 확인해보니 사용 중인 맥북 (2015년 버전) 에서 4K 출력이 가능하다는 것.
리뷰: 아톰 익스프레스
알라딘 링크 고대 그리스의 철학자들이 “만물의 가장 작은 단위는 무엇인가” 를 생각한 것에서 시작해서 “이건 단순히 사고 영역이었다” 라는 내용을 다룬다. 그리고 나서 근대 화학에서 실험적으로 유용한 틀로써 원자론을 다루는게 나온다. 플로지스톤이 틀린 이론으로 밝혀지는 과정 전기 화학의 탄생, 그리고 이때 생기는 각 분자들이 원자론으로 설명하기 쉬운 것 화학 반응에서 일정 성분비의 법칙, 기체 부피가 일정 비인 것을 원자론으로 설명할 수 있다는 얘기 그리고 이 틀을 써서 나오게 된 각 원자량을 정밀하게 측정하는 시도들 이 시도들이 합쳐져서 나오게 된 멘델레예프의 주기율표 이런 실험적인 토대 위에서 이론 물리학자들이 생각해낸 변화의 방향성 (엔트로피) 이나 열 기관의 효율성 최대치 (카르노 기관), 그리고 이를 설명하기 위한 (이상) 기체 상태 방적식에 대해서 설명한다.
소규모 팀으로 멀티플레이어 게임 개발하기
이번 달 12일에 홍릉에 있는 콘텐츠진흥원 인재캠퍼스에서 발표한 내용. 요약하자면, 팀이 작다면 모두 만드는 건 불가능 => 최대한 외부에서 가져다 쓰자(아웃소싱) 멀티플레이어 게임을 개발하려면 서버 쪽에 클라이언트 로직을 복제 하고 이를 비교하는 코드가 필요한데, 클라이언트 엔진의 데디케이티드 서버 기능을 쓰면 이 부분은 필요하지 않음 게임 서버 쪽에선 상점, 커뮤니티, 메일함 같은 비지니스 로직과 게임 시작을 위한 매치메이킹에 집중 / 게임 컨텐츠는 데디케이티드 서버 기반 구조에 집중 이런 방법은 단순히 요즘 시작된게 아니라 과거 (25년 전의 DOOM) 부터 시작 된 것.
M.2 인터페이스 쓰는 SSD 설치하기
메인보드가 M.2 지원하는지만 보고 샀다가 설치하느라 땀 좀 뺌. 그거에 대한 후기. 메인보드로 Gigabyte H170 Gaming 3 (DDR3버전)을 쓴다. 이전에 펌업하다가 보드 날려먹어서 급하게 업그레이드한다고 DDR4로 못 넘어갔더니 오늘의 삽질에 지대한 공헌을. 새 디스크 — 더 이상 디스크 가 들어있진 않은데 디스크라고 불러도 괜찮은가? — 로 샘숭 EVO 960 (M.2 인터페이스) 구입. 현재 디스크로 SSD x 2 (샘숭 830 PRO, 840 PRO 하나씩) + HDD 하나 연결. (모두 SATA3) 이 상태에서 새로 산 M.
몇 년 만의 가전 제품 교체
결혼한지도 이제 거의 10년이라 작년 - 올해 사이에 가전 제품들을 몇몇 교체하게 되었다. 작년에 교체한 건 전부 생활 가전이었지만 올해는 다르다 올해는 (???). 이번 주에는 의도치않게(?) 모니터 중 한 대와 PC용 스피커 교체. 교체한 것에 대한 간단한 리뷰. 우선 집에서 Dell U2408 과 Dell U2410 을 각각 아내와 내가 썼는데, U2408 쪽을 LG 27UD88 로 교체. 교체하면서 느낀 점을 두서 없이 정리하면, 역시 고해상도 모니터를 써야한다. 현 세대 모니터들은 대부분(?) 베젤이 얇고 16:9 이 경우가 많아서, 책상 위 공간 차지하는 부분에선 Dell U2408 랑 거의 비슷함.
Linux 게임 서버 성능 평가 (eBPF + BCC)
어제 발표에 썼던 슬라이드. Linux 커널의 내장 트레이싱 기능인 eBPF 와 이를 위한 BCC 툴킷을 써서 동작 중인 프로세스를 분석해서 성능 문제를 찾는 방법을 설명했다. 머지 않은 미래에 안드로이드 성능 측정도 이걸로 할 수 있을 듯하니, 서버 뿐만 아니라 안드로이드 기기에서 개발하는 분들도 한 번 보시라. eBFP +BCC 는 간단히 요약하면, python (혹은 go, lua) 으로 통계 처리 및 초기화, 몇줄 안되는 C코드로 커널 내부에서 후킹/통계 수집을 하고, 수집할 수 있는 범위가 넓어서 (커널 함수부터 유저 함수까지) 성능 분석 / 디버깅 쪽에 유용한 툴이다.