ProudNet 모바일플랫폼 계약_(주)비전브로스

by yuhui.jang / 2015. 10. 22. [07:06]

2015년 10월 15일자로 (주)비전브로스와 ProudNet Mobile Platform 라이선스 계약을 체결하였습니다.

귀사의 프로젝트 성공을 위해서 지원을 아끼지 않겠습니다.

2. 고객사 소식

ProudNet 모바일플랫폼 계약_(주)누리다

by yuhui.jang / 2015. 10. 19. [05:12]

2015년 10월 06일자로 (주)누리다와 ProudNet Mobile Platform 라이선스 계약을 체결하였습니다.

귀사의 프로젝트 성공을 위해서 지원을 아끼지 않겠습니다.

2. 고객사 소식

ProudNet 모바일플랫폼 계약_(주)액트파이브

by yuhui.jang / 2015. 10. 02. [07:05]

2015년 09월 24일자로 (주)액트파이브와 ProudNet Mobile Platform 라이선스 계약을 체결하였습니다.

귀사의 프로젝트 성공을 위해서 지원을 아끼지 않겠습니다.

2. 고객사 소식

ProudNet 모바일플랫폼 계약_(주)쓰리포인트

by yuhui.jang / 2015. 09. 25. [07:47]

2015년 08월 28일자로 (주)쓰리포인트와 ProudNet Mobile Platform 라이선스 계약을 체결하였습니다.

귀사의 프로젝트 성공을 위해서 지원을 아끼지 않겠습니다.

2. 고객사 소식

ProudNet 모바일플랫폼 계약_(주)만렙게임즈

by yuhui.jang / 2015. 09. 21. [10:23]

2015년 08월 19일자로 (주)만렙게임즈와 ProudNet Mobile Platform 라이선스 계약을 체결하였습니다.

귀사의 프로젝트 성공을 위해서 지원을 아끼지 않겠습니다.

2. 고객사 소식

ProudNet의 UDP 혼잡 제어 기능

by Sophia Lee / 2015. 08. 20. [06:08]

프라우드넷을 쓴 게임 중 하나가 2011년에 중국에서 문제를 일으켰다는 사건이 화제가 되었던 적이 있습니다. (관련 링크문제의 현상은 P2P나 C/S간 UDP 통신량이 지나치게 많을 때 클라이언트-서버간 TCP 연결이 중간에 끊어져 버리는 것이었습니다. 이 문제의 근본 원인은 과도한 UDP 사용량이 불러일으킨 인터넷 블랙아웃 현상이었습니다. 이것을 해결하려면 UDP 통신량이 블랙아웃을 일으키지 않을 만큼 사용량을 낮추어야 합니다. 당시에는 그 문제를 해결하기 위한 많은 노력을 했고, 이를 해결하는 기술이 지금의 프라우드넷으로 이어지고 있습니다.

여기 두 단말기가 있습니다. 클라이언트-서버 관계일 수도 있고 클라이언트-클라이언트 즉 P2P 관계일 수도 있습니다. 두 단말기 간에는 UDP 통신과 TCP 통신이 같이 사용되고 있습니다.

 

 

 

두 단말기간 데이터 통신량을 증가시키겠습니다. 그러면 두 단말기 간에 있는 네트워크 장치(라우터나 방화벽 등)에는 처리량이 증가하기 시작합니다. 이때 일부 네트워크 장치들은 특정량 이상의 데이터 통신을 모두 처리하지 않고 슬슬 버리기 시작합니다. TCP는 스스로 이를 감지합니다. 그래서 송신 단말기의 내부에서는 보낼 데이터가 블러킹이 일어나는 대신 통신량이 증가하지 않습니다. (정확히 말하자면 한계선 즈음에서 오르락 내리락 합니다.) 

그러나 UDP는 그러한 감지를 할 수 없습니다. 따라서 데이터는 블러킹이 안 일어나지만 통신량이 끝없이 증가합니다. 그리고 두 단말기 간의 네트워크 장치는 지나치게 쏟아지는 UDP 패킷을 처리하지 못하고 버리기 시작하는데 이때 TCP를 위한 패킷도 덩달아 버려집니다. 이것이 Windows OS 기준으로 20초 이상 계속되면 TCP 연결이 끊어집니다.

 

중국의 인터넷 환경은 한국과 달리 네트워크 장치의 처리량 한계에 쉽게 부딪힙니다.

TCP는 네트워크 장치에서 패킷을 버리는 것을 감지하면 스스로 통신량을 줄인다고 했습니다. 이를 혼잡제어(congestion control)이라고 말합니다. 그렇다면 이 문제를 해결하기 위해서는 UDP 신 또한 혼잡 제어 기능이 있으면 되겠죠. 하지만 TCP의 혼잡제어 기능은 ARQ 알고리즘에 근거하여 만들어져 있는데 이를 UDP에 그대로 적용하기에는 무리가 따릅니다. 반대 방향으로의 트래픽량이 많이 증가하는 등의 문제가 있습니다.

프라우드넷에 사용되는 UDP 용 혼잡제어 기능을 소개하겠습니다. 이는 다음과 같이 작동합니다.

1. 송신자 측에서는 일단 마음껏 데이터를 보냅니다.

2. 수신자 측에서는 받은 데이터의 패킷 유실율과 데이터 수신 속도를 측정합니다. 이를 일정 시간마다 송신자에게 회신합니다. 

3. 송신자 측에서는 회신된 데이터를 근거로 데이터 송신 속도를 제한합니다. 만약 패킷 유실이 전혀 없으면 제한 없이 보냅니다. 만약 패킷 유실율이 높아지면 송신자가 회신 준 실제 데이터 수신 속도를 감안해서 송신 속도를 제한합니다.

 

 

프라우드넷의 UDP 혼잡제어를 간단히 소개해 드렸습니다. 상기 기술은 넷텐션의 국내외 등록 특허(2014년 출원, 2015년 등록됨)입니다. 

한편, 프라우드넷의 P2P 통신에서는 UDP로 일반 메시지를 주고 받는 기능 말고도, reliable UDP 계층을 통해 TCP처럼 신뢰성 통신을 할 수 있는 기능도 따로 있습니다. 여기에는 위의 기법이 아닌, TCP와 비슷한 방법으로 혼잡 제어를 하고 있습니다.

프라우드넷의 UDP 혼잡제어 기능은 꽤 많이 검증되었지만, 아직까지도 전세계 모든 네트워크에서의 검증이 완벽하다고 자신하지는 않습니다. 더 나아지는 모습을, 앞으로도 많이 지켜봐 주세요.

4. 개발 이야기

ProudNet 모바일플랫폼 계약_(주)스카이피플

by yuhui.jang / 2015. 08. 06. [06:13]

2015년 08월 04일자로 (주)스카이피플과 ProudNet Mobile Platform 라이선스 계약을 체결하였습니다.

귀사의 프로젝트 성공을 위해서 지원을 아끼지 않겠습니다.

2. 고객사 소식

ProudNet 모바일플랫폼 계약_동서대학교

by yuhui.jang / 2015. 07. 06. [07:13]

2015년 07월 01일자로 동서대학교와 ProudNet Mobile Platform 라이선스 계약을 체결하였습니다.

귀사의 프로젝트 성공을 위해서 지원을 아끼지 않겠습니다.

2. 고객사 소식

Perforce의 Backout 기능

by Sophia Lee / 2015. 07. 03. [10:22]

넷텐션에서는 개발 프로젝트에서 소스 파일 관리를 위해 Perforce Helix를 사용하고 있습니다. Perforce는 유상 구매해야 하는 소스 컨트롤 소프트웨어입니다. 유상이니만큼 가격의 부담이 있지만 그만큼 제값을 합니다. GitHub처럼 부수적인 파일로 인해 폴더 크기가 비대해지지 않고, 파일 처리 속도도 빠릅니다.

Perforce에는 알게 모르게 깨알 같은 기능이 있는데요, 그 중에 하나가 Backout 기능입니다. Backout은 이미 submit 혹은 check in 한 것을 취소하는 기능인데요, 이미 submit 한 내역을 지우는 방식이 아니라, submit 하기 전의 상태로 다시 한번 submit을 하는 데 사용됩니다.

그런데 이 Backout 기능에는 흥미롭고 멋진 기능이 있는데요, 바로 submit을 한 이후의 다른 submit을 했던 것을 날려먹지 않으면서 특정 submit을 롤백시켜 버리는 기능입니다.

한 예를 들어 보겠습니다. 다음과 같은 함수가 있습니다.

  

 그런데 이 함수에 버그가 있습니다. 그래서 원인을 추적하기 위해 로그를 출력하는 루틴을 추가했습니다.

 

 그런데 이것을 오랫동안 submit을 안 하고 작업하니까 불안합니다. 백업을 하고 싶습니다. 그런데 기왕이면 Perforcesubmit하는 형태로 백업을 하고 싶습니다. 그래서 쿨하게(!) submit을 했습니다.

 

 코드를 아래와 같이 수정했습니다. 그리고 submit 했습니다.

 

 

 

, 드디어 버그를 찾았습니다! 문제의 라인을 삭제했습니다. 그리고 submit 했습니다.

 

 그런데, 앞서 submit한 것 즉 change 25683의 임시로 넣은 코드가 있습니다. 저것은 지우고 싶네요. Change 25683의 변화 내역(diff)를 열어서 하나 하나 수정하는 방법도 있지만, 이러한 경우 PerforceBackout으로 한큐에 해결할 수 있습니다.

Change 25683에 우클릭 후 Backout을 선택하면 뭔가가 수정된 채 check out 됩니다. Backout 실행 후 get latest version과 Resolve를 해주는 것 잊지 마시고요.

 

 Backout을 실행 후 만들어진 check out 된 파일에 대해 변화 내역(diff)를 열어보면, 놀랍게도 로그 코드를 추가한 이후의 수정사항 들이 모두 유지된 채로, 딱 로그 코드만 뿅 사라져 있습니다!

 

 자 이제 submit 고고고. 소스를 직접 수정하지 않고도 로그 코드가 사라졌습니다.

  

 Perforce는 이밖에도 많은 수의 브랜치(stream)을 관리하는데도 편리하고, 과거 파일을 빨리 얻는다던지, 오래된 파일이나 다른 폴더와의 통째 비교를 빠르게 보여주는 등 여러모로 편리합니다.

 돈을 주고 시간을 살 수 있는 방법이 있는데요, 좋은 개발 소프트웨어를 도입하는 것이 그 방법 중 하나죠. 프라우드넷도 서버 개발에 대해서 시간을 돈 주고 사는 좋은 방법이기도 하죠.

4. 개발 이야기

콘컴이 개발하고 넥슨이 서비스하는 "용사x용사" 공식 출시

by Sophia Lee / 2015. 06. 26. [06:08]

ProudNet을 채택한 모바일 게임 '용사x용사'가 공식 출시 되었습니다. :)

 

자세한 기사 보기 ☞

http://joongang.joins.com/article/276/18094276.html?cloc=joongang%7Cext%7Cgooglenews

  

2. 고객사 소식