게임서버 엔진 홀펀칭 Test머신 정리

by nettadmin / 2010. 08. 12. [11:18]

오늘의 이야기는.

프라우드넷 관련 글들이 올라오게 되면 항상 나오게 되는 주인공!!

바로 요놈이다..

 

수많은 공유기를 P2P연결하여 각각 한 개씩 모든 Test케이스 들을 거치게 되며, 나오게 되는 생성되는 Test 케이스 들은 약 천가지 정도.. 걸리는 시간만 해도 무려 서너 시간은 가뿐히 걸린다. 그렇게 때문에 넷텐션을 대표 하는 상징 중 한 녀석이 되어 버리고 만 요놈..

 

그러나 이 녀석을 자세히 들여다 보면 매우 매우 악당이 아닐 수 없다.

힌트 하나를 주자면, 공유기 하나에 세줄의 선이 붙는다. 외부에서 들어오는 랜선과 컴퓨터로 연결되는 랜선 그리고 전선이다. 그리고 요 뒤에 사내의 모든 선이 모두 모여드는데…

 

선들로 인해 보이지 않는 바닥..

먼지 검은 먼지 쌓인 다이..

공유기들은 열심히 쌓아 놓으면 우르르 무너지기 일수..

 

 

 

아가야 저긴 이런 곳이란다..

 

모처럼 맡겨진 새 임무!!

냥이의 임무 Test컴퓨터들의 버츄얼 머신들을 모델들의 정보에 마추어 깔끔히 다시 정리하고 세팅하라.

 

마침 몰래 속으로 벼루어 왔던 머신들의 정리. 요런 때 하지 않으면 언제 하랴!!

“사장님 시간 좀 걸리드라도 제가 정리하게 허락 해주세요..”

 

 

 

 

사장님의 흔쾌한 승락 하에 시작한 뒷선들 정리!!!!

 

복잡하고 지저분한 선들을 한대 묶고, 공유기 들을 다시 정리하고, 하나하나 견찰지를 붙인다.

꽉 짠 걸레로 시커먼 먼지 청소 마무리 까지.

 

요렇게 테스트 컴퓨터 별로 묶어주고..

 

 

 

 

 

이젠 바닥도 보인다.. 사진으로는 여전히 복잡해 보이지만 사실은 엄청 깨끗해 진 모습.

저 지독한 양의 공유기 코드들. 다이 밑으로 밀어 넣어도 많아서 삐져나온 모습들..

 

 

 

 

 오오 모니터에 후광이 이 깔끔한 모습 ㅜ_ㅠ

 

 

요기도 반짝..

 

 

 

 

 

 

 

전체적으로 깔끔해진 모습.. 그러나 사진으로 보면 분명 ‘모야 똑같자나’ 하고 말할지 모른다.

그러나 넷텐션에서는 적어도 몇일은 깔끔해진 느낌에 모두 싱글벙글 할 수 있었다.

 

다음은 장비 설정 공유기 하나당 하나 이상의 버추얼 머신이 돌아간다. 저 머신을 위하여 넷텐션의 컴퓨터들은 항상 시중에 가장 많은 랜카드를 보유한 메인보드라는 전제가 붙어 있다. 더불어 USB 랜카드도 있는건 첨봤다..

 

 

이로서 모든 공유기를 테스트 머신 별로 별로 엑셀 파일로 만들어 정리한 후. 버츄얼 머신 제설치 밑 모든공유기들의 이름 확인과 정리, 실수할 수 있는 모든 세팅 명세를 상세화까지 깔끔하게 새 단장을 마치 수 있었다.

삽질도 많고 탈도 많았지만 뿌듯뿌듯!!

 

정리하게 되면서 들을 수 있었던 사장님의 공유기 수집이야기들..

요 이야기들이 은근히 재미있다. 동남아시아 까지 가서 현지 상인조차 “아니 그걸 왜 사요?” 하며 이상한 눈초리로 멀뚱히 처다 보게 끔 했을 정도의 구닥다리 공유기 까지!

최악의 네트워크를 상황을 만들어 통과 시키기 위해 했던 노력들.. 그리고 최대한 많은 랜선을 끼울 수 있게 하기 위한 컴퓨터 구입 노하우 등등..

 

뭐.. 한마디로 축약하자면 여기 테스트기 들은 고물 공유기 상이자 여기 공유기들은 안사는게 최고라는 이야기가 되지만.. ㅋㅋ

무론 대다수 구하기도 힘들다.

 

이야기가 너무 길면 루즈해 지는 법!

요 이야기 들은 다음 이야기에서 서서히 풀어 나가려 한다.

etc.

아싸휴가다!! 휴가정보~

by nettadmin / 2010. 08. 04. [17:33]

전국 해수욕장에 500만 인파..휴가철 '절정'

본격적인 휴가철을 맞은 1일 전국의 유명 해수욕장에는 500만명이 넘는 인파가 몰려 시원한 바닷물에 더위를 씻었다.

강릉 경포대 등 동해안의 95개 해수욕장에는 200만명이 넘는 인파가 몰려 물놀이를 즐겼고, 부산에서도 해운대 해수욕장에만 100만명의 피서객이 방문하는 등 총 200만명의 관광객이 시내 7개 해수욕장을 가득 메웠다.

서해안 최대 해수욕장이 있는 충남 보령시의 대천해수욕장에도 45만명의 피서객이 해수욕과 머드체험을 즐겼으며, 몽산포 해수욕장 등 태안지역 32개 해수욕장에도 59만6천여명의 휴가 인파가 몰려 '2010 어살문화축제', '제8회 태안바다수영대회' 등 다양한 행사에 참여하며 함박웃음을 지었다.

제주도에도 평소보다 많은 6만여명의 관광객이 함덕, 이호 등 11개 해수욕장에서 휴일의 여유를 즐겼다.

특히 한여름에도 섭씨 12도 안팎을 유지해 냉기가 감도는 만장굴에는 관광객 6천여명이 몰려 세계자연유산으로 지정된 용암동굴 내부를 둘러보며 더위를 잊었다.

 

 

 

사진출처//http://cafe.naver.com/princetour.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=99 

 

 

휴가 대열에 합류하지 못한 시민들은 인근 산과 계곡, 놀이공원 야외수영장 등을 찾아 아쉬움을 대신했다.

국내 최대 워터파크인 경기도 용인의 캐리비안 베이에는 2만4천여명의 시민들이 인공파도와 워터봅슬레이 등을 즐겼고, 에버랜드에도 1만6천여명이 입장해 놀이기구 등을 타며 즐거운 한때를 보냈다.

또 국립공원 지리산과 무주 덕유산, 완주 모악산, 정읍 내장산 등 전북지역 유명산에는 5만명이 넘는 등산객이 몰렸으며, 충남 공주의 국립공원 계룡산과 충북의 속리산에도 각각 1만명이 넘는 시민들이 찾아 계곡물에 발을 담그며 더위를 잊었다.

 

.

.

 

피서 인파가 정점에 달한데다 귀경 행렬까지 맞물리면서 전국의 주요 고속도로는 이틀째 몸살을 앓았다.

한국도로공사에 따르면 1일 오후 4시 현재 경부선 서울방향에서는 천안∼휴게소 16㎞, 망향휴게소 인근 2㎞, 안성분기점∼안성휴게소 2㎞, 서초∼반포 3㎞ 등에서 차량이 가다서다를 반복하고 있다.

서해안고속도로 서울방향에서는 홍성휴게소∼홍성 3㎞, 서산휴게소∼운산터널 5㎞, 송악∼행담도휴게소 3㎞, 서평택 분기점∼발안 5㎞, 일직∼금천 3㎞ 구간에서 정체가 빚어지고 있으며 호남선 천안방향에서는 전주∼여산 16㎞, 남해안고속도로 부산방향에서는 사천∼진주터널 15㎞구간에서 답답한 흐름이 이어지고 있다.

이틀째 주차장을 방불케 하는 정체가 빚어진 영동고속도로의 경우 인천방향 횡계∼진부터널 15㎞, 장평∼봉평터널 5㎞, 문막∼강천 11㎞, 이천∼덕평 18㎞, 양지∼용인휴게소 5㎞ 등 곳곳에서 거북이 운행이 계속되고 있다.

또 서울-춘천고속도로 강일방향에서도 남춘천∼강촌 11㎞, 서종∼금남터널 5㎞ 구간 등에서 차량이 제 속도를 내지 못하고 있다.

도로공사는 전날 76만대의 차량이 강원도내 고속도로를 이용한 데 이어 이날도 70만대의 차량이 도내 고속도로를 이용할 것으로 추산하고 있다.

 

또 오후에만 18만여대의 차량이 서울로 진입할 것으로 예상했다.

도로공사 관계자는 "오후 들어 귀경차량이 늘어나면서 상행선을 중심으로 곳곳에 정체가 빚어지고 있다"며 "도로공사에서 제공하는 실시간 교통정보를 참고해 혼잡 구간을 피해가면 운행 시간을 줄일 수 있을 것"이라고 말했다.

오후 4시 현재 각 요금소를 기준으로 한 예상 소요 시간은 부산→서울 6시간 반, 강릉→서울 6시간 반, 광주→서울 5시간 반, 목포→서울 5시간 반, 대구→서울 5시간 반, 대전→서울 2시간 50분 등이다.

출처//조신희(충청일보)

 

기사입력시간 : 2010-08-02 15:43:45

글쓴이 : 조신희 /  [조신희]의 다른기사보기

 

역시 대중교통이 최고죠^^

KORAIL http://www.korail.com/ 

동서울종합터미널 http://www.ti21.co.kr/

서울고속버스터미널 http://www.exterminal.co.kr/

센트럴시티 터미널 http://www.centralcityseoul.co.kr/

 

 

휴가철이네요 언제나 열심히 일한 당신!! 떠나세요 바다로~2010년 올해 바닷가등에서 축제도 많이 열리네요!! 참고하시고 좋은추억 많이 만드시고 오길 바랍니다^^

 

 

 

 

wow :)

회사 홈페이지 리뉴얼

by nettadmin / 2010. 07. 21. [00:30]

회사 홈페이지 리뉴얼했습니다.

http://www.nettention.co.kr 

Development Issues

서버엔진 만고풍상 이야기(배현직)

by nettadmin / 2010. 06. 25. [18:13]

넥슨의 NDC에서 발표한 서버엔진과 관련한 이런 저런 얘기들입니다. 한번 보시는 것도 좋을 것 같습니다.NDC 10 배현직 서버엔진 만고풍상 이야기


Latest News

프라우드넷 간단 소개 슬라이드

by nettadmin / 2010. 06. 14. [15:34]

프라우드넷 간단 소개 프리젠테이션 슬라이드입니다.

Development Issues

닥.서.팩!!!

by nettadmin / 2010. 05. 25. [18:49]

오늘 기술지원 이슈를 하나 받았습니다.

 

매우 이상한 이슈 이던군요... 어떤 문제인고 하니..

 

vs2005 Release 빌드 Server에서 Client가 접속이 끊겼을때의 이벤트가 나오지 않는다는 이슈 였습니다.

 

저는 생각하기를...'아닌데..테스트를 많이 해봤는데..'라고 생각하며 다시 테스트를 했습니다.

 

그런데, 아니나 다를까 이벤트가 잘오더군요...쩝..

 

그래서 엔진 패키징 하는 컴퓨터에 접근하여 문제가 생기는 버젼을 빌드하여 테스트 해봤더니...

 

'헉...이벤트 타이머가 작동을 안하자나....jQuery1520967723500682041_1326957222827?'

 

이벤트 타이머가 작동을 안하면...모든 이벤트와 처리등이 죽는등의 크리티컬한 문제 였습니다.

 

그래서 이벤트를 추적...1개 1개...용의자를 좁혀가던중...

 

'double연산이 이상하게 나오네??? NaN??..헐 나눗셈에서 분모에 0이 들어갔나 보군..'

이라고 생각을...

 

했는데!! 글쎄 모든 값은 정상인데..꼭 그부분에서만 연산 결과 값이 이상하게 나오던군요..

 

'이건 뭥미...?^^;'하고.. asm을 보니 캐스팅부분이 이상하게 나오던 부분이 있더군요...

 

결국 컴파일러 버그...^^; '근데 내컴에선 왜 잘되지? 로직은 똑같은데...'라는 생각이 번쩍!!

 

하고 드는 순간...버젼을 체크해보니...아니나 다를까 service pack1이 안깔려 있더군요...ㅜ,.ㅜ

 

결론은 닥.치.고. 서.비.스.팩.깔.아!!!

Development Issues

넷텐션 기업부설연구소 인정서 획득~(프라우드넷)

by nettadmin / 2010. 05. 13. [14:35]

 

지난 3월 벤처기업인증에 이어 5월7일자로 기술연구소 인정을 받았습니다.  ^^;

ProudNet을 사용하거나 하실 프로젝트에 좀 더 보탬이 되는 연구개발 열심히 하겠습니다.  축하해주세요~

 

 

Latest News

게임엔진과 컨텐츠의 차이

by nettadmin / 2010. 05. 10. [10:41]

저번 냥이 술자리 껀의 뒷 이야기를 살살 풀어보려 한다.

바빠서 너무 오랜만에 글을 올려 본다..

 

먼저 엔진과 컨텐츠의 차이에 대하여 이야기 해보고 싶다.

아는 사람들은 왜 저런 뻔한 소리를 하고 그러냐고 하겠지만 의외로 모르는 사람이 더 많다.

하물며 개발자 중에도 프로그래머 아니면 모르는 사람이 있는데 일반인이야 오죽할까..

 

엔진하면 무엇이 떠오를까? Engine!! (기관!!)

흔히 자동차 엔진을 많이 생각하리라 생각된다.

냥이 로봇에도 엔진…?!

 

기계들마다 엔진이 다 들어가는데 프로그램 소스에도 엔진이 들어갈 수 있지 않을까? 꼭 물리적 개념으로 생각하지 말아보자.

 

크라이 엔진, 언리얼 엔진 이라고 하면 일반 유저도 다 안다.

3D 엔진!

모르면 간첩내지 게임을 하지 않는 사람, 나이 많으신 분, 너무 어린애, 매우 바쁜 삶으로 잠깐씩만 게임으로 시간 때우는 사람......

음.. 은근히 늘어놓으려니 많다. 괜한 짓 했다..

 

이제 이야기를 조금 확장해 보자.

3D에는 엔진이 있다. 흔히 거 그래픽 구리네 돈 좀 더 쓰지 하는 말을 하곤 한다.

그렇다면 서버 발로 만들었냐 하는 말들이 게시판에 오르는 건 어떻게 생각하는 가? (개발자는 정말로 손으로 만들었다며 아니라고 운다.. ㅠ_ㅜ)

응?

 

유저가 보지 못하는 서버와 통신을 위한 엔진 있을 것 같아지지 않는가? 그냥 단순히 Send Recv 이걸로만 게임 다 만들 수 있을까?

서버와 클라이언트 간에 많은 데이터가 오가면서 많은 연산이 필요하다. 클라이언트는 결과값을 보여주는 역할이며, 모든 중요연산은 서버가 다 한다.

그렇다면 모든 것은 통신 데이터의 신뢰성과 안전성 있는 하위 개발의 바탕부터 깔려주어야 작업이 가능해 진다는 말이 된다.

 

물론 3D엔진과 서버엔진이 빵빵 하다고 다는 아니다. 어떻게 쓰느냐가 또한 아주 중요한 문제가 되며 잘 못쓰게 되면 발제(수제의 반대) 서버가 나오기도 한다.

 

 

 

보검을 들고 주먹과 동등하면 암울..

 

그런고로 3D엔진과 통신엔진이 존재하고 이것을 이용하여 기능들을 구현하는 부분을 컨텐츠라 한다.

 

 

‘엔진이 왜 필요하고 중요할까’ 하고 심도 있게 생각해 본 사람이 과연 얼마나 될까?

(개발자 뺴고..-_-;;)

 

알다시피 유명하고 비싼 엔진 쓰면, 거시기한 말로 "퀄리티 쩐다."

그럼 안쓰면 안쩌나?

꼭 그렇지 않다!!

 

프로그래머들이란 자신의 기술력에 자부심을 갖고 있거나 갖을 만큼 실력을 키우고 싶어 하는 존재 들이다. 반대로 개발능력이 되는 사람도 상당히 있다는 소리.

실력 되면 만들 수 있다. 하지만 그래도 사 쓴다.

 

왤까?!?!

 

사장님 왈

"저도 게임 만들 때 엔진 직접 다 만들었죠. 속된 말로 ‘씩X 엔진 만들다 토나오겠네’가 입에서 튀어나오죠 그게 엔진 만들 줄 알아도 사는 이유 중 하나랍니다..."

 

 

 

워워 릴렉스..

 

엔진 무엇이 편해서 쓰는 걸까?

 

만들 때에는 신경 쓸 것이 별의 별게 많다. 쓰기도 편해야 한다.

엔진 하나 만드는데 얼마의 시간과 사람이 필요할까?

1. 최소 5년 이상의 경력자 1~2명 이상 필요.

2. 그 프로그래머가 전에 다니던 회사서 만든 엔진은 그 회사의 재산이다.

3. 개발은 1년은 잡아야 안전성이 높다.

4. 테스트 머신 100마리 200마리 늘려가며 테스트하다 뭔가 이상하면 다시 문제 해결하고 다시 테스트.

5. 아니면 그냥 그 연봉 값과 시간, 개발진들의 스트레스로 엔진을 산다..(잘 만들어진 엔진의 사용은 시간과 돈에 있어 상당히 큰 절약의 수단이 된다.)

 

그리고 나서 만약 엔진 쪽에 에러가 났다. 시급히 잡아야 한다. 근데 다른 일도 너무 많다.

1. 직접 만들고 죽자 살자 미친 듯이 고치자. 까짓 거 없는 시간은 한 달이고 일년이고 잠 안자고 개인시간 다 버리면 되지

   뭐. 그래도 안되면 사람도 더 써!!

2. 걍 사쓰고 에러 났다고 빨랑 고치라고 통보만 보내면 빠른 시일 내에 알아서 해준다. 추가 인력도 안 들고 내 일에만 집

   중하면 된다. (스트레스 감소 최대화)

 

 

 

안전성에 대한 증명사례가 필요하다

1.     미친 듯이 테스트 머신 돌리고 사람 붙여봐서 안 걸려도 만 단위 이상 붙으면 무슨 일이 생길지 아무도 모름..

2.     그냥 이미 다른 게임에서 성공사례가 있는 엔진을 사자..

 

속도가 느리다. 엔진에 대한 업그레이드가 필요하다.

1.     할게 많고 미친 듯이 바쁘다.. 시간을 쪼개고 쪼개서 계획을 세우자..

2.     엔진이나 사 쓰고 통보 한번 보내자 어디가 느리면 테스트 툴로 테스트해 보고 요청 보내면 끝.

 

더러는 어떤 기능을 구현하려고 한다.

1.     죽어라 개발하고 2~3명씩 붙여 유지 관리도 해주어야 할 때가 있다.

2.     그냥 엔진에 붙은 기능 쓰자.

 

네트워크의 경우 플레이어가 2배로 늘면 버그는 제곱으로 는다.. ㅠ_ㅜ 

      1. 내부 테스트에서 잘돌아간다고 그게 정말 버그가 없는 것일까?

      2. 내부 테스트로 모든 확인이 가능하면 '발로 만든' 꼬리표는 세상에 나오지도 않았을 것이다..

 

 

 

실수란 아무리 뛰어난 실력자라 할지라도 피할 수 없다. 사람이기에!!!

결국 가장 중요한 것은 개발된 후, 버그가 발견되고 수정되며 흘러온 많은 시간과, 실질 적용된 사례이다.

 

가만있으면 알아서 어떤 기능이 추가 되어져 올 때가 있다. 예를 들면 다른 게임회사에서 들어가는 어떤 기능 추가 요청에 대한 트렌드가 될 수도 있다. 그냥 그런 기능을 연결만하면 유저는 ‘오 많이 발전했다’ 하고 놀랜다..

 

 

삽질은 많이 해봐야 삽질일 뿐…

 

어떤 에러의 경우 1프로 이하의 확률로 일어나며,

데이터 베이스, 서버엔진, 서버 컨텐츠, 클라이언트 컨텐츠, 글라이언트 엔진

중에 어디가 문제인지 참 애매할 때가 있다. 이럴 때 정신적 고통을 줄이고 시간을 절약하기 위해서도 엔진은 절대적으로 견고해야만 한다.

특히 한달 두달 날수만 늘고 희박한 확률로 버그가 튀어나와서 감도 안 잡히는 경우도 꾀나 종종 생기게 되는데 이런 피마르는 상황을 줄이기 위해서도 엔진의 안정성은 절대적이지 않을 수 없다.

그리고 이중에 저 Server Engine을 개발 하는 회사가 우리 넷텐션인 것이다.

 

 

글좀 줄여바.. 너무 길자나..

etc.

온라인 게임에서 통신 암호화

by nettadmin / 2010. 05. 05. [11:14]

온라인 게임 개발에서 로그인 과정은 만들기가 까다롭고 짜증나는 부분 중 하나입니다. 로그온 과정까지 만들기 위해 넘어야 할 산들은 많습니다. 오죽하면게임 서버 개발에서 로그인 과정까지 완성되면 서버 개발의 반은 끝났다고 하겠습니까?

완성되고 나서도 로그온 부분에서 말썽을 일으키기 십상입니다. 로그인 과정 중 오류, 데이터베이스 랙, 그리고 서비스 오픈하면 한차례 겪는 해킹, 아이템 복제 등 후폭풍이 기다립니다.

 

프라우드넷(ProudNet)은 로그인 과정을 쉽고 안전하게 만들 수 있는 여러가지 장치들을 제공합니다. 그중 보안 부분에 대해서 소개합니다.

프라우드넷은 강력한 보안 통신 기능을 제공하고 있습니다. 가령, 로그인 관련 메시지를 높은 암호화를 수행하게 합니다.

 

먼저, 암호화라는 것이 무엇인지 알아봅시다.
어떤 메시지가 다른 컴퓨터로 전달될 때 제3자가 내용을 해독하거나 변조할 수 있으면 해킹을 당하기 쉽습니다. 예를 들어 입력한 아이디,비밀번호가 제3자에 의해 해독/변조가 될 수 있으면, 어느날 게임에 접속했더니 자기 캐릭터가 알몸이 되어 있겠죠.

 

그래서 메시지를 암호화하려면 암호화,해독(복호화)를 하는 알고리즘(공식)이 각각 있어야 합니다. 하지만 알고리즘이 공개되면 위험할 수 있겠죠? 그래서 뻔히 아는 알고리즘이 눈 앞에 있어도 암호화된 메시지를 풀지 못하게 하는 수단, 즉 열쇠(키)가 있어야 합니다. 현대 전산학에서 암호화 알고리즘은 키 기반 암호화가 통용되고 있습니다. 암호키의 길이는 1비트에서 수백 비트까지 다양합니다.

 

해커가 암호화된 메시지를 캐내서 얻어냈다고 가정하겠습니다. 해커가 그 메시지의 내용을 알아내려면 메시지를 해독할 키를 알아야 합니다. 이미 알고리즘은 얻었다고 가정합시다. 어떤 키를 넣어봐야 할지 시도해볼 것입니다. 암호키를 일일히 대보는 해커가 만들었다고 가정해도 어마어마한 시간이 소요됩니다. 

 

키, 즉 암호키는 크게 비대칭키와 대칭키로 구별됩니다. 비대칭키는 한 쌍의 열쇠가 있어서, 한 개의 열쇠로 암호화하면 나머지 한 개의 열쇠가 없으면 해독할 수 없습니다. 대칭키는 암호화할 때 쓴 키와 해독할 수 있는 키가 서로 같음을 의미합니다. 이러한 성질을 활용해서, 컴퓨터 네트워크에서는 암호화된 메시지를 전송하기 위해 대칭키와 비대칭키를 혼용하기도 합니다.

 

두 호스트 A,B가 있다고 가정하죠. A가 B에게 안전하게 암호화된 메시지를 전달하고자 합니다. A는 먼저 비대칭키 한쌍을 만듭니다. 그리고 하나는 자기가 갖고 있고 나머지를 B에게 전송합니다. 자기가 갖고 있는 것을 개인키(Private Key), B에게 전송한 키를 공개키(Public Key)라고 부릅니다.

이때 해커는 가뿐하게 공개키를 얻어버렸다고 가정하겠습니다.

 

 

B는 대칭키(Session Key)를 만들고 갖고 있습니다. A로부터 공개키가 도착했습니다. 이제 그것을 갖고 있는 대칭키로 암호화합니다. 그리고 암호화한 대칭키를 A에게 보내줍니다. 해커는 역시 그것도 얻어버렸습니다.

  

A는 받은 대칭키를 개인키로 복호화합니다. 그리고 B가 만든 대칭키를 공유합니다. 해커는 공개키와 암호화된 대칭키를 갖고 있지만 정작 개인키가 없어서 대칭키 내용을 알 수 없습니다.

 

이제 A는 암호화할 메시지 본문을 B로부터 받은 대칭키로 암호화 후 B에게 전송합니다. 해커는 이것도 갈무리했습니다.

B는 암호화된 본문을 가지고 있는 대칭키로 복호화해서 잘 씁니다. 한편, 해커는 아직도 대칭키를 얻지 못했기 때문에 해킹해서 갈무리한 메시지를 얻어내지 못합니다.

 

 

에라 모르겠다, 해커는 B에게 메시지 내용을 이것저것 훼손해서 보내봅니다. B는 받아서 복호화해봤더니 복호화가 되지 않습니다. 뭐, 그냥 버립니다.

 

프라우드넷은 이러한 암호화 방식을 내장하고 있습니다. RSA는 매우 강력합니다. 하지만 계산량이 막대해서 모든 메시지를 암호화하기에는 벅찹니다. 그래서 대칭키 알고리즘과 혼용합니다.

프라우드넷의 이러한 기능을 쓰기 위해서 사용자(게임 프로그래머)는 딱 하나만 하면 됩니다. 프라우드넷에서 메시지 형식을 정의할 때 “이건 암호화할거임~”만 한마디 적어주면 끝입니다. 위 키 주고받기 과정은 사용자는 신경쓰지 않아도 됩니다. 

 

프라우드넷은 클라이언트와 서버간 통신 뿐만 아니라 P2P로 통신할 때도 지금까지 설명한 방식의 암호화 기능을 제공합니다. P2P간 통신도 제3자가 해독/변조하지 못하게요.

 

여기서 잠깐! 프라우드넷이 어떻게 암호화를 하는지 대놓고 공개해도 괜찮냐고요? 암호화 기법은 알고리즘을 공개해도 뚫지 못하는 데 그 가치가 있습니다. 이렇게 대놓고 공개해도 안뚫리니까 공개하는거죠. ^^;;;

 

프라우드넷이 제공하는 기능은 많습니다. 암호화 기능은 작은 부분에 불과합니다. 하지만 지금까지 홍보가 부족했던 것 같습니다.

 

 

 

Development Issues

프라우드넷 엔진 코어만 소스량을 재봤더니...

by nettadmin / 2010. 05. 04. [20:42]

프라우드넷 엔진 코어 소스 량입니다. 툴 소스, 테스트 프로그램 소스, 샘플 소스 등은 모두 제외한 분량입니다.

Classes:                        391
Files:                          303
Functions:                     3968
Lines:                        83747
Lines Blank:                  13710
Lines Code:                   53856
Lines Comment:                13472
Lines Inactive:                1083
Declarative Statements:       14379
Executable Statements:        20939
Ratio Comment/Code:            0.25

도움말이 상당히 상세합니다. 그러다보니 주석량 비율이 높습니다.
메시지 포맷 하나 하나를 클래스로 정의하지도 않았는데도 클래스가 무려 391개! 
소스도 무려 8만라인! 뭘 하길래 이렇게 양이 많지? 라고 생각하실지도 모르겠지만, 프라우드넷은40개가 넘는 고객사가 게임서버개발에 쓰면서 제안된 수많은 기능들의 집합체이니만큼 이정도 양은 충분히 나온다고 봅니다. 당연히 중복 코딩 같은건 없죠. 엔진 최적화와 유지보수가 얼마나 중요한데, 설마요 ^^

Development Issues