Thinking Different







//******************************************
    + 개발 환경 : Windows7 Pro 32bit kor
    + Visual Studio 2010 Pro 32bit kor
   
    - Server : C++, ADO, IOCP Server
    - Client : MFC
  
   ! 주요 기능 : 대화, 쪽지, 파일전송, 기타
******************************************//


--------------------------------------------------------------------------------------------------

<서버>

서버의 주 작동 구조는 IOCP를 이용한 Non Block 고속처리에 중점을 두었으며 MS Access 파일 DB를 이용한 데이터 관리로 간단히 작성하였다...

또한 서버 구조의 편의를 위해 ini 세팅 파일을 생성하여 주 변경 변수들을 유저가 작성하여 서버를 컨트롤 하도록 제작하였다...

속도를 위해서 파일전송을 제외한 모든 기능은 서버쪽에서 담당하였으며 기능 구현에만 초점을 맞춰서 버그가 엄청나게 자라고 있는 중이다...

[서버 데이터베이스 구조]
REG_USER : 유저 계정 정보 및 기타 내용을 담고 있는 부분 (패스워드를 md5형태로 저장)
FRIEND_LIST : 자신이 추가한 친구들 계정정보를 담고 있다
MY_MEMO : 비로그인시 도착한 쪽지 정보를 저장하는 테이블
FIREND_ADD_REQUEST : 비로그인시 친구요청 정보를 저장하는 테이블


< 서버 구동 화면 >


============================================================================================================

<클라이언트>

클라이언트는 주로 기능위주의 구현에만 신경을 써서 디자인은 형편이 없다...
주요 기능으로 쪽지, 대화, 파일전송이 있으며 친구관리 등의 기타 세부 기능들을 포함하고 있다...
<그룹 기능은 아직 미포함>

<로그인 창 메인 화면>

 
<로그인 후 메인화면>

 
<아이디로 친구 추가하기 화면>
 
<친구 찾기 화면>


 
<쪽지 보내기 - 받기 화면>

 
<대화하기 창 화면>


<1:1 파일 전송 화면>


 
<대화명 변경창>


 
<친구 삭제시 확인창>


 
<친구 요청>


 
<트레이 아이콘 및 팝업메뉴>


<트레이 알림창 및 효과음>



소스파일은 포함하지 않으며 컴파일한 서버 및 클라이언트 프로그램 바이너리를 배포합니다

버그 제보 : copynull@nate.com 으로 부탁드립니다...

메신저를 개발해보면서 서버 & 클라이언트간의 통신구조와 기타 네트워크의 깊은 부분까지 세세하게 많이 알게되는 계기가 되어서 정말 보람되었다...




//************************************************

   Hi Talk Messenger ver 0.1 개발일지

    http://copynull.tistory.com
         copynull@nate.com
    2010. 11. 20

*************************************************//

[2010. 11. 20]
 - 메신저 개발에 대한 생각
 - 착수 및 디자인 코드 진행방향 결정

[2010. 11. 21]
 - 기본 IOCP Network Lib 메신저용 형태로 변환
 - 서버 코드 최적화 및 리펙토링

[2010. 11. 22]
 - 서버 to 클라이언트간 프로토콜 설계 및 초안 디자인
 - 서버 to 클라이언트 기본 프로토콜 함수 작성

[2010. 11. 23]
 - 데이터데이스 설계 및 디자인(유저테이블, 친구목록 테이블)
 - 데이터베이스 테스트용 계정 추가 3개, 친구목록 2개씩 각각 추가
 - ADO Session Pool 클래스 설계 및 테스트
 - ADO Session Pool 및 Ado Session 클래스 코드 수정 및 최적화, 리펙토링

[2010. 11. 24]
 - 클라이언트 다이얼로그 디자인 (메인 dlg, child 다이얼로그형)
 - 클라이언트 로그인 프로토콜 및 로그인 디자인 세부 완료 (패스워드 암호화 MD5)
 - 로그인 버그 수정
 - ADO Session Pool Vector형으로 작성

[2010. 11. 25]
 - 유저리스트 객체 CUserInfo 클래스 작성 및 보완
 - 친구리스트 서버에서 받아오기 작성 및 버그 수정
 - 접속자 환영메시지 띄우기 완료(***님 접속하였습니다 / 효과음 추가 PlaySound())
 - About 다이얼로그 작성

[2010. 11. 26]
 - 유저 아이콘 디자인 작성 및 테스트 (BIg Icon, Small List Icon);
 - 유저 행동변화에 따른 아이콘 패킷 변경 소스 추가(온라인, 오프라인, 다른용무중, 자리비움)
 - 대화명 변경 기능 추가(수정 및 보안, 다이얼로그 생성 후 IDOK로 처리)
 - 대화명 변경에 따른 트리 목록 출력 코드 버그 수정 보안
 - 메뉴 로그인/로그아웃시 출력되는 메뉴 오버럴(enable/disable)설정
 - 내 상태 변경 메뉴 4목록 체크 표시

[2010. 11. 27]
 - 쪽지 보내기 기능 추가
 - 로그인 형태 변환 (ID@호스트) 이메일 형식으로 전환
 - 로그인 정보 아이디, 호스트 레지스트리 저장(아이디 저장기능 추가)
 - 툴팁 기능 추가 및 지속적 개선 요망
 - 프로그램 중복 실행 방지 기능 추가 (추후 배포시 주석삭제 요망)

[2010. 11. 28]
 - 쪽지 보내기 기능 버그 및 수정
 - 내 대화명 변경 기능 추가
 - 트리목록에서 유저 선택 마우스 오른쪽 팝업기능 추가(대화하기, 쪽지보내기, 친구삭제)

[2010. 11. 29]
 - 남몰래 들어가기 기능 추가 (서버에서 패킷 전달 안함)
 - 툴팁 메인 보기 변경
 - 효과음 변경
 - 기존연결 접속중 다른연결시 기존연결 종료후 새로운 연결 할당
 - 친구삭제 기능 추가
[2010. 11. 30]
 - 친구 추가 기능 추가
 - 친구추가 버그 수정 (자기 자신은 추가 불가능)
 - 쪽지 보내기 단축기 지정 (ctrl + Enter시 보내기 기능 사용)
 - 쪽지 사이즈 950Byte로 수정

[2010. 12. 1]
 - 친구 검색 기능 추가
 - 비 로그인시 쪽지 전송 (처음 로그온시 저장된 쪽지 불러오기)
 - 비 로그인시 친구 추가 요청 (처음 로그온시 저장된 친구추가 불러오기)

[2010. 12. 2 - 5]
 - 파일 전송 기능 구현

[2010. 12. 6]
 - 대화하기 기능 추가
 - 대화하기 초대 기능추가
 - 대화하기 도움말 표시 기능 추가

[2010. 12. 7]
 - 대화하기 버그 수정
 - 기타 클라이언트 버그 수정
 - 트레이아이콘 등록

// 미 구현 기능
 - 그룹 기능 추가