뒤로
한경민
·
BrilliantServer (3인팀) 프로젝트 소개
RFC 9110, 9112 에 정의된 규격을 따르는 HTTP/1.1 버전 origin server 의 구현
개발 기간 : 2022.09. ~ 2022.11.
0 기술 스택
- C++98
- CMake
- GoogleTest
1 기능
kqueue활용한 event loop 기반 non-blocking I/O multiplexing- static 파일에 대한
GET/POST/DELETEHTTP Request 처리 - HTTP 규격에 맞는 응답 생성
- CGI 실행, name-based virtual hosting, directory listing 지원
- Google Test & CMake 로 TDD & 유닛 테스팅
Connectionrequest header field 의 값에 따라 해당 요청 응답 후, 클라이언트와 네트워크 연결 유지 (keep-alive) / 연결 해제 (close) 결정
2 설계
- 객체 책임/역할 정의
- HTTP 요청/응답 flowchart
3 구현
- github.com/brilliantshell/webserv
- 프로젝트 상세 문서 정리
- 프로젝트 구현 & 테스트 과정 전체 VSCode Liveshare 로 Pair Programming
- GoogleTest & CMake 활용해 특정 경우, 해당 객체에게 기대되는 행위에 대한 가설을 세우고, 검증하는 방식으로 TDD 진행
- 객체 별 unit test 파일
4 성능 테스트
- siege http load tester 로 성능 테스트
- 작은 파일 (48.7 KB) GET 요청 10,000 번
- 큰 파일 (2.5MB image) GET 요청 10,000 번
2
댓글
로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다.