๐ ํ๋ก์ ํธ ๊ฐ์
- ๋ก๋ด์ด ๋ชฉ์ ์ง๊น์ง ๊ธธ์๋ด๋ฅผ ํ๋ฉฐ, ์ค์๊ฐ ์ํ์ ๋ฐ๋ผ ์ฌ์ฉ์์๊ฒ ์์ฑ ๋ฐ ํ๋ฉด ์๋ด๋ฅผ ์ ๊ณตํ๋ ๊ฒฝ๋น ๋ก๋ด ์ ์ฉ ์๋น์ค์ ๋๋ค.
- ์ด๋ ์ค ๋ก๋ด์ ์ค์๊ฐ ์์น์ ์ํ (๋๊ธฐ, ์ด๋, ๋์ฐฉ, ํผ์ก, ์ผ์์ ์ง, ๊ฒฝ๋ก ์ฅ์ ๋ฑ)๋ฅผ UI๋ก ์ง๊ด์ ์ผ๋ก ํํํ๋ฉฐ,
์ํฉ์ ๋ง๋ ์์ฑ ์๋ด๋ฅผ ํจ๊ป ์ ๊ณตํ์ฌ ๋ณด๋ค ๋ช ํํ ์์ค์ฝํธ ๊ฒฝํ์ ๊ตฌํํ์์ต๋๋ค. - ๋ก๋ด์ด ์์ค์ฝํธ๋ฅผ ์ํ ์ค์ผ ๋๋ ๋ฉ์ธ ํ๋ฉด ์ด๋ ๋ฐ ๊ธฐํ ์ฝํ
์ธ ์ด์ฉ์ด ์ ํ๋๋ฉฐ,
์๋ ๋ณต๊ท ์ดํ์ ์ ์์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ์ค๊ณํ์ฌ ์ฝํ ์ธ ์์ ์ฑ์ ๋์์ต๋๋ค. - ์ด๋ ์์, ์ผ์ ์ ์ง, ๋ชฉ์ ์ง ๋ณ๊ฒฝ, ์์์น ๋ณต๊ท ๋ฑ์ ์ด๋ฒคํธ ์ํ๋ ์ฑ ์ ์ญ์ผ๋ก ๊ด๋ฆฌ๋๋ฉฐ,
UI ์ฝํ ์ธ ๋ฟ ์๋ ๋ฏธ๋ค์จ์ด์๋ ์ํ๋ฅผ ์ ๋ฌํ์ฌ ๋ก๋ด ํ๋์จ์ด์ ์์ง์์ ์ ์ดํฉ๋๋ค. - ๊ด๋ฆฌ์ ๋ชจ๋์์๋ ์ง๋ UI๋ฅผ ํตํด ๋ชฉ์ ์ง ์ขํ๋ฅผ ์ง์ ์ค์ ํ ์ ์๋๋ก ๊ตฌ์ฑํ์ฌ ๊ด๋ฆฌ์ ํธ์์ฑ์ ๋์์ต๋๋ค.
๐งโ๐ป ์ฃผ์ ๊ธฐ์ฌ
- ์์ค์ฝํธ ๊ธฐ๋ฅ์ ๊ธฐํ์ ์ฐธ์ฌํ๊ณ , ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋จ๋ ์ผ๋ก ๋ด๋นํ์์ต๋๋ค.
- ์ ๊ท ์ฝํ ์ธ ์ ์ฑ๊ณต์ ์ธ ์์ฐ ๋ฐ ์์ฉํ๋ฅผ ์ด๋์์ต๋๋ค.
- ๋ก๋ด ์ด๋ ์ค ๋ฐ์ํ๋ ๋ค์ํ ์ํ๋ฅผ ์ ์ํ๊ณ , ๊ฐ ์ํ์ ๋ฐ๋ผ UI์ ์์ฑ ์๋ด๊ฐ ์์ฐ์ค๋ฝ๊ฒ ์ ํ๋๋๋ก ์ํ ๊ธฐ๋ฐ UI ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ์์ต๋๋ค.
- MVC ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก UI์ ๋ก์ง์ ๋ถ๋ฆฌํ๊ณ , ๊ฐ ์ํ์ ๋ณ๊ฒฝ ๋ฐ ์ถ๊ฐ๊ฐ ์ฉ์ดํ๋๋ก State ํจํด์ ์ ์ฉํ์ฌ ๋ค์ํ ์ํ๋ฅผ ๊ด๋ฆฌํ์์ต๋๋ค.
- ๋ก๋ด ์ํ์ ๋ฐ๋ผ ๋ถ๊ธฐ๋๋ ๋ค์ํ ๋ก์ง์ ๋จ์ํํ๊ณ , ๊ฒฐํฉ๋๋ฅผ ์ค์ด๊ธฐ ์ํด Facade ํจํด์ ์ ์ฉํ์์ต๋๋ค.
- ์ํฉ์ ๋ง๋ TTS (Text-to-Speech) ์์ฑ ์๋ด๋ฅผ ์ค์๊ฐ์ผ๋ก ๋๊ธฐํํ์ฌ,
์ฌ์ฉ์์๊ฒ ๋ช ํํ ์๋ด๊ฐ ์ ๋ฌ๋๋๋ก ๊ตฌํํ์์ต๋๋ค. - ๋ก๋ด์ ํ์ฌ ์์น ์ ๋ณด๋ฅผ WebSocket ๊ธฐ๋ฐ์ผ๋ก ์์ ํ๊ณ , ์ง๋ UI ์์ ์์น๋ฅผ ๋์ ์ผ๋ก ๋ฐ์ํ๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ์์ต๋๋ค.
- ์ ์ฒด ๊ธฐ๋ฅ์ ๋ํด ๋ฐ๋ณต์ ์ธ ํ ์คํธ์ ๋ฆฌํฉํฐ๋ง์ ๊ฑฐ์ณ, ํ์ฅ ์์ฐ์์ ์์ ์ ์ด๊ณ ์์ฑ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ์์ต๋๋ค.
- ํด๋น ํ๋ก์ ํธ๋ ๊ฒฝ๋น ๋ก๋ด ์๋น์ค๋ฅผ ํ์ฅ๋๋ ๊ณ๊ธฐ๊ฐ ๋์์ผ๋ฉฐ,
์ดํ 2๋ ๊ฐ ์ด 14๊ฐ ๊ณ ๊ฐ์ฌ ๊ฑด๋ฌผ์ ๋์ ๋์ด ๋น์ฆ๋์ค ๋ชจ๋ธ๋ก ์์ฐฉํ๋ ๋ฐ ๊ธฐ์ฌํ์์ต๋๋ค.
๐ง ๊ธฐ์ ์ ํ ๋ฐ ์ค๊ณ ๊ณ ๋ฏผ
๋ฌธ์ ์ํฉ
-
์์ค์ฝํธ ๊ธฐ๋ฅ์ ๋๊ธฐ, ์ด๋, ํผ์ก, ๋์ฐฉ, ์ผ์์ ์ง, ๊ฒฝ๋ก ์ฅ์ ๋ฑ ์์ญ ๊ฐ์ ์ํ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ฒ๋ฆฌํด์ผ ํ์ต๋๋ค.
๊ฐ ์ํ๋ง๋ค UI ํ๋ฉด ๊ตฌ์ฑ, TTS ์์ฑ ์๋ด, ๋ฏธ๋ค์จ์ด ํต์ ์ด ๋ชจ๋ ๋ฌ๋ผ์ก๊ณ , ์ด๊ธฐ์๋ ์ํ๊ฐ์ ๋จ์ผ ๋ณ์๋ก ๊ด๋ฆฌํ๋ฉฐ if-else ๋ถ๊ธฐ๋ก ์ฒ๋ฆฌํ์ต๋๋ค. -
์ํ๊ฐ ๋์ด๋ ์๋ก ๋ถ๊ธฐ ๋ก์ง์ด ๋ณต์กํด์ก๊ณ , ๊ฐ์ ์ํ ํ์ธ ๋ก์ง์ด UI, TTS, ๋ฏธ๋ค์จ์ด ๊ฐ๊ฐ์ ์ค๋ณต์ผ๋ก ํฉ์ด์ง๊ธฐ ์์ํ์ต๋๋ค.
ํนํ ํ์ด๋จธ ๊ธฐ๋ฐ ์ด๋ฒคํธ๊ฐ ๋ฌธ์ ์์ต๋๋ค.
๋ชฉ์ ์ง ๋์ฐฉ ํ ์๋ ๋ณต๊ท, ์ฅ์ ๋ฌผ ๊ฐ์ง ํ TTS ์๋ด -> ๋๊ธฐ -> ๋ณต๊ท๋ก ์ด์ด์ง๋ ๋ก์ง์ด ์๋ก ์ถฉ๋ํ๋ฉฐ ์์์น ๋ชปํ ๋์์ด ๋ฐ๋ณต๋์ต๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
-
GitHub, Stack Overflow, Reddit ๋ฑ 5๊ฐ ์ด์์ ํ๋ซํผ์์ 30๊ฐ ์ด์์ ์คํ์์ค์ ๋ ํผ๋ฐ์ค๋ฅผ ์ง์ ๋ถ์ํ๋ฉฐ
MVC, State, Facade ํจํด์ ํ์ตํ๊ณ ์ ์ฉํ์ต๋๋ค.- MVC ๊ตฌ์กฐ๋ก UI(View)์ ์ํ ๋ก์ง(Model)์ ๋ถ๋ฆฌํ์ฌ ์ํ ๋ณ๊ฒฝ์ด ํ๋ฉด ๋ ๋๋ง ๋ก์ง์ ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ๋๋ก ํ์ต๋๋ค.
- State ํจํด์ผ๋ก ๊ฐ ์ํ๋ฅผ ๋ ๋ฆฝ ๊ฐ์ฒด๋ก ์ ์ํ์ฌ ์ํ ์ถ๊ฐ ๋ฐ ๋ณ๊ฒฝ์ด ๋ค๋ฅธ ์ํ์ ์ํฅ์ ์ฃผ์ง ์๋ ๊ตฌ์กฐ๋ฅผ ํ๋ณดํ์ต๋๋ค.
- Facade ํจํด์ผ๋ก ์ํ ์ ํ ์ UI ์ ๋ฐ์ดํธ, TTS ์ ์ด, ๋ฏธ๋ค์จ์ด ํต์ ์ ํ๋์ ์ง์ ์ ์์ ์ฒ๋ฆฌํ์ฌ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ท์ต๋๋ค.
-
ํจํด ๋์ ์ดํ ์์ ๋ฒ์๊ฐ ๋ช ํํด์ก๊ณ , ํ์ด๋จธ ์ด๋ฒคํธ ๊ฐ ์ถฉ๋ ๋ฌธ์ ๋ ํด์๋์์ต๋๋ค.
๐ฅ ํธ๋ฌ๋ธ์ํ
์ํ ์ฆ๊ฐ๋ก ์ธํ ์ค๊ณ ๋ถ๊ดด โ ์ฌ์ค๊ณ
- ๋ ํผ๋ฐ์ค ์์ด ์ฒ์๋ถํฐ ์ค๊ณํ๋ ์ ๊ท ํ๋ก์ ํธ์์ต๋๋ค.
์ด๊ธฐ ๊ตฌ์กฐ๋ก๋ ์ํ๊ฐ ๋์ด๋ ์๋ก ์๋ฌ๊ฐ ๋ฐ๋ณต๋๊ณ , ๊ฒฐ๊ตญ ์ค๊ณ ๋จ๊ณ๋ถํฐ ๋ค์ ์ก์๊ฐ๋ ๊ฒฐ์ ์ ๋ด๋ ธ์ต๋๋ค.
๋ค๋ฆ์ ์ฌ์ค๊ณ์์ง๋ง, ํจํด์ ํ์ตํ๊ณ ์ ์ฉํ๋ฉด์ ์ดํ ์ํ ์ถ๊ฐ์ ์์ ์ด ํจ์ฌ ์์ํด์ก์ต๋๋ค.
์ค์ ํ๊ฒฝ๊ณผ ํ ์คํธ ํ๊ฒฝ์ ์ฐจ์ด
- ๋ณธ์ฌ ๊ณต๊ฐ๋ง์ผ๋ก๋ ๋ก๋ด์ด ์ค์ ๋ก ์ด๋ํ๋ ํ๊ฒฝ์ ์ฌํํ๊ธฐ ์ด๋ ค์ ์ต๋๋ค.
ํ๋์จ์ด ์ค๊ณํ์ด ์๋ ๋ ํฐ ๊ฑด๋ฌผ ๋ณต๋๋ก ์ถ๊ทผํด ๋ฐค์ ํ ์คํธ๋ฅผ ์งํํ๊ณ , ์ค์ ๋์ ํ์ฅ์ ๊ท๋ชจ๊ฐ ํจ์ฌ ์ปค์ ์๊ธฐ์น ๋ชปํ ์ด๋ฒคํธ๊ฐ ๋ค์ ๋ฐ์ํ์ต๋๋ค.
์์ฐ ์ ๋ ๊น์ง ๋ฐ๋ณต ํ ์คํธ์ ์์ ์ ์ด์ด๊ฐ๋ฉฐ ์์ ์ฑ์ ํ๋ณดํ๊ณ , ์ต์ข ์์ฐ์ ์ฑ๊ณต์ ์ผ๋ก ๋ง์ณค์ต๋๋ค.






