요약
- rust 학습 목적으로 공식 문서와 강좌를 참고해 간단한 웹서버 빌드
역할
- 1인 개인 프로젝트
기간
- 2023.01 - 2023.02
목적
- 평소 가비지 컬렉터 덕분에 메모리 관리에 대해 의식하지 않고 프로그래밍
- 직접 메모리 할당, 해제를 관리하는 rust의 프로그래밍 철학과 관점을 배우고자 함
- 러스트 공식 문서에도 예제로 실려 있고, 과거 웹서버를 만들며 효과적인 학습을 한 경험이 있어 rust 웹서버를 만들어보기로 함
세부 기능
- tcp stream으로 요청 request를 읽어 프로토콜, method 종류, 쿼리 스트링, path 파싱
- 요청에 따라 정적 파일을 response로 응답
실행 영상
사용 기술
- language: rust
- build: cargo
프로젝트를 통해 배운 점
- 메모리 할당과 해제를 신경써야 하고, 소유권과 생명 주기를 관리하는 메모리 세이프한 관점을 배울 수 있었음
- 러닝 커브가 비교적 높은 편에 속해 숙련도를 올리려면 꾸준한 학습이 필요함을 인지
- 아주 고성능을 보장받고 싶거나, 엄격한 메모리 관리가 필요한 상황에서 rust를 선택할 수 있도록 입문한 것에 의의를 둠.