๊ณ ๋ฑํ์๋ค์ด ํ์ ์ด๋ฃจ์ด 1์ 15์ผ~16์ผ ๋ฌด๋ฐ 2์ผ๋ก ์งํ๋๋ ํด์ปคํค์ ์ฐธ๊ฐํ์ต๋๋ค. EASY๋ผ๋ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๊ฒ ๋์๊ณ EASY๋ก ๋์์ ์์ํ๊ฒ ๋์ต๋๋ค. ํด์ปคํค ํ๊ธฐ์ ๊ธฐ์ ์ ์ฌ์ฉํ๋ฉด์ ์ป์ ์ง์(?)์ ๊ณต์ ํ๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ง ์๊ณ ์๋ ํด์ปคํค์ ๊ฟํ๊ณผ ํ ๋น๋ฉ ๊ณผ์ ๊ทธ๋ฆฌ๊ณ ๋์์ ๋ฐ์ ์ ๋ฐ์ ์์๋ ๊ณํ๋ค์ ๊ณต์ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
ํด์ปคํค(Hackathon)์ย ํดํน(Hacking)๊ณผ ๋ง๋ผํค(Marathon)์ ํฉ์ฑ์ด์ ๋๋ค.
์ํํธ์จ์ด ๊ฐ๋ฐ ๋ถ์ผ์ ํ๋ก๊ทธ๋๋จธ๋ ๊ทธ๋ํฝ ๋์์ด๋, UI์ค๊ณ์ ๋ฑ ๋ค์ํ ๋ถ์ผ์ ์ ๋ฌธ๊ฐ๋ค์ด ๋ชจ์ฌ ์ ํ ๋ ์๊ฐ ๋์ ์์ด๋์ด๋ฅผ ๋์ถํ๊ณ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค์ด๋ด๋ ์ด๋ฒคํธ์ ๋๋ค.
ํ๋์ฌํ๋ IoT(์ฌ๋ฌผ์ธํฐ๋ท), AI(์ธ๊ณต์ง๋ฅ), ๋ธ๋ก์ฒด์ธ, ๋น ๋ฐ์ดํฐ์ ๋ํ ๊ด์ฌ์ด ๋์์ก๊ณ , ์ ๋ถ์ ๊ธฐ์ ๋ค์ ํด๋น ์ฐ์ ์ ๋ถํฅ์ํค๊ธฐ ์ํด ๋ค์ํ ์๋๋ฅผ ํ๊ณ ์์ต๋๋ค. โํด์ปคํคโ์ ์ด๋ฌํ ๋งฅ๋ฝ์ ์ผํ์ผ๋ก ์๋ก์ด ๊ธฐ์ ๊ณผ ์์ด๋์ด๋ฅผ ์ ๋ชฉ์์ผ ๋ณด๋ ค๋ ์๋์ ๋๋ค.
ํ์ดํค์ด๋, ๊ณ ๋ฑํ์๋ค์ด ๋ ๋์ ๋ฏธ๋๋ฅผ ํฅํด ํ์ฐจ๊ฒ ๋น์ํ์๋ ์๋ฏธ๋ฅผ ๋ด๊ณ ์์ต๋๋ค. ์ฌ๋ฌ SW ํน์ฑํ๊ณ ๋ฐ ๋ง์ด์คํฐ๊ณ ํ์๋ค์ด ์๋ฐ์ ์ผ๋ก ๊ฒฐ์ฑํ๊ณ ์ด์ํ๊ณ ์์ผ๋ฉฐ, ์ฐธ๊ฐ ํ์๋ค๋ผ๋ฆฌ ๊ธฐํ๊ณผ ๋์์ธ์ ๋ด๋นํ์ฌ ์น๊ทผํ ๋ถ์๊ธฐ ์์์ ์๋ก ๋คํธ์ํนํ๊ณ ์ํธ ์์ฉํ ์ ์๋ ๋ฌด๋ฐ 2์ผ ํด์ปคํค์ ๋๋ค.
ํ์ฐฝ ๋ชจ์ง ๊ธฐ๊ฐ์ด์์๋ ์น๊ตฌ๋ค์ด๋ ์๊ธฐ ํ๋ค๊ฐ โํ์ด์ค๋ถ์ ํ์ดํค์ ๊ฐ์ตํ๋ ๊ฑฐ ๋ดค๋ ์ฐ๋ฆฌ ํ๊ต ์ ๋ค๋ ์ด์์ง์ด๋๋ฐโ๋ผ๊ณ ํ ๋ ์ด์ผ๊ธฐ๋ ์์๋์์ต๋๋ค. ์ฐธ๊ฐ๋น๋ฅผ ๊ฑท๋๋ค๋ ๋ฌธ๊ตฌ๋ฅผ ๋ณด๊ณ ์ํด์ผ๊ฒ ๋ค! ๋ค์งํ์ต๋๋ค. ๋ ์ง๋ 1์ 15์ผ์์ 16์ผ์ด์์ต๋๋ค. ์์ธ๋ก ์ถ๊ทผํ ์ฒซ ์ฃผ ์๊ณ , ์ฒซ ์ฃผ๋ง์ธ๋ฐ ํด์ปคํค์?? ๋ผ๋ ์๊ฐ์ ๋๋์ฑ ๋ง์์ ๊ตณํ์ต๋๋ค. ํ์ง๋ง ๊ทธ๋๋ ๊พธ์คํ ํด์ปคํค์ ์ฐธ์ฌ ํ์ด์ ์์ฌ์ด ๋ฌ์ต๋๋ค. ๋ฌด์๋ณด๋ค ์ ๋ ์์ฌ๋ก ๋ฐฐ๋ฏผ ์ฟ ํฐ์ ์ค๋ค๊ณ ํด์ ์ฐธ์ฌํ๊ฒ ๋์์ต๋๋ค. ๐๐
์ฐธ๊ฐ์ ๋ชจ์ง ์ธ์์ ๊ฐ๋ฐ์ 60๋ช + ๋์์ด๋ 20๋ช ์ผ๋ก 4์ธ 1ํ (๊ฐ๋ฐ์ 3, ๋์์ด๋ 1), ์ด 20ํ์ผ๋ก ๊ตฌ์ฑ๋๋ค๊ณ ํฉ๋๋ค.
ํ ๋น๋ฉ์ ์์ ํํ๋ก ์ด๋ฃจ์ด์ก์ผ๋ฉฐ ์ฐธ๊ฐ์๋ค๋ผ๋ฆฌ ์ฐ๋ฝ์ ํ๋ฉด์ ํ์์ ๊พธ๋ฆฌ๋ ํํ๋ก ์ด๋ฃจ์ด์ ธ ์์์ต๋๋ค.
1์ฃผ์ผ ๋์ ํ๋น๋ฉ์ ํ ์ ์์๊ณ ๋ค๋ฅธ ํ์๋ค์ ํ์ ๊พธ๋ฆฌ๊ธฐ ์ํด ์ดํ์ ํ๊ธฐ ์์ํ์ต๋๋ค.
ํ์ง๋ง ์ ๋ ๋๊ฒ ๊ฒ์ผ๋ฅธ ํธ์ด์๊ณ , ํ ๋น๋ฉ์ ์์ด์ ์์ฌ ์กฐ์ฐจ ๋์ง ์์์ต๋๋ค. ๊ทธ๋๋ ์ผ๋จ ๋์์ด๋๋ ๊ตฌํด์ผ ๋๊ธฐ ๋๋ฌธ์ ๋์์ด๋ ํ๋ถ์ ๊ผฌ์ ์ ํ๋ก ํธ์๋ 2๋ช ๊ณผ ๋์์ด๋ 1๋ช ์ด ํ์ ์ด๋ฃจ๊ณ ์์์ต๋๋ค. ๐
ํ์ง๋ง ์ ํฌ๋ ๋์์ด๋๋ฅผ ๊ตฌํ๊ณ ์ฝ 4์ผ ๋์ ํ ๋น๋ฉ ๋ง๊ฐ ๋ง์ง๋ง ๋ ๊น์ง ๋๋จธ์ง ํ์ ํ๋ช ์ ๊ตฌํ ์๊ฐ๋ ์์ง๋.. ์๋ฌด๋ฐ.... ๋ฐ์๋ ์์์ต๋๋ค ๐ ย ์ฌ๊ธฐ์ ์๋ชป๋๋ค๋ ๊ฑธ ๋๋ผ๊ฒ ๋์์ต๋๋ค. ์๋ง ์๋ก ๋ค ๊ท์ฐฎ์์ ์๋ฌด๋ฐ ๋ฐ์๋ ์์์ ๊ฒ ๊ฐ์ต๋๋ค..
ํ์์ ๊ตฌํ๋ ค๊ณ ํ์ง๋ง ํ ๋น๋ฉ ๋ง์ง๋ง ๋ ์ ์ด๋ ๊ฒ ๋ฌผ์ด๋ณด๊ณ ์์ผ๋.. ๊ณ์ ๊น์ด๊ณ ๊น์ด๊ณ ๊น์์ต๋๋ค... ํํํณ
ํ์ ๊ตฌํ๋๊ฒ ์ ์ผ ์ด๋ ต๋ค๋ ๊ฒ์ ๋๋ผ๊ฒ ๋์๊ณ , ๋ฏธ๋ฆฌ ๊ตฌํ์ง ์์๋ ์ ์์ ์ ์ฑ์ฐฐํ๊ณ ๋ฐ์ฑํ๋ฉฐ ์ด๋ฒ ํด์ปคํค ๊ทธ๋ฅ ์ ๋๊ฒ ๋๊ณ ์ฆ๊ธฐ์!! ๋ผ๊ณ ๋ง์์ ๋จน์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ก ํธ์๋ ํ๋ถ๊ป์ ๋ต์ด ์ค์ จ๊ณ ๊ฐ์ด ํ๊ฒ ๋์์ต๋๋ค.
ํ์ง๋ง ์ฌ๊ธฐ์ ๋.... ๊ตฌ๊ธ ํผ ์ ์ถ ํ๋ค๋ ๊ฒ์ ํ์ ์ ์ฒด๊ฐ ๊น๋จน์ด ๋ฒ๋ฆฐ ์ํ์ฌ์ ํ ๋น๋ฉ์ด ๋๋ค์ผ๋ก ๋ ํ์ด ๋์ด๊ฒ ๋์์ต๋๋ค ใ ใ ;; ๊ทธ๋์ ๊ธํ๊ฒ ์ด์์ง ๋ถ๋ค์๊ฒ ๋ฌผ์ด๋ณด๊ฒ ๋์๊ณ ๊ฒฐ๊ตญ์ ๊ฐ์ด ํ๊ธฐ๋ก ๊ฒฐ์ ๋์์ต๋๋ค.
ํ ๋น๋ฉ์ด ์ด๋ฃจ์ด์ง๊ธฐ ์ ์ ์น๊ตฌ์๊ฒ ์ ์ ๊ณํ์ ์ฃผ์ ๋ฆฌ ์ฃผ์ ๋ฆฌ ํ๊ธฐ ์์ํ์ต๋๋ค.
โ2์ผ๋์ ์งํํ๋ ํด์ปคํค์ด๋ผ ํ๋๋ผ๋ ๊ฐ๋ฐํ๋ ์๊ฐ, ๋ฐํํ๋ ์๊ฐ, ์ฌ์ฌํ๋ ์๊ฐ์ด ๋ค ํฌํจ๋ ๊ฒ์ด 2์ผ์ด๊ธฐ ๋๋ฌธ์ ์ ๋ง๋ก ๊ฐ๋ฐํ ์ ์๋ ์์ ์๊ฐ์ 10์๊ฐ์์ 12์๊ฐ์ด์ผ. ๋ฐฅ๋ ๋จน์ด์ผ ํ๊ณ , ๋ฎ์ ๋ ์๊ฑฐ๊ณ , ๋์์ธ ๊ธฐ๋ค๋ ค์ผ ๋์ง, ์์ด๋์ด ๊ณํ ํ๋ ์๊ฐ์ด ์ ๋ง ๋ง์ด ์ก์ ๋จน์ ๊ฑด๋ฐ ์ฌ๊ธฐ์ API ์ฐ๋๊น์ง ํ๊ฒ ๋ค๊ณ ?? ๋์ฒด ๋ญ ํ ๊ฑด๋ฐ ๋ฌด์จ API๊ฐ ํ์ํ๋ฐ?? ๊ทธ๋ด ๋ฐ์๋ ํ๋ก ํธ์๋ 3๋ช ์ด์ ๋ ๋ง์ ํ์ด์ง ๋ง๋ค์ด๋ณด์ ๋ฐ์ดํฐ๋ ๋ ธ๋ ์๋ฒ ํ๋ ๋ง๋ค์ด์ ๊ฐ๋จํ๊ฒ ์ฐ๋๊ฐ ํ์ด์ด๋ฒ ์ด์ค ์ฐ๋ฉด ๋์งโ
๋ฐ์ง๋ ๋ฏํ ๋งํฌ๋ก ์ ์์ ์์ํ์ต๋๋ค. ๊ฒฐ๊ตญ ์ ๋ง์ ์ค๋๋์ด ํด๋ผ์ด์ธํธ๋ผ๋ฆฌ ์๊น๋ป์ฉํ๊ฒ ๋ง๋ค์ด ๋ณด์ ํ์ต๋๋ค.
๊ทธ๋์ ์ ํฌ๋ ๋ฐฑ์๋ ์์ด ํด๋ผ์ด์ธํธ 3๋ช ์ด์ ์๋ฒฝํ UI๋ฅผ ๋ง๋ค์ด์ผ๊ฒ ๋ค๊ณ ๊ณํํ์ต๋๋ค. (ํ๋ฒ ์๋ฒ์ ์ด๋ ค์์ ๋ถ๋ชํ ๋ด์ผ ๊นจ๋ฌ์์ด๋ผ๋ ๋๋ผ๊ฒ ์ง ํ์ต๋๋ค.)
์ด์ฐ๋ณด๋ฉด ์ ์ ๊ณํ๋ค์ด ์ด์ํ๊ฒ ๋๊ปด์ง ์๋ ์์ง๋ง ์ด๋ฒ ํ์ดํค์์๋ ๋ฐฑ์๋๋ฅผ ๊ฐ์ ธ๊ฐ๋ ๊ฒ์ ๋ฐ๋ณด๊ฐ๋ค(?)๋ผ๊ณ ๋๊ปด์ก์ต๋๋ค. โ์๋ ๊ฐ๋ฐ ๊ธฐ๊ฐ์ด ํ๋ฃจ์ธ๋ฐ ๋ญ ๋ฐฑ์๋๊ฐ ํ์ํ๊ฐ? ์ฌ๋๋ค์ ์ ์๋ฒ๊ฐ ์์ด์ผ ์๋น์ค๊ฐ ๋๋ค๊ณ ํ๋๊ฑฐ์ง?โ๋ผ๋ ์๋ฌธ์ด ๋๊ฒ ๋์๊ณ ํ๋ฃจ๋ง์ ํผ๋ธ๋ฆฌ์ฑ๋ ํด์ผ๋๊ณ ๊ธฐ๋ฅ ๊ตฌํ ๊ทธ๋ฆฌ๊ณ API ์ฐ๋๊น์ง ์งํํ๋ค๋ฉด UI์ UX์ ๋ณ๋ก ํ์ ๋ชป ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐ์ด ๋ค์์ต๋๋ค.
๊ทธ๋์ ์ ํฌ๋ ๋จ๋ค๊ณผ ๋ค๋ฅด๊ฒ UI, UX์ ํ์ฐ์ ๊ทธ๋ฆฌ๊ณ open api๋ฅผ ๋ง์๊ป ํ์ฉํ์ฌ ์๋ฒ๊ฐ ์์ผ๋ฉด ๋ปํ ํ (CRUD) ๊ธฐ๋ฅ๋ค์ ๋ณด์ด์ง ์๊ฒ ๋ฐฑ์๋๋ฅผ ํ๋ฆฌ๋ฉํ
ํ๊ฒ ๋ง๋ค์ด์ผ๊ฒ ๋ค๊ณ ๋ค์งํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ฒ ์์ด ๋ญ๋ ๋ง๋ค ์ ์์ผ๋ โ์๋ฒ ์ธ์ ๋์โ(?) ๋ผ๋ ์๋ฒ์ ์์กดํ๋ ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์๋ค์ ํ๋์ ๊นจ์ฐ์นจ(?)๊ณผ ๋น์ทํ ๊ฒ๋ค์ ์ฌ๋ผ์ง๊ฒ ๋ง๋ค๊ณ ์ถ์์ต๋๋ค.
7๋ฒ์งธ ํ์ดํค์ ์ฃผ์ ๋ "ํจ๊ป ๋ญ๋ญํ ์ ์๋ ํ๊ต" ์์ต๋๋ค.
๋ค์ํ ๊ด์ ์์ ํ๊ต๋ผ๋ ์ฃผ์ ๋ฅผ ๋ณด๋ ์์ค,
IT์
๊ณ์ ๋ง์ด์คํฐ๊ณ ๋ ํน์ฑํ ๊ณ ๋ฑํ๊ต์ ์ฌํ์ค์ธ ํ์๋ค์ ์ปค๋ฎค๋์ผ์ด์
์ด๋ ์ทจ์
์ ๋ณด & ๋ฉด์ ์ง๋ฌธ์ ๊ด๋ จ๋ ์ ๋ณด ๊ณต์ ๊ฐ ๋ถ์กฑํ๋จ ๊ฒ์ ์ธ์งํ๊ฒ ๋์์ต๋๋ค.
๊ทธ๋์ ์ ํฌ๋ ํจ๊ป ์ทจ์
์ฑ๊ณต ํ ์ ์๋ ํ๊ต๋ฅผ ์ฃผ์ ๋ก EASY๋ฅผ ๊ฐ๋ฐํ์ต๋๋ค.
๋ฐฑ์๋๊ฐ ์์ผ๋ ์๋ฒ ์์ด ์ด๋ค ๊ฒ์ ๋ง๋ค ์ ์์๊น ์๊ฐํ๋ค๊ฐ ํ์๋ผ๋ฆฌ Open API๋ฅผ ํ์ฉํ์ ํ์ต๋๋ค. Naver Map์ ํ์ฉํ์ฌ ๋ง๋ค๋ฉด ๊ตณ์ด ์๋ฒ๋ฅผ ๊ฐ๋ฐํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ง๋๋ง ์์ผ๋ฉด ๋ถ์กฑํ ๊ธฐ๋ฅ์ด ์์ผ๋ ๋๋ฌด ๋ปํ CRUD(์ ๋๋ก ๋จ์ ๋นํํ๋ ๊ฒ์ด ์๋๋ผ ์ ์ ํด์ปคํค ๊ฒฝํ์์ ๊นจ๋ฌ์ ๊ฒฝํ๋ด์ ๋๋ค๐ )๋ฅผ ์์ง๋ฅผ ๊ฒ์ด ๋ญ ์์ง ํ๋ค๊ฐ ์์ฆ ๋จ๊ณ ์๋ ์ธ๊ณต์ง๋ฅ์ ๋ฃ์ด์ ์ฐจ๋ณํ๋ฅผ ๋์(!) ํ์ต๋๋ค.
11์์ ๊ฒ๋ ํ์ด์ ์ ์ฅ์ ํ๊ณ ํค๋ ธํธ ์ธ์ ์ ์งํํ๋ค์ ํ๊ต๋ผ๋ ์ฃผ์ ๋ก ํด์ปคํค ์์์ด ๋์์ต๋๋ค.
์ด์์ง์ ๋ฐ๋ผ๊ฐ๋ ์์ด์ค๋ธ๋ ์ดํน์ผ๋ก ์ด๋์ฅ์ ๋ฌ๋ ค ์๋ก ์ด์ํจ์ ๋ฌ๋๋ค๊ณ ๊ณ์ฃผ๋ฅผ ํ๋ค๊ณ ํ์ต๋๋ค. ์์ ํ๋ค์ ๋ฐฐ๋ฌ์ ๋ฏผ์กฑ ์ฟ ํฐ์ ์ค๋ค๊ณ ํ๊ธธ๋ ํ์ 4๋ช ์ด์ ์ด์ฌํ ๋ฌ๋ ธ์ต๋๋ค. ๊ฒฐ๋ก ์ ๋ชป๋ฐ์์ต๋๋ค.
์ด๋ค ๊ฒ์ ๊ฐ๋ฐํ ์ง ๊ณ ๋ฏผํ๋๊น 3์๊ฐ ๋์๊ณ ๋น ๋ฅด๊ฒ ์ ํด์ผ ๊ฒ ๋ค๊ณ ์๊ฐ์ด ๋ค์ด ํ์๋ค์ ์ทจ์ ์ฒ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ , ํด๋น ํ์ฌ์ ๋ํ ๋ฉด์ ์ง๋ฌธ์ ๊ณต์ ๊ฐ ๊ฐ๋ฅํ๊ณ ๋ชจ์ ๋ฉด์ ์ ๋ณผ ์ ์๋ ์๋น์ค๋ฅผ ๋ง๋ค๋ฉด ์ข์ ๊ฒ ๊ฐ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ฅ์ ์ข ๋ ๋ถ์ฌ์ ์์ ์ ํ๋ค์ ๊ณต์ ํ ์ ์๋ ์ปค๋ฎค๋ํฐ๋ฅผ ๋ง๋ค์ํด์ ๊ฐ๋ฐ์ ์์ํ๊ฒ ๋์์ต๋๋ค.
ํ๋ก ํธ์๋๋ Typescript
, React
, recoil
์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ์ต๋๋ค.
์ ๋ 6์ ์ ๋ ๋์ ๋ ๋ถํฐ ๋์์ธ์ด ํ๋์ฉ ๋์ค๊ธฐ ์์ํ์ต๋๋ค.
์ง๋๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์ Naver Cloud Platform์์ client id๋ฅผ ๋ฐ๊ธ ๋ฐ์ ์ง๋๋ฅผ ๋ถ๋ฌ์์ต๋๋ค.
๋ก๊ทธ์ธ๊ณผ ํ์๊ฐ์ ์ ํ์ ์ด๋ฆ๊ณผ ํ๊ต๋ช ๊ทธ๋ฆฌ๊ณ ํ๊ต ์ด๋ฉ์ผ์ ๋ฐ์ ํ์๊ฐ์ ์ ๊ตฌํํ์ต๋๋ค.
ํ์๋ค์๊ฒ ํ์ฌ์ ๋ฉด์ ํ๊ธฐ๋ฅผ ๊ณต์ ํ๊ธฐ ์ํด์ ๋ฉด์ ํ๊ธฐ๋ฅผ ๋ฑ๋กํ ์ ์๋ ํผ์ ๋ง๋ค์์ต๋๋ค.
ํผ์์๋ ๋ฑ๋กํ ํ์ฌ, ํ์ฌ ์์น, ์ง์ ๋ถ์ผ, ๋ฉด์ ๋์ด๋, ์ง๋ฌธ ๋ฆฌ์คํธ๋ฅผ ๋ฑ๋ก ํ ์ ์์ต๋๋ค.
์ฌ์ฉ์๋ ์์ ๊ฐ์ด ํ์ฌ๋ฅผ ๋ฑ๋ก์ ํ๊ฒ ๋๋๋ฐ ํ์ฌ์ ์์น๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด์ naver cloud platform์ Geocoding API๋ฅผ ์ฌ์ฉํด์ผ ํ์ต๋๋ค.
ํ์ง๋ง Geocoding์ ๋๋ก๋ช
์ฃผ์๋ฅผ ๋ฐ์์ผ ์ง๋์ x, y ์ถ์ ๋ฐํํ๊ฒ ๋์ด์์ต๋๋ค. ๊ทธ๋์ ์ฒ์์ ํ์ฌ๋ฅผ ๋ฑ๋กํ ๋ ๋๋ก๋ช
์ฃผ์๋ฅผ ๋ฐ์์ผ ๋๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ๊ฒ ๋์์ต๋๋ค. ๊ทธ๋์ ์ ํฌ๋ ์นด์นด์ค(๋ค์) ์ฐํธ ๋ฒํธ ์๋น์ค API
๋ฅผ ์ฌ์ฉํ์ฌ ๋๋ก๋ช
์ฃผ์๋ก ๋ณํํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณํ ๋ฐ์ ๋๋ก๋ช
์ฃผ์๋ก ์ฅ์์ x, y ์ขํ๋ฅผ ๋ถ๋ฌ ์ง๋์ ๋ง์ปค๋ฅผ ์ฐ์ ์ ์์์ต๋๋ค.
์ทจ์ ์ฑ๊ณต ํ ์ ์๋ ํ๊ต๊ฐ ์ ํฌํ์ ์ฃผ์ ์๊ธฐ ๋๋ฌธ์ โ์ด๋ป๊ฒ ํด์ผ ์ฑ๊ณต ํ ์ ์์๊น?โ ๊ฐ์ด ๊ณ ๋ฏผํ ๊ฒฐ๊ณผ, ํ์๋ค์ด ๋ชจ์ ๋ฉด์ ์ ๋ณผ ์ ์๊ฒํ๋ฉด ์ข์ ๊ฒ ๊ฐ์์ต๋๋ค. ํ๊ต์์๋ ๋ชจ์ ๋ฉด์ ์ ์งํ ํ ์ ์์ง๋ง ํ์ ์๊ฐ ๋ง์ ์์ฐ์ค๋ฌ์ด ๋ต๋ณ์ด ๋์ฌ ๋๊น์ง ํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ ๋๋ค. ๊ทธ๋์ ์ ๋ง ํ์๋ค์ด ๋ฉด์ ํ๊ธฐ๋ ์ฌ๋ฆฌ๋ฉด์ ๋ฉด์ ์ง๋ฌธ์ ๋ฐ๊ณ ๊ทธ ์ง๋ฌธ์ ๋ํ ๋ชจ์ ๋ฉด์ ์ ๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ ํ์ต๋๋ค.
๊ทธ๋์ ์ ํฌ๋ ์ง๋ฌธ์ ์ฝ์ด์ฃผ๊ณ (TTS), ์ฌ์ฉ์์ ์์ฑ์ ํ ์คํธ๋ก ์ ๋ ฅ(STT)ํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ๋ก ํ์ต๋๋ค.
๋ฉด์ ์ง๋ฌธ์ ์ฝ์ด์ค๋ ์์ฐ์ค๋ฌ์ด ๋ชฉ์๋ฆฌ์ ๋ฉด์ ๊ด๋์ด ์ง๋ฌธ ํ์๋ ๊ฒ๊ณผ ๊ฐ์ ๋ชฉ์๋ฆฌ๋ฅผ ์ํด์ ์์ฑ ํฉ์ฑ API(๋ค์ด๋ฒ ํด๋ก๋ฐ) ๋ฅผ ์์๋ณด์๋๋ฐ ๋ฌด๋ฃ๊ฐ ์๋ ์ ๋ฃ์ฌ์.. ํด๋ก๋ฐ๋ฅผ ์ฌ์ฉํ์ง ๋ชปํ์ต๋๋ค. ๊ทธ๋์ TTS๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ๊ณตํ๋ ๋ด์ฅ ํจ์๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ์ต๋๋ค.
๋น ๋ฅธ ๊ฐ๋ฐ์ ์ํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ๊ณ ์ ๋ง ์ฌ์ด ์์ ๋ค์ด ๋ง์์ต๋๋ค. ์ฌ์ฉ์์ ์์ฑ์ ๋ฐ์ ํ
์คํธ๋ก ๋ณํํด์ฃผ๋ react-speech-kit
๋ฅผ ์ฌ์ฉํ๊ณ , ๋ฉด์ ์ง๋ฌธ์ ์ฝ์ด์ฃผ๊ธฐ ์ํด ์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฅ ํจ์๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
npm install --save react-speech-kit
const [value, setValue] = useState("");
function speak(text, opt_prop) {
if (
typeof SpeechSynthesisUtterance === "undefined" ||
typeof window.speechSynthesis === "undefined"
) {
alert("์ด ๋ธ๋ผ์ฐ์ ๋ ์์ฑ ํฉ์ฑ์ ์ง์ํ์ง ์์ต๋๋ค.");
return;
}
const prop = opt_prop || {};
const speechMsg = new SpeechSynthesisUtterance();
speechMsg.rate = prop.rate || 1; // ์๋: 0.1 ~ 10
speechMsg.pitch = prop.pitch || 1; // ์๋์ด: 0 ~ 2
speechMsg.lang = prop.lang || "ko-KR";
speechMsg.text = text;
window.speechSynthesis.speak(speechMsg);
}
// text๋ฅผ ์ฝ์ด์ค๋๋ค.
const textRead = (e) => {
speak(item.title, {
rate: 1,
pitch: 0.8,
});
};
// ์์ฑ ๋ณํ
const { listen, stop } = useSpeechRecognition({
onResult: (result) => {
setValue(result);
},
});
์ ๋ง ๊ฐ๋จํ ์ฝ๋๋ก STT, TTS๋ฅผ ๊ตฌํํ์ต๋๋ค.
๋ฉด์ ํ๊ธฐ๋ฅผ ์์ฑํ๊ณ ๋ชจ์ ๋ฉด์ ์ ๋ณผ ์ ์๋๊ฑด ๋๋ฌด ์ฌ์ฌํ ๊ฒ ๊ฐ์๊ณ ์๊ฐ๋ณด๋ค ์์ ๊ธฐ๋ฅ ๊ตฌํํ๋ ๊ฒ์ด ์ด๋ ต์ง ์์ ์ข ๋ ์ถ๊ฐํ๊ณ ์ถ์ด SNS ์ฒ๋ผ ์ฌ๋ฌ ๊ธ์ ์ฌ๋ฆด ์ ์๋ ์ปค๋ฎค๋ํฐ๋ฅผ ์ถ๊ฐํ๊ณ ์ํ์ต๋๋ค.
ํ๋ฐํ ์ํต์ ์ํ์ฌ ์ค๋ช ์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ์ต๋ช ์ฌ์ฉ์๋ก ๊ธ ์ฌ๋ฆฌ๋ ๊ฒ์ ๋ํ ๋ถ๋ด๊ฐ์ ๋์ด๋์ต๋๋ค. ํผ๋์ ๋ํ ๋ค์ํ ์นดํ ๊ณ ๋ฆฌ๋ค์ด ์๊ณ ๊ทธ ์นดํ ๊ณ ๋ฆฌ์ ํด๋น๋๋ ๊ธ์ ์์ฑ ํ ์๋ ์์ต๋๋ค. ๋ํ ํผ๋์ ๋ํ ๊ณต๊ฐ๋ ๋ฃ์ ์ ์๊ฒ ๋ง๋ค์ ํ์ต๋๋ค.
๋ค์ํ ๋ถ์ผ๋ณ๋ก ํผ๋๋ฅผ ๋ณผ ์ ์๊ณ ๊ณต๊ฐ ๋ฒํผ์ ๋๋ฌ ์์ ์ ๋ฐ์์ ํํ ํ ์ ์์ต๋๋ค.
ํผ๋๋ ์์ ๋ก์ด ํํ๋ก ์์ฑํ๋๋ก ํ์ต๋๋ค.
ํ ์์ผ ์คํ 6์๋ถํฐ ๊ฐ๋ฐ์ ์์ํด ๋ค์๋ ์์นจ 6์ ์ ๋์ ์ ์ด ๋ค์์ต๋๋ค. 12์๊ฐ ์ ๋ ๊ฐ๋ฐ์ ์งํํ๋๋ฐ ๋นก๋นกํ ์ค๋ง ์์์ง๋ง 12์๊ฐ ๋์ ๊ณ์ ๊ฐ๋ฐ ํ ๊ฒ์ด ์๋ ๊ฒ๋ํ์ด์์ ๋ ํฌ๋ ์ด์ ๋ ํ๊ณ ์ง์์ ์๋ฒฝ์ ๋ฐฐ๋ฌ๋ ์์ผ๋จน๊ณ ๋ฎ์ ๋ ์๊ณ ์ง๊ธ๊น์ง ํ๋ ํด์ปคํค์ค ๋๊ฒ ์ฌ์ ๋กญ๊ฒ ์งํํ ํด์ปคํค์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ์ง๋ง ๋ฐค์ ์ ์ดํ๋ก๋... ์ ๋ง ์ฃฝ๋์ค ์์์ต๋๋ค. ๋ค์๋ ์ด ๋๋ฌด๋๋ฌด ํ๋ค๊ณ ๋์ด ์ ์ด๋ ๊ฒ ๋ฌด๊ฑฐ์ด์ง ์ ๋๋ก ๋ฐค์์ ์ฝ๋ฉํ์ง ๋ง์ธ์.
๊ทธ๋ ๊ฒ 10์์ ์ผ์ด๋ ๋ฐํ ์ค๋น์ ์์ ์ ์์ ํ์ต๋๋ค. ํด์ปคํค์ ๊ฒฐ๊ณผ๋ฌผ ๋ณด๋จ ๋ฐํํค์ด๋ผ๋ ๋ง์ด ๋ ์ ๋๋ก ๋ฐํ๋ง ์ํ๋ฉด ์ปค๋ฒ์น๋ค๋ผ๊ณ ์๊ฐํ๊ธฐ์ ํ์๋ผ๋ฆฌ ๋ฐํ ์ค๋น๋ ์ด์ฌํ ํ์ต๋๋ค. ์ ํฌ ํ์ ์ฌ์ ๋กญ๊ฒ ๋๋๊ณ ๋ง์กฑ์ค๋ฌ์ด ๊ฒฐ๊ณผ๋ฌผ ๋์ ์ง์ง ๋ฑ ๋ด๋ ๋ฌด์กฐ๊ฑด ๋์์ ์ฐ๋ฆฌ๊บผ๋ค ๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ์์ด๋์ด๋ ์ข์๊ณ ๋ค ์์ฑ๋ ํ๊ณ ์๋ฒฝํ๋ค๊ณ ์๊ฐ์ด ๋ค์์ต๋๋ค. ๋ฌด์๋ณด๋ค ๋์์ธ ํ์ ๋ถ๊ป์ PPT๋ฅผ ์ ์ํ์ จ๋๋ฐ ใท... PPT๋ง ๋ด๋ ๋ฌด์กฐ๊ฑด์ด์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐํ ๋๋๊ณ ์ง๋ฌธ๋ ์์ด์ ์ง๋ฌธ ๋ต๋ณ์ด ์ ๋ง์ ๋ง ์ค์ํ๊ฒ ๋๊ปด์ ธ์ ์ ํฌ๋ ์ง๋ฌธ ๋ฆฌ์คํธ ๋ณ๋ก ๋ต๋ณ์ ๋ค ์ค๋นํ๋ ๊ฒ ๊ฐ์ต๋๋ค๐ค.
ํ์ดํค์ ๋ง๋ฌด๋ฆฌ ํ๋ค๋ ์์ผ๋ก ์ ํฌ ํ์ด ๋ง์ง๋ง ๋ฐํ๋ก ๋ฐฐ์ ๋ฐ์์ต๋๋ค. ๋ฐํ ์์ ์กฐ์ฐจ ๋์ ๋๋์ด ๋ฌ์ต๋๋ค.
3์์ ๋ฐํ๋ฅผ ์์ํ๋๋ฐ ์ ํฌ๋ ๋ง์ง๋ง ์์์ฌ์ 5์ 20๋ถ ์ ๋์ ๋ฐํ๋ฅผ ์์ํ์ต๋๋ค.
์ ํฌ ํ์ด ๋ง์ง๋ง ๋ฐํ์์์ฌ์ ์์๋ถ๋ค ๋ฐํ๋ ๋ค ๋ณด๊ณ ์ ํฌ ํ๋ ๊ฑฐ์ฌ์ ๋ ๋จ๋ ธ๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ์ ๋ถ์ด ๋ฐํ๋ฅผ ํ์๋๋ฐ ์ ๋ง ์ ๊ฐ ๋ ๋จ๋ ค๊ฐ์ง๊ณ ... ์์ ๋๋ฆฌ ๋ฌ๋ ๊ฒ ๊ฐ์์.
6์ ์ ๋์ ์์์์ด ์งํ๋์๋๋ฐ ์ ๋ง ๋๋ฌด ๋จ๋ ธ์ต๋๋ค. ํ์ ๋ถ๋ค๋ ๋ค ๋จ๋ คํ์๊ณ ํ์ง๋ง ์ ํฌ๋ ์ ๋ง ํ์ ํ์์ต๋๋ค. ์ ํฌ๊ฐ ์ ์ผ ์ ๋ง๋ค์๋ค๊ณ ์๊ฐํ๊ณ , 21ํ ์ค์ ๊ฒน์น ์ฃผ์ ๋ ์์ด์ ์์ ์ ๋ํฌํ ์ฃผ์ ๊ฐ ๋์ด์ ๋์์ ํ์ ํ ์ํฉ์ ๋์์ ์์ํ๊ฒ ๋์์ต๋๋ค!
ํํ ํ ์ด๋ฆ๋ EASY์ฌ์ ์์ ์ฌ๋ฐ์์ด์ ใ ใ ใ
์ ๊ฐ ํ๋ ํด์ปคํค ์ค ๊ฐ์ฅ ํธํ๊ฒ ํ๋ ๊ฒ ๊ฐ์๊ณ , ๋ถ๋ด๊ฐ๋ ์์ด์ ๋ ์ฆ๊ฑฐ์ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌด์๋ณด๋ค๋ ์์ ๋ฐ์์ผ๋ ๊ทธ ๋ฟ๋ฏํจ์ด ๋ ์ปธ์ต๋๋ค.
ํ์๋ค๋ผ๋ฆฌ ๋๋ฌด ์ฌ๋ฐ๊ฒ ๊ฐ๋ฐํ๊ณ ๊ธฐ์ตํ๊ณ ์ถ์ ๊ฒ ์ค ํ๋๋ผ ์ด๋ ๊ฒ ๊ธ์ ๋จ๊ฒจ๋ด ๋๋ค! ๊ฐ์ฌํฉ๋๋ค ๐
๋ฐฐ๋ฏผ์ฟ ํฐ์ ๋ชป์ฐธ์ฃ ~~ ๊ธ ์ ๋ณด๊ณ ๊ฐ๋๋ค!!