개인 프로젝트 후

Oak_Cassia·2023년 1월 6일
0

개인 프로젝트를 끝냈다.
기능적인 구현은 끝났지만 부족한 게 많았다. 그래서 제출 후에도 조금씩 고쳤다.
send 작업을 별도의 스레드로 분리했다. 반복문을 돌면서 송신할 데이터가 큐에 생기면 WSASend를 호출하는 스레드이다.

하나의 스레드가 너무 많은 일을 처리하는 것 같아 변경했다. 기존에는 데이터를 받고 처리하고 응답하는 과정을 한 번에 하고 있었다.

데이터가 큐에 입출력될 때 락을 사용했다.
전 보다 메모리 점유 속도가 줄어들었는데
처리가 빨라졌는지 락 때문에 느려졌는지 테스트가 필요하다.

다른 하나는 accept를 비동기로 처리하려는 시도였다. 기존 connect 요청 마다 소켓을 생성하는 구조에서
클라이언트의 최대 동접자를 제한하고 그 수만큼 미리 소켓을 생성한 후 AcceptEx를 호출하는 구조로 바꾸려 했는데, 뭔가 빼먹은 게 있는지 Handle 관련 오류가 발생했다. 이것 저것 해보다가 밀어버리고 원상태로 돌렸다.

한 번에 여러 부분을 수정하려고 하니, 변경될 구조를 제대로 파악하지 못했다. 다음 부터 한 번에 하나의 작업을 해야겠다.

그나저나 pmp문서와 아키텍처 설계를 해야하는데 막막하다. 개인 프로젝트 앞두고도 막막했는데 잘 해냈으니, 이것도 이리저리 방법을 찾아봐야지.


어찌 저찌? 잘 했다.

그리고 코드리뷰를 못받아서 많이 아쉬웠는데 아키테처 리뷰 때 코드리뷰를 받을 수 있어서 다행이었다.
HTTP를 줄바꿈으로 끝을 확인하는 것은 올바른 접근법이었다.
DB 접근에 LOCK을 사용한 것도, 포인터와 스트링을 사용한 것도 괜찮은 방법이었다.

남들에게 당연한 것일 수도 있지만, 직접 헤딩하며 하나의 프로젝트를 진행한 것이 처음이라 확인이 필요했다...

URL을 줄이는 알고리즘은 틀렸다고 하셨다. 다음에 수정할 기회가 있으면 좋겠다.

profile
rust로 뭐할까

0개의 댓글