-
Notifications
You must be signed in to change notification settings - Fork 1
데일리 스크럼 | 3주차
jeongmin edited this page Feb 2, 2024
·
1 revision
기간: 24.01.15 ~ 24.01.21
- 🦊 github 설정
- github label 설정하기
- github issue, PR 제목 형식 수정
- 🦊 github 테스트 환경 구축
- kqueue가 FreeBSD 환경에서만 작동하여 github 및 도커를 통한 테스트가 불가
- kqueue 함수들에 대한 정의만 있는 mock 헤더를 만들어 진행할 계획 → 우선 보류
- 🐶 현재까지 파싱한 것 repo에 있는 코드랑 합치고 PR 날리기
- 🦊🐶 로직 흐름 회의
- 파싱을 하면서 Location 블록 정보가 필요한 경우가 있음
- header 파싱이 끝났을 때 그 값을 바탕으로 Server 블록과 Location 블록 할당 후 추가 파싱 진행 필요
- 🦊 Request 파싱 파트 리뷰
- 🦊 서버 코드 구조 개선
- uri와 Host 정보를 토대로 Server 블록과 Location 블록을 할당하도록 개선
- ServerManager에서 Request 파싱단의 예외를 잡도록 하기
- 파싱에 필요한 정보를 제공할 수 있도록 최우선적으로 처리
- 🦊 서버 코드 리팩토링
- 🐶 body 파싱 - chunked(Text-Encoding 헤더 포함)
- RFC 추가로 읽기 - chunked
- 코드 구현
- 🐶 buffer에 담긴 값 처리
- 현재는 requestLine에 냅다 넣었는데, buffer에 담긴 값에 CRLF가 들어있을 수 있기 때문에 다른 값과 동일하게 검사가 필요함
- 🦊🐶
- 🦊 Request 파싱 파트 리뷰
- 🦊 서버 코드 구조 개선
- uri와 Host 정보를 토대로 Server 블록과 Location 블록을 할당하도록 개선
- ServerManager에서 Request 파싱단의 예외를 잡도록 하기
- 🐶 body 파싱 - chunked(Text-Encoding 헤더 포함)
- RFC 추가로 읽기 - chunked
- 🦊🐶 회의
- body를 content-length만큼 다 읽고 남은 버퍼에 여러 요청이 포함되는 경우에 대한 처리
- 🦊 서버 코드 리팩토링
- 🐶 buffer에 담긴 값 처리
- 현재는 requestLine에 냅다 넣었는데, buffer에 담긴 값에 CRLF가 들어있을 수 있기 때문에 다른 값과 동일하게 검사가 필요함
- 🦊🐶 버퍼 요청 처리 Connection 객체 로직 수정
- 🐶 buffer에 담긴 값 처리
- 현재는 requestLine에 냅다 넣었는데, buffer에 담긴 값에 CRLF가 들어있을 수 있기 때문에 다른 값과 동일하게 검사가 필요함
- 🐶 개발일지 틀 만들어두기
- 🦊🐶 버퍼 요청 처리 Connection 객체 로직 수정
- 🦊🐶 전반적인 흐름 정리
- 🦊 서버 코드 리팩토링
- 🦊 클라이언트가 연결을 끊었을 때 처리
- 🦊 Location 블록 할당 → 🐶 path(uri) 관련 파싱 필요
- 🐶 RFC 7230 5장 읽기
- 🐶 Location 블록에서 가져올 수 있는 정보 정리하고 client_max_body_size 예외 추가
- 🐶 body 파싱 - chunked(Text-Encoding 헤더 포함)
- 🐶 자잘한 수정
- u_int8_t → uint8_t 변경 여부 조사
- 🦊 클라이언트가 연결을 끊었을 때 처리
- 🦊 서버 코드 리팩토링
- 하는 중, PR만 쓰면 돼용
- 🐶 RFC 7230 5장 읽기 (path(uri) 관련)
- 🐶 body 파싱 - chunked(Text-Encoding 헤더 포함)
- 하는 중, PR 써야돼용
- 🦊 서버 코드 리팩토링 PR 작성 후 리뷰
- 🐶 body 파싱 - chunked PR 작성 후 리뷰
- 🦊🐶 전반적인 흐름 정리
- 응답 처리 설계
- 🦊💤 원석이 낮잠 시간😴 30분
- 🦊 kqueue 이벤트 관리 기능 추가
- 🐶 path(uri) 쿼리 스트링 파싱
- 🐶 cgi 구현 예제 탐색
- 🐶🍪 간식시간: 3시 반 / 저녁시간: 7시 / 퇴근: 10시
- 🦊 서버 코드 리팩토링 PR 작성 후 리뷰
- 🐶 body 파싱 - chunked PR 작성 후 리뷰
- 🦊🐶 전반적인 흐름 정리
- 응답 처리 설계
- 🐶 cgi 구현 설계 탐색
- 🐶 path(uri) 쿼리 스트링 파싱
- 🦊 Location 블록 할당
- 🦊🐶 전반적인 흐름 리뷰
- 🦊 kqueue 이벤트 관리 기능 추가
- 🦊 CGI 예제 코드 만들기
- 🐶 Response 객체 설계 및 구현
- 🐶 디렉토리 인덱싱
- 🐶 기본 에러 페이지 구현
- 🦊💤 원석이 낮잠 시간😴 30분
- 🐶🍪 간식시간: 4시 / 저녁시간: 7시 / 퇴근: 10시
- 🦊🐶 전반적인 흐름 리뷰
- 🦊 kqueue 이벤트 관리 기능 추가
- 🦊 CGI 예제 코드 만들기
- 🐶 Response 객체 설계 및 구현
- 🐶 기본 에러 페이지 구현
- 🦊🐶 ResponseGenerator
- ResponseGenerator 추상 클래스 설계
- ErrorGenerator 클래스 설계
- 🦊 event 재설계
- 🦊 서버 재시작 기능
- 🦊💤 원석이 낮잠 시간😴 30분
- 🐶 디렉토리 인덱싱 분기점 확인
- NGINX autoindex 동작 정리
- 🐶 ErrorBuilder 로직 구현
- 상태 코드에 맞는 에러 페이지가 설정되어있지 않은 경우
- 상태 코드에 맞는 에러 페이지가 설정되어 있는 경우
- 🦊 event 재설계
- 🦊 서버 재시작 기능
- 🦊💤 원석이 낮잠 시간😴 30분
- 🐶 디렉토리 인덱싱 분기점 확인
- NGINX autoindex 동작 정리
- 🐶 ErrorBuilder 로직 구현
- 상태 코드에 맞는 에러 페이지가 설정되어있지 않은 경우 기본 에러 페이지 반환
- 🦊🐶 ErrorBuilder 로직 구현 짝코딩
- 분기 부분은 제외 (무조건 ErrorBuilder로 가도록)
- 상태 코드에 맞는 에러 페이지가 설정되어 있는 경우
- 허용 함수 정리
- 소켓 프로그래밍
- CGI
- 가상 호스트
- NGINX autoindex 동작 정리
- HTTP Request 파싱
- HTTP Request 값 유효성 검사
- Config 파일 Parsing