본문 바로가기

폭풍 적응중 거의 열달 가까이 신나게 쉬고이직 및 전직해서 서버 프로그래머가 되었다.신분당선 교통비가 어마어마하다...ㅠㅠ 정말 사람 앞날이란 모른다는걸 이직하면서 다시 느끼고안할거니까~ 라고 생각하는 내 자신을 불신하기로 했다ㅋㅋ...흑 내 학부시절 서버/DB 성적은 아주 바닥이었는데변명이라도 하자면.... 그땐 너무너무너무 재미가 없었다... 교수님은 너무 좋은 분들이었는데...ㅠㅠ안그래도 쉬는동안 당시 서버교수님 만나뵙고 그땐 열심히 안해서 죄송했었다고 선물도 드림ㅋㅋㅋ 자야지' ')* 더보기
IOCP - ServerSide 사실 웹상에는 먼저 이걸 공부한, 은혜로운 선배들이 잘 정리해둔 글을 엄청 많이 찾아볼 수 있다. 구현 자체야 충분히 다른 깔끔하고 훌륭한 포스트를 참고한다면 얼마든지 가능하지만, 이해에 측면에 있어서는 과연? 그 어떤 강의나 포스트를 보아도 결국 이해해야하는 것은 자기 자신이기 때문에 자신만의 언어로 정리해둘 필요가 있다. 정리를 하는 중에는 분명히 덜 이해한 부분도 튀어나오고, 좀 더 궁금해지는 부분도 생기기 마련. 그래서 시간을 들여서 정리를 한번 해보려고 함. 일단 서버사이드. 개념적인 이론적인 설명은 생략하고 구현 중심으로 설명함.개념적인 설명은 여기 이 시리즈! [링크] 이해에 많이 도움이 됨. 구현적인 부분에서 IOCP는 쉽게 말해서버소켓 생성, 주소값 할당, 클라이언트 Accept, Rec.. 더보기
IOCP를 사용한 서버 라이브러리 제작 1. 다음부터는 이런 귀찮은 일련의 작업들에게서 벗어나기 위해 만들었다. 저번에 이벤트 방식으로 한번 만들어두긴 했는데, 확실히 다른 작업을 또 진행할때 소켓 할당하고 뭐 주소값 넣고.. 이런 귀찮은 작업들이나 더 나아가서 Send나 Recv가 필요할 때도 그 많은 인자값들을 일일히 넣어주지 않아도 되고... 다 만든 건 아직 아닌데 기초적인 기능들은 다 구현했고 사용자 편의성만 좀 높여주면 된다. 지금은 좀 거지같다. 2. 서버 사이드 * CreateServerSocket 함수를 호출하면 자동으로 내부에 CompletionThread풀과 접속 가능한 유저 리스트 등을 생성한다. 클라이언트 접속은 acceptEx를 쓰기 때문에 미리 유저 정보와 소켓등을 할당해둔다. * Accept/Recv/Send 등의.. 더보기