1. 배경

**프로젝트는 근거리 P2P(Network.framework)**와 **원거리 서버 통신(WebSocket)**이라는 두 가지 네트워크 환경을 모두 지원합니다.

하지만 서로 다른 전송 방식과 데이터 포맷으로 인해 코드의 중복이 발생하고, UI 로직이 통신 방식에 의존하게 되는 문제가 있었습니다.

이를 해결하기 위해 프로토콜 추상화와 어댑터 패턴을 도입하여, 로컬과 서버 모드에 상관없이 단일한 체계로 동작하는 통합 네트워킹 레이어를 구축했습니다.


2. 시스템 아키텍처: 계층 분리를 통한 의존성 해소

상위 레이어는 구체적인 통신 방식이 아닌 인터페이스에만 의존하며, 하위 레이어에서 각 방식에 맞는 명세를 구현합니다.

2.1 클래스 구조도 (UML)

스크린샷 2026-02-02 오후 3.32.53.png


3. 핵심 전략: 프로토콜 추상화 및 데이터 단일화

3.1 프로토콜 기반 인터페이스 표준화

ConnectionSessionManaging을 최상위 프로토콜로 정의하여 통신 방식에 상관없이 동일한 인터페이스를 제공합니다.

3.2 어댑터 패턴을 통한 데이터 타입 통일

두 모드 간의 차이점