"์ผ, ๋ ์๋จธ๋ฆฌ ์๋๊ฒ ๋์, ์๋๊ฒ ๋์??"
"์... ์คํ์ผ ์ข ๋ฐ๊พธ๊ณ ์ถ์๋ฐ, ๋จธ๋ฆฌ ์ด๋ป๊ฒ ํ์ง???"
์ฌ๋ฌ๋ถ, ๋จธ๋ฆฌ๋ ๋ฐ๊พธ๊ณ ์ถ์๋ฐ, ๋ํํ
์ ์ด์ธ๋ฆด์ง๋ ๋ชจ๋ฅด๊ฒ ๊ณ ... ์ง์ ํด๋ณด๊ธฐ์๋ ๋ง์ค์ธ ๊ฒฝํ์ด ์์ผ์ ๊ฐ์?
๋์๊ฒ ์ด์ธ๋ฆฌ๋ ์คํ์ผ์ ์ ๊ตํ๊ฒ ์ถ์ฒ๋ฐ๊ณ , AI๋ฅผ ์ฌ์ฉํด ์์ฐ์ค๋ฝ๊ฒ ํค์ด๋ฅผ ๋ฐ๊ฟ๋ณผ ์ ์๋ ์๋น์ค 'ํค์ด๋น'๋ฅผ ์ฒดํํด๋ณด์ธ์!
- ์๋น์ค ์์
- Google Play Store ๋ทฐํฐ๋ถ์ผ ์ธ๊ธฐ์ฐจํธ 6์ & ๋์ ์ฌ์ฉ์ 10๋ง+
- SW ๋ง์์คํธ๋ก ์ฐ์ ํ๋ก์ ํธ์ ์์( ์์ 14% )
์ผ๊ตดํ ๋ถ์ ๊ธฐ๋ฅ ๊ตฌํ๊ณผ์
- ๊ธฐ์กด์ ์ผ๊ตดํ ๋ถ๋ฅ๊ธฐ์ค์ด ์ ๋ฌธ๊ฐ๋ค๊ณผ ์ธํฐ๋ทฐํ ๊ฒฐ๊ณผ ์ ํฉํ์ง ์๋ค๋ ๊ฒฐ๋ก
- ์ ๋ฌธ๊ฐ๋ค๊ณผ ํจ๊ป ์ผ๊ตดํ ๋ถ๋ฅ ๋ฐฉ์ ๊ตฌ์ถ, 5 ๊ฐ์ ์ผ๊ตด ํํ๋ก๋ถํฐ ํค์ด์ ์ํฅ์ ์ฃผ๋ 21 ๊ฐ์ง ์ผ๊ตดํ ๊ตฌ์ถ
์๋ก์ด ๋ถ๋ฅ๊ธฐ์ค์ ๋ง๋ จํ๊ธฐ์ ๊ธฐ์กด ๋ฐ์ดํฐ์ ์ ์ฌ์ฉํ ์ ์๋ ๋ฌธ์ ๋ฐ์. ์์ ์ ์ผ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ ์ด๋ฏธ์ง ( Kaggle(niten19/face-shape-dataset), github(a312863063/seeprettyface, CelebV-HQ/CelebV-HQ) ๋ฑ )๋ฅผ ์ด์ฉํ์ฌ ์๋ก์ด ๋ฐ์ดํฐ ์ ๊ตฌ์ถ, ์ด๋ฏธ์ง ์ฆ๊ฐ ๊ธฐ์ ์ ํ์ฉํ์ฌ ๊ตฌ์ถํ ๋ฐ์ดํฐ ์ ์ ํ์ง ํฅ์
๊ด๋์ ํฑ ํน์ง์ ๋ถ๋ฆฌํ๊ณ ์ผ๊ตด์ ์ธก๋ฉด ๋น์จ์ ๋ ๋ฆฝ์ ์ผ๋ก ๋ถ์ํ๋ ๋ฐฉ๋ฒ์ ํตํด ๋ชจ๋ธ๋ง์ ์งํ ๊ธฐ์กด ๋ชจ๋ธ๊ณผ ๋ฌ๋ฆฌ ์ผ๊ตด ๋น์จ, ๊ด๋ ๋ฐ ํฑ ํน์ง์ ๋์์ ํ๊ฐํ๋ ๊ฒ์ด ์๋, ์ฐ๋ฆฌ์ ์ผ๊ตด ๋ถ๋ฅ ๊ธฐ์ค์ ์๋ง์ ๋ชจ๋ธ์ ๊ตฌ์ฑํ๊ธฐ ์ํด ๊ธด ํํ์ ๊ณ๋ ํํ์ ๊ฐ์ ์ ์ฌํ ๊ธฐํํ์ ํน์ง์ ๊ฐ์ง ์ผ๊ตด ํํ๋ฅผ ๊ตฌ๋ณํ๋ ๊ฒ์ ์ด์ ์ ๋ง์ถฐ ํ์ต ์งํ ํฑ์ ๊ธฐํํ์ ๋ชจํ์ dlib ๋ชจ๋ธ์ ํ์ฉํ ๋๋๋งํฌ ์ถ์ถ๊ณผ ํจ๊ป ์ ๊ทํ ๋ ๊ฑฐ๋ฆฌ, ๋น์จ ๋ฐ ๊ฐ๋๋ฅผ ๊ณ์ฐํ์ฌ ์ผ๊ตดํ ๋ถ๋ฅ ๋ชจ๋ธ ๊ฐ๋ฐ
๋ณด๊ธฐ
- ํ์ฌ ๋ทฐํฐ์์ฅ์ ํผ์ค๋ ์ปฌ๋ฌ๋ฅผ ์์์ผ๋ก ๋ง์ถคํ ์คํ์ผ์ ๋ํ ๊ด์ฌ์ด ์ปค์ง๋ ์ถ์ธ์ ๋๋ค. ํนํ ํ์ฌ ์์ฅ์ ๋์์๋ ์ ๋ฌธ๊ฐ๋ฅผ ํตํ ํผ์ค๋ ํค์ด ์ง๋จ ์๋น์ค๋ ์ต์ 20๋ง์ ์๋น์ ๊ธ์ก์ ์๊ตฌํ๋ฉฐ ๊ทธ ์์ ๋ํ ๋งค์ฐ ๋๊ธฐ์ ํฐ์ผํ ํ์์ผ๋ก ์ด๋ฃจ์ด์ง.
- ์๋ก์ด ์คํ์ผ๋ก์ ์๋๋ ๋ฆฌ์คํฌ๊ฐ ์กด์ฌํจ. โ์ด์ธ๋ฆฌ์ง ์์๊น๋ด(70.2%)โ ๊ฐ ๊ฐ์ฅ ๋ํ์ ์ธ ์ด์ . (2023.05.21.~2023.05.24, 120๋ช ์ ๋์์ผ๋ก ์งํํ ์ค๋ฌธ์กฐ์ฌ์์) 70.2%๊ฐ ์ด์ธ๋ฆฌ์ง ์์ ๋์ ๋ฆฌ์คํฌ ๋๋ฌธ์ ์๋ก์ด ์คํ์ผ์ ์๋ํ์ง ๋ชปํ๊ณ ์์ผ๋ฉฐ, 81%๊ฐ ์์ ์๊ฒ ์ด์ธ๋ฆฌ๋ ์คํ์ผ์ ๋ํด ์๊ธฐ ์ด๋ ต๋ค๊ณ ๋ตํ์.
- ์๋ํ์ง ์๊ณ ๋ณธ์ธ์๊ฒ ์ด์ธ๋ฆฌ๋ ์คํ์ผ์ ์ฐพ๋ ๊ณผ์ ์ ๋งค์ฐ ์ด๋ ค์. ์ ๋ฌธ๊ฐ์ ์๊ฒฌ์ ๋ฐ๋ฅด๋ฉด, โ์คํ์ผ์ด ์ด์ธ๋ฆฌ๋ ์ ๋๋ฅผ ๊ฒฐ์ ํ๋ ์์๋ ์ ์ ์์ด ๋ง๊ณ โ (ํผ์ค๋ ์ปฌ๋ฌ ์ง๋จ ๊ธฐ์ โํค์คํโ ๋ํ ๊นํ์ธ), โ์์ ๋ณํ์๋ ํฐ ์ฐจ์ด๊ฐ ๋ฐ์ํ๋ ์ผ๊ตด๋ง์ผ๋ก ๊ฐ์ธ์ด ์ด๋ฅผ ํ๋จํ๊ธฐ๋ ์ด๋ ต๋คโ (์คํ์ผ ์ปจ์คํ ๊ธฐ์ โ์คํ์ผ ํ์ฐโ ๋ํ ๊น์กํ)๊ณ ํจ. ์ฆ, ์ค์ค๋ก์๊ฒ ์ด์ธ๋ฆฌ๋ ์คํ์ผ์ด ์ด๋ค ๊ฒ์ธ์ง ํ๋จํ๋ ๊ณผ์ ์์ ์ ๋ฌธ์ ์ธ ์ง์์ ์ํจ.
- ๋ณธ์ธ์๊ฒ ์ด์ธ๋ฆฌ๋ ํค์ด๋ฅผ ์ถ์ฒ ๋ฐ์ ์ ์๋ ์ฑ ๋ด ์ปจ์คํ ์๋น์ค ์ฑ ์๋น์ค์์ ์ผ๊ตดํ ๋ถ์, ํผ์ค๋ ์ปฌ๋ฌ ๊ฒ์ฌ๋ฅผ ํตํด ๋ณธ์ธ์๊ฒ ์ด์ธ๋ฆฌ๋ ํค์ด์คํ์ผ์ ์ถ์ฒ ๋ฐ์ ์ ์๋๋ก ํจ.
- ํค์ด๋น ๊ฐ์ํค์ด์ฒดํ AI ์์ฑ ๊ธฐ์ ์ ํตํด ๋ค์ํ ํค์ด ์คํ์ผ์ ๋ฏธ๋ฆฌ ์ฒดํํด ๋ณผ ์ ์๋๋ก ํ์ฌ, ์ฌ์ฉ์๊ฐ ํน์ ์คํ์ผ์ ๋ํ ๊ถ๊ธ์ฆ์ ์ฌ์ง ํ๋ฆฌํฐ์ ํค์ด ๋ณ๊ฒฝ์ ํตํด ํด์ํ ์ ์์. ๋ํ ๋์์ด๋์ ํค์ด ์๋ด ์ค ์ด์ธ๋ฆฌ๋ ์คํ์ผ์ ์ฐพ์ ๋ ์ค์๊ฐ์ผ๋ก ํน์ ์คํ์ผ์ ์์ ์ ์ผ๊ตด์ ์ ์ฉํด๋ณผ ์ ์๊ฒ ํด ์๋ด์ ์ง์ ๋์.
๋ณด๊ธฐ
๐ก ๊ฐ์ค: ํค์ด์ถ์ ๊ณผ AI๊ฐ์ํค์ด์ฒดํ๊ธฐ๋ฅ์ ํตํด ๋์ ์์์ ํผ์ค๋ ํค์ด์์ฅ์ ๋ณํ์ํฌ ์ ์์ ๊ฒ์ด๋ค.
- ์ ๋ฌธ์ง์ ํตํ ๋ก์ง ๋ถ์ ๋ฐ ๋๋ฉ์ธ ์ง์ ํ์ต ๊ทธ๋ฆฌ๊ณ ๋น ๋ฅธ ๋ฐฐํฌ๋ฅผ ํตํด ๊ฐ์ค์ ๊ฒ์ฆํ์ต๋๋ค.
- ์ ๋ฌธ์ง์ ๊ธฐ๋ฐ์ผ๋ก ํ ๋๋ฉ์ธ์ง์ ํ์ต, ๋ก์ง ๊ฒ์ฆ
- ๋น ๋ฅธ ์๋น์ค ์ถ์๋ฅผ ํตํ ๊ฐ์ค ๊ฒ์ฆ
- ํผ์ค๋ ํค์ด ์ถ์ฒ ๊ธฐ๋ฅ ์ถ์ ํ 862๋ช ์ ์ฌ์ฉ์ ์ ์น
Java, Spring Boot, JPA, Python, FastAPI MySQL, RabbitMQ, Redis, Diffusion AI, AWS, Docker, Github Action
Back-end ( ํ์ ๊ตฌ์ฑ : Back-end 1, AI 1, Front-end 1 )
-
๋น์ฉ ์ ๊ฐ ํด๋ผ์ฐ๋ ์ํคํ ์ฒ ์ค๊ณ
- GPU์๋ฒ๋ก ์ธํ ๊ณ ๋น์ฉ ๋ฌธ์ ๋ฅผ CloudWatch Event, Spot ์ธ์คํด์ค, lambda๋ฅผ ํ์ฉํ ์ํคํ ์ฒ ์ฌ์ค๊ณ๋ฅผ ํตํด ํด๋ผ์ฐ๋ ๋น์ฉ 65% ์ ๊ฐ (๊ด๋ จ ๋ด์ฉ : GPU์๋ฒ๋น์ฉ ์ ๊ฐํ๊ธฐ-1, GPU์๋ฒ๋น์ฉ ์ ๊ฐํ๊ธฐ-2)
- ๋ฐ์ดํฐ ์ ์ค์ ํด๊ฒฐ์ ์ํ RabbitMQ ๋ฉ์ธ์ง ๋๊ธฐ์ด ์์คํ ๊ตฌ์ถ (๊ด๋ จ ๋ด์ฉ : RabbitMQ ์ ์ฉ๊ธฐ)
-
API ์ฑ๋ฅ ๊ฐ์
- EHCache๋ฅผ ํ์ฉํ ์ฟผ๋ฆฌ ์บ์ฑ์ ํตํด API ์ฑ๋ฅ (34 TPS โ 71 TPS)๋ก ๊ฐ์ (๊ด๋ จ ๋ด์ฉ : Ehcache๋ฅผ ํ์ฉํ API ์ฑ๋ฅ๊ฐ์ )
- ์๋ฒ์ ๋ฆฌ์์ค ๋ญ๋น๋ฅผ ๋ฐฉ์งํ๊ธฐ์ํด Redis๋ฅผ ํ์ฉํ์ฌ API ์ค๋ณต์์ฒญ ๋ฐฉ์ง ๊ตฌํ (๊ด๋ จ ๋ด์ฉ : Redis API ์ค๋ณต์์ฒญ ๋ฐฉ์ง)
- Pre-signed URL์ ๋์ ํ์ฌ ์ด๋ฏธ์ง ์ ๋ก๋ ์ ๋ฐ์ํ๋ ์๋ฒ์ ๋น๋ฒํ ํ์ผ I/O ์์ ๊ณผ ๋คํธ์ํฌ ์ง์ฐ์ ๋ฐ๋ฅธ ์๋ ์ ํ๋ฅผ ๊ฐ์
-
๊ธฐ๋ฅ ๊ฐ๋ฐ
- JPA, QueryDSL์ ํ์ฉํ Restfu API ๊ฐ๋ฐ
- ๋น๋๊ธฐ & Non-blockingย ๋ฐฉ์์ ๋์ ํ์ฌ ์ฒ๋ฆฌ ์ฑ๋ฅ ๊ฐ์
- AOP์ Exception Handler๋ฅผ ์ด์ฉํ ๋ก๊น
-
CI/CD Workflow ๊ตฌ์ถ
- AWS & Docker & Github Actions & codeDeploy๋ฅผ ์ด์ฉํ CI/CD ๋ฌด์ค๋จ ๋ฐฐํฌ ์๋ํ ๊ตฌ์ถ
-
WEB ๊ฐ๋ฐ (์ผ๊ตดํ ๋ณด๊ณ ์ ๊ณต์ ํ์ด์ง, ํ๋ก์ ํธ ํํ์ด์ง)