본문 바로가기
내일배움 과제/기타 과제

스텐다드 24.11.19 과제

by GREEN나무 2024. 11. 20.
728x90

네트워크

[수강생]
클라이언트, 서버 구조
웹 어플리케이션 서버와 게임 서버의 차이
[튜터]
게임 서버 개발자가 알아야할 것 - 네트워크 중심으로

 

과제

1. 컴퓨터 세계에서 서버와 클라이언트는 무엇인가?

서버, 클라이언트 각각의 개념과, 서버 클라이언트 구조에 대해 자유롭게 조사해주세요.

 

 

컴퓨터 세계에서 서버와 클라이언트는 네트워크 시스템에서 정보를 주고받는 역할을 나누는 개념입니다.

 서버(Server) : 서비스를 제공하는 컴퓨터 또는 프로그램 (service provider)

 클라이언트로부터 요청을 받아 처리하고, 그 결과를 반환하는 일을 합니다.

 특징:

      - 데이터 저장, 처리, 관리의 중심 역할.

      - 안정성과 고성능 요구.

      - 유형: 웹 서버, 데이터베이스 서버, 파일 서버 등.

 ex)  웹 페이지를 제공하는 웹 서버(Apache, Nginx), 이메일 데이터를 관리하는 이메일 서버(Gmail, Outlook 서버)

 

 클라이언트(Client) : 서비스를 요청하고 사용하는 컴퓨터 또는 프로그램 (service user)

 사용자 인터페이스를 제공하고 서버와 통신하는 일을 합니다.

 특징:

      - 서버에 데이터를 요청하고, 그 응답을 받아 사용자에게 제공.

      - 상대적으로 가벼운 하드웨어와 소프트웨어로 동작.

 ex)   웹 브라우저(Chrome, Safari), 메신저 애플리케이션(WhatsApp, Slack)

 

 서버-클라이언트 구조(Server-Client Architecture) :

서버와 클라이언트 간 데이터를 교환하며 작동하는 네트워크 시스템 구조 입니다.

 

▶ 동작 원리:

1.클라이언트가 요청(Request)을 전송.

2.서버가 요청을 처리하고 응답(Response)을 반환.

3.클라이언트가 응답 데이터를 표시하거나 추가 처리.

 

▶ 장점:

      - 중앙집중식 관리로 데이터 보안과 유지보수 용이.

      - 서버 성능에 따라 클라이언트 수 확장이 가능.

      - 데이터 일관성과 무결성 유지 용

▶ 단점:

       - 서버에 과부하 발생 시 성능 저하.

       - 서버 장애 시 전체 시스템 중단 가능성.

 

ex) 웹 브라우징: 클라이언트(브라우저)  서버(웹 서버),

     온라인 게임: 클라이언트(플레이어 앱)  서버(게임 데이터 처리).

 

 서버-클라이언트 구조의 유형

 

1. 단일 계층 구조 (1-Tier Architecture)

▶  모든 작업이 단일 시스템에서 처리.

▶  장점: 간단한 구성, 낮은 비용.

▶  단점: 확장성과 복잡한 데이터 처리가 어려움.

 ex) 독립 실행형 소프트웨어

 

2. 이중 계층 구조 (2-Tier Architecture)

 클라이언트와 서버로 분리

▶ 클라이언트는 요청과 표시, 서버는 데이터 처리

 ex)  데이터베이스를 사용하는 소규모 애플리케이션

 

3. 다중 계층 구조 (3-Tier Architecture)

 클라이언트, 응용 서버, 데이터베이스 서버로 구성.

 각 계층이 독립적으로 설계.

▶ 대규모 웹 애플리케이션에 적합.

 ex)  전자상거래 플랫폼 (프론트엔드, 백엔드, 데이터베이스).

 

※ 요약

 서버: 데이터를 제공하는 중심 시스템 (service provider)

 클라이언트: 데이터를 요청하고 사용하는 사용자 인터페이스 (service user)

 서버-클라이언트 구조는 현대 IT 시스템에서 가장 널리 사용되는 설계 방식으로, 확장성, 보안, 유지보수성에서 강점을 보입니다.

 서버-클라이언트 구조 유형

1. 단일 계층 구조 (1-Tier Architecture)

2. 이중 계층 구조 (2-Tier Architecture)

3. 다중 계층 구조 (3-Tier Architecture)

 

2. 웹 어플리케이션 서버와 게임 서버의 공통점과 차이점은 무엇인가?

어떤 공통점과 차이점이 있는지? 게임 서버에서 중요하게 다루어야 하는 내용은 무엇인지 조사해주세요.

◆ 웹 애플리케이션 서버 vs 게임 서버 특징 비교

항목 웹 애플리케이션 서버 게임 서버
프로토콜 HTTP/HTTPS 사용 TCP/UDP, 커스텀 프로토콜 사용
통신 상태 연결 끊김 후 재요청 (Connectionless, Stateless) 지속 연결 유지 (실시간 통신 필수)
응답 속도 요구 비교적 낮음 (몇 초 지연 허용) 매우 높음 (밀리초 단위 응답 필요)
데이터 변동 자주 변하지 않으며 캐싱 활용 가능 실시간 데이터 변동, 캐싱 어려움
트래픽 특성 읽기(Read) 요청이 주를 이룸 읽기와 쓰기(Write) 요청 빈번
응답 내용 HTML, CSS, JS 등 정적/동적 콘텐츠 바이너리 데이터 (좌표, 상태, 행동 등)
중요 요소 확장성, 사용자 편의성 실시간성, 반응 속도, 데이터 무결성
요청-응답 구조 두 서버 모두 클라이언트 요청을 처리한 뒤 적절한 응답을 반환하는 요청-응답 구조를 따릅니다.
데이터 관리 사용자 정보를 관리하고 데이터베이스와의 통신을 통해 데이터를 저장하거나 가져옵니다.
확장성 로드 밸런싱, 클러스터링, 캐싱 등을 활용하여 트래픽 증가에 따라 확장을 지원합니다.
보안 기능 인증, 권한 부여, 암호화(SSL/TLS)로 사용자 데이터와 시스템 보안을 유지합니다.

◆ 게임 서버에서 중요하게 다루어야 할 내용

1. 실시간성

▶ 낮은 지연 시간(Latency) : 네트워크 병목 최소화, UDP 활용.

▶ 빠른 데이터 처리 : 연산 최적화 및 서버 부하 관리.

 

2. 데이터 무결성

▶  중요 정보 보호  정보 손실/중복 방지.

▶  동기화 사용자 간 상태 불일치 방지.

 

3. 확장성

▶  분산 서버 구조 : 동접 사용자 증가에 샤딩 및 분산 처리.

▶  멀티스레드 설계  CPU 자원 효율화 및 성능 최적화.

 

4. 보안

▶  치트 방지(Anti-Cheat) :  클라이언트 부정 행위를 방지, 강력한 보안.

▶  암호화된 통신  도청 및 데이터 변조 방지.


출처 :

 

클라이언트와 서버 빠르게 개념잡기 : https://velog.io/@jennyfromdeblock/%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8%EC%99%80-%EC%84%9C%EB%B2%84-%EB%B9%A0%EB%A5%B4%EA%B2%8C-%EA%B0%9C%EB%85%90%EC%9E%A1%EA%B8%B0

 

1. 클라이언트-서버 구조 : https://pass25.com/wp-content/uploads/2024/04/%EC%86%8C%EA%B3%B5_%EC%A0%9C12%EC%9E%A5_1_%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8-%EC%84%9C%EB%B2%84%EA%B5%AC%EC%A1%B0.pdf

 

서버와 클라이언트 란? 웹 어플리케이션 서버와 게임 서버의 공통점과 차이점은 무엇인가?: https://dydgustmdfl1231.tistory.com/35

 

게임 서버 개발과 웹 서버 개발의 차이 : https://elky84.github.io/2019/03/17/game_server_develop_difference_web_server_develop/

 

웹 서버와 애플리케이션 서버의 차이점 이해하기 : https://f-lab.kr/insight/understanding-web-and-application-server-differences-20240916

 

 

'내일배움 과제 > 기타 과제' 카테고리의 다른 글

알고리즘 19번 - 추가공부  (0) 2024.11.22
알고리즘 18번 - 추가공부  (0) 2024.11.21
알고리즘 17번 - 추가공부  (0) 2024.11.20
SQL 7번  (0) 2024.11.19
알고리즘 16번 -추가공부  (1) 2024.11.19