-
Notifications
You must be signed in to change notification settings - Fork 1
Webserv 회의록
yeonseong edited this page Jan 26, 2023
·
21 revisions
전체 회의록을 정리하는 공간입니다.
2023년 1월 1주차 회의
- seojin
- silee
- jinhokim
- dongchoi
- haryu
- seongyle
-
목표 정하기
- 보너스 구현 여부는 추후 학습을 하면서 결정하자.
-
과제 기간정하기
- 설 연휴를 고려하여 2월 17일 전후까지 마무리 지어보자.
-
과제 세부 진행방식 정하기
- 장소 :
- 2층 회의실 선점하기(7~8시 ㅎㅎ)
- 3층 구석 공간
- 지하공간에서 모여서 스터디
- 학습 시간 : 평일 진행하는 것을 기준으로 한다.
- 코어 시간 : 필수로 와서 학습을 하고, 나누는 시간 (및 회의) (19시 ~ 22시)
- 자율 시간 : 개인 일정 여부로 학습 장소로 오는 것이 자유로운 시간(오전 ~ 정오)
- 지각비
- 주중 분당 지각시 1000원, 분당 요금은 최대 5분까지 매김. 이후 30분 초과가 발생하면 10,000원 벌금
- 관리 : 페이지로 정리하고 마지막 회식에서 쓰기
- 내일 코어 목표 :
- 서브젝트 분석 후 학습 방향 정하기 위한 준비 할 것
- 깃헙 레포 관리 및 컨벤션 읽고 머릿속에 넣어 오기
- 장소 :
-
일정 정리
- 설 연휴 : 1월 19일 ~ 1월 24일
- haryu : 1월 10일 법원 방문
- silee : 1월 17일 개인 약속
-
깃헙 사용 관련 내용 정리
- Organization 깃헙 프로젝트 관리 진행
- 깃헙에서 프로젝트 관련 자료들 seonglye 님이 제공
2023년 1월 3일 회의
# 2023 / 01 /03- Echo server를 허용함수로 만드는 것. (허용함수로 파악)
- HTTP 완벽가이드 웹서버 150p 읽기
- 본 학습목표는 다음주 화요일까지 진행하며, 매일 코어 학습 시간에는 학습한 내용을 짝에게 설명하고, 남은 시간 중에는 질문이나 어려운 내용등을 논의한다.
2023년 1월 17일 회의
- (성글)소켓 핸들링을 해주는 클래스 제작 제안
- 현재 구조가 완벽하진 않으나 구조 적으로 각 처리 클래스들이 멤버변수를 갖지 않아도 되는 구조다.
- 이런 점에서 일단 구현을 하다가 여러 방법으로 묶어서 처리 하는 것으로 만들어보면 좋으리라 판단됨.'
- 대안 :
Functor(함수객체)
,네임스페이스로 묶어서 함수로 처리
..etc (확정이 아닌 이유는 각 기능이 가지는 장단점이 있으니 이를 고려해보자)
- (하류)
- Structure UML, Class UML 리뷰함. 해당 내용은 위키의 문서를 확인할 것(본 회의 이후 내용도 적용 예정)
- Makefile -D 옵션을 활용하여 디버깅 할 부분별로 컴파일시 전달할 인자를 통해 디버그 출력하는 컨벤션 관련 내용제시
- 하는 과정에서 성글님을 통해 VSC pretask 세팅을 통한 디버깅 자동화와 VSC 디버깅 방법을 배움
- 추가로 제안하고 싶은 코드 내용이나, 컴파일 과정에서 도움되는 팁들은
/testcode/{intra id}
를 활용할것을 제안함
- (동초이) Metadata 관련 전반 내용 정리
- HTTP 헤더의 response case, request case 필수로 구현해야 한다는 부분을 지정함. 따라서 해당 헤더에 대해서는 파싱 및 대응을 하도록 결정함(GPT를 통해 알아냄, 링크는 여기
- 헤더 관련해서 디테일하게 처리 방식과, 각 헤더가 의미하는 바를 처리하는 방법은 RFC를 때때로 확인해야할 것으로 보인다.
- ClientMetaDatas 클래스의 경우 기존 map<int, class MetaData> 데이터 구조를 활용하려고 했다. 하지만 node 형으로 구현해서 내부에 구현하는 형태가 오히려 좋다는 판단이 서서 현재는 다음과 같은 구조를 하기로 지정함.
struct node { struct kevent * event_data; ??????? HTTP_data; enum status_code; } class ClientMetaDatas { std::map<int fd, struct node> clinet_meta_data; }
- ClientMetaDatas 의 info 안에 들어갈 멤버 변수는 다음과 같이 지정한다.
- kevent * 구조체 : udata 안에 해당 client 가 접근하려는 Server location config pointer를 넣어줌
- HTTP 관련 : 요청 메소드, URL, 헤더, 버전(x) : 버전 정보는 이미 유효성 검사에서 걸러졌기 때문에 필요 없다고 판단했다.
- 상태코드 : error checking
- (성글) 기타 코드 클래스 작성에서의 컨벤션 추가
- public 메소드 사용 시 find*byFD의 형식을 취하자. 다음 컨벤션의 형식은 이 링크를 참고할것.
FindPortbyFD(fd)
{class_var}.insert(kevent * newCurr)
{class_var}.setHeader(int fd, struct HTTPmsg)
이름 | 일자 | 지각/결석 | 금액 |
---|---|---|---|
seongyle | 1.10(화) | 결석 | 10,000 |
seojin | 1.16(월) | 지각 | 5,000 |
haryu | 1.16(월) | 지각 | 5,000 |
silee | 1.18(수) | 결석 | 10,000 |
seongyle | 1.25(수) | 지각 | 1,000 |