7. 실전 프로젝트(메신저) 7.1 EH 메신저 시나리오 [TCP/IP 소켓 프로그래밍 with 윈도우즈]

이번 장에서는 실전 프로젝트를 만드는 과정을 통해 앞에서 배운 내용을 정리하고 숙련도를 높여 봅시다. 여기에서는 작은 메신저를 소재로 프로젝트를 수행하는 공정을 적용하기로 할게요.

이번 프로젝트는 시나리오 소개에서 요구 분석 및 정의 단계, 아키텍쳐링 단계, 설계 단계, 구현 단계로 나누어 단계별로 수행해 봅시다. 실전 프로젝트에서는 배포 단계가 존재하지만 여기에서는 배포 단계는 생략합니다.

7.1 EH 메신저 시나리오

EH 메신저

언제나 휴일 출판사 | 장언휴

1. 개요

a 배경 지식

b 프로젝트 소개

2. 개발 환경 및 요구 기술

a 동작 환경

b 요구 기술

3. 개발 공정

1. 개요

a 배경 지식

 메신저는 인터넷 상에서 실시간으로 대화를 나눌 수 있는 서비스입니다. 메신저 서비스를 제공하기 위해서는 서버에서는 논리적인 Zone을 형성하기 위해 가입, 로긴, 상태 서비스를 제공합니다. 그리고 실제 대화를 주고 받는 메시지는 서버를 거치지 않고 대화에 참여하는 클라이언트 사이에 송수신을 진행합니다. 이처럼 서버를 거치지 않고 실제 송수신 대상 사이에 통신하는 것을 P2P(Peer To Peer)라고 말합니다.

 대규모의 사용자에게 메신저를 서비스를 하는 곳에서는 서버 측을 역할에 따라 계층을 나누어 서버 측을 구성하는데 이와 같은 서버 구성을 N Tier라 말합니다.

b 프로젝트 소개

 EH 메신저 프로젝트는 P2P로 숏 메시지와 파일을 주고 받을 수 있는 작은 기능의 메신저입니다. 그럼에도 불구하고 소켓 통신 실무 능력을 키우기 위해 서버 측은 3 Tier로 계층화할 것입니다. 여기에서 3 Tier는 클라이언트의 요청을 수용하는 프리젠테이션 계층과 실제 서비스를 제공하는 비지니스 서비스 계층, 비지니스 서비스 계층에서 필요한 데이터를 관리하는 데이터 계층으로 구성합니다.

 특히 비지니스 서비스 계층은 가입 서비스, 로그 서비스, 상태 서비스로 구성합니다. 실전 프로젝트에서 이 정도의 서비스를 무리하게 나눈 것이 아니냐고 볼 수도 있지만 교육 목적으로 나눈 것입니다.

2. 개발 환경 및 요구 기술

a 개발 환경

운영체제: 32비트 윈도우즈 운영체제

통합 개발 환경: Visual Studio 6.0 이상(이 책에서는 Visual Studio 2010)

CASE 도구: StarUML (이 책에서는 StarUML Version 2.1.1)

b 요구 기술

 윈속, Win32 API

3. 개발 공정

 요구 분석 및 정의 – 10%

 아키텍쳐링 – 45%

 설계 – 25%

 구현 – 20%