ㅇ 일 자 : 2026년 6월 19일(금)
ㅇ 주 제 : 채팅 서버를 구축함에 있어서 각 용어의 정의 및 간략한 구조에 대한 이해
ㅇ 목 표 : 교육자료 9강의 ~ 15강의 까지 자기주도 학습하기
※ 실습 강의 목록
- 9강 : 여러 클라이언트 접속 구조
- 10강 : 스레드 개념과 기초 사용법
- 11강 : 스레드로 클라이언트 처리하기
- 12강 : 접속자 목록 관리
- 13강 : 전체 채팅 브로드캐스팅 구현
- 14강 : 왜 메세지 규칙이 필요한가?
- 15강 : JSON 기반 메세지 타입 설계
1. 용어의 정의 및 간단한 구조 설명
1.1. 클라이언트 (Client)
- 용어의 정의 : 서버에 연결을 요청하고 서비스를 제공받는 프로그램
- 구조 및 특징 :
- 서버와 다수의 클라이언트가 연결된 구조를 가진다.
- 각 클라이언트는 고유한 식별값(번호)을 가지며, 서버의 clients 리스트를 통해 관리 및 식별된다.
- 연결 시 생성되는 연결 소켓을 통해 개별 클라이언트를 구분한다.
1.2. 스레드 (Thread)
- 용어의 정의: 프로세스 내에서 실행되는 가장 작은 작업 단위이자 순차적인 실행 흐름이다.
- 구조 및 특징:
- 메인 스레드에서 필요한 만큼의 추가 스레드를 생성하여 병렬 작업을 수행한다.
- 데이터 송수신과 같은 실질적인 동작은 별도의 스레드에서 처리하여 효율을 높인다.
- join() 함수를 통해 메인 스레드가 보조 스레드의 종료를 기다리게 할지 여부를 결정할 수 있다.
1.3. 다중 접속 서버 (Multi-connection Server)
- 용어의 정의: 여러 클라이언트의 동시 접속을 수용하여 동시에 통신을 처리하는 서버 구조
- 구조 및 특징:
- [서버 소켓 생성 → 주소 바인딩 → 접속 대기]의 흐름을 가진다.
- while True 루프와 accept() 메서드를 반복 호출하여 끊임없이 새로운 연결을 받아들인다.
- 개발자의 논리적 사고를 의사코드(Pseudocode)로 구조화하는 연습이 중요하다.
1.4. 소켓 (Socket)
- 용어의 정의: 네트워크상에서 두 프로그램 간 양방향 통신을 가능하게 하는 종착점(Endpoint)이자 데이터 출입문
- 구조 및 특징:
- 응용 프로그램이 OS의 네트워크 기능을 활용하도록 돕는다.
- 데이터 흐름 3단계:
- 송신: 애플리케이션 데이터가 커널에서 패킷으로 캡슐화되어 송출
- 전송: 라우터와 스위치를 거쳐 목적지로 라우팅
- 수신: 서버가 패킷을 받아 포트 번호를 분석하고, 해당 소켓의 수신 버퍼에 데이터를 적재
1.5. 접속자 목록 관리 및 브로드캐스팅
- 목록 관리 : 연결된 클라이언트들을 리스트 등에 저장하여 개별적으로 제어하는 과정
- 브로드캐스팅: 서버에 연결된 모든 클라이언트에게 데이터를 일괄 전송하는 방식
- 구조 및 특징:
- 개별 클라이언트 식별을 위해 목록을 관리하며, 귓속말 기능 구현 시에는 특정 클라이언트만 타겟팅
- 메시지 전송 시 단순 문자열보다 JSON 형식을 사용하면 데이터 유지관리가 용이
1.6. 데이터 구조 (Data Structure)
- 용어의 정의: 컴퓨터가 데이터를 효율적으로 저장하고 처리하기 위해 사용하는 논리적인 체계
- 구조 및 특징:
- 데이터는 전기 신호인 0과 1(비트 단위)로 저장된다.
- 개발자는 데이터를 16진수(4비트를 2자리로 표현) 형태로 다루며, 이는 효율적인 데이터 관리에 도움을 준다.
2. 예시문제 실습 하기 (9강의 ~ 13강의) ※ 가상의 내부망 주소는 실습용임
2. 1. 7강. 반복 송수신과 종료 처리

2. 2. 8강. 1:1 터미널 채팅 완성하기

2. 3. 10강. 스레드 개념과 기초 사용법

2. 4. 11강. 스레드로 클라이언트 처리하기
- 프로세스 vs 스레드 : 프로세스는 실행 중인 프로그램(공장)이며, 스레드는 그 안에서 일하는 일꾼
- 메모리 공유 : 한 프로세스 안의 스레드들은 heap 메모리와 자원을 공유하므로 통신이 빠르다.
- 멀티스레딩 : 하나의 프로그램에서 여러 작업을 동시에 처리(예: 다운로드하면서 화면 표시)하기 위해 사용한다.

11강 예시문제 실습 화면
2. 5. 12강. 접속자 목록 관리


2. 6. 13강. 전체 채팅 브로드캐스팅 구현


2.7. 14강. 왜 메세지 규칙이 필요한가?
채팅창에서 메시지 규칙이 필요한 가장 핵심적인 이유는?
수많은 이용자가 동시에 소통하는 공간에서 발생할 수 있는 혼란을 막고, 안전하며 효율적인 소통 환경을 조성하기 위함


가상의 환경에서 임의의 채팅창 (실습용)
2.8. 15강. JSON 기반 메세지 타입 설계
2.8.1.
'학습 로그 > Python3' 카테고리의 다른 글
| D+53[Python] PySide6 GUI 연동하기(22~26강) (0) | 2026.06.23 |
|---|---|
| D+52[Python] 다중 접속과 브로드캐스팅메시지 & 프로토콜 (0) | 2026.06.22 |
| D+50[Python] PySide6 & Server-Client 예제 실습 (0) | 2026.06.19 |
| [D+50] LLM (Gemini, lovable, gabia) 활용한 개인 웹페이지 제작(실습) (0) | 2026.06.18 |
| D+49[Python] 메모 요약 앱 만들기 예제 실습 (0) | 2026.06.18 |