버퍼 오버플로우(Buffer Overflow): 컵에 물이 넘치면 생기는 일
C언어의 strcpy 하나가 어떻게 전체 시스템 권한을 탈취하게 만들까요? 스택 오버플로우 공격의 원리와 이를 막기 위한 ASLR, Canary, NX Bit 같은 방어 기법들을 파헤쳐봤습니다.

개발과 기술에 대한 이야기를 기록합니다.
C언어의 strcpy 하나가 어떻게 전체 시스템 권한을 탈취하게 만들까요? 스택 오버플로우 공격의 원리와 이를 막기 위한 ASLR, Canary, NX Bit 같은 방어 기법들을 파헤쳐봤습니다.

페이스북은 왜 REST API를 버렸을까? 원하는 데이터만 쏙쏙 골라 담는 GraphQL의 매력과 치명적인 단점 (캐싱, N+1 문제) 분석.

개발자가 꼭 알아야 할 데이터베이스 인덱스의 핵심 원리. Balanced Tree 구조가 왜 검색 속도를 획기적으로 높이는지, Hash Index와는 무엇이 다른지, 그리고 개발자가 흔히 저지르는 인덱스 실수들을 파헤칩니다.

프론트엔드 개발자가 알아야 할 4가지 저장소의 차이점과 보안 이슈(XSS, CSRF), 그리고 언제 무엇을 써야 하는지에 대한 명확한 기준.

잘 돌아가던 Node.js 서버가 매일 밤 12시만 되면 'Heap Out of Memory'를 뱉으며 죽었습니다. 원인은 전역 변수에 쌓인 데이터 더미였죠. 이 디버깅 과정을 통해 배운 Stack과 Heap의 차이, 그리고 메모리 누수를 막는 방법을 정리했습니다.

서버가 보내는 신호등. 200번대는 성공, 400번대는 네 탓, 500번대는 내 탓.

HTTP는 엽서라서 우체부가 내용을 훔쳐볼 수 있습니다. HTTPS는 봉투에 밀봉해서 보내는 기술입니다.

Request하면 Response가 옵니다. 하지만 기억상실증(Stateless)이 있어서 1초 전에 누구였는지 기억 못 합니다. 그래서 쿠키라는 메모지를 만들었습니다.

분명히 클래스를 적었는데 화면은 그대로다? 개발자 도구엔 클래스가 있는데 스타일이 없다? Tailwind 실종 사건 수사 일지.

직접 가기 껄끄러울 때 프록시가 대신 갔다 옵니다. 내 정체를 숨기려면 Forward Proxy, 서버를 보호하려면 Reverse Proxy. 같은 대리인인데 누구 편이냐가 다릅니다.

내가 숨으면 포워드(VPN), 서버가 숨으면 리버스(Nginx). 누가 대리인을 고용했는가?

HTTP는 기억상실증 환자입니다. 서버가 클라이언트를 기억하게 만드는 두 가지 방법론의 차이와 현대의 JWT 인증 방식 비교.

넷플릭스 국가 뚫는 용도가 전부는 아닙니다. 해커들이 우글거리는 공용 네트워크에서 '나만의 안전 터널'을 뚫는 기술.

세션 저장 안 하고도 로그인 유지. 서버가 토큰만 검증하면 끝. Base64 인코딩된 JSON의 정체. 왜 stateless가 확장성에 좋은지.

공유기 하나로 온 가족이 인터넷을 쓰는 비결. 하나의 공인 IP 뒤에 숨은 수많은 사설 IP들. 네트워크 주소 변환의 마법.

카페 와이파이 연결할 때 IP 주소 수동 설정 안 하죠? DHCP 서버가 자동으로 빈 IP를 찾아서 임대해줍니다. DORA 과정으로 2시간짜리 IP 임대계약 체결하기.

www.naver.com을 치면 일어나는 일. Recursive Query부터 Root 서버의 역할, DNS 레코드 타입(A, CNAME, MX), TTL, 그리고 DNS 캐시 포이즈닝 공격까지 심층 분석합니다.

IP는 이사 가면 바뀌지만, MAC 주소는 바뀌지 않습니다. 주민등록번호와 집 주소의 차이. 공장 출고 때 찍히는 고유 번호.

TCP의 흐름 제어, 혼잡 제어, 3-Way Handshake부터 UDP의 홀 펀칭, 헤더 구조 비교, 그리고 게임 개발자를 위한 Nagle 알고리즘과 TCP_NODELAY 옵션까지.

TCP는 예의 바릅니다. 본격적인 대화를 시작하기 전에 '들려?', '어 들려. 너는 들려?', '어 나도 들려' 하고 인사를 세 번이나 나눕니다.
