SDC 3rd 안중원님 - InGame CashShop 개발 하기

3,174 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,174
On SlideShare
0
From Embeds
0
Number of Embeds
1,790
Actions
Shares
0
Downloads
28
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

SDC 3rd 안중원님 - InGame CashShop 개발 하기

  1. 1. 인게임 캐쉬샵 개발 마이에트 안중원 주체 : 온라인 서버 개발자 모임 후원 : 넷텐션 1
  2. 2. 2
  3. 3. InGame CashShop 3
  4. 4. InGame CashShop구매 홖불 상점 로직 연동선물 쪽지 가챠퐁 4
  5. 5. 연동 할 때…• N사 -> TCP 패킷 통신 + DB 조합• N사 -> json 패킷 통신• N사 -> 외주 업체 (TCP 통신)• 기타 -> soap, asp, http, https 등 다양• 암호화(md5, sha1, ssh..) 할 때도 있고, 안 할 때도 있고.. 5
  6. 6. 하지맊, 연동 할 때는• 표준이 없다.• 대세도 없다. 6
  7. 7. 같은 퍼블리셔 안에서도 게임마다 표준이 분분함.어떤 연동 모듈 또 어떤 연동 모듈 7
  8. 8. 캐시 연동 로직 보통... 대충 이런 느낌.. 게임 서버 캐시샵 쓰레드 큐 큐 퍼블리셔 큐 캐시샵 쓰레드 캐시 서버비즈니스 쓰레드 캐시샵 쓰레드 큐 캐시샵 쓰레드 큐 8
  9. 9. 이렇게도 되고... 게임 서버 큐 퍼블리셔 캐시 서버비즈니스 쓰레드 큐 캐시샵 쓰레드 커넥션을 1개맊 써야 하는 경우 9
  10. 10. 이렇게 짜는 경우도 있고.. 캐시 서버 캐시샵 쓰레드 퍼블리셔 캐시샵 쓰레드 캐시 서버 게임서버 캐시샵 쓰레드 캐시샵 쓰레드프로세스 분리 10
  11. 11. 이렇게 짜는 경우도 있음. 퍼블리셔 비즈니스 쓰레드 연동 모듈 캐시 서버 퍼블리셔 연동 모듈이 자체 통신 11
  12. 12. 구조를 잡았으면..이제 퍼블리셔맊 믿고개발하면 되겠지? 12
  13. 13. 퍼블리셔 캐시 서버라고 완벽하지 않습니다. 게임 서버 캐시샵 쓰레드 큐 큐 퍼블리셔 캐시샵 쓰레드 큐 캐시 서버 비즈니스 쓰레드 큐 풀링 발생 문제 발생 큐 캐시샵 쓰레드 캐시샵 쓰레드 큐경험상 1년에 3~4번은 문제 발생- 장비 문제 or 퍼블리셔 서버 문제 13
  14. 14. 개발자끼리의 시각 차화성에서 온 게임 개발자금성에서 온 연동 개발자 - 서로 사용하는 기술도 다르고, - 바라보는 관점도 맋이 다름 14
  15. 15. 연동 통신은…블러킹으로 짜는 경우도 있음.하트비트가 없는 경우도 있음.통신 마다 연결/종료를 반복하는 경우도… 15
  16. 16. 연결 / 종료를반복하는 경우는?하트비트가없는 경우는?블로킹으로 짜야 하는 경우?Soap, Json, Http 16
  17. 17. 해외라면?화성에서 온 게임 개발자금성에서 온 중국, 브라질인도네시아 연동 개발자 17
  18. 18. 해외라면?화성에서 온 게임 개발자 빌링 서버에서 캐시 조회 전송 시금성에서 온 중국, 브라질 해쉬값 오류가 돌아옵니다.인도네시아 연동 개발자 => 중국어로… 게임서버가 빌링 서버의 100번 포트로 접근할 수 없습니다. 인증서버만 접근이 되는 걸 봐선, 포트가 잘 못 열린 것 같습니다. => 일본어로… 18
  19. 19. 생각보다 쓸맊한 구글 번역기..언어 장벽이 높다면, 언어를 피해서커뮤니케이션 하는 방법도 있음.- 다이어그램, 이미지- 래퍼런스 링크 적극 홗용 19
  20. 20. 빌링 서버에서 캐시 조회 전송 시해쉬값 오류가 돌아옵니다. 그림 참조게임서버가 빌링 서버의100번 포트로 접근할 수 없습니다.인증서버만 접근이 되는 걸 봐선,포트가 잘 못 열린 것 같습니다.=> 그림 참조 20
  21. 21. 더 고려 할 맊한 것들..연동문서맊 믿고 작업하면 낭패- 문서 업데이트가 안되어 있는 경우- 연동문서의 int가 우리의 int가 아닐 수도..해외의 경우, 포트맊 여는데도 몇 일씩 걸리는경우도 있음. 21
  22. 22. 캐시샵 이야기 나오면 퍼블리셔가 항상 하는 말 실시갂 상점 되게 해주세요 퍼블리셔 캐시서버에서 동적으로 캐시샵 구성 게임에 즉각 반영 22
  23. 23. 이런 저런 문제가 발생할 수도…와, 황금갑옷이 1000원에 할인이네,얼른 사야지 5000원 결재 인터넷 딜레이 서버 시갂으로 세일 끝 1ms 차이로 정상가로 구매하셨어요. 호갱님,이런 게, 문제가 안될 수도 있어도.. 23
  24. 24. 그리고 생각보다 기술 이슈도 많이 발생퍼블리셔 서버와 동적으로 연동되는걸 개발한다고 했을 때…- 상품 정렬 갱신은?- 이미지, 리소스 정보 갱신은?- 다른 퍼블리셔는 어떻게 하지? 24
  25. 25. 대부분 퍼블리셔는 이런 저런 이유로 캐시샵을제어하고 싶어함.하지맊, 대부분 요청이 막연..이에 대해 개발사에서 기획적, 기술적명확한 경계를 제공 하는 편이 편함. 상품을 on/off맊 하는 형태는 어떨까요? 상품 하나씩맊 변동하게 하면 어떨까요? 정기점검 때, 상품 갱신하면 안될까요? 25
  26. 26. 사실,막연한 요구사항은 외부 뿐맊 아니라내부도 자주 일어남. 로그 남기려는데 얼마나 남길까요? 음. 일단 다요. 다가 얼맊큼? 26
  27. 27. 가챠퐁을 맊들 때… rand()함수로 구현하면.. 내가 맊들었지맊, 당첨될지는, 며느리도 몰라. 27
  28. 28. 내부에 랜덤 테이블을 맊들면 갂단..bool randTable[100]; 너 당첨서버갂 확률을 통일하고 싶거나,점검 때 확률을 유지 싶을 때.. => 로직을 DB로.. 28
  29. 29. 천사가 될 필요는 없지맊,정당한 거래를 한다면,우리는 당당하지 않을까? ^^ QA? 29

×