35
게게게게게게 게게게게 ?

넌프로그래머를 위한 서버/네트워크

Embed Size (px)

DESCRIPTION

2014 공채 교육용

Citation preview

Page 1: 넌프로그래머를 위한 서버/네트워크

게임서버라고 들어봤니 ?

Page 2: 넌프로그래머를 위한 서버/네트워크

| 목차 |

1. 게임인 ( 人 ) 의 상식

2. 온라인 게임의 원리

3. 네트워크 보안

Page 3: 넌프로그래머를 위한 서버/네트워크

게임인 ( 人 ) 의 상식

Page 4: 넌프로그래머를 위한 서버/네트워크

게임인 ( 人 ) 의 상식

온라인 게임 ?

네트워크 게임 ?

Page 5: 넌프로그래머를 위한 서버/네트워크

게임인 ( 人 ) 의 상식

온라인 게임

Page 6: 넌프로그래머를 위한 서버/네트워크

게임인 ( 人 ) 의 상식

네트워크 게임

Page 7: 넌프로그래머를 위한 서버/네트워크

게임인 ( 人 ) 의 상식

이들의 공통점은…

Page 8: 넌프로그래머를 위한 서버/네트워크

게임인 ( 人 ) 의 상식

네트워크

Page 9: 넌프로그래머를 위한 서버/네트워크

온라인 게임의 원리

Page 10: 넌프로그래머를 위한 서버/네트워크

온라인 게임의 원리

컴퓨터 프로그램은 변수와 함수로 이루어져 있다 .

main(){ i = 10; j = 20; 결과 = 더하기함수 ( i, j );}

더하기함수 (int a, int b){ c = a + b; return c;}

Page 11: 넌프로그래머를 위한 서버/네트워크

온라인 게임의 원리

더하기 함수를 다른 컴퓨터에 두면 어떻까 ?

모든 컴퓨터는 더하기 함수가 있는 컴퓨터에

연결해서 더하기라는 기능을 쓸 수 있잖아 ?

근데 뭘로 연결하지 ?

Page 12: 넌프로그래머를 위한 서버/네트워크

온라인 게임의 원리 인터넷

TCP/IP 프로토콜을 이용한 데이터 전송 기법

TCP(Transmission Control Protocol)

라우터 밖을 나가지 못해요 .

IP(Internet Protocol)

255.200.154.18 대충 이런 것

포트도 잊지 말자

라우터를 통과한 TCP 에게 주소를 알려줘요

현재 IPv4 이지만 IP 의 고갈로 IPv6 가

차세대 IP 버전

Page 13: 넌프로그래머를 위한 서버/네트워크

온라인 게임의 원리

연결

단 서버와 클라이언트는 동등한 입장 .

흔히 연결을 하는 쪽이 클라이언트 ,

대기하는 쪽을 서버라고 함 .

서버 클라이언트

Page 14: 넌프로그래머를 위한 서버/네트워크

온라인 게임의 원리

덧셈 네트워크 시스템

서버

클라이언트클라이언트클라이언트

숫자 두개를 서버로 물어요 .

클라가 보낸 숫자를더해서 보내줘요 .

Page 15: 넌프로그래머를 위한 서버/네트워크

온라인 게임의 원리

덧셈 온라인

서버

클라이언트클라이언트클라이언트

숫자 두개를서버로 물어요 .

클라가 보낸 숫자를더해서 보내줘요 .

근데 모두에게 누가 무엇을물었는지를

알려줘요 .

Page 16: 넌프로그래머를 위한 서버/네트워크

온라인 게임의 원리

이런 걸로 게임을 만들 순 없을까 ?

내가 뭘하고 있는지를 다른 서버에게 알려주면 되겠어 !

Page 17: 넌프로그래머를 위한 서버/네트워크

온라인 게임의 원리

연결 , 연결 , 연결

Page 18: 넌프로그래머를 위한 서버/네트워크

온라인 게임의 원리

파일을 보내고 싶어 1

서버

C 클라이언트B 클라이언트A 클라이언트

C 에게 내 파일을 보내줄래

내가 받아서 전달할께

Page 19: 넌프로그래머를 위한 서버/네트워크

온라인 게임의 원리

파일을 보내고 싶어 2

P2P

서버

C 클라이언트B 클라이언트A 클라이언트

C 에게 내 파일을 보내줄래

바빠서 힘들어 ;;;A 와 C 너희들끼리

알아서해

Page 20: 넌프로그래머를 위한 서버/네트워크

온라인 게임의 원리

이런 걸로 게임을 만들 순 없을까 ?

서버는 방만 만들어주고 우리끼리 알아서 하면 되겠어 !

Page 21: 넌프로그래머를 위한 서버/네트워크

온라인 게임의 원리

한정된 자원을 아끼는 것이 좋은 프로그램

수많은 방법과 트릭이 한꺼번에 사용된다 .

Page 22: 넌프로그래머를 위한 서버/네트워크

온라인 게임의 원리

정리

서버 시간이 유지되는 게임은 온라인 게임 C/S

어뷰징 , 해킹에 유리

단판 승부는 네트워크 세션 방식 P2P

판정은 서버가 아닌 각 개인 PC 가 함

전적만 서버가 관리

실제로는 한 프로젝트에 모든 기법 총동원

Page 23: 넌프로그래머를 위한 서버/네트워크

온라인 게임의 원리

Dedicated server

서버들

클라이언트

클라이언트

세션서버 세션서버 세션서버 세션서버

클라이언트

클라이언트

Page 24: 넌프로그래머를 위한 서버/네트워크

온라인 게임의 원리

혼자 놀면 외로우니까 네트워크 구축은 인간의 본성이다 .

간혹 새로운 기술이 인성을 망가뜨릴까 걱정하는 사람이 있다 .

그리고 인터넷 공간에 지나친 의미를 부여하는 사람이 있다 .

아무튼 둘 다 바보다 .

추천 !!

Page 25: 넌프로그래머를 위한 서버/네트워크

네트워크 보안

Page 26: 넌프로그래머를 위한 서버/네트워크

서버 보안 네트워크의 최대 적은 해킹

해커는 멋있는 것이 아닙니다 .

천재 프로그래머 없이도 됩니다 .

Page 27: 넌프로그래머를 위한 서버/네트워크

서버 보안

서버와 클라이언트

Page 28: 넌프로그래머를 위한 서버/네트워크

서버 보안

프로토콜만 맞추면 컴퓨터는 모릅니다 .

Page 29: 넌프로그래머를 위한 서버/네트워크

서버 보안

이게 게임이라면 ?

TCP/IP 그 자체는 아무런 보안 기능이 없

다 .

이 짤방은 쓰기 싫었으나 ;;;

Page 30: 넌프로그래머를 위한 서버/네트워크

서버 보안

사회공학적 해킹의 성장

DDoS

케빈 미트닉

추천 !!

Page 31: 넌프로그래머를 위한 서버/네트워크

서버 보안

스마트 디바이스

스마트폰은 작은 컴퓨터

TCP/IP, 블루투스 , NFC 등 PC 와 동일한 프로토콜 장비

사용

안드로이드의 경우 iOS 에 비해 다른 앱 접근이 용이

웹브라우저와 HTTP 통신이 주력

로컬에 사용자 정보를 담고 있는 경우가 많음

Page 32: 넌프로그래머를 위한 서버/네트워크

서버 보안

편의성 vs. 보안

당신의 선택은 ?

Page 33: 넌프로그래머를 위한 서버/네트워크

서버 보안

결론

인터넷으로 우리는 다른 컴퓨터에 변수를 보낼 수 있습니

다 .

각자의 위치 , 이동 , 총알 등이 변수가 됩니다 .

이게 모아지면 네트워크 게임이 됩니다 .

네트워크 구조 및 누가 판정할 것인지는 따라 온라인 ,

네트워크 게임이 구분됩니다 .

편의성과 보안에는 트레이드 오프가 존재합니다 .

Page 34: 넌프로그래머를 위한 서버/네트워크

Q&A

Page 35: 넌프로그래머를 위한 서버/네트워크

감사합니다 .