JAVA ๋ฅผ ํตํด ๋ค์ํ API ์๋ฒ๋ฅผ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค.
CI-CD ์๋ ๊ด์ฌ์ด ๋ง์ DevOps + ๋ฐฑ์๋ ๊ฐ๋ฐ์์
๋๋ค.
1) ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
- Java (8, 11, 17)
> Spring boot + Data JPA (+querydsl), MyBatis
- Shell script
2) ๋ฐฐํฌ ํ๊ฒฝ
- Linux
- Centos7
- Redhat7
- Ubuntu
3) ๋ฐ์ดํฐ๋ฒ ์ด์ค
- RDBMS
- MySQL
- MariaDB
- SQLITE
- NO-SQL
- REDIS
4) ๋ฉ์ธ์ง ๋ฏธ๋ค์จ์ด
- Apache kafka
- RabbitMQ
5) CI/CD
- Jenkins
- GIT
- Docker(+compose)
6) Cloud
- AWS
- Azure
- NCP
7) IDE
- Intellij IDEA
- VIM
1) SKB ๋
น์ทจ ์๋ฒ ๊ฐ๋ฐ
1. ๊ฐ์
- ์ด๋ ํต์ ํตํ ์๋น์ค ์ค์ ์๋น์ค ์ฌ์ฉ์(๋ฐ์ , ์ฐฉ์ )์ ์์ฑ์ ๋
น์ทจํ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ํ๋ก์ ํธ
- ํตํ ๊ฐ์ ์๋น์ค ์ ๊ณต ์๋ฒ(SIP stack), ์ฆ ์๊ทธ๋ ์ฒ๋ฆฌ ์๋ฒ์ ์์ฑ ํธ๋ ํฌ(RTP trunk) ๋ฆด๋ ์ด ์๋น์ค ์ ๊ณต ์๋ฒ, ์ฆ ๋ฏธ๋์ด ์ฒ๋ฆฌ ์๋ฒ๋ก ๊ตฌ๋ถํ๋ ํตํ ์๋น์ค ๊ฐ๋ฐ ํ๋ก์ ํธ
2. ๊ธฐ๊ฐ
- 2020.08~2021.10(1๋
3๊ฐ์)
3. ๊ธฐ์ ๋ฐ ๋ด๋น ํํธ
- ๊ฐ๋ฐ ์ธ์ด : JAVA (JDK 8)
- ํจํค์ง ๋ฐฐํฌ ํ๊ฒฝ : Linux (Centos7)
- ๊ฐ๋ฐ ์ธ์ : ์๊ทธ๋ ์๋ฒ - 2๋ช
/ ๋ฏธ๋์ด ์๋ฒ โ 1๋ช
- ๋ด๋น ํํธ ๋ฐ ๊ฐ๋ฐ ๋ด์ฉ
> ๋ฏธ๋์ด ์๋ฒ : ์๋ฒ์ ์ฐ๋ํ๊ธฐ ์ํ API ๊ท๊ฒฉ๊ณผ ์์ฑ ํธ๋ ํฌ๋ฅผ ๋ฆด๋ ์ดํ๊ธฐ ์ํ UDP(L4) ๋จ ํ๋ก๊ทธ๋๋ฐ๊น์ง ์งํ
> ์คํ์์ค API : ๋ฉ์ธ์ง ๋ฏธ๋ค์จ์ด๋ก๋ RabbitMQ ๋ฅผ ์ฌ์ฉํ์ฌ json ํฌ๋งท์ผ๋ก ์ฐ๋
> ๋คํธ์ํฌ ํ๋ ์์ํฌ๋ก๋ Netty ๋ฅผ ์ฌ์ฉํ์๊ณ , ๊ธฐ๋ณธ์ ์ธ ํ์ผ ์ฒ๋ฆฌ(์ฐ๊ธฐ, ์ฝ๊ธฐ) ๋น์ฆ๋์ค ๋ก์ง์ ๊ฐ๋ฐ
4. ์ฑ๊ณผ ๋ฐ ์ฑ์ฅ ํฌ์ธํธ
- ์๊ทธ๋ ์๋ฒ ๊ฐ๋ฐ ์ธ์๋ค๊ณผ ๊ฐ์ด ์๋
ผํจ์ผ๋ก์จ ์ฑ๋ฅ ์ต์ ํ์, ๋ณด๋ค ์ ์ฐํ ์ ์ง ๋ณด์๋ฅผ ์ํ API ๋ฅผ ์ ๊ณต ๋ฐ ๊ณ ๊ฐ(SKB) ์๊ตฌ์ฌํญ ์ฒ๋ฆฌํ๊ฒ ๋์ด ํ์ํฌ์ ์ค์์ฑ๊ณผ ์ ์ฐํ๊ณ ๊ฐ๋ฐฉ๋ ์์ธ๋ก ๊ฐ๋ฐ์ ์ํ๊ฒ ๋๋ ๊ณ๊ธฐ๊ฐ ๋จ.
- ๋ฉ์ธ์ง ๋ฏธ๋ค์จ์ด(RabbitMQ)๋ฅผ ํตํ API ์ฐ๋ ๋ฐ ์ค์ ๋ฏธ๋์ด ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ธฐ๋ฒ ๊ฐ๋ฐ ์ญ๋ ์ต๋
- ์๋ฐ์ Netty ๋คํธ์ํฌ ํ๋ ์์ํฌ๋ฅผ ํตํ ํจ์จ์ ์ธ ๋คํธ์ํฌ ๊ฐ๋ฐ ์ญ๋ ์ต๋
- JAVA API ๊ฐ๋ฐ ์ญ๋ ๊ฐํ
(์๋น์ค๋ช
: SKB ์ฌํ๋ ์ฝ๋ฉ
https://biz.skbroadband.com/page.do?menu_id=P01030300)
2) SKT ๋ณด์ด์ค๋ทฐ ๋๊ตฌ์ฝ ๋ฏธ๋์ด ์๋ฒ ๊ฐ๋ฐ
1. ๊ฐ์
- ๊ณ ๊ฐ๊ณผ AI, AI ์ค๊ณ๋ฅผ ํตํ ๊ณ ๊ฐ๊ณผ ์๋ด์ฌ ๊ฐ์ ๋ฏธ๋์ด ๋ฆด๋ ์ด ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ํ๋ก์ ํธ
2. ๊ธฐ๊ฐ
- 2021.03~2022.03(1๋
1๊ฐ์)
3. ๊ธฐ์ ๋ฐ ๋ด๋น ํํธ
- ๊ฐ๋ฐ ์ธ์ด : JAVA (JDK 8)
- ํจํค์ง ๋ฐฐํฌ ํ๊ฒฝ : Linux (Centos7)
- ๊ฐ๋ฐ ์ธ์ : ์๊ทธ๋ ์๋ฒ - 2๋ช
/ ๋ฏธ๋์ด ์๋ฒ โ 1๋ช
- ๋ด๋น ํํธ ๋ฐ ๊ฐ๋ฐ ๋ด์ฉ
> ๋ฏธ๋์ด ์๋ฒ : ์์ฑ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฏธ๋์ด ์์ง(์ธ๋ถ ์
์ฒด ์ฌ์ฉ)๊ณผ API ์ฐ๋์ ํตํด ๋ฏธ๋์ด ์๋น์ค๋ฅผ ์ ๊ณตํ๋๋ก ๊ฐ๋ฐ
> ์๊ทธ๋ ์๋ฒ๋ฅผ ํตํด ํตํ๊ฐ ์์๋๋ฉด ๋ฏธ๋์ด ์๋ฒ๋ก ์ธ์
์ ๋ณด๋ฅผ ๋ด๋ ค์ฃผ๊ฒ ๋์ด ๋ฐ์ ์์ ์ฐฉ์ ์์ ์์ฑ์ด ๋ฏธ๋์ด ์๋ฒ๋ฅผ ํตํด AI ์๋ฒ๋ก ์ฐ๋๋์ด์ STT, TTS ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ธฐ๋ฅ(API) ๊ฐ๋ฐ
> ์คํ์์ค API : ๋ฉ์ธ์ง ๋ฏธ๋ค์จ์ด๋ก๋ RabbitMQ ๋ฅผ ์ฌ์ฉํ์ฌ json ํฌ๋งท์ผ๋ก ์ฐ๋
4. ์ฑ๊ณผ ๋ฐ ์ฑ์ฅ ํฌ์ธํธ
- ์ฒ์ ๊ฐ๋ฐํ ๋ฏธ๋์ด ์๋ฒ ๊ฐ๋ฐ ๋๋ ๋ด๋ถ ํ๋ผ๋ฆฌ๋ง ํ์ํ์ฌ ๊ฐ๋ฐํ์์ง๋ง, ์ด ํ๋ก์ ํธ์์๋ ์ธ๋ถ ์
์ฒด์๋ ์ง์ ์ปจํํ์ฌ ํ์ํ๋ API ๊ฐ๋ฐ
- ์ฒซ ์ธ๋ถ ์
์ฒด ์ปจํ์ด๋ผ ์๊ฒฌ ์กฐ์จ์ด ๋ง์ด ์ด๋ ค์ ์ง๋ง ์ค๋ ๊ธฐ๊ฐ ๋์์ ํ์
์ ํตํด ๋ณด๋ค ์ต์ํ ์ปค๋ฎค๋์ผ์ด์
์ญ๋ ๊ฐํ
- JAVA API ๊ฐ๋ฐ ์ญ๋ ๊ฐํ
(ํ๋ก์ ํธ ๊ด๋ จ ๊ธฐ์ฌ
URL: https://www.hankyung.com/society/article/202207184325Y)
3) ๊ฐ์ ๊ณต์ฐ ํ๋ซํผ ๋ฏธ๋์ด ์๋ฒ ๊ฐ๋ฐ
1. ๊ฐ์
- ๋ฉํ๋ฒ์ค(metaverse)๋ฅผ ํตํ ๊ณต์ฐ์์ ๊ฐ์ ๊ณต์ฐ์ ์คํธ๋ฆฌ๋ฐํ๋ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๋ ํ๋ก์ ํธ
- ๊ณต์ฐ์๊ฐ ์์ ์ ๊ณต์ฐ์ฅ์ ๊ฐ์ ๊ณต๊ฐ์ ํตํด ๊พธ๋ฉฐ์ ์ํ๋ ์คํธ๋ฆผ๊ณผ ํจ๊ป ๊ณต์ฐ ์๋ฒ๋ก ์คํธ๋ฆฌ๋ฐ์ ๋ฑ๋กํ๋ฉด ์ฐธ์ฌ์๊ฐ ํด๋น ๊ณต์ฐ์์ ๊ณต์ฐ์ฅ์ ์ฐธ์ฌํ๋ ๋ฏธ๋์ด ์๋น์ค
2. ๊ธฐ๊ฐ
- 2021.10~2022.12(1๋
2๊ฐ์)
3. ๊ธฐ์ ๋ฐ ๋ด๋น ํํธ
- ๊ฐ๋ฐ ์ธ์ด : JAVA (JDK 11)
- ํจํค์ง ๋ฐฐํฌ ํ๊ฒฝ : Linux (Centos7)
- ๊ฐ๋ฐ ์ธ์ : ์ธ์
๊ด๋ฆฌ ์๋ฒ(์น API ์ ์ฐ๋) - 2๋ช
/ ๋ฏธ๋์ด ์๋ฒ โ 1๋ช
- ๋ด๋น ํํธ ๋ฐ ๊ฐ๋ฐ ๋ด์ฉ
> ๋ฏธ๋์ด ์๋ฒ : ์น API ๋ฅผ ํตํ ์ธ์
๊ด๋ฆฌ ์ ๋ณด๋ค์ ์ธ์
์๋ฒ์์ ์ ๋ฌ ๋ฐ๊ฒ ๋๋ฉด ๊ณต์ฐ์์ ์คํธ๋ฆผ์ ์ ์ฅํ์ฌ ์ฐธ์ฌ์๊ฐ ์ฐธ์ฌํ์๋ง์ ์ต๋ํ ์ ์ latency ๋ฅผ ํตํด ๋ฏธ๋์ด ์คํธ๋ฆฌ๋ฐ์ ์ ๊ณตํ๋๋ก ๊ฐ๋ฐ
> ๊ณต์ฐ์์ ์คํธ๋ฆผ์ RTMP ์คํธ๋ฆผ์ผ๋ก ์ค๊ธฐ ๋๋ฌธ์ ํด๋น ์คํธ๋ฆผ์ ๋ฐ์ RTMP ์๋ฒ, ์ฐธ์ฌ์๊ฐ ์น API ์์ฒญ์ ํตํด ๊ณง๋ฐ๋ก ์คํธ๋ฆผ์ ์์ ํ ์ ์๋๋ก ํ๋ MPEG-DASH ์๋ฒ๋ฅผ ๊ฐ๋ฐ
> ์คํ์์ค API : ์ค์๊ฐ ๋ฏธ๋์ด ์คํธ๋ฆฌ๋ฐ์ ์ ์ ์ง์ฐ์จ์ ํตํด ๋์ฉ๋ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ์๋น์ค๋ฅผ ์ ๊ณตํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฉ์ธ์ง ๋ฏธ๋ค์จ์ด๋ Kafka ๋ฅผ ์ฌ์ฉ, RabbitMQ ์ ๋ณํํ์ฌ ์ฌ์ฉ
4. ์ฑ๊ณผ ๋ฐ ์ฑ์ฅ ํฌ์ธํธ
- ์ด์ ์ ์ํํ ๋ ๊ฐ์ JAVA ํ๋ก์ ํธ์์๋ API ์ฐ๋๊ณผ ์์ฑ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ง ๊ฐ๋ฐํ์์ง๋ง, ์ด ํ๋ก์ ํธ์์๋ ํด๋น ์ฌํญ์ ํฌํจํ ๋ฟ๋ง ์๋๋ผ ์์ ๋ฐ์ดํฐ๋ ์ฒ๋ฆฌํด์ผํ๊ธฐ ๋๋ฌธ์ ๋ณด๋ค ๋์ ์์ค์ ๋ฏธ๋์ด ์๋ฒ ๊ฐ๋ฐ ์ญ๋ ๊ฐํ
- ์ธ๋ถ ์น ๋ธ๋ผ์ฐ์ API ์ฐ๋ ๋ฟ๋ง ์๋๋ผ ๋ด๋ถ ์ธ์
์๋ฒ์์ API ์ฐ๋ ๊ฐ๋ฐ๋ ํ์ํ์๊ณ , RTMP handshake, DASH ์์ ์ํํ๋ HTTP API ์ฐ๋ ๊ฐ๋ฐ์ ์งํํ์ฌ JAVA ๋ฐฑ์๋ API ๊ฐ๋ฐ ์ญ๋ ๊ฐํ
- ์ธ์
๊ณผ ๋ฏธ๋์ด ๋ฐ์ดํฐ ์ฑํฌ๊ฐ ์์ฃผ ์ค์ํ๊ธฐ ๋๋ฌธ์ ์ํ(state)๋ฅผ ๊ฐ์ง๋๋ก ๊ฐ๋ฐํ์ฌ FSM(Finite State Machine) ๊ฐ๋ฐ ์ญ๋ ๊ฐํ
- ์ค์๊ฐ ์๋น์ค๋ฅผ ์ํด ๋ฎ์ ์ง์ฐ์จ ํ๋ณด๋ฅผ ์ํ ์๋ฒ ์ฑ๋ฅ๊ณผ JVM ์ฑ๋ฅ ํ๋ ๊ธฐ์ ๋ฐ JProfiler ๋๊ตฌ๋ฅผ ํตํด์ ์์คํ
๋ฆฌ์์ค(ํ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๋ฐ cpu ์ ์ ์จ ๋ฑ)์ ๋ชจ๋ํฐ๋งํ๋ ์ญ๋ ๊ฐํ
4) WebRtc to RTSP Gateway ์๋ฒ ๊ฐ๋ฐ (๊ฐ์ฑ ์ธ์ง ๋ฏธ๋์ด ๋ฆด๋ ์ด ์๋ฒ)
1. ๊ฐ์
- ํ์๊ณผ ๊ต์ฌ๊ฐ ์๊ฒฉ์ผ๋ก ์์
ํ๊ธฐ ์ํ ํ๋ซํผ์์ ๊ต์ฌ๊ฐ ์ก์ถํ๋ ์์ค ๋ฏธ๋์ด ์๋ฒ๋ก ๋ถํฐ ์ค๊ฐ์์ ๋ฏธ๋์ด๋ฅผ ํ์๋ค์๊ฒ ๋ฆด๋ ์ดํ๋ ์๋ฒ
2. ๊ธฐ๊ฐ
- 2022.09~2022.11(3๊ฐ์)
3. ๊ธฐ์ ๋ฐ ๋ด๋น ํํธ
- ๊ฐ๋ฐ ์ธ์ด : JAVA (JDK 11)
- ํจํค์ง ๋ฐฐํฌ ํ๊ฒฝ : Linux (Centos7)
- ๋ด๋น ํํธ ๋ฐ ๊ฐ๋ฐ ๋ด์ฉ : ์์ค ๋ฏธ๋์ด๋ฅผ ์์ฑํ๊ธฐ ์ํ ์๋จ ์๋น์ค๋ ๋ค๋ฅธ ํ์๋ค์ด ์ ์ํ๊ณ , ๋ฏธ๋์ด๋ฅผ ๋ฉํฐ์บ์คํ
์ผ๋ก ์ ๋ฌํด์ฃผ๋ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๊ฐ๋ฐ
> ์์ค ๋ฏธ๋์ด ์๋ฒ๋ WebRTC ํ๋กํ ์ฝ์ ํตํ์ฌ ๋ฏธ๋์ด๋ฅผ ์ ์ฅํ๊ณ ์๊ณ ํ์์ด RTSP ํ๋กํ ์ฝ๋ก ๋ฏธ๋์ด๋ฅผ ์์ฒญํ๋ฉด ๋ฏธ๋์ด ๋ฆด๋ ์ด ์๋ฒ๋ RTSP ์๋ฒ๋ก์ ํ์์ RTSP client ์ RTSP handshake ๋ฅผ ์ํํ๊ณ , WebRTC client ๋ก์ ์์ค ๋ฏธ๋์ด ์๋ฒ์ WebRTC ๋ฐ stun ๊ทธ๋ฆฌ๊ณ dtls handshake ๊น์ง ์ํ
> ๊ฐ๋ฐํ ๋ฏธ๋์ด ๋ฐฑ์๋ ์๋น์ค๋ AWS EC2 ๋ฅผ ํตํ์ฌ ์๋ฒ๋ฅผ ๊ตฌ๋ ๋ฐ ์ด์
4. ์ฑ๊ณผ ๋ฐ ์ฑ์ฅ ํฌ์ธํธ
- ์ด ํ๋ก์ ํธ์ ์ํํ๊ธฐ ์ด์ ์ ์์๋ ํด๋ผ์ฐ๋ ์์คํ
์ด์ ๋ฐ ๋ฆฌ๋
์ค ๊ฒฝํ๊ณผ ๋คํธ์ํฌ์ ๋ํ ์ง์๋ค์ ๋ฐํ์ผ๋ก ๋ ๋ง์ ๋คํธ์ํฌ ํ๋กํ ์ฝ๊ณผ ์๋น์ค ๊ฐ๋ฐ ์ญ๋ ๊ฐํ
- ๋์ฉ๋ ํธ๋ํฝ ์๋น์ค์ ๋์ํ๊ธฐ ์ํด ์์คํ
์์์ ํจ์จ์ ์ธ ์ฌ์ฉ ๋ฐ ์ฑ๋ฅ ์ต์ ํ ์ญ๋ ๊ฐํ
1. ์๋น์ค ๊ฐ์
- ๋ง์ด๋ฐ์ดํฐ ์ค๊ฐ ํ๋ซํผ
https://aeit.io
2. ๊ธฐ์ ๋ฐ ๋ด๋น ํํธ
- ๊ฐ๋ฐ
- ๊ฐ๋ฐ ์ธ์ด : JAVA (JDK 17)
- ํจํค์ง ๋ฐฐํฌ ํ๊ฒฝ : Linux (ubuntu 20.04 LTS)
- ๋ด๋น ํํธ ๋ฐ ๊ฐ๋ฐ ๋ด์ฉ
> Kafka ๋ฅผ ํ์ฉํ P2P ํต์ ๋ฐ์ดํฐ ๊ตํ ํ๋กํ ์ฝ ๊ฐ๋ฐ (์น <> ๋ชจ๋ฐ์ผ)
> RabbitMQ ๋ฅผ ํตํ MSA ๊ฐ ํต์ ํ๋กํ ์ฝ ๊ฐ๋ฐ
> Spring boot ๋ฐ QueryDSL ๋ฅผ ํ์ฉํ ์๋น์ค ๊ฐ๋ฐ
- ์ธํ๋ผ
- AWS ๋ฅผ ํ์ฉํ ์๋น์ค ๋ผ์ดํ ์ฌ์ดํด ๋ฐ ํธ๋ํฝ ๊ด๋ฆฌ
> CodePipeline ์ ํ์ฉํ EC2 ์๋ ๋ฐฐํฌ
> ALB ์ WAF ๋ฅผ ํ์ฉํ ๋ถํ์ํ ํธ๋ํฝ ์ ์ด ๋ฐ ์๋น์ค ๋๋ ์ด ์ต์ํ ์์
์งํ
> ํ์๋ฆฌํ๋ฅผ ํ์ฉํ ์ธํ๋ผ ์๊ฐํ ์น ์๋ฒ ๋ณ๋๋ก ๊ฐ๋ฐํ์ฌ ์ ์ํ ์ฅ์ ๋์ ์งํ
2. ์ฑ๊ณผ ๋ฐ ์ฑ์ฅ ํฌ์ธํธ
- ์ด์ ์ ๊ฒฝํํ ๋ฏธ๋์ด ํ๋กํ ์ฝ ๊ฐ๋ฐ์ ํตํ์ฌ ์นดํ์นด์ ํจ๊ป ์ง์ ๋ฐ์ดํฐ ๊ตํ ํ๋กํ ์ฝ์ ๊ฐ๋ฐํจ์ผ๋ก์จ ์ํํ P2P ํต์ ๊ฐ๋ฐ์ ๊ธฐ์ฌ
- ์๋น์ค ๊ฐ๋ฐ ๋ฟ๋ง ์๋๋ผ ์ง์ ํด๋ผ์ฐ๋๋ฅผ ํ์ฉํ ์ธํ๋ผ ์์คํ
์ ๊ตฌ์ฑํ์ฌ ํ๋ก์ ํธ ๋ผ์ดํ ์ฌ์ดํด์ ๊ธฐ์ฌ
- ๋ค์ํ ํ๋ซํผ(์น, ๋ชจ๋ฐ์ผ ๋ฑ) ๊ฐ ํต์ ์ ์ํ API ๊ฐ๋ฐ์ ์ํด ํ๋ซํผ์ ๋
๋ฆฝ์ ์ธ ์๊ณ ๋ฆฌ์ฆ ๋ฐ ์ธํฐํ์ด์ค ๊ฐ๋ฐ ๊ฒฝํ
6) MONGLE ์๋น์ค ๊ฐ๋ฐ
1. ์๋น์ค ๊ฐ์
- ์ํผ ๋์์ ๊ณต์ ๋ฐ ์ผํ๋ชฐ ํ๋ซํผ
https://mongle.com
2. ๊ธฐ์ ๋ฐ ๋ด๋น ํํธ
- ๊ฐ๋ฐ
- ๊ฐ๋ฐ ์ธ์ด : JAVA (JDK 11)
- ํจํค์ง ๋ฐฐํฌ ํ๊ฒฝ : Linux (ubuntu 20.04 LTS)
- ๋ด๋น ํํธ ๋ฐ ๊ฐ๋ฐ ๋ด์ฉ
> AWS S3 ๋ฅผ ํ์ฉํ ๋ฏธ๋์ด ๋ฆฌ์์ค ์ ์ฅ ๋ฐ ์กฐํ > ๋ฐ์ดํธ ํ๋ฌ์ค CDN ์ ์ฌ์ฉํ์ฌ ์น์ฌ์ดํธ์ ๋ฏธ๋์ด ๋ฆฌ์์ค๋ฅผ ์์ ์ ์ผ๋ก ์ ๋ฌ
> ์ผํ๋ชฐ ์๋น์ค์ ํ์ํ ๋ชจ๋ REST API ๊ฐ๋ฐ (์์
๋ก๊ทธ์ธ, ์ํ ๊ด๋ฆฌ, ํ์ ๋ฐ ์
์ฒด ๊ด๋ฆฌ, ์ด๋๋ฏผ ๊ธฐ๋ฅ, ๋ฏธ๋์ด ๋ฆฌ์์ค ๊ด๋ฆฌ ๋ฑ)
> Spring boot ๋ฐ MyBatis ๋ฅผ ํ์ฉํ ์๋น์ค ๊ฐ๋ฐ
- ์ธํ๋ผ
- AWS ๋ฅผ ํ์ฉํ ์๋น์ค ๋ผ์ดํ ์ฌ์ดํด ๋ฐ ํธ๋ํฝ ๊ด๋ฆฌ
> CodePipeline ์ ํ์ฉํ EC2, ECS ์๋ ๋ฐฐํฌ
> ALB ์ WAF ๋ฅผ ํ์ฉํ ๋ถํ์ํ ํธ๋ํฝ ์ ์ด ๋ฐ ์๋น์ค ๋๋ ์ด ์ต์ํ ์์
์งํ
> ํ์๋ฆฌํ๋ฅผ ํ์ฉํ ์ธํ๋ผ ์๊ฐํ ์น ์๋ฒ ๋ณ๋๋ก ๊ฐ๋ฐํ์ฌ ์ ์ํ ์ฅ์ ๋์ ์งํ
3. ์ฑ๊ณผ ๋ฐ ์ฑ์ฅ ํฌ์ธํธ
- ์ผํ๋ชฐ + ๋์์ ์ํผ ํ๋ซํผ ์ง์ ๊ฐ๋ฐ ๊ฒฝํ์ ์์ ๋ค์ํ ์น API ๋ฐ ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋ฐ
- ์๋น์ค ๊ฐ๋ฐ ๋ฟ๋ง ์๋๋ผ ์ง์ ํด๋ผ์ฐ๋๋ฅผ ํ์ฉํ ์ธํ๋ผ ์์คํ
์ ๊ตฌ์ฑํ์ฌ ํ๋ก์ ํธ ๋ผ์ดํ ์ฌ์ดํด์ ๊ธฐ์ฌ
- NICE(๊ณ์ข 1์ ์ธ์ฆ, OTP ๊ธฐ๋ฅ), ์์
๋ก๊ทธ์ธ(kakao, naver, google, apple), CMS(๊ณ์ข ์ถ๊ธ, ์
๊ธ ๊ธฐ๋ฅ) ์ฐ๋ ๋ฑ๊ณผ ๊ฐ์ ๋ค์ํ ์จ๋ ํํฐ ์ฐ๋ ๊ฐ๋ฐ
๐ ํผ์ ๋ง๋ค์ด๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ๋ชฉ์ : C ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ์ TDD ์ ์ฉํ์ฌ ๊ฐ๋ฐํ๊ธฐ ์ํด ์ ์
- ๊ธฐ๊ฐ : 2020.06 ~ 2020.09
- ๊ฒฐ๊ณผ๋ฌผ : https://github.com/Samuel-Jeong/ttlib
- ๊ธฐ์ ์คํ
- Language : C
- ๋ชฉ์ : Posix network ์ฝ๋์ Netty Framework ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ฒด๊ณ์ ์ธ ๋คํธ์ํฌ ์ฝ๋ฉํ๊ธฐ ์ํด ์ ์
- ๊ฒฐ๊ณผ๋ฌผ : https://github.com/Samuel-Jeong/java_network_base_framework
- ๊ธฐ์ ์คํ
- Language : Java
- ๋ชฉ์ : State ๊ธฐ๋ฐ์ ๋น์ฆ๋์ค ๋ก์ง์ด ํ์ํ ๋ ์ฌ์ฉํ๊ธฐ ์ํด ์ ์
- ๊ฒฐ๊ณผ๋ฌผ : https://github.com/Samuel-Jeong/JFSM
- ๊ธฐ์ ์คํ
- Language : Java
- ๋ชฉ์ : ํจ์จ์ ์ธ ๋ฉํฐ ์ฐ๋ ๋ฉ ์์
์ ์ํํ๊ธฐ ์ํด ์ ์
- ๊ฒฐ๊ณผ๋ฌผ : https://github.com/Samuel-Jeong/jscheduler
- ๊ธฐ์ ์คํ
- Language : Java
- ๋ชฉ์ : ํ์ผ IO ๊ณตํต ๊ธฐ๋ฅ ๋ชจ๋ ์ ์
- ๊ฒฐ๊ณผ๋ฌผ : https://github.com/Samuel-Jeong/jFileManager
- ๊ธฐ์ ์คํ
- Language : C
- ๋ชฉ์ : RTSP ๊ธฐ๋ฅ ๊ฐ๋ฐ ๋ฐ ํ
์คํธ๋ฅผ ์ํ ์๋ฒ ์ ์
- ๊ฒฐ๊ณผ๋ฌผ
- RTP : https://github.com/Samuel-Jeong/JRTSP_RTP
- HLS : https://github.com/Samuel-Jeong/JRTSP_HLS
- ๊ธฐ์ ์คํ
- Language : Java
- ๋ชฉ์ : DTLS ๊ธฐ๋ฅ ๊ฐ๋ฐ ๋ฐ ํ
์คํธ
- ๊ฒฐ๊ณผ๋ฌผ : https://github.com/Samuel-Jeong/JDTLS
- ๊ธฐ์ ์คํ
- Language : Java