404-DriverNotFound / 200-OK

jikang, yunslee, ykoh project for Pass this project
2 stars 1 forks source link

Refact: Webserver::start_server 를 start_servers 와 start_a_server 로 나눔 #29

Closed PennyBlack2008 closed 3 years ago

PennyBlack2008 commented 3 years ago

WHAT?

start_serverstart_serversstart_a_server 로 나누었음.

WHY?

start_server 가 서버 여러개를 돌리는 데, 그 이름에 걸맞지 않게 모든 server 를 제어하고 너무 코드수가 많기 때문에 start_servers 로 이름을 변경하고 코드를 나눌 필요가 있었음.

TESTING

make 로 수행해서 이전과 똑같이 8000, 8001, 8002 번이 잘 작동하는 지 확인한다. 특별히 기능을 추가한 것은 없다.

개선해야할 사항

request 와 response 로 클라이언트와 주고 받게 된다면 진정한 멀티플랙싱을 구현해야할 때가 올 것임. 지금은 클라이언트 소켓에서 request 를 받고 끝나지만, 클라이언트 소켓에서 request 를 주고 받는 것을 반복적으로 가능하게 하려면, readfds 에 클라이언트 소켓을 추가해야할 것이다. 그리고 클라이언트 소켓에서 연결이 끊어진 상태라면, readfds 에서 FD_CLR 을 사용하여 readfds 에서 클라이언트 소켓을 제거해야한다.

이렇게 수정할 사항들이 많아서 더 깔끔하게 Webserver 클래스 함수들을 정리할 수 있었지만, 하나의 함수에 서버의 사이클이 있는 게 나중에 수정하기가 편할 것같아서 일단 여기까지 두었음.

아직 공부가 충분하지 못해서 이 부분이 감이 안잡히는 데, 일단 request 와 response 에 대한 충분한 이해가 있어야 그림이 나올 것같아서 그것부터 공부를 해보겠음.

PennyBlack2008 commented 3 years ago

gitbook 에 있는 내용으로 완전 리펙토링을 하기로 결정하여 이 머지를 취소함.