C++ 그리고 Machine Learning 프로젝트

요즈음은 C++을 좀더 심도 깊게 공부하려고 틈틈히 책을 보고 있다. 내년에 어떤 프로젝트를 하게 될지 모르고 지금 하는
프로젝트가 C++을 심도깊게 다루는 처음이자 마지막 프로젝트가 될지 모른다는 느낌에 이번 기회를 최대한 활용하려고 한다.
사실
국내에서 C++관련 책은 많이 나와 있지만, 이 언어를 이용해서 실제 프로덕트를 만드는 프로젝트는 그리 많지 않다고 알고 있다.
그래도 다들  C++ 이야기를 하는 이유는 프로그래머의 로망 정도로 이야기 할 수 있지 않을까 한다. 이렇듯 아주 오묘한 매력을
가진 언어가 C++인거 같다.

아주 즐겁게도 진행중인 프로젝트의 Machine Learning 모델 성능이 기존의 프로덕트보다 더 나은 결과가 나와서 프로젝트의 부담을 조금은 덜은거 같다.
해보신 분들은 아시겠지만, Machine Learning을 가미한 프로젝트는 일반적인 프로젝트에서 라인 하나하나 모듈 하나하나를 개발해 나가는 것과는 좀 성격이 다르다.
일단 처음부터 끝까지 빌드가 성공적으로 완료가 되면 코드상의 버그는 찾아내기가 힘들다. 특정 퍼포먼스가 코드에서 나온건지,
데이터에서 나오게 된건지 그리고 버그가 있는지 없는지 조차 알아내기 힘들기 때문인데,  이 때문에 이런 프로젝트의 모듈 개발은 정말 신중하고
또 신중하게 해야 하고 그런 완벽한 코드를 기반으로 모델을 만들때 비로소 데이터를 기반으로 하는 디버깅을 집중해 할 수 있다.
그럼 완벽한 코드를 만들었다고 해도 하나의 고비가 나오는데, 과연 데이터를 기반으로 디버깅을 어떻게 해아할 것인가이다.
요건 말로는 간단하지만 실제로는 가장 time consuming한 과정이다. 일단 오분류가 되는 것들에 대한 데이터 특징을 파악해서 이를 분류할 수 있는 속성을 추가하는 것이다. 꽤 간단히 성능을 올릴 수 있을지 모르지만 그 해당 속성이 또 다른 구현을 요구할 수도 있다. 그리고 모델 빌드 시간이 길다면, 디버깅 시간도 길어질 수 밖에…

무엇보다 객관적이고 정확한 성능 측정 방법이 꼭 필요하다. 이를 기반으로 성능의 개선 여부를 파악 할 수 있기 때문이다.
재밋는 사실을 알려주자면, 지금 수행중인 프로젝트의 성능 측정 결과, 다음, 네이버의 성능이 너무 좋지 않게 나와서 실망을 많이 했었다. 게다가 이 결과를 본사에 가서 회의시간에 이야기 할때도 특히나 네이버(한국의 네이버에 대해서는 본사 사람들도 잘 알고 있다)의 퍼포먼스를 이야기 하면서 반신반의 하는 모습들이였다. 하지만 더블 체킹 해본 결과 테스트 결과는 맞는 결과였다.
그러나 역시나 구글 코리아의 퍼포먼스 테스트가 가장 잘 나왔다. 역시 구글은 대단한 회사라는 생각을 다시 해본다.
론치에 전혀 이상이 없을 퍼포먼스지만, 구글 때문에 욕심이 나긴 한다.  그래서 아마도 올 해 말까지는 계속 이 작업이지 않을까 한다.

 

개발에 게시되었습니다태그
0 0 votes
Article Rating
Subscribe
Notify of
guest

6 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
도현

끊임없이 검토를 해도, 기반 코드에 대한 확신은 좀처럼 서지 않나 봅니다.
(저만 그런게 아니었…)

고감자

항상 그렇죠…. 그래서 의심하는 자세가 필요합니다.

soyoja

“국내에서 C++관련 책은 많이 나와 있지만, 이 언어를 이용해서 실제 프로덕트를 만드는 프로젝트는 그리 많지 않다고 알고 있다. ”
=> c++ 로 개발된 상용 프로그램이나 널리 쓰이는 제품이 굉장히 많습니다.
웹 어플리케이션이나 서버기반 제품들은 Java 나 닷넷을 쓰지만 데스크 탑 기반의 어플리케이션들은 C++ 로 많이 개발되고 있습니다.

리눅스, VNC, 구글 크롬 등등.. 소스코드가 공개된 유명 제품들 중에서도 C++ 로 만들어 진 것들이 많죠. 로망으로 끝나는 것이 아니고 practical 한 언어입니다 ^^

ps) 국내의 경우라면.. c++ 제품이 많은데 특히 국내 게임회사들의 대부분(80% 이상)은 C++ 로 제품을 만듭니다.

고감자

좋은 말씀 감사드립니다.

제가 몸 담고 있는 웹 포털 쪽 개발 언어측면에서만 이야기 한게 아닌가 싶기도 합니다.
사실 웹 포털 관련 프로젝트는 좀 드물긴 합니다.

jazzcake

주로 도움만 받고 가서, 댓글 하나 남깁니다. C++로만 어언 15년 넘게 개발하고 있는 게임 프로그래머입니다. 여기서 패턴 관련 쪽 레퍼런스를 많이 배우고 가네요. 혹시, 제가 C++ project 관련해서 도움드릴만한게 있다면 기꺼이 드리겠습니다.

언제든 메일로 문의주시기 바랍니다.
jazzcake@gmail.com 입니다.

고감자

네 말씀만이라도 … 너무 감사합니다. ^^