- Type : ๊ฐ์ธ ํ๋ก์ ํธ
- IDE : Spring Tool Suite
- JAVA : 1.8
- OS : OSX
- ์์ผ์๋ฒ๋ฅผ ํตํด ์ฑํ ๊ธฐ๋ฅ์ผ๋ก ์์ผ ๋คํธ์ํฌ์ ๋ํด ์ดํดํ๊ธฐ
- ์ฑํ ๊ณผ ๊ฒ์์ ๊ฐ์ด ์๋ํ ์ ์๊ฒ ๋ง๋ค์ด ๋ฉํฐ ์ค๋ ๋ ์ดํดํ๊ธฐ
- ๋ฉํฐ์ ์ ๊ฐ ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋ค์ด, ์ด๋์๋ ๊ฐ๋จํ๊ฒ ์ฆ๊ธธ ์ ์๋ ๊ฒ์ ๋ง๋ค๊ธฐ.
* 2-1. ์์ผ ๋คํธ์ํฌ ํต์
- EchoServer๋ก์ TCPํต์ ์ฑํ
๊ธฐ๋ฅ ๊ตฌํ.
- Thread Handler๋ฅผ ํตํด ์๋ฒ์ ์ค๋ ์์ฒญ์ ์ฒ๋ฆฌ.
์ฑํ ๊ธฐ๋ฅ๊ณผ ๊ฐ๋จํ ์ค๋ ๋๋ฅผ ํตํด ์ฌ๋ฌ ์ฌ๋์ด ํจ๊ป ์ฆ๊ธธ ์ ์๋ ๊ฒ์์ ๋ง๋ค๋ฉด์ ๋ฌธ์ ์ ๊ณผ ํด๊ฒฐํ๋ ๊ณผ์ ์ ๊ธฐ๋กํ๊ฒ ์ต๋๋ค.
- ๋ฉํฐ์ค๋ ๋์์ ๊ณต์ ์์์ ์ฐ๊ธฐ์ํ Syncronized๋ฅผ ์ดํดํ๋๋ฐ ์๊ฐ์ด ๊ฑธ๋ ธ์ผ๋ฉฐ, ํ์ฌ [java_practice_example](https://github.com/Seolhun/java_practice_example)์ thread ์์ ์ฝ๋๊ฐ ์์๋๋ค.
- StringTokenizer๋ก ๋ฌธ์๋ฅผ ๋๋์ด ๋ณด๋ด๋ ๊ณผ์ ์ด ๋ณต์กํ์๊ณ , ๋์ ์ง๊ด์ ์ด์ง ์์์ต๋๋ค. ํ์ฌ ๊ฐ์ฒด(VO)๋ฅผ ๋ณด๋ด๋๊ฒ์๋ ์คํจํ์ฌ ๋ ์์๋ณด๋ ์ค์
๋๋ค.
- ๊ฒ์ ์ค ์ค๊ฐ์ ๋๊ฐ๋ ์ธ์์ ๋ํ ์ฐ๊ฒฐ ์ฒ๋ฆฌ์ ๋ํ ์ด๋ ค์์ด ์์.
# 4-1. ์๋ฒ ๋ด์์ ์ซ์ ๋ง์ถ๊ธฐ ๊ฒ์ ๊ตฌ์ถ
- 1~100๊น์ง ์ซ์ ๋ง์ถ๊ธฐ
- ์๊ฐ์ ํ(Time out), Menu๊ธฐ๋ฅ์ ํตํด ๋ฉํฐ ์ค๋ ๋ ๊ตฌํ ์์ .
* ์คํ ์์.
- 1. ChatServer๋ฅผ ์คํํ๋ค.
- 2. ChatClient์ Address(127.0.0.1) - ๋ก์ปฌํ๊ฒฝ, ํน์ ChatServer๋ฅผ ์คํํ Address๋ฅผ ์
๋ ฅํ๋ค.(ํ์ฌ ๋ก์ปฌ๋ก ํ์ ์์ผ๋์์ต๋๋ค.)
- 3. ๋๋ค์์ ์
๋ ฅํ๋ค.
- 4. ํ
์คํธ๋ฅผ ์
๋ ฅํ๋ค.