개요
2학기 1인 1프로젝트는 프로젝트의 계획을 설명하는 문서인 자기계발계획서 요구되지 않기에 이번에는 블로그 글로 간략하게 프로젝트의 내용과 진행 방식을 설명한다.
동기
주로 백엔드를 개발하는 웹 개발자로서 HTTP를 일상적으로 사용하고 있지만 실제로 이 프로토콜이 어떻게 동작하는지에 대한 지식은 전무하다. 언제나 라이브러리나 프레임워크를 사용하며 추상화된 층을 통해 필요한 모든 것을 구현해서 딱히 필요한 지식은 아니였지만 이번 기회를 빌려 이에 대해 알아보려한다.
계획
IETF는 RFC라는 인터넷의 핵심적인 기술이나 절차를 정의한 문서를 제공하는데, 이중 내가 찾은 rfc2616과 rfc3912는 각각 하이퍼텍스트 전송 프로토콜과 후이즈 프로토콜이 정의되어 있다.
특히 자주 쓰이는 하이퍼텍스트 전송 프로토콜 같은 것의 정의대로 서버를 구현한다면 기존에 나와있는 크롬, 사파리 등의 웹 브라우저와의 원활한 통신이 가능할 것으로 기대되고, 그래서 이번 프로젝트의 목적을 후이즈 프토로콜을 사용해 얻은 도메인에 관한 정보를 반환하는 HTTP API 서버를 만드는 것으로 정했다.
서버의 구현에는 원래 컴퓨터에 가까운 언어의 대명사인 C를 사용하려고 했으나 1인 1프로젝트의 기술을 배우고 공유하는 목적을 고려해 최근 배우고 있는 새로운 언어인 Rust를 사용해보기로 했다.