- ๋ฐฉ๊ณผํ์ ํผ์ ์๋ ํ์๋ค์ ๊ณ์ ์ง์ผ์ค ๋น๋๋ฉด ๋ฐฉ๊ณผํ ํ๋ ์๋น์ค
- ์๋น์ค ๋ช : ๋ฐฉ๊ณผ์
์ฝ๋ก๋19๋ก ์ธํด ๋น๋๋ฉด ์์ ์ผ๋ก ์ ํ๋๋ฉด์ ๋ฐฉ๊ณผํ ์์ ์ด์์ด ์ด๋ ค์์ก์ต๋๋ค. ๋ค์ ๋๋ฉด์ผ๋ก ์ ํ๋ ํ์ฌ์๋ ์ฌ์ ํ ๋ฐฉ๊ณผํ ์์ ์ ์ด์ํ์ง ์๋ ํ๊ต๊ฐ ๋๋ถ๋ถ์ ๋๋ค. ์ด๋ก ์ธํด ์์ด๋ค์ ๋ฐฉ๊ณผํ์ ํผ์ ์ง์ ์๋ ์๊ฐ์ด ๋ง์์ก์ต๋๋ค.
๋ง๋ฒ์ด ๋ถ๋ถ๋ ์์ด์ ๋ฐฉ๊ณผํ ์๊ฐ์ ์ฌ๊ต์ก์ผ๋ก๋ง ๊ด๋ฆฌํ๊ธฐ์ ๋ถ๋ด์ด ์ปค ๋ฐฉ๊ณผํ ์์ ์ ์ ํธํ๊ณ ์์ง๋ง ๋ฐฉ๊ณผํ ์์ ์ด์์ด ์ด๋ ค์์ง๋ฉด์ ๋ง๋ฒ์ด ๋ถ๋ถ๊ฐ ๋ถ๋ดํ ๋๋ด ๊ณต๋ฐฑ์ด ์ปค์ง ์ํ์ ๋๋ค.
๋ํ ์ฝ๋ก๋19๋ก ๋๋ฉด๋ด์ฌ์ ๊ธฐํ๊ฐ ์ค์ด ๋น๋๋ฉด ๋ด์ฌ๋ฅผ ํฌ๋งํ๋ ๋ด์ฌ์๋ค์ด ๋ง์์ง๊ฒ ๋์ต๋๋ค.
๋ฐ๋ผ์ ์ ํฌ๋ ํ์, ํ๋ถ๋ชจ, ๋ด์ฌ์๋ฅผ ์ฐ๊ฒฐํด์ค ๋น๋๋ฉด ๋ฐฉ๊ณผํ ํ๋ซํผ ๋ฐฉ๊ณผ์๋ฅผ ์ ์ํ๊ฒ ๋์ต๋๋ค.
-
๊ธฐ์ฌ ๋งํฌ
"์ด๋ฑ์ 3๋ถ์ 1 ๋ฐฉ๊ณผํ ๋ฐฉ์น '๋ํ๋ก ์๋'"(์ข ํฉ) | ์ฐํฉ๋ด์ค
๋ฐฉ๊ณผํํ๊ต ์ฝ๋ก๋์ 2๋ ์งธ ์คํฑ...๊ฐ์ฌ๋, ํ์๋ '๋๋๊ฐ ์ค๋ฆฌ์'
[์ถ๊ทผ๊ธธ ์ธํฐ๋ทฐ] ์ฝ๋ก๋ ์๋, ์์๋ด์ฌ ํ๋ ๋ณํ...๋น๋๋ฉดยท์จ๋ผ์ธ ๊ฐํ
- ์์ด๊ฐ ์๋ ๋ง๋ฒ์ด ๋ฐ ์ ์๋์ธต ๊ฐ๊ตฌ
- ์ฌ๋ฅ๊ธฐ๋ถ ๋ฐ ๋ด์ฌํ๋์ ์ํ๋ ์์๋ด์ฌ์
-
ํ์ ํผ์ ์๋ ๋ฌธ์ ํด๊ฒฐ ๊ฐ๋ฅ
-
๋ฐฉ๊ณผํ ํ๋์ ์ฒด๊ณ์ ์ธ ๊ด๋ฆฌ
โ ํ๋์ด ๋๋๋ฉด ๊ฒฐ๊ณผ๋ฅผ ํ๋ถ๋ชจ์๊ฒ ์ ์กํด ์์ ์ ๋ํ ํผ๋๋ฐฑ ๊ฐ๋ฅ
-
๋ด์ฌ์์๊ฒ ์ฌ๋ฅ๊ธฐ๋ถ ๋ฐ ๋ด์ฌํ๋ ๊ธฐํ ์ ๊ณต
-
์์๋ด์ฌํฌํธ๊ณผ ์ฐ๊ณ๋ฅผ ํตํด ๋ด์ฌ์๊ฐ ์ง๊ธ์ ํตํ ๋ด์ฌ์ ํ๋ณด ๊ฐ๋ฅ
-
๋ด์ฌ์ ์ ์ํ
โ ๋์์ ๋ฐ์ ํ์๋ค์ด ์ฌ๋ฅ๋๋์ ํตํด ์ฌํ์ ํ์ํ๋ ๋๋์ ์ ์ํ ์ ๋ ๊ฐ๋ฅ
-
์๊ฐ๊ณผ ๊ณต๊ฐ์ ์ ์ฝ์ ์์ ๋ด์ฌ์ ๋ํ ์ ๊ทผ์ฑ ํฅ์
- ํ์ ๊ด๋ฆฌ : Gitlab
- ์ด์ ๊ด๋ฆฌ : Jira
- ์ปค๋ฎค๋์ผ์ด์ : Mattermost, Webex, Notion
- ๋์์ธ : Figma, Adobe Illustrator, Adobe Photoshop, Adobe After Effect, 3D Maya
- lang: HTML5, CSS3, JAVASCRIPT, Node.js
16.16.0
- framework: Vue.js (Vue3)
- style : Sass
- http: axios
- formatter : eslint + prettier
- router : vue-router
- state management tool : Vuex4
- Library
"@kyvg/vue3-notification": "^2.3.6", "@tensorflow/tfjs-node": "^3.19.0", "@vue/cli-plugin-router": "^5.0.8", "@vue/cli-plugin-vuex": "^5.0.8", "@vueuse/core": "^9.1.0", "aos": "^3.0.0-beta.6", "axios": "^0.27.2", "canvas": "^2.9.3", "chart.js": "^3.9.1", "core-js": "^3.8.3", "eslint-config-prettier": "^8.5.0", "eslint-plugin-prettier": "^4.2.1", "face-api.js": "^0.22.2", "jwt-decode": "^3.1.2", "moment": "^2.29.4", "openvidu-browser": "^2.22.0", "sass-loader": "^13.0.2", "socket.io-client": "^4.5.1", "sockjs-client": "^1.6.1", "swiper": "^8.3.1", "three": "^0.143.0", "v-calendar": "^3.0.0-alpha.8", "vue": "^3.2.13", "vue-accessible-color-picker": "^4.0.3", "vue-awesome-swiper": "^5.0.1", "vue-calendar-3": "^1.3.52", "vue-carousel": "^0.18.0", "vue-chartjs": "^4.1.1", "vue-router": "^4.0.13", "[vue-socket.io](http://vue-socket.io/)": "^3.0.10", "vuex": "^4.0.2", "vuex-persistedstate": "^4.1.0", "webstomp-client": "^1.2.6" "eslint": "^7.32.0", "eslint-plugin-vue": "^8.0.3", "node-sass": "^7.0.1"
- API
- Java open-JDK zulu
8.33.0.1
- SpringBoot
- Gradle
7.5
- Lombok
1.18.24
- JPA
1.0
- Hibernate (ORMํ๋ ์์ํฌ)
- Swagger
- MySQL
8.0.29
- https (TLS
1.0
) - Ubuntu
20.0.4
- Nginx
1.18.0
- PuTTY
0.77
- Docker
20.10.17
- IntelliJ
2022.1.3
- MySQL Workbench
8.0.29
- VSCode
1.69.2
WebRTC(Web Real-Time Communication)๋ ์น ๋ธ๋ผ์ฐ์ ๊ฐ์ ํ๋ฌ๊ทธ์ธ์ ๋์ ์์ด ์๋ก ํต์ ํ ์ ์๋๋ก ์ค๊ณ๋ API์ด๋ค.
W3C์์ ์ ์๋ ์ด์์ด๋ฉฐ, ์์ฑ ํตํ, ์์ ํตํ, P2P ํ์ผ ๊ณต์ ๋ฑ์ผ๋ก ํ์ฉ๋ ์ ์๋ค.
WebRTC๋ฅผ ๋ณด๋ค ๊ฐ๋จํ๊ฒ ์ ์ฉํ ์ ์๊ณ , ๋ค์ํ ํ๋ ์์ํฌ์ ํธํ์ฑ์ด ๋์ openvidu๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ์งํํ์ต๋๋ค.
์น์์ผ์ ํ๋์ TCP ์ ์์ ์ ์ด์ค ํต์ ์ฑ๋์ ์ ๊ณตํ๋ ์ปดํจํฐ ํต์ ํ๋กํ ์ฝ์ด๋ค. ์น์์ผ ํ๋กํ ์ฝ์ 2011๋ IETF์ ์ํด RFC 6455๋ก ํ์คํ๋์์ผ๋ฉฐ ์น IDL์ ์น์์ผ API๋ W3C์ ์ํด ํ์คํ๋๊ณ ์๋ค. (์ด๋ฏธ์ง ์ถ์ฒ : http://www.secmem.org/blog/2019/08/17/websocket-socketio/)
์ผ๋ฐ์ ์ธ Ajax ํต์ ๊ณผ ๋ค๋ฅด๊ฒ, ํน์ end point๋ฅผ ๊ตฌ๋ ํ๋ฉด ์ข ๋จ์ง์ ๊ณผ ์ฐ๊ฒฐ๋ ๋ชจ๋ ํต์ ์ ์์ ํ ์ ์์ผ๋ฉฐ, ์ค์๊ฐ ์ํต์ด ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋์ ์ค์๊ฐ ์ฑํ ๋ฑ์ ๋ง์ด ํ์ฉ๋๊ณ ์์ต๋๋ค.
์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด WebSocket์ ํตํด STOMP ๋ธ๋ก์ปค์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ชจ๋ ํ์ฌ ํ๋กํ ์ฝ ๋ณํ์ ํฌํจํ์ฌ ์์ ํ STOMP ์ฌ์์ ์ง์ํฉ๋๋ค. ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๋ฉ์์ง ๋ธ๋ก์ปค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋๋ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ WebSocket์ ํตํด STOMP ๋ฐ STOMP๋ฅผ ์ง์ํฉ๋๋ค.
Face API๋ ๊ฐ์ ๊ฐ์ง๋ฅผ ์ํํ์ฌ ์ธ๊ฐ ์ฝ๋์ ์ธ์๋ ์ฃผ์์ ๋ฐ๋ผ ์ผ๊ตด ํ์ ์์ ๋ถ๋ ธ, ๊ฒฝ๋ฉธ, ํ์ค, ๋๋ ค์, ํ๋ณต, ์ค๋ฆฝ, ์ฌํ ๋ฐ ๋๋ผ์์ ๊ฐ์งํ ์ ์์ต๋๋ค.
์น ์์ฑ API๋ ์ฌ์ฉ์๊ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑ ๋ฐ์ดํฐ๋ฅผ ํตํฉ ํ ์ ์์ต๋๋ค. Web Speech API๋ SpeechSynthesis(ํ ์คํธ ์์ฑ ๋ณํ) ๋ฐ SpeechRecognition(๋น๋๊ธฐ ์์ฑ ์ธ์ )์ ๋ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ ๋ฉ๋๋ค.
3์ฐจ์ ๊ทธ๋ํฝ ๋ฐ ์ ๋๋ฉ์ด์
์ ์ฌ๋ฆฌ๊ธฐ ์ํ js library์
๋๋ค.
https://threejs.org/docs/index.html#manual/en/introduction/Creating-a-scene
- ๋น๋ฐ์น๊ตฌ (์๋ด)
- ๋ง์ดํ์ด์ง
์์ธํ ์๋น์ค ํ๋ฉด์ ์ฌ๊ธฐ๋ก!
ํ๋ก์ ํธ๋ ์จ+์คํ๋ผ์ธ ๋ณํ๋์์ต๋๋ค. ํ๋ก์ ํธ ์งํ ๋ฐฉ์์ agail
์ด๊ณ jira๋ฅผ ์ด์ฉํ์ฌ ์คํ๋ฆฐํธ ๊ด๋ฆฌ, Notion์ ์ด์ฉํ์ฌ ์๋ฃ ๊ณต์ ๋ฐ ์์นด์ด๋ธ๋ฅผ ํ์์ต๋๋ค.
์๋ฒ๋ AWS EC2 ubuntu๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
- openvidu ์๋ฒ : 8443
- ์๋น์ค ํฌํธ ๋ฒํธ : 443
- ๋ฐฑ์๋ ํฌํธ ๋ฒํธ : 8081
- ํ๋ก์ ํธ ๋น๋ ํ ์๋ฒ์ ์ด๋
- ์คํ
- (๋ฐฑ์๋) Dockerํ์ผ์ ์ด์ฉํ์ฌ docker buildํ start
- (ํ๋ก ํธ) distํ์ผ์ ๊ฒฝ๋ก (/var/www)์ ์ด๋ ํ nginx restart
์๋ฒ๋ letsencrypt๋ฅผ ์ฌ์ฉํ์ฌ ssl ์ค์ ํ์ต๋๋ค.
figma๋ฅผ ์ฌ์ฉํด ์๋น์ค์ ์ด์์ ์์ฑํฉ๋๋ค. ์์ด๋ค์ด ์ฌ์ฉํ๋ ์๋น์ค์ธ ๋งํผ ์ฌ์ฉ์ ์นํ์ ์ด๊ฒ ์ปดํฌ๋ํธ ๋จ์๋ก ๋์์ธํ์ผ๋ฉฐ ๋ฐฉ๊ณผ์ ๋ง์ค์ฝํธ ์บ๋ฆญํฐ ์น๋
๋ ๊ทธ๋ ธ์ต๋๋ค.
- ํ ์๊ฐ
ํ์ค์ | ๊น์๋น | ์ดํ์ฐ | ์ก๋ค๋น | ๊น์งํธ | ์ ์๋น |
---|---|---|---|---|---|
Leader & Frontend | Frontend | Frontend | Backend | Backend | Backend |
ํผ๋๋ฐฑ | ๋น๋ฐ์น๊ตฌ | ํ์์์ | User | ๊ฒ์๋ฌผ | ์์ |
- ๊น์๋น
๋ง์ฐํ๊ฒ ์๊ฐํ๋ ๊ฒ๋ค์ด ์ค์ ๋ก ๊ตฌํ๋๋ ๊ฒ์ ๋ณด๋ ์ด๋ค ์ฃผ์ ๋ฅผ ํด๋ ์ํ์๊ฒ๊ฐ๋ค๋ ์๊ฐ์ด ๋ญ๋๋ค. ๋ถ์กฑํ ์ ๋ฅผ ์ด๋์ด์ฃผ๋ ํ์๋ค์ด ์์ด์ ํด๋ผ ์ ์์๋ ๊ฒ๊ฐ์ต๋๋ค. ๋ถ์กฑํ์ ์ด ๋ง์๋๋ฐ ํ์๋คํํ ์ ๋ง ๋ง์ด ๋ฐฐ์ด ๊ฒ ๊ฐ์ต๋๋ค. ํนํ๋๋ ์ํด๋ด ์๋น~
- ๊น์งํธ
์ฒ์์ผ๋ก ๋ง์ ์น๊ตฌ๋ค๊ณผ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ฐ๋ฆฌ๋ง์ ์๊ฐ์ผ๋ก ์๋น์ค๋ฅผ ๋ง๋ ๋ค๋๊ฒ ๋๋ฌด ์ฌ๋ฏธ์์์ต๋๋ค. ํ์ง๋ง 7์ฃผ๋ผ๋ ์๊ฐ์ด ๋๋ฌด๋ ์งง์ ์ ์ค์ค๋ก๊ฐ ์์ง๊น์ง ๋ฐฐ์ธ์ ์ด ๋๋ฌด ๋ง๋ค๋์ ์ ๋๊ฒผ๊ณ ๋์ค์ ๊ธฐํ๊ฐ ๋๋ค๋ฉด ์ง๊ธ ํ์๋ค๊ฐ ๋ค์ํ๋ฒ ํ๋ก์ ํธ๋ฅผ ํ๊ณ ์ถ์ต๋๋ค.
- ์ก๋ค๋น
๋ง์ ์ฌ๋๋ค๊ณผ ์ญํ ์ ๋๋ ์ ๋๋ก ํด๋ณธ ์ฒซ ํ๋ก์ ํธ๋ผ ์๋กญ๊ฒ ์๊ฒ ๋ ๊ฒ ๋ง์๊ณ ์ฌ๋ฐ์์ต๋๋ค. ์ ์ ๊ด๋ จ ๋ก์ง์ ๋งก์๋๋ฐ security ๊ด๋ จํด์ ๋ ๊ผผ๊ผผํ๊ฒ ๊ณต๋ถํด์ ๋ค์ํ๋ก์ ํธ ๋ณด์ํด๋ณด๊ณ ์ถ์ต๋๋ค. 7์ฃผ ์ฌ์ด์ ์ป์ด๊ฐ ๊ฒ์ด ๋ง์ ์ข์๊ณ ๋ค๋ค ๊ณ ์ ๋ง์ผ์ จ์ต๋๋ค ํนํ๋๋ ํ์ดํ !
- ์ดํ์ฐ
์ฒ์ ์์ํ ๋๋ 7์ฃผ์์ ๊ณผ์ฐ ๋ค ์์ฑํ ์ ์์๊น ์ถ์๋๋ฐ ํ์๋ค๊ณผ ๊ฐ์ด ๋์๊ฐ๋ฉฐ ๊ฐ๋ฐํด์ ์ ๋ง๋ฌด๋ฆฌํ ์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊น ํ๋ก์ฐ, ์ง๋ผ ๋ฑ ํ์ ํด ์ฌ์ฉ์ ์ต์ํด์ง ์ ์์๊ณ ํ์๋ค์๊ฒ ๋ง์ด ๋ฐฐ์ ์ต๋๋ค! ํนํ๋๋ ์ด์ฌํ ํ์ ๐ช
- ์ ์๋น
๋ง์ ๊ฒ์ ๋ฐฐ์ฐ๊ณ ๋๊ผ๋ ํ๋ก์ ํธ์์ต๋๋ค. ์ฒ์ ํด๋ณด๋ ๊ฒ์ด ๋ง์์ ์ด๋ ค์ ์ง๋ง ์ฌ๋ฏธ์์์ต๋๋ค. ๋ชจ๋์ ํจ๊ป ํ์ ํด์ ์ฆ๊ฑฐ์ ์ต๋๋ค. ๋ ๋ฐฐ์ธ ์ ์์ด์ ์ข์์ต๋๋ค. ๋ค๋ค ํ์ดํ !
- ํ์ค์
์ข์ ํ์๋ค๊ณผ ์ข์ ์๋น์ค๋ฅผ ๋ง๋ค ์ ์์ด์ ๋ป ๊น์ 7์ฃผ์์ต๋๋ค. ํ์ฅ์ผ๋ก์จ ๋ถ์กฑํ ์ ์ด ๋ง์์ง๋ง ์ ๋ฐ๋ผ์์ค์ ํ๋ก์ ํธ๋ฅผ ์ ๋ง๋ฌด๋ฆฌํ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ๋๋ ๊ทธ๋๋ก ํนํ ํ๋ก์ ํธ๋๋ ๊ฐ์ด ํ๋ด๋ณด์