작년에 아꿈사에서 TAOCP 공부할 때 처음으로 코루틴에 대해 관심이 있었지만, 별로 와 닿질 않아서 그냥 넘어 갔는데, 그 뒤로 잊혀질 만하면 저 녀석을 접하게 되었다. NDC나 deview같은 컨퍼런스를 통해서도 그렇고, 스터디 모임이나 여기저기 개발자 모임에서..

그럴 때마다 코루틴을 사용하면 비동기 처리가 간편해 진다는데 왜 그렇게 되는지 솔직히 잘 이해가 되질 않았는데, 오늘에서야 드디어 조금 감을 잡았다. 오늘 GPG6권에 있는 설명이랑 월간마소 2012년 1월호를 봤는데 갑자기 해탈했음. (…) 그러고 나서 deview 2011 자료를 다시 보니 이제 PT가 무슨 소리를 하는지 이해가 된다.

같은 프로세스 안에서 비동기 처리를 한다면 멀티스레드 방식이 더 낫다. 게임서버 짜면서 늘 처리해오던 방식이니 그게 더 익숙하기도 하고, 이젠 람다가 있어서 콜백 코드의 정의도 쉽고 보기 편하게 작성할 수 있다. 게다가 코루틴은 별도의 스택을 사용하니까… 무턱대고 많이 만들어대기에도 부담이 있어..

그나마 그럴법한 용도로는 deview에서 말한 것 처럼 RPC 쪽인데… 이 부분도 람다를 이용한 콜백 처리를 할 수 있으니, 코루틴을 꼭 써야 하나 하는 문제는 아직 애매하다. 게임서버끼리 RPC라면 굳이 코루틴이 없어도 될 것 같음. vs2010을 사용할 수 없는 환경이라면 코루틴을 고려해봄 직 하다.

C++11에서 람다 문법이 들어간 것이 아주 많은 것을 가능하게 한 덕에, 코루틴을 적용해서 얻을 수 있는 이점이 많이 희석된 느낌. 어디에 써먹을 수 있을지는 좀 더 생각해 봐야겠다. GPG에 있는 AI 적용 예제 같은 것도 꼼꼼히 읽어봐야지.

 

ps. 내 블로그 카테고리 설정이 영 엉망인듯. 마땅한 카테고리가 없어서 일단 Network로 해둠. 이 글은 무슨 카테고리일까… ‘언어’ 내지는 ‘설계’ 쯤 되려나…

신고
Posted by leafbird 트랙백 0 : 댓글 2

티스토리 툴바