많은 사람들이 프로그래머가 되고 싶어 하고, 이미 프로그래머인 많은 사람들이 자신이 하는 일을 더 잘하고 싶어 합니다. 프로그래밍은 현시대에 할 수 있는 가장 흥미로운 일 중 하나이며, 프로그래밍을 떠나서도 어떤 일에 능숙해진다는 것은 좋은 일입니다. 여러분이 웹 개발자든, 컴퓨터 공학자든, 현재 주니어 레벨이든, 시니어든 경력에 상관없이 훌륭한 프로그래머는 여타 개발자와 차별화되는 몇 가지 특징을 항상 가지고 있습니다. 궁금하시다면 이 글을 읽어보세요. 스스로가 훌륭한 개발자인지 알 수 있게 될 것입니다.
이 글은 제가 20여년 동안 소프트웨어 설계를 공부하고, 적용해보면서 갖게 된 믿음에 관한 글입니다. 한때 설계에 빠져 공부했고, 잘못된 믿음도 가져봤습니다. 하지만 언어와 실력이 다른 분들과 일하며 설계를 했던 경험을 비롯해 다양한 학습이 저를 설계에 관한 다른 관점으로 이끌었습니다. 이 글을 읽고 최소한 여러분은 설계에 대해 기대하지 말아야 할 것들에 대한 제 견해를 알 수 있을 것입니다. 조금 욕심을 부리자면, 적어도 한 사람 정도는 제 글을 읽고 행동에 변화가 생기는 분이 나타날 수도 있다는 기대를 갖고 글을 씁니다.
대부분의 웹 사이트는 보안성을 위해 HTTPS를 지원합니다. 상업적인 웹 사이트뿐만 아니라 개인 블로그까지 이제 HTTPS는 선택이 아니라 거의 강제에 가까운 옵션이라 할 수 있습니다. 최신 브라우저들은 HTTPS를 지원하지 않는 웹 사이트를 위험성이 있는 페이지로 표시하고 있으며, 검색 엔진 또한 HTTPS를 적용한 사이트를 검색 결과에 우선적으로 노출하고 있습니다. 그렇지만 아직도 HTTPS를 사용하지 않는 웹 사이트와 클라이언트는 존재합니다. 이번 글에서는 브라우저가 웹 서버와 통신 시, 무조건 HTTPS 통신을 할 수 있도록 수행하는 HSTS 기술에 대해 알아보겠습니다.