Socket 통신 프로그램에 대한 강의를 시작하며 (실전 Socket 프로그래밍)

제가 IT 에 발을 담근 후 약 5 년 동안은 통신분야에서 일을 했습니다.
SKT 나 KT 같은 통신서비스 업체와 주로 거래를 했고, 전화기에서 필요한 솔루션들을 개발하는 일을 했는데, 이 때 개발했던 솔루션들은 거의 모든 작업들에 Socket 통신을 이용하였습니다.

그래서, 부득이하게 Socket 에 대한 이해를 요구하는 상황들을 많이 만나게 되었는데요.
통신 뿐 아니라 IT 에서 개발을 하다보면 회사내에서 뿐 아니라 타 회사의 프로그램과 연동을 해야하는 경우도 많이 생깁니다.
니가 전송해준 데이터가 규격에 맞니 안맞니, 패킷을 이렇게 크게 보내면 어떻게 하니… 등등 타 회사 개발자와 전쟁을 해야하는 경우들도 많이 있었습니다.

이럴 때는 정말 많이 아는 것이 장땡입니다.
Socket 에 대한 정확한 이해를 하고 싸우는 것과, 이해는 뒷전이고 누군가가 작성해둔 library 만 call 해서 꾸역꾸역 사용해온 경험만으로 싸우는 것과는 천지차이겠지요.
그래서, 저도 신입시절에 이런 상황을 만나면 참 자존심도 많이 상하고 타 회사사람과 얼굴을 붉히기도 많이 했습니다.
모르니까 더 자존심이 상하고 더 화가 많이 나게 되지요. ^^

많이 아는 사람은 오히려 느긋하고 철저하게 자신의 것을 먼저 검증합니다. 이런 후에 차분하게 싸움에 임하게 되기 때문에 이런 사람이 처참하게 패하는 예는 보기 드물지요. ㅎㅎ
물론 실수는 있는 법인지라 쪽팔리는 상황도 가끔 연출되기는 하지요. ^^
하지만, 이런 난관의 상황에서 경험이 축적되고 자기 계발을 많이 한 사람은 결국 빛을 발하게 되어 있습니다.
물론 이런 전쟁상황에서 꼭 이기기위해 공부를 하는 것은 아닙니다만, 그만큼 심각하고 중대한 상황에서의 대처 능력은 평상 시 갈고닦은 실력이 드러나는 계기가 됩니다.

자… 각설하고…

앞으로 [통신 프로그래밍] Part 에서는 통신과 관련된 유용한 지식들을 전파하고 실제 개발을 해보는 것이 목적입니다. 아주 기본적인 이론에 대한 것은 건너뛰도록 하겠습니다. TCP 가 stream 방식의 통신방식이고 초기 연결 시 3-way handshake 를 수행한다는 기초이론같은건 인터넷에 얼마든지 널려 있습니다.
그런 것은 직접 찾아서 공부해보시구요.

이보다는 Socket 에 대한 기초적인 이해가 있다는 배경 하에 Socket library 를 실제로 만들어나가는 과정을 해보는겁니다. 자신이 앞으로 평생 들고 다니며 유용하게 사용할 통신 library 들을 만들어보는거죠.
여기에서 저와 만들게 되는 library 는 어디가서도 그리 빠지지 않는 꽤 쓸만한 output 이 나올 것입니다.

다음 시간부터는 TCP library 를 만들어보겠습니다.
c++ class 로 만들 것이구요.
개발 이전에 실제 사용자가 사용할 인터페이스를 정하는 시간부터 가져보도록 하겠습니다.

 

You may also like...