💡My project/네이트톡 : Java 소켓 통신 프로젝트

개인 프로젝트(1) -<소켓 통신을 이용한 채팅 프로그램 만들기(3)>

Song hyun 2024. 5. 30. 18:13
728x90
반응형

개인 프로젝트(1) -<소켓 통신을 이용한 채팅 프로그램 만들기(3)>

1. 현황 및 구현해야 할 기능

2. 느낀 점


1. 현황 및 구현해야 할 기능

 

(1) 현황

-어제는 기본적인 기능(로그인, 서버 소켓-소켓 연결, 채팅방 및 대기방 패널 만들기)들을 구현했었다. 오늘의 목표는 프로토콜과 I/O 스트림을 사용해 소켓에서 메세지들을 전달받고, 이를 통해 채팅이 가능하게끔 구현하는 것이었다.

 

*이 때, 서버에서는 전체 채팅 흐름(방 생성 및 출입, 메세지 등)을 살필 수 있고, 클라이언트들은 방 생성 및 출입, 채팅이 가능하게끔 하는 것이 목표였다. 서버는 어디까지나 관리자이기에 채팅 기능은 넣지 않기로 결정했다.

 

(2) 구현한 것

-토크나이저(Tokenizer)를 활용한 프로토콜 시스템을 만드는 게 무척 어려웠다. 처음에는 어떤 메커니즘으로 클라이언트/서버에게서 받아온 I/O 스트림을 프로토콜로 연결시키는지... 그 과정이 이해가 가지 않아 답답했던 기억이 난다. 다른 예제 코드들을 무조건 많이 찾고, 그 사람들의 프로그램 작동 화면을 보며 그 흐름을 이해하려고 했다. 결과적으로는 좌측 하단과 같이 서버-클라이언트 입출력 기능을 만들었다. 

 

-기존 '네이트온'에 운세 기능이 있는 걸 보고, '운세를 본 뒤 친구에게 그걸 공유할 수 있으면 좋겠다!' 라는 생각으로, 클라이언트의 탭드패널에는 운세기능도 추가해봤다. 프로토콜에 비하면 쉬웠다!(ㅜㅜㅋㅋ)


2. 느낀 점

- 오늘 느낀 것은 '프로그램이 어떻게 작동하고, 코드가 어떻게 흘러가는지'를 살피는 것이 정말 중요하다는 점! 오류가 발생하더라도 이와 같이 코드의 흐름을 살피면, 오류가 어디에서 발생했는지를 추측하기가 훨씬 쉬워졌다. 내가 할 수 있는 것에 비해 욕심을 많이 낸 것 같지만, 기본적인 기능만큼은 제대로 구현하고 싶다!

728x90
반응형