본문 바로가기

트레이닝/42

[42seoul] Webserv 후기

 

  • 기간
    • 3.17 ~ 4.13
    • 약 23~28일(마지막에 합류해주신 팀원부터 첫 만남까지)
    • 3.16에 연락하여 17일 개포 집현전에서 만남
    • 3명 확정은 3.21, 3명 모두 만난 것 3.22
    • 통과 4.13이전에 팀과제에서 파싱파트를 한적이 없었기에 이번에는 파싱을 하고 싶었는데 내가 맡겠다고 하였으며 실제로 할수 있어서 좋았다.
  • 다들 열심히 해주셨으며 주말, 야간 가리지 않고 해주셔서 목표 예상시간 내에 끝낼 수 있었다.

이전에는 git organization을 제대로 써보지 못했었는데 각자 branch 파서 진행하고 합칠때는 PR을 통해해서 협업을 익힐 수 있었다.

또한 git project를 이용하여 task별 TODO를 올려서 필요한것들을 그때그때 해당 페이지만 보고도 맡아서 할수 있었기에 더욱 협업을 자율적으로 하기에 좋은 환경을 경험할 수 있었다.

 

 웹서버가 어떻게 동작되는지 알 수 있었으며(client-server, request-response, keep alive, etc..),

RFC문서를 읽으며 문서를 읽고 구현해야하는 것과,

보안상에 고려해야하는 상황들(헤더 사이즈 제한을 적절히 주어서 smuggle방지)에 대해서도 생각할 수 있어 좋았다.

 

 지나놓고보니 나의 파싱 방식이 효율적이지 않았다고 느껴지는 부분이 보여 아쉬움이 있다.(약1500~1800줄 소요)

본격적으로 프로젝트 코딩 이전에 에코서버 및 응답에 대해 200 OK만 보내는 서버를 만들어보았지만

메시지 송수신하는 핵심 로직을 담당하지 않았아서 다른 팀원들에 비해 이해가 빠삭하지 않아 아쉬움이 남았다.

또한 CGI부분도 하지않아서 하신분들 말로는 쉽다고 하시지만 나는 모르기에 기술부채로 남게 되었다.

블랙홀이라는 데드라인이 짧았던 관계로 최소사양으로 구현하였는데 이 부분을 통과자분에게 평가를 받으며 좀더 구현했으면 꽤 배웠을게 있었을 것 같다는 생각이 드는 부분들이 있었다.

아래는 개선 및 확인하면 좋을 부분들을 생각나는 대로 적어보았다.

  1. header field들에 대해 처리해주는 부분을 더 늘렸어도 괜찮을 것 같다.
    • session, cookies, cache 등등
  2. POST메서드
    • CGI없이**도** 해야하는지 추가 확인
    • CGI 없이도 필요하다면 multipart에 대해 로직추가
  3. 그외에 config
    • location path 없더라도 부분일치 되도록 수정(현재는 완전일치만 처리됨)
    • index 여러개 입력가능
    • autoindex server block에서도 설정가능
  4. Chunked
  5. CGI
    1. GET 추가
  6. Logger추가
  7. 정형화된 파싱 방식을 배워서 파싱해보기 (나중에 추가됨)
    • 컴파일러, 웹 브라우저, 여러 언어들 등등 결국 사람이 컴퓨터를 쓰므로 문장이 나올 수 밖에 없고 한 번 배워두면 여기저기 효율적으로 파싱을 해볼 수 있어서 그렇습니다:)

'트레이닝 > 42' 카테고리의 다른 글

[42seoul] Transcendence 웹 프로젝트  (0) 2023.07.06
[STL|Container] 이 과제는 무엇인가  (0) 2023.01.19
[Inception] intro  (0) 2022.12.25
[STL|Container] 공부해야할 것들  (0) 2022.12.11