yuchi's Development Home
글 수 201
Dxxxx온라인, CBZ 온라인, 코룸온라인,묵향온라인, 출시될 L온라인까지 혁혁한 전과를 세웠던 I4DyuchiNET(INetwork.dll)의 뒤를 잇는 I4DyuchiNET2.0을 만들었다.
이전 버젼은 2000년 당시에 없는 실력으로 새벽까지 코딩하고 책보고 공부하고 해서 만들었었다.
실제 코딩기간에 스트레스 테스트를 비롯해서 안정화 기간까지 석달이상 걸렸던것 같다. 그 전에 삽질한 기간까지 치면 아마 근 1년은 될거다.
그때의 경험도 있고 지금은 실력이 많이 늘었으므로 코딩 및 스트레스 테스트에 대략 열흘정도 걸렸다.
타이머 기능이 빠져있는데 하루 정도면 이전 버젼의 기능은 완벽하게 구현할 수 있을 것 같다.
스트레스 테스트는 더 해봐야 알겠지만 현재까지 결과로 봐서 큰 결함이 있을것 같지는 않다.
바뀐 점은
1. 64비트 컴파일을 위해 어셈블리는 사용하지 않았다.(내심 아쉽다)
2. 덕택에 64/32비트 모두 컴파일 가능하다.(테스트는 64비트 기준으로 했다)
3. 되도록 간단한 설계로 코드 사이즈를 절반 정도로 줄였다.
4. 스레드 세이프하다.
5. 이전 버젼은 서버측/클라이언트측 으로 2개의 네트웍 디바이스를 사용할 수 있었지만 2.0버젼은 무한대의 네트웍 디바이스를 사용할 수 있다.
6. 개개의 네트웍 디바이스에 대해 COM인터페이스를 사용한다.
7. 인터페이스는 다르지만 기본 컨셉은 비슷하므로 핼퍼를 한겹 씌우면 이전버젼과 거의 호환이 가능하다.
8. 접속종료시의 약간 찜찜했던 부분을 다른 설계로 새로 짰다.
아쉬운점.
1. 어셈블리 코드를 전혀 사용하지 않아서 재미가 없었다.
2. 이전만큼 국소적인 최적화를 하지 않았기 때문에 퍼포먼스가 더 나으리라고는 생각지 않는다.
코드상으로는 예전보다 간단하지만 멀티 스레드간의 논리로는 이전보다 훨씬 복잡했으므로 머리털 빠지는 줄 알았다. 걸어서 퇴근하면서 내내 그 생각뿐이었다.
덕택에 멀티 스레드 프로그래밍에 대한 감을 찾은거 같다.
다른 팀엔 배포하지 않을 생각이다. 아직 검증도 안되어있고 뒤치닥거리 더 이상 하고 싶지 않으니까.
이를테면 메카트로닉스에서는에서는 기구라든지 모터가
외력을 계속 받으면 진동이나 열이 발생하여 변형이 발생하거나
출력저하등이 현저하게 발생하는 것인데 그것을 확인하는것이
스트레스 테스트로 알고있습니다.
컴퓨터는 이상적인 상황이므로 별 변화가 없을것 같은데
오버플로우 현상등을 지칭하는것인가요?