Category NOS

Network Operating System

Caddy가 스테이징 인증서를 물어오기 전에 컨테이너를 재시작해야 했다

공모전 시연용 AWS 환경을 거의 다 세우고 마지막으로 도메인과 HTTPS만 붙이면 되는 단계였다. api.example.com에 A레코드를 넣고 HTTPS 접속을 검증하는 스크립트를 돌렸는데 exit 35로 죽었다. 급한 마음에 컨테이너 로그부터 보려다 컨테이너 이름을 잘못 짐작해서 로그 확인 자체가 또 실패했다. 원인은 Caddy가…

웹 보안의 핵심은 원격지 사용자 입력을 신뢰하지 않는 것이다

아이디 입력란이 있으면 사람들은 아이디를 넣는다. 개발자는 그렇게 가정하고 코드를 짠다. 그런데 누군가는 그 칸에 1만 자를 때려 넣고, 누군가는 자바스크립트를, 누군가는 SQL문을 넣는다. 입력란은 사람의 선의를 전제로 만들어지지만, 공격자는 그 전제를 노린다 웹 보안을 코드 레벨에서 시작하는 출발점은 하나로…

웹 서비스 구조는 단방향 요청에서 3-tier로 진화했다

웹 개발을 처음 배우면 프레임워크 사용법부터 익히게 된다. 스프링으로 컨트롤러를 만들고, JPA로 엔티티를 매핑하고, React로 화면을 그린다. 그런데 막상 면접에서 “왜 WAS가 따로 있나요”, “세션은 왜 필요한가요”라는 질문을 받으면 막힌다. 도구는 쓸 줄 알지만 그 도구가 왜 생겼는지를 모르기 때문이다.…

웹 동작 원리 – URL과 HTTP로 보는 요청과 응답

주소창에 www.naver.com을 입력하고 엔터를 누르면 화면에 페이지가 뜬다. 매일 수십 번 반복하는 동작이지만, 그 사이에 무슨 일이 벌어지는지 설명하라고 하면 막히는 개발자가 많다. 결론부터 말하면 웹의 동작 원리는 생각보다 단순하다. 어떤 컴퓨터에 저장된 문서 하나를 네트워크 너머에서 요청하고, 그 컴퓨터가…