Skip to content

[Project๐Ÿ—‚] ์›น ํ™”์ƒ ๊ฒŒ์ž„ ์„œ๋น„์Šค 'NARANG ๐Ÿฆข'

Notifications You must be signed in to change notification settings

parkjisu6239/2021_Narang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

โ… . ์„œ๋น„์Šค ์†Œ๊ฐœ

1. ์„œ๋น„์Šค ์„ค๋ช…

๊ฐœ์š”

  • ํ•œ์ค„ ์†Œ๊ฐœ : ์˜จํƒํŠธ์— ์ต์ˆ™ํ•ด์ง„ ํ˜„๋Œ€์ธ์„ ์œ„ํ•œ ์›น ํ™”์ƒ ๊ฒŒ์ž„ ์„œ๋น„์Šค
  • ์„œ๋น„์Šค ๋ช… : ๋‚˜๋ž‘(Narang)

ํƒ€๊ฒŸ ๐ŸŽฏ

  • ์ƒˆํ•™๊ธฐ๋ฅผ ๋งž์ดํ•œ ํ•™์ƒ๋“ค
  • ํŒ€ํ”„๋กœ์ ํŠธ, ๋‹จ์ฒด์ƒํ™œ์„ ์‹œ์ž‘ํ•˜๊ฒŒ ๋œ ์‚ฌ๋žŒ๋“ค
  • COVID-19๋กœ ์ธํ•ด์„œ ํ•จ๊ป˜ ์ผํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ ์‚ฌ๋žŒ๋“ค

๐Ÿ‘‰ ํŒ€ ๋นŒ๋”ฉ์ด ํ•„์š”ํ•œ ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค



2. ๊ธฐํš ๋ฐฐ๊ฒฝ

๋ฐฐ๊ฒฝ

์šฐ๋ฆฌ๋Š” ํ”„๋กœ์ ํŠธ๋‚˜ ๋‹จ์ฒด ํ™œ๋™์—์„œ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ๋“ค๊ณผ ํŒ€์„ ๊พธ๋ ค ์ผ์„ ์‹œ์ž‘ํ•  ๋•Œ ์–ด์ƒ‰ํ•จ์„ ๋Š๋ผ๊ณค ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋ž‘์€ ์ด๋Ÿฌํ•œ ์–ด์ƒ‰ํ•จ์ด ์ œ๋Œ€๋กœ ํ•ด์†Œ๋˜์ง€ ์•Š๊ณ , ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์„ ๋•Œ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ์— ์ง‘์ค‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์–ด์ƒ‰ํ•จ์€ ์„œ๋กœ์—๊ฒŒ ์‹ค๋ก€๊ฐ€ ๋ ๊นŒ๋ด ์˜๊ฒฌ์„ ์ œ์‹œํ•˜์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜, ์›ํ•˜์ง€ ์•Š๋Š” ์˜๊ฒฌ์— ์–ด์ฉ”์ˆ˜ ์—†๊ฒŒ ๋™์˜ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์˜ ์ง„ํ–‰ ๊ณผ์ •๊ณผ ์„ฑ๊ณผ์— ๋ถˆ์ด์ต์„ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด ์ ์ ˆํ•œ ์•„์ด์Šค๋ธŒ๋ ˆ์ดํ‚น์œผ๋กœ ํŒ€์›๋“ค๊ฐ„์— ์นœ๋ฐ€๊ฐ์ด ์žˆ๋Š” ์ƒํƒœ์—์„œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ง„ํ–‰๋˜๋ฉด *1)์ผ์˜ ์„ฑ๊ณผ๊ฐ€ ๋” ๋†’๊ณ , *2)์˜์‚ฌ๊ฒฐ์ •์— ๊ธ์ •์ ์ธ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.


๋ชฉ์  ๐Ÿฅ…

์ฒ˜์Œ ํŒ€์„ ์ด๋ฃฌ ์‚ฌ๋žŒ๋“ค์ด ํšจ๊ณผ์ ์œผ๋กœ ์•„์ด์Šค๋ธŒ๋ ˆ์ดํ‚น์„ ํ•˜๊ฒŒ ํ•˜์ž


์˜์˜

  • ๋น„๋Œ€๋ฉด ์ƒํ™ฉ์—์„œ ์ง์ ‘ ๋งŒ๋‚˜์ง€ ์•Š๊ณ ๋„ ์ฆ๊ธธ ์ˆ˜ ์žˆ๋Š” ์˜จ๋ผ์ธ ์›น ํ™”์ƒ ๊ฒŒ์ž„
  • ๊ฐ„๋‹จํ•œ ๊ฒŒ์ž„์œผ๋กœ ์„œ๋กœ๋ฅผ ๋” ์ž˜ ์•Œ์•„๊ฐ€๊ณ , ์•„์ด์Šค๋ธŒ๋ ˆ์ดํ‚น์˜ ํšจ๊ณผ


3. ์„œ๋น„์Šค ํ™”๋ฉด

์ˆœ์„œ๋Œ€๋กœ ํ™ˆ, ๋งˆ์ดํŽ˜์ด์ง€, ๋Œ€๊ธฐ์‹ค, ๊ฒŒ์ž„๋ฐฉ, ๊ทธ๋ฆฌ๊ณ  ๋งˆํ”ผ์•„์™€ ์ฝœ๋งˆ์ด๋„ค์ž„ ์‹œ์—ฐ ์˜์ƒ์ž…๋‹ˆ๋‹ค.

ํ™ˆ

๋งˆ์ดํŽ˜์ด์ง€

๋Œ€๊ธฐ์‹ค1

๊ฒŒ์ž„๋ฐฉ

๐Ÿ‘‡ ์‹œ์—ฐ์˜์ƒ youtube ๐Ÿ‘‡

Video Label



4. ์šฐ์ˆ˜์ž‘ ๋ฐœํ‘œ ์˜์ƒ

๐Ÿ‘‡ ์šฐ์ˆ˜์ž‘ ๋ฐœํ‘œ ์˜์ƒ youtube ๐Ÿ‘‡

Video Label




โ…ก. ๊ธฐ์ˆ ์Šคํƒ

1. WebRTC

WebRTC๋ž€?

image-20210828151835934 image-20210828152033949

WebRTC (Web Real-Time Communication)๋Š” ์›น ๋ธŒ๋ผ์šฐ์ € ๊ฐ„์— ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๋„์›€ ์—†์ด ์„œ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋œ API์ด๋‹ค.

W3C์—์„œ ์ œ์‹œ๋œ ์ดˆ์•ˆ์ด๋ฉฐ, ์Œ์„ฑ ํ†ตํ™”, ์˜์ƒ ํ†ตํ™”, P2P ํŒŒ์ผ ๊ณต์œ  ๋“ฑ์œผ๋กœ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ‘‰ ์ข€ ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ


openVidu ๐Ÿ”—

image-20210828152009951

OpenVidu is a platform to facilitate the addition of video calls in your web or mobile application. It provides a complete stack of technologies very easy to integrate in your application. Our main goal is to allow developers to add real-time communications to their apps very fast and with low impact in their code.

WebRTC๋ฅผ ๋ณด๋‹ค ๊ฐ„๋‹จํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๋‹ค์–‘ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ˜ธํ™˜์„ฑ์ด ๋†’์€ openvidu๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ openvidu tutorail ๋˜๋Š”, ํ”„๋กœ์ ํŠธ์˜ front ํด๋” ํ•˜์œ„์˜ gameroom ๋“ฑ์—์„œ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ ์šฉ

๋‚˜๋ž‘ ์—์„œ๋Š” ํ™”์ƒ ํ†ตํ™”๋ฅผ ๊ฐ€๋Šฅ์ผ€ ํ•˜๊ธฐ ์œ„ํ•ด openvidu๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„๋ฐฉ, ๋งˆํ”ผ์•„, ๊ทธ๋ฆฌ๊ณ  ์ฝœ๋งˆ์ด๋„ค์ž„ ์ปดํฌ๋„ŒํŠธ์—์„œ openvidu๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ„์˜ ๋น„๋””์˜ค ์ŠคํŠธ๋ฆผ์„ ์ง€์›ํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ์˜์ƒ ํ†ตํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.



2. Web Socket

web socket ์ด๋ž€?

image-20210828152557863

์›น์†Œ์ผ“(WebSocket)์€ ํ•˜๋‚˜์˜ TCP ์ ‘์†์— ์ „์ด์ค‘ ํ†ต์‹  ์ฑ„๋„์„ ์ œ๊ณตํ•˜๋Š” ์ปดํ“จํ„ฐ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์›น์†Œ์ผ“ ํ”„๋กœํ† ์ฝœ์€ 2011๋…„ IETF์— ์˜ํ•ด RFC 6455๋กœ ํ‘œ์ค€ํ™”๋˜์—ˆ์œผ๋ฉฐ ์›น IDL์˜ ์›น์†Œ์ผ“ API๋Š” W3C์— ์˜ํ•ด ํ‘œ์ค€ํ™”๋˜๊ณ  ์žˆ๋‹ค. (์ด๋ฏธ์ง€ ์ถœ์ฒ˜ : http://www.secmem.org/blog/2019/08/17/websocket-socketio/)

์ผ๋ฐ˜์ ์ธ Ajax ํ†ต์‹ ๊ณผ ๋‹ค๋ฅด๊ฒŒ, ํŠน์ • end point๋ฅผ ๊ตฌ๋…ํ•˜๋ฉด ์ข…๋‹จ์ง€์ ๊ณผ ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ํ†ต์‹ ์„ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹ค์‹œ๊ฐ„ ์†Œํ†ต์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…๋“ฑ์— ๋งŽ์ด ํ™œ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€๋ฅผ ํ†ตํ•ด ํ†ต์‹  ๋ฐฉ๋ฒ•์„ ๊ฐ„๋‹จํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›น์†Œ์ผ“์งค


SockJS ๐Ÿ”—

SockJS๋Š” WebSocket๊ณผ ์œ ์‚ฌํ•œ ๊ฐ์ฒด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ € JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. SockJS๋Š” ๋ธŒ๋ผ์šฐ์ €์™€ ์›น ์„œ๋ฒ„ ์‚ฌ์ด์— ์งง์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„, ์ „์ด์ค‘, ๋„๋ฉ”์ธ ๊ฐ„ ํ†ต์‹  ์ฑ„๋„์„ ์ƒ์„ฑํ•˜๋Š” ์ผ๊ด€๋œ ๋ธŒ๋ผ์šฐ์ € ๊ฐ„ Javascript API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์†Œ์ผ“ ํ†ต์‹ ์„ ๊ฐ€๋Šฅ์ผ€ํ•˜๊ธฐ ์œ„ํ•œ ์ฒซ ๋ฒˆ์งธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. SockJS ๋กœ ํ†ต์‹ ์— ํ•„์š”ํ•œ end point ๋กœ socket ๊ฐ์ฒด๋ฅผ ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.


Stomp.js ๐Ÿ”—

์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด WebSocket์„ ํ†ตํ•ด STOMP ๋ธŒ๋กœ์ปค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ชจ๋“  ํ˜„์žฌ ํ”„๋กœํ† ์ฝœ ๋ณ€ํ˜•์„ ํฌํ•จํ•˜์—ฌ ์™„์ „ํ•œ STOMP ์‚ฌ์–‘์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ๋ฉ”์‹œ์ง• ๋ธŒ๋กœ์ปค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ WebSocket์„ ํ†ตํ•ด STOMP ๋ฐ STOMP๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์†Œ์ผ“ ํ†ต์‹ ์„ ๊ฐ€๋Šฅ์ผ€ํ•˜๊ธฐ ์œ„ํ•œ ๋‘ ๋ฒˆ์งธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. Stomp.js ๋กœ ์ƒ์„ฑ๋œ socket ๊ฐ์ฒด๋กœ๋ถ€ํ„ฐ stompClient๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์—ฐ๊ฒฐ ๋ฐ ๊ตฌ๋…, ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—์„œ ์†Œ์ผ“์„ ํ†ตํ•ด ์ „์†ก๋œ ๋‚ด์šฉ์€ ๋ฐฑ์—”๋“œ์—์„œ ๋™์ผํ•œ endpoint๋กœ ์ผ๊ด„์ ์œผ๋กœ ์ˆ˜์‹ ๋˜๋ฉฐ, ๋ฐฑ์—”๋“œ์—์„œ ์ด๋ฅผ ๋‹ค์‹œ ํ”„๋ก ํŠธ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ฑ„ํŒ… ์†Œ์ผ“์— ๊ฒฝ์šฐ ์ถ”๊ฐ€์ ์ธ ์ฒ˜๋ฆฌ ์—†์ด ๋ฐ›์€ ๋‚ด์šฉ์„ ๊ทธ๋Œ€๋กœ ๋ชจ๋“  ๊ตฌ๋…์ž์—๊ฒŒ ๋ฐ˜ํ™˜ํ•˜๊ณ , ํˆฌํ‘œ๋“ฑ ์ง‘๊ณ„๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ๋ฐฑ์—”๋“œ์—์„œ ๋กœ์ง์„ ํ†ตํ•œ ์ฒ˜๋ฆฌ ํ›„์— ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.


์ ์šฉ

๋‚˜๋ž‘ ์—์„œ๋Š” ์ฑ„ํŒ…๊ณผ ๊ฒŒ์ž„์˜ ์‹ค์‹œ๊ฐ„ ์ƒํƒœ ๊ณต์œ  ๋ฐ ์ง„ํ–‰์— web socket์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ๊ฐœ์˜ endpoint๋ฅผ ๊ตฌ๋…ํ•˜๊ณ , ๊ฐ๊ฐ์˜ ์—ญํ• ์— ๋งž๋Š” ๋กœ์ง์„ ๋‘์–ด ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์ฝ”๋“œ๋Š” back ํด๋” ๋‚ด์— websocket์˜ ํ•˜์œ„ ํด๋”๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • model์—์„œ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • controller ๋Š” ๊ฐ endpoint ์™€ ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” method๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  • request ์—์„œ๋Š” ํ”„๋ก ํŠธ๋กœ ๋ถ€ํ„ฐ ์ˆ˜์‹ ํ•œ ๋ฉ”์‹œ์ง€์˜ ํ˜•์„ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜, ํ•„์š”ํ•œ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • response ์—์„œ๋Š” ๋ฆฌํ„ดํ•ด์•ผํ•  message์— ๋งž๊ฒŒ ํŠน์ • ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ฑ„ํŒ…์ธ ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•˜๊ณ , ํˆฌํ‘œ์˜ ๊ฒฝ์šฐ ์ง‘๊ณ„ ํ›„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.



3. API

๋‚˜๋ž‘ ์—์„œ๋Š” ๊ฒŒ์ž„์˜ ์žฌ๋ฏธ์„ ๋”ํ•˜๊ณ , ๋‚˜๋ž‘ ๋งŒ์˜ ์ฐจ๋ณ„์ ์„ ๊ฐ–๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ API๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Teachable Machine ๐Ÿ”—

Teachable Machine์€ ๋ˆ„๊ตฌ๋‚˜ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ์‰ฝ๊ณ  ๋น ๋ฅด๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ์ œ์ž‘๋œ ์›น ๊ธฐ๋ฐ˜ API์ž…๋‹ˆ๋‹ค. ํŠน์ • ๋™์ž‘, ์˜์ƒ, ์ด๋ฏธ์ง€ ๋“ฑ์„ ํ•™์Šต์‹œ์ผœ ์ด๋ฅผ ๋ชจ๋ธ๋กœ ์ถ”์ถœํ•˜์—ฌ ํด๋ผ์šฐ๋“œ์— ์—…๋กœ๋“œํ•˜๋ฉด, ์ฝ”๋“œ๋‚ด์—์„œ importํ•˜์—ฌ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

image-20210828155909631

๋‚˜๋ž‘ ์—์„œ๋Š” Teachable Machine ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆํ”ผ์•„ ํžˆ๋“  ๋ฏธ์…˜์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•˜๋‹จ์˜ Nafia์—์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.


face API ๐Ÿ”—

JavaScript face recognition API for the browser and nodejs implemented on top of tensorflow.js core

faceapi

๋‚˜๋ž‘ ์—์„œ๋Š” face api์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ ์ค‘ ์œ„ ์ด๋ฏธ์ง€์— ์žˆ๋Š” 2๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. land mark ์™€ emotion detection ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•˜๋‹จ์˜ ๊ฒŒ์ž„ ์ปจํ…์Šค์—์„œ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.


Web Speech API ๐Ÿ”—

์›น ์Œ์„ฑ API๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์Œ์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Web Speech API๋Š” SpeechSynthesis(ํ…์ŠคํŠธ ์Œ์„ฑ ๋ณ€ํ™˜) ๋ฐ SpeechRecognition(๋น„๋™๊ธฐ ์Œ์„ฑ ์ธ์‹ )์˜ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ ๋ฉ๋‹ˆ๋‹ค.

Web Speech API๋Š” ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ api๋กœ ๋ณ„๋„์˜ import ์—†์ด ๋ช‡ ์ค„์˜ ์ฝ”๋“œ๋งŒ์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ API์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•ด๋ณผ ๊ฒƒ์„ ๊ฐ•๋ ฅํžˆ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. ๋†’์€ ์ธ์‹๋ฅ ๊ณผ ๋น ๋ฅธ ๋ฐ˜์‘์„ฑ์„ ๋ณด์ด๋Š” ์ข‹์€ API์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ด์–ดํฐ ๋“ฑ ๋งˆ์ดํฌ๊ฐ€ ์—†์œผ๋ฉด ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด ์—ญ์‹œ ๊ฒŒ์ž„ ๋‚ด ํ™œ์šฉ์€ ์•„๋ž˜์—์„œ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค.




โ…ข. ๊ฒŒ์ž„ ์ปจํ…์Šค ์†Œ๊ฐœ

1. Nafia

์Šฌ๋ผ์ด๋“œ11

๊ฒŒ์ž„ ๊ธฐ๋ณธ ์„ค๋ช…

์‹ค์ œ ๊ฒŒ์ž„ ์ง„ํ–‰ ๋ฐฉ๋ฒ•๊ณผ ๊ณผ์ •์— ๋Œ€ํ•œ ์˜์ƒ์€ ์—ฌ๊ธฐ์„œ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

์Šฌ๋ผ์ด๋“œ12

์Šฌ๋ผ์ด๋“œ13

์Šฌ๋ผ์ด๋“œ14


Nafia ํŠน๋ณ„ ๊ธฐ๋Šฅ 1 : ๋งˆํ”ผ์•„ ํžˆ๋“  ๋ฏธ์…˜

๋งˆํ”ผ์•„ ํžˆ๋“  ๋ฏธ์…˜์€ ๋งˆํ”ผ์•„์—๊ฒŒ๋งŒ ์ฃผ์–ด์ง€๋Š” ๋ฏธ์…˜์ž…๋‹ˆ๋‹ค. ๋งˆํ”ผ์•„๋Š” ๋‚ฎ๋™์•ˆ ์ž์‹ ์—๊ฒŒ ์ฃผ์–ด์ง„ ๋ฏธ์…˜์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ฏธ์…˜์„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•  ๊ฒฝ์šฐ ๋ฐค์ด ๋˜์—ˆ์„ ๋•Œ ์‹œ๋ฏผ์„ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ฏธ์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŠน์ • ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

![๋งˆํ”ผ์•„ ํžˆ๋“  ๋ฏธ์…˜](README.assets/๋งˆํ”ผ์•„ ํžˆ๋“  ๋ฏธ์…˜.gif)

ํžˆ๋“  ๋ฏธ์…˜์— ๋Œ€ํ•œ ๋™์ž‘ ์ธ์‹์€ ์•ž์„œ ๋งํ–ˆ๋˜ teachable API๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€๋ฅผ ํ†ตํ•ด ๋™์ž‘์„ ํ•™์Šต์‹œํ‚ค๊ณ , ์ธ์‹ํ•˜๋Š” ๊ณผ์ •์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ezgif.com-gif-maker (7) ezgif.com-gif-maker (6)

๊ด€๋ จ ์ฝ”๋“œ๋Š” front์˜ mafia.vue์—์„œ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋‘” ๋ชจ๋ธ์„ ๊ฐ€์ ธ์˜จ ํ›„, ์ด๋ฅผ ์›ํ•˜๋Š” ๋น„๋””์˜ค์™€ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋™์ž‘์ด ์ผ์น˜ํ•  ๊ฒฝ์šฐ ์ผ์น˜๋œ ์‹œ๊ฐ„๋™์•ˆ์„ ์นด์šดํŠธํ•˜๊ณ  ์นด์šดํŠธ๊ฐ€ ์ผ์ • ํšŸ์ˆ˜ ์ด์ƒ์ด ๋  ๊ฒฝ์šฐ ๋ฏธ์…˜ ์™„๋ฃŒ๋ผ๊ณ  ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.

๐ŸŽฎ ์ด๋ฅผ ํ†ตํ•ด ๋งˆํ”ผ์•„ ๊ฒŒ์ž„ ์ˆ˜ํ–‰ ์ค‘ ๋งˆํ”ผ์•„์—๊ฒŒ ํŒจ๋„ํ‹ฐ๋ฅผ ๋ถ€์—ฌํ•˜๊ณ , ์‹œ๋ฏผ์ด ๋งˆํ”ผ์•„๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๋ฐ ๊ฒฐ์ •์ ์ธ ํžŒํŠธ๋ฅผ ์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋งˆํ”ผ์•„ ์—ญํ• ์„ ๋ฐ›์€ ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ๊ฒŒ์ž„์˜ ๋‚œ์ด๋„๋ฅผ ์ ์ ˆํžˆ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฒŒ์ž„์„ ์žฌ๋ฏธ๋ฅผ ๋”ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ•ฉ๋‹ˆ๋‹ค.


Nafia ํŠน๋ณ„ ๊ธฐ๋Šฅ 2 : ๊ฑฐ์ง“๋ง ํƒ์ง€ ์•„์ดํ…œ

๊ฑฐ์ง“๋ง ํƒ์ง€ ์•„์ดํ…œ์€ ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•„์ดํ…œ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์•„์ดํ…œ ์‚ฌ์šฉ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ณ , ํ™œ์„ฑํ™”๋œ ์ƒํƒœ์—์„œ ์›ํ•˜๋Š” ์‚ฌ๋žŒ์˜ ๋น„๋””์˜ค๋ฅผ ํด๋ฆญํ•˜๋ฉด 5์ดˆ๊ฐ„ ํ‘œ์ •์˜ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ ์„ ํƒ๋œ ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฑฐ์ง“๋ง ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋™์ž‘์€ ์•„๋ž˜ ํ™”๋ฉด์„ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฑฐ์ง“๋ง

๋‚˜๋ž‘ ์€ ๊ฑฐ์ง“๋ง ํƒ์ง€๋ฅผ ์œ„ํ•ด ์œ„์—์„œ ์„ค๋ช…ํ•œ face api๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. face api์—์„œ๋Š” ๋น„๋””์˜ค ๋‚ด์—์„œ ์–ผ๊ตด์„ ์ธ์‹ํ•˜๊ณ , ์–ผ๊ตด์—์„œ์˜ ํ‘œ์ •๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ, ์ด๋•Œ ํ‘œ์ •์ด ๋„ˆ๋ฌด ์ž์ฃผ ๋ฐ”๋€Œ๋ฉด ๊ฑฐ์ง“๋ง๋กœ ํŒ๋ณ„ํ•˜๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฝ˜์†”์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ์ผ๋ฐ˜, ํ–‰๋ณต, ์Šฌํ””, ํ™”๋‚จ ๋“ฑ๋“ฑ์˜ ํ‘œ์ •์„ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ •์ธ์‹

๊ด€๋ จ ์ฝ”๋“œ๋Š” front์˜ mafia ํ•˜์œ„์˜ OvVideo.vue์—์„œ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋””์˜ค์™€ faceAPI์˜ ๋ชจ๋ธ์„ ๊ฐ€์ ธ์™€ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ด๋ฅผ ํŠน์ • ์‹œ๊ฐ„๋™์•ˆ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ธ์‹์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŽฎ ์ด๋ฅผ ํ†ตํ•ด ๋งˆํ”ผ์•„ ๊ฒŒ์ž„ ์ˆ˜ํ–‰ ์ค‘ ์‹œ๋ฏผ์ด ๋งˆํ”ผ์•„๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๋ฐ์— ๋„์›€์„ ์ฃผ์–ด ๊ฒŒ์ž„์˜ ์žฌ๋ฏธ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ฑฐ์ง“๋ง์ด๋ผ๊ณ  100% ์‹ ๋ขฐํ•  ์ˆ˜๋Š” ์—†๊ฒ ์ง€๋งŒ, ์ฐธ๊ณ ์ž๋ฃŒ๋กœ์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.



2. Call my name

์Šฌ๋ผ์ด๋“œ23

๊ฒŒ์ž„ ๊ธฐ๋ณธ ์„ค๋ช…

์‹ค์ œ ๊ฒŒ์ž„ ์ง„ํ–‰ ๋ฐฉ๋ฒ•๊ณผ ๊ณผ์ •์— ๋Œ€ํ•œ ์˜์ƒ์€ ์—ฌ๊ธฐ์„œ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

์Šฌ๋ผ์ด๋“œ24

์Šฌ๋ผ์ด๋“œ26

์Šฌ๋ผ์ด๋“œ25

๋ผ์šด๋“œ๊ฐ€ ์‹œ์ž‘๋˜๋ฉด, ํ”Œ๋ ˆ์ด์–ด 2์ธ์˜ ์ œ์‹œ์–ด๋ฅผ ์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํ™”๋ฉด ์šฐ์ธก ์ƒ๋‹จ์˜ ์ œ์‹œ์–ด ํˆฌํ‘œ์ฐฝ์„ ํ†ตํ•ด์„œ ๋ณธ์ธ์„ ์ œ์™ธํ•œ ๋‹ค๋ฅธ ํ”Œ๋ ˆ์ด์–ด์˜ ์ œ์‹œ์–ด ํˆฌํ‘œ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. 1๏ธโƒฃ ์ž…๋ ฅ์ฐฝ์— ์ œ์‹œ์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ œ์‹œ์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , 2๏ธโƒฃ ๋“ฑ๋ก๋œ ์ œ์‹œ์–ด ์ค‘์—์„œ ๋งˆ์Œ์— ๋“œ๋Š” ์ œ์‹œ์–ด๋ฅผ ํˆฌํ‘œํ•˜๊ณ  3๏ธโƒฃ ํˆฌํ‘œ ์™„๋ฃŒ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํˆฌํ‘œ์™„๋ฃŒ๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ํ”Œ๋ ˆ์ด์–ด์˜ ์ œ์‹œ์–ด๊ฐ€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ”Œ๋ ˆ์ด์–ด 2์ธ์˜ ์ œ์‹œ์–ด ์„ ํƒ์ด ๋ชจ๋‘ ์™„๋ฃŒ๋˜๋ฉด ๊ฒŒ์ž„์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

์Šฌ๋ผ์ด๋“œ27

๊ฒŒ์ž„์ด ์‹œ์ž‘๋˜๋ฉด ์ƒ๋Œ€๋ฐฉ๊ณผ ์งˆ๋ฌธ์„ ์ฃผ๊ณ  ๋ฐ›์Šต๋‹ˆ๋‹ค. ์Šค๋ฌด๊ณ ๊ฐœ ์ฒ˜๋Ÿผ ์งˆ๋ฌธ์„ ํ•˜๊ณ  ๋Œ€๋‹ต์„ ์ข…ํ•ฉํ•˜์—ฌ ์ •๋‹ต์„ ์ถ”์ธกํ•ฉ๋‹ˆ๋‹ค. ์ •๋‹ต์€ ์Œ์„ฑ์ธ์‹์œผ๋กœ ํ™•์ธ ๋ฉ๋‹ˆ๋‹ค.

์ •๋‹ต์„ ์•Œ ๊ฒƒ ๊ฐ™์€ ๊ฒฝ์šฐ, ์ •๋‹ต ์ด๋ผ๊ณ  ๋งํ•˜๋ฉด ์•„๋ž˜ ์ด๋ฏธ์ง€ ์ฒ˜๋Ÿผ ์ •๋‹ต ์ธ์‹ ์ฐฝ์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ์ •๋‹ต์„ ์™ธ์น  ๊ฒฝ์šฐ ์ด๋ฅผ ์ธ์‹ํ•˜์—ฌ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ์ž๋ง‰์ด ์ƒ์„ฑ๋˜๊ณ  ์ •๋‹ต ์ฒดํฌ ๊ฐ€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

์ •๋‹ต


Call my name ํŠน๋ณ„ ๊ธฐ๋Šฅ 1 : ์ด๋งˆ ์œ„ ์ œ์‹œ์–ด

์ฝœ๋งˆ์ด๋„ค์ž„์˜ ์ฒซ ๋ฒˆ์งธ ํŠน๋ณ„ ๊ธฐ๋Šฅ์€ ์ด๋งˆ ์œ„ ์ œ์‹œ์–ด ์ž…๋‹ˆ๋‹ค. SBS ์˜ˆ๋Šฅ ๋Ÿฐ๋‹๋งจ ์—์„œ๋Š” ์‹ค์ œ๋กœ ๋ชจ์ž ์œ„์— ๋ถ€์งํฌ๋กœ ์ด๋ฆ„์„ ๋ถ™์ž…๋‹ˆ๋‹ค. ๋‚˜๋ž‘์—์„œ๋„ ์ด์™€ ๊ฐ™์ด ์ด๋งˆ์— ์ œ์‹œ์–ด๋ฅผ ๋ถ™์—ฌ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

์–ผ๊ตด์ธ์‹

์ด๋Š” face api ์—์„œ ์–ผ๊ตด์˜ ๋ˆˆ์ฝ”์ž… ๋“ฑ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” randmark ๊ธฐ๋Šฅ์œผ๋กœ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ๋น„๋””์˜ค๋ฅผ 1์ดˆ ๋‹จ์œ„๋กœ ์ธ์‹ํ•˜๊ณ  ์ด๋•Œ๋งˆ๋‹ค ๋ˆˆ์˜ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ๋ฐ˜ํ™˜๋ฐ›์€ ๋ˆˆ ์œ„์น˜์— ์ œ์‹œ์–ด์˜ ๊ธธ์ด ๋“ฑ์„ ๊ณ ๋ คํ•˜๊ณ , 60px ์ •๋„ ๋–จ์–ด์ง„ ๊ณณ์— ์ œ์‹œ์–ด๋ฅผ ๋‘์–ด ์ด๋งˆ ์œ„์— ์ œ์‹œ์–ด๋ฅผ ๋ถ™์˜€์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์œ„์น˜ ์กฐ์ •์€ callmy ํด๋” ๋‚ด์˜ OvVideo.vue์—์„œ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐ŸŽฎ ์ด๋ฅผ ํ†ตํ•ด ์ฝœ๋งˆ์ด๋„ค์ž„ ๊ฒŒ์ž„ ์ง„ํ–‰์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ฉฐ, ์ž์‹ ์˜ ์ œ์‹œ์–ด๋Š” ์•Œ ์ˆ˜ ์—†๊ฒŒ๋” ???๋กœ ๋Œ€์ฒดํ•˜๊ณ  ๋‹ค๋ฅธ ํ”Œ๋ ˆ์ด์–ด์˜ ์ œ์‹œ์–ด๋งŒ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.


Call my name ํŠน๋ณ„ ๊ธฐ๋Šฅ 2 : ์Œ์„ฑ ์ธ์‹ ์ •๋‹ต ์ฒดํฌ & STT

์ฝœ๋งˆ์ด ๋„ค์ž„ ๋‘ ๋ฒˆ์งธ ํŠน๋ณ„ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ •๋‹ต ์ฒดํฌ๋ฅผ ์Œ์„ฑ์ธ์‹์œผ๋กœ ํ•˜์—ฌ ๊ฒŒ์ž„์˜ ํŽธ์˜์„ฑ๊ณผ ์žฌ๋ฏธ๋ฅผ ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์˜ˆ๋Šฅ์—์„œ ์ž๋ง‰์ด ๋‚˜์˜ค๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋‚ด๊ฐ€ ๋งํ•œ ์ •๋‹ต์ด ๋ชจ๋‘์—๊ฒŒ ํ™”๋ฉด ์•„๋ž˜์ชฝ ์ž๋ง‰์ฒ˜๋Ÿผ ์ƒ์„ฑ๋˜์–ด ์ƒ๋™๊ฐ์„ ๋†’์ž…๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์„ ์œ„ํ•ด Web Speech API๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ , ํŠน์ • ์˜ˆ์•ฝ์–ด(์ •๋‹ต) ๋ฅผ ์„ค์ •ํ•˜์—ฌ ๊ทธ ์ดํ›„์— ๋‚˜์˜ค๋Š” ๋‹จ์–ด๋กœ ์ •๋‹ต์„ ์ฒดํฌํ•˜๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜์ƒ์„ ํ†ตํ•ด ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ call mt nameํด๋” ์•ˆ์˜ callmy-stt.vue์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐ŸŽฎ ์ด๋ฅผ ํ†ตํ•ด TV์—์„œ ๋ดค๋˜ ๊ฒŒ์ž„์„ ์‹ค์ œ๋กœ ์ง„ํ–‰ ํ•  ์ˆ˜ ์žˆ๊ณ , ์Œ์„ฑ์ธ์‹์œผ๋กœ ์ •๋‹ต์„ ์ฒดํฌํ•˜์—ฌ ์žฌ๋ฏธ์™€ ํŽธ์˜์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค. ๋ชจ๋‘์—๊ฒŒ ๊ณต์œ ๋˜๋Š” ์ž๋ง‰์ด ์ƒ์„ฑ๋˜์–ด ๊ด€์ „์ž๋“ค์€ ๋งˆ์น˜ TV๋ฅผ ๋ณด๋Š” ์‹œ์ฒญ์ž์ฒ˜๋Ÿผ ์ฆ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.




โ…ฃ. ํ”„๋กœ์ ํŠธ ์ง„ํ–‰

ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ๊ธฐ๊ฐ„๋™์•ˆ ์ „๋ฉด ๋น„๋Œ€๋ฉด์œผ๋กœ, ์˜จ๋ผ์ธ์œผ๋กœ ์ง„ํ–‰๋˜์—ˆ๊ธฐ์— ํŠนํžˆ๋‚˜ ์ง„ํ–‰ ๋ฐฉ์‹๊ณผ ์†Œํ†ต ๋ฐฉ๋ฒ•์ด ์ค‘์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” Agile ๋ฐฉ๋ฒ•์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ๊ณ , Jira๋ฅผ ์‚ฌ์šฉํ•œ ์Šคํ”„๋ฆฐํŠธ ๊ด€๋ฆฌ, Docs๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ค„์˜€์Šต๋‹ˆ๋‹ค.

1. Git Flow

git flow ์‚ฌ์šฉ์„ ์œ„ํ•ด ์šฐ์•„ํ•œ ํ˜•์ œ๋“ค์˜ git flow ์‚ฌ์šฉ์„ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ž ๋งก์€ ๊ธฐ๋Šฅ์— ๋งž๊ฒŒ feature ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์™„๋ฃŒ๋œ ๊ธฐ๋Šฅ์€ develop์— mergeํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ถฉ๋Œ ์ƒํ™ฉ์„ ์ตœ์†Œํ™”ํ•˜๊ณ ์ž ๋งค์ผ ์˜ค์ „ ์Šคํฌ๋Ÿผ์— develop ์ตœ์‹  ๋ฒ„์ „์„ pull๋ฐ›๊ณ  ์‹œ์ž‘ํ•  ๊ฒƒ์„ ๊ฐ•์กฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ commit message ๋Š” [FE|jisu] mafia | ๊ฑฐ์ง“๋ง ํƒ์ง€๊ธฐ 5์ดˆ ์ œํ•œ, ๊ฒŒ์ž„๋‹น 1ํšŒ ์‚ฌ์šฉ ์ œํ•œ ์ถ”๊ฐ€ ์™€ ๊ฐ™์ด ํ†ต์ผํ•˜์—ฌ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

git



2. Jira

๋งค์ฃผ ๊ธˆ์š”์ผ ์˜คํ›„ ํšŒ์˜์—์„œ ์ฐจ์ฃผ์— ์ง„ํ–‰๋˜์–ด์•ผ ํ•  ์ด์Šˆ๋ฅผ ๋ฐฑ๋กœ๊ทธ์— ๋“ฑ๋กํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธˆ์ฃผ์— ์™„๋ฃŒํ•˜์ง€ ๋ชปํ•œ ์ด์Šˆ๋‚˜, ์•ž์œผ๋กœ ์ง„ํ–‰ํ•  ์ด์Šˆ๋“ค์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • ์—ํ”ฝ์€ ๊ฐ€์žฅ ํฐ ๋‹จ์œ„์ธ ๊ธฐํš, ์œ ์ €๊ด€๋ฆฌ, ๋งˆํ”ผ์•„, ์ฝœ๋งˆ์ด๋„ค์ž„ ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  • ์Šคํ† ๋ฆฌ๋Š” ์‹ค์ œ ์œ ์ € ํ”Œ๋กœ์šฐ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ํ™ˆํŽ˜์ด์ง€์—์„œ ๋กœ๊ทธ์ธ ์ฐฝ์„ ํ†ตํ•ด ๋กœ๊ทธ์ธ ํ•œ๋‹ค ์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜์˜€์œผ๋ฉฐ,

  • ์ด์Šˆ๋Š” ์Šคํ† ๋ฆฌ๋ฅผ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์€ ์—…๋ฌด ๋‹จ์œ„๋กœ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋กœ๊ทธ์ธ ํผ ์ƒ์„ฑ, ๋กœ๊ทธ์ธ ํด๋ฆญ ์‹œ action ์ •์˜ requestLogin ํ•จ์ˆ˜ ์ •์˜ Login token ๋ฐœ๊ธ‰ ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์—ํ”ฝ๋งํฌ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด์Šˆ๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฌด์—‡๋ณด๋‹ค ๋‹ด๋‹น์ž์™€ ์Šคํ† ๋ฆฌ ํฌ์ธํŠธ ์„ค์ •, ํ˜„์žฌ ์ž‘์—…์ค‘์ธ ๋‚ด์šฉ ์ง€๋ผ์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ˜์˜ํ•˜๋Š” ๊ฒƒ์„ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

image-20210828171218788



3. Notion

๋ชจ๋‘๊ฐ€ ๊ณต์œ ํ•ด์•ผํ•  ์ž๋ฃŒ ๋ฐ ๋งํฌ๋Š” ๋…ธ์…˜์— ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ userflow๋‚˜ api ๋ช…์„ธ ์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ๋ฒˆ ๋‹ค์‹œ ๋ด์•ผํ•˜๊ณ  ์ค‘์š”ํ•œ ์ •๋ณด๋“ค์€ ํŠนํžˆ ๋…ธ์…˜์— ๊ณต์œ ํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ์˜ naming rule, ์ธ๋ดํŒ…๊ณผ ์ค„๋ฐ”๊ฟˆ ๊ทœ์น™, vue์—์„œ์˜ state์™€ props ์ˆœ์„œ๋„ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

notion




โ…ค. ๋ฐฐํฌ

์„œ๋ฒ„๋Š” AWS EC2 ubuntu๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค

1. Docker

  • openvidu ์„œ๋ฒ„ : 8443

  • ์„œ๋น„์Šค ํฌํŠธ ๋ฒˆํ˜ธ : 443

์„œ๋กœ ๋‹ค๋ฅธ ๋„์ปค ์ด๋ฏธ์ง€๋กœ ์ €์žฅ๋˜์–ด ์žˆ์–ด ๊ฐ๊ฐ์˜ ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰์‹œํ‚ต๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ์ด๋ฏธ์ง€๋“ค์˜ ์„ค์ •์€ docker-compose.yml ํŒŒ์ผ์— ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

docker ๋‚ด๋ถ€๋Š” ๊ฐ™์€ ๋„คํŠธ์›Œํฌ๋กœ ๋ฌถ์–ด์ฃผ๊ธฐ ์œ„ํ•ด docker-compose๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.



2. DevOps

Jenkins๋กœ CI/CD๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ develop ๋ธŒ๋žœ์น˜์— push ์ด๋ฒคํŠธ ๋ฐœ์ƒ์‹œ buildํ•˜๋„๋ก ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

build ํ›„ docker-compose๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.



3. How to

Jenkins ์„ค์ •

  1. Jenkins ๊ด€๋ฆฌ > ์‹œ์Šคํ…œ ์„ค์ •
  • Jenkins๊ฐ€ ์‹คํ–‰์ค‘์ธ ์„œ๋ฒ„์˜ URL ์ž‘์„ฑ
  • Gitlab / Github URL ์ž‘์„ฑ
  • ssh๋กœ ์„œ๋ฒ„์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ •
  • ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ์„ค์ •(gradle, nodejs)
  1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ & ์„ค์ •
  • freestyle project ์ƒ์„ฑ
  • ์†Œ์Šค์ฝ”๋“œ ๊ด€๋ฆฌ(repository, branch ์„ค์ •)
  • ๋นŒ๋“œ์œ ๋ฐœ ์„ค์ •(Webhook ์—ฐ๊ฒฐ์œ„ํ•œ token ๋ฐœ๊ธ‰)
  • ๋นŒ๋“œ ํ™˜๊ฒฝ์„ค์ •(command ์ž‘์„ฑ)
  • ๋นŒ๋“œ ํ›„ ์กฐ์น˜

Gitlab Webhook ์„ค์ •

Jenkins ํ”„๋กœ์ ํŠธ > ๊ตฌ์„ฑ > ๋นŒ๋“œ์œ ๋ฐœ์—์„œ ๋ฐœ๊ธ‰ํ•œ ํ† ํฐ์„ Webhook ์„ค์ • ํŽ˜์ด์ง€์— ์ž‘์„ฑํ•˜๊ณ  ๋นŒ๋“œ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค.

์„œ๋ฒ„๋Š” letsencrypt๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ssl ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. letsencrypt certonly --standalone -d [๋„๋ฉ”์ธ๋ช…] ๋ช…๋ น์–ด๋กœ ์–ป์€ keyfile์„ ~/apps/narang/certificates/live/[๋„๋ฉ”์ธ๋ช…] ์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.




โ…ฅ. UI / UX

1. wireframe

figma๋ฅผ ์‚ฌ์šฉํ•ด ํ™ˆํŽ˜์ด์ง€์˜ ์ดˆ์•ˆ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ฐธ๊ณ ํ•˜๊ณ , ์„œ๋น„์Šค ํŠน์„ฑ์— ๋งž๊ฒŒ ์ œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

image-20210828173115307



2. design

์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„๋กœ ๋””์ž์ธํ•˜์˜€๊ณ , ๊ฒŒ์ž„์˜ ๋ฐฐ๊ฒฝ, ๋„ˆ๋ž‘์ด ๋„ ๊ทธ๋ ธ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„์— ์ดˆ์ ์„ ๋งž์ถฐ ์›น ์‚ฌ์ดํŠธ๋ณด๋‹ค๋Š” ์•ฑ์— ๋น„์Šทํ•œ ๋ชจ์Šต์œผ๋กœ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

image-20210828173232581



3. more

  • ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” dialog๋Š” ๊ธฐ๋ณธ์ ์ธ ํ‹€๋งŒ ๊ฐ–์ถ˜ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌ์„ฑํ•ด๋‘ก๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋ฅผ slot ํƒœ๊ทธ๋กœ ๋ถˆ๋Ÿฌ์™€์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • Loading ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ์— ์š”์†Œ๋“ค์ด ๋ชจ๋‘ ๋กœ๋“œ ๋˜๊ธฐ ์ „๊นŒ์ง€ ์‚ฌ์šฉ์ž์˜ ๋™์ž‘์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ๋„ˆ๋ž‘์ด๊ฐ€ ๋‘ฅ์‹ค๋‘ฅ์‹ค ๋– ๋‹ค๋‹ˆ๋Š” ๋ชจ์Šต์œผ๋กœ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

    ๋กœ๋”ฉ

  • ํด๋ฆญ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์š”์†Œ๋Š” cursor: pointer ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ˜์‘ํ˜•์œผ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ํ™”๋ฉด์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋ฉด ๊ทธ์— ๋งž๊ฒŒ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋ณด์—ฌ์ง€๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๊ธฐ์‹ค1 ๋Œ€๊ธฐ์‹ค2-crop ๋Œ€๊ธฐ์‹ค3-crop



โ…ฆ. ์†Œ๊ฐ ๋ฐ ๋ฐฐ์šด์ 

1. ๐Ÿ„๐Ÿ…

์Šฌ๋ผ์ด๋“œ35

  • ๊น€๋‹ด์˜ : ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋กœ ๊นƒ ํ”Œ๋กœ์šฐ ์ง€๋ผ์™€ ๊ฐ™์€ ํ˜‘์—…ํˆด ์‚ฌ์šฉ์— ์ต์ˆ™ํ•ด์งˆ ์ˆ˜ ์žˆ์—ˆ๊ณ  ์—ญํ•  ๋ถ„๋‹ด์„ ์œ„ํ•ด ์ž์„ธํ•˜๊ฒŒ ๊ธฐํšํ•˜๊ณ  ์ •๋ฆฌํ•˜๋Š” ๊ณผ์ •์„ ํ†ตํ•ด ํ˜‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋˜ํ•œ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•จ๊ป˜๋ผ๋ฉด ์–ด๋– ํ•œ ๊ฒƒ๋„ ํ•ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ž์‹ ๊ฐ์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๊ณ , ๋ฐฐ์šธ์ ์ด ๋งŽ์€ ํŒ€์›๋“ค์„ ๋งŒ๋‚˜ ์ € ๋˜ํ•œ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ข‹์€ ์‚ฌ๋žŒ์„ ๋งŒ๋‚œ ๊ฒƒ๋„ ์ œ๊ฒŒ ํฐ ํ–‰์šด์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ•์˜ˆ์„œ : ํŒ€์›๋“ค ๋ชจ๋‘๊ฐ€ ์ ๊ทน์ ์œผ๋กœ ์ฐธ์—ฌํ•œ ๋•๋ถ„์— ์šฉ๋‘์šฉ๋ฏธ ํ”„๋กœ์ ํŠธ๋กœ ์œ ์ข…์˜ ๋ฏธ๋ฅผ ๊ฑฐ๋‘˜ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.๊ธฐ์ˆ ์ ์ธ ๋ถ€๋ถ„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ˜‘์—… ๊ณผ์ •, ๊ธฐํš๊ณผ ๋ฌธ์„œํ™”์˜ ์ค‘์š”์„ฑ ๋“ฑ ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šฐ๊ณ  ํ•œ ๋‹จ๊ณ„ ๋” ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.ํ•œ ๊ฐ€์ง€ ์•„์‰ฌ์› ๋˜ ์ ์€ ํŒ€ ๋ถ„์œ„๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ์ข‹์•˜๋˜ ๋ฐ”๋žŒ์— ์ž์†Œ์„œ์— ์“ธ ๋งŒํ•œ ๋ถˆํ™” ์ฐ์ด ๋‚˜์˜ค์ง€ ์•Š์€ ๊ฒŒ ์•„์‰ฝ์Šต๋‹ˆ๋‹ค.
  • ๊น€์ค€ํ™˜ : ์ฒ˜์Œ์—๋Š” ์–ด๋Š์ •๋„ ๊ตฌํ˜„์ด ๋ ์ง€ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋‹จ ํ•œ๋ช…๋„ โ€˜๋ชปํ•  ๊ฒƒ ๊ฐ™๋‹คโ€™๊ณ  ํ•˜์ง€ ์•Š๊ณ  ์—ด์‹ฌํžˆ ํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ž˜ ๋งˆ๋ฌด๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํŒ€์›๋“ค๊ณผ ํ•จ๊ป˜ ๋งค์ผ ์›ƒ์œผ๋ฉฐ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ํŒ€์›๋“ค ๋•๋ถ„์— ๋งŽ์ด ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค ๋ชจ๋‘ ๊ณ ๋งˆ์›Œ์š”๐ŸŒŸ
  • ๋ฐ•์ง€์ˆ˜ : ํ˜ผ์ž๋ผ๋ฉด ์ ˆ๋Œ€ ๋ชปํ–ˆ์„ ํ”„๋กœ์ ํŠธ. 5๋ช…์ด ๋ชจ๋‘ ์ž˜ํ•ด์คฌ๊ธฐ์— ์„ฑ๊ณตํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํŒ€์›Œํฌ์™€ ํ˜‘์—…์˜ ์ค‘์š”์„ฑ ๊ทธ๋ฆฌ๊ณ  ๊ฐ์ž์˜ ์žฅ์ ์ด ๋ชจ์—ฌ ์„œ๋กœ์˜ ๋ถ€์กฑํ•œ ์ ์„ ๋ณด์™„ํ•˜๊ณ  500% ์ด์ƒ์˜ ์‹œ๋„ˆ์ง€๊ฐ€ ๋‚œ๋‹ค๋Š”๊ฒƒ์„ ์ฒด๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค๋‹ค๋‹ค๋‹ค๋‹ค๋‹ค. ๊นƒ ํ”Œ๋กœ์šฐ, ์ง€๋ผ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋น„๋Œ€๋ฉด ์ƒํ™ฉ์ด๋”๋ผ๋„ ํšจ์œจ์ ์œผ๋กœ ์†Œํ†ตํ•˜๊ณ  ํ˜‘์—…ํ•˜๋Š” ๋ฒ•์„ ์ตํ˜”๋‹ค. ์ฒด๋ ฅ์ (์ž ๋ชป์ž )์œผ๋กœ ์ •์‹ ์ ์œผ๋กœ(์™œ์•ˆ๋จ) ๋งŽ์ด ํž˜๋“ค์—ˆ์ง€๋งŒ, ๊ทธ๋งŒํผ ๋งŽ์ด ๋ฐฐ์šฐ๊ณ  ์„ฑ์žฅํ–ˆ๋‹ค. ์ •๋ง ์—ด์ •์ ์œผ๋กœ ์ž„ํ–ˆ๋‹ค๊ณ  ์ž๋ถ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์‹ ๋™์œค : ์žฌ๋ฐŒ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ์Œ ๋งž๋Š” ํŒ€์›๊ณผ ํ•  ์ˆ˜ ์žˆ์–ด ํ–‰๋ณตํ–ˆ์Šต๋‹ˆ๋‹ค. 6์ฃผ์˜ ์‹œ๊ฐ„์ด ์–ด๋–ป๊ฒŒ ์ง€๋‚˜๊ฐ”๋Š”์ง€๋„ ๋ชจ๋ฅผ ์ •๋„๋กœ ๋ชจ๋‘๊ฐ€ ํ”„๋กœ์ ํŠธ์— ์—ด์ •์ ์ด๊ณ  ์ ๊ทน์ ์œผ๋กœ ์ฐธ์—ฌํ•ด์ฃผ์…”์„œ ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ค‘๊ฐ„์— ํฌ๊ธฐํ•˜๊ณ  ์‹ถ์„ ๋•Œ์—๋„ ์›ƒ์œผ๋ฉด์„œ ํ•˜์‹œ๋Š” ๋ชจ์Šต์— ํž˜์ด ๋‚˜์„œ ๋‹ค์‹œ ์ผ์–ด์„ค ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.


2. ๋ฐฐ์šด์ 

  • ๋””๋ฒ„๊ทธ์˜ ์ค‘์š”์„ฑ
    • ์ฝ˜์†”์„ ์ž˜๋ณด์ž!!
    • ๋ฐ˜๋ณต๋ฌธ์ด๋‚˜ ์žฌ๊ท€๋Š” ์ข…๋ฃŒ์กฐ๊ฑด, basecase๊ฐ€ ์ œ์ผ ์ค‘์š”ํ•จ!
  • ๊ฐœ๋ฐœ์ „์— ๋ช…์„ธ์„œ๋‚˜ ๊ธฐํš์„œ์˜ ์ค‘์š”์„ฑ
    • ๋Œ€์ถฉ ์ด๋ ‡๊ฒŒ ํ•˜๊ณ  ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์กฐ์œจํ•˜์žํ•˜๋Š” ๊ฑด ๊ต‰์žฅํžˆ ์œ„ํ—˜ํ•˜๋‹ค
    • ์„œ๋กœ ๋จธ๋ฆฌ์†์œผ๋กœ๋Š” ์ดํ•ดํ•˜์ง€๋งŒ ํ˜•์ฒด๋‚˜ ๋””ํ…Œ์ผ์€ ๋‹ค ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.
    • ์ •ํ™•ํ•˜๊ณ  ๋ช…ํ™•ํ•œ ๋ชจ๋ธ, ๊ฐ์ฒด, ๊ฐ’, ๋ณ€์ˆ˜๋Š” ๋ฏธ๋ฆฌ ์ง€์ •ํ•˜์—ฌ ๋ฌธ์„œํ™”ํ•ด์•ผํ•œ๋‹ค.
  • ๋น„๋Œ€๋ฉด ํ™˜๊ฒฝ์—์„œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์ด ๋“ ๋‹ค
    • ๋ฌธ์„œํ™”ํ•ด์„œ ์ •๋ฆฌํ•˜์ž
    • ์›น์—‘์Šค๋ž‘ ๋””์ฝ”๋Š” ์•„๋ฌดํŠผ ๋Š๋ฆฌ๋‹ค ๋™์‹œ์— ํ™”๋ฉด ๊ณต์œ ๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ํ•˜๋Š”๊ฒƒ๋„ ๋ถˆํŽธํ•˜๋‹ค
    • ๋‹ค ๊ฐ™์ด ๋‹ฌ๋ผ๋ถ™์–ด์•ผ ํ•˜๋Š” ์ผ์ด ์•„๋‹ˆ๋ฉด ๋ถ„์—…ํ•˜๊ณ , ๋‹ด๋‹น์ž๋ผ๋ฆฌ ์ปดํŒฉํŠธํ•˜๊ฒŒ ํ˜‘์—…ํ•˜๊ธฐ



โ…ง. ์ถœ์ฒ˜

  1. [๋งค์ผ ๊ฒฝ์ œ, [ํšŒ์‚ฌ ๋™๋ฃŒ์™€ ์นœํ•  ์ˆ˜๋ก ์ผ์˜ ์„ฑ๊ณผ๋„ ๋” ์ปค์ง„๋‹ค]](: https://www.mk.co.kr/news/business/view/2015/07/634151/)
  1. ๋ฌธ์ง€์›, โ€œsmart Icebreaker: ์ƒˆ๋กœ์šด ๊ทธ๋ฃน ๊ตฌ์„ฑ์› ๊ฐ„์˜ ๋Œ€์ธ๋งค๋ ฅ์„ ๊ฐ•ํ™”์‹œ์ผœ์ฃผ๋Š” ๊ฒŒ์ž„ ์ธํ„ฐ๋ž™์…˜ ์—ฐ๊ตฌโ€, KAIST ๋ฌธํ™”๊ธฐ์ˆ ๋Œ€ํ•™์›

About

[Project๐Ÿ—‚] ์›น ํ™”์ƒ ๊ฒŒ์ž„ ์„œ๋น„์Šค 'NARANG ๐Ÿฆข'

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published