Smakers ์๋น์ค์ ๋ฐฑ์๋ API ์๋ฒ์ ๋๋ค.
| Category | Technology | Badge |
|---|---|---|
| Language | Java 17 | |
| Framework | Spring Boot 4.x | |
| Persistence | JPA / Hibernate | |
| Build / Test | Gradle / JUnit5 | |
| API Docs | Swagger |
| Category | Technology | Badge |
|---|---|---|
| Cloud Storage | AWS S3 | |
| PDF Generation | iText7 / Thymeleaf | |
| Communication | WebClient | |
| JSON Parsing | Jackson / org.json |
| Category | Technology | Badge |
|---|---|---|
| API Docs | Swagger UI | |
| Testing | JUnit 5 | |
| Test Starter | Spring Test |
๊ฐ๋ฐ ๋ฐ ์คํ์ ์ํด ์๋ ํ๊ฒฝ์ด ํ์ํฉ๋๋ค.
- Java: 17 ์ด์
- IDE: IntelliJ IDEA (Lombok Plugin ์ค์น ํ์)
- Database: MySQL 8.0 ์ด์
- Cloud: AWS S3 Bucket Access (Access Key / Secret Key ํ์)
- Main: ๋ฐฐํฌ ๊ฐ๋ฅํ ์์ ๋ ์ฝ๋ ์ ์ฅ.
- Develop: ๊ฐ๋ฐ ์ค์ธ ์ฝ๋ ํตํฉ ๋ฐ ํ ์คํธ.
- Feature Branches: ๊ฐ๋ณ ๊ธฐ๋ฅ ๊ฐ๋ฐ ํ Develop์ ๋ณํฉ.
- ๋ช ํํ ๊ตฌ์กฐ: ๊ฐ๋ฐ, ํ ์คํธ, ๋ฐฐํฌ ๋จ๊ณ ๊ตฌ๋ถ.
- ์์ ์ฑ: Main์ ํญ์ ๊ฒ์ฆ๋ ์ฝ๋๋ง ์ ์ง.
- ๋์ ๊ฐ๋ฐ: ๊ฐ ๊ธฐ๋ฅ์ ๋ ๋ฆฝ์ ์ผ๋ก ์์ ํด ์ถฉ๋ ์ต์ํ.
ํ ์คํธ ์์ฃผ์ ํ๋ฉด์ ์ธ ํ์ต์ ๋์ด, 7์ข ์ ์ ๋ฐ ๊ธฐ๊ณ ์์ (Drone, V4 Engine, Robot Arm ๋ฑ)์ 3D๋ก ์ง์ ์กฐ๋ฆฝยท๋ถํดํ๋ฉฐ ์๊ฐ์ ์ดํด๋๋ฅผ ๊ทน๋ํํ๊ณ , AI๋ฅผ ํตํด ๊ฐ์ธํ๋ ํ์ต ๊ฒฝํ์ ์ ๊ณตํ๋ ์๋ํ ํฌ ํ๋ซํผ์ ๋๋ค.
๋ณต์กํ ๊ธฐ๊ณ ์ฅ์น์ ๋ด๋ถ ๊ตฌ์กฐ์ ๋ถํ ๊ฐ์ ์ ๊ธฐ์ ์ธ ์ญํ ๊ด๊ณ๋ฅผ 3D ์ธํฐ๋์ ์ผ๋ก ํ์ตํฉ๋๋ค.
์ฌ์ฉ์๊ฐ ํ์ต ์ค ๋จ๊ธด ๋ฉ๋ชจ์ ์ทจ์ฝ์ ์ AI๊ฐ ๋ถ์ํ์ฌ, ๊ธฐ๋ฅยท๊ตฌ์กฐยท์ค๊ฐ๋ ์ค์ฌ์ ๋ง์ถคํ ํด์ฆ๋ฅผ ์์ฑํ๊ณ ํ์ต ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ดํฐํํฉ๋๋ค.
| ์๋น์ค ๋๋ฉ์ธ | ๊ธฐ๋ฅ ์ค๋ช |
|---|---|
| ์์ ๋ฐ ๋ถํ ๊ด๋ฆฌ | 58์ข ์ ์ ๋ฐ ๊ธฐ๊ณ ๋ถํ ๋ฐ ์์ ์ ๋ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, ๋ถํ ๊ฐ์ ๊ณ์ธต ๊ตฌ์กฐ์ ์ฌ์ง ์ ๋ณด๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์๊ฐํํ์ฌ ์ ๊ณตํฉ๋๋ค. |
| ์ํฌํ๋ก์ฐ ์์คํ | ๋ ธ๋์ ์ฃ์ง ๊ธฐ๋ฐ์ ์ธํฐ๋ํฐ๋ธ ์บ๋ฒ์ค๋ฅผ ํตํด ํ์ต ํ๋ฆ์ ์ค๊ณํ๋ฉฐ, Autosave ์์คํ ์ ํตํด ํธ์ง ์ค์ธ ๋ฐ์ดํฐ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋๊ธฐํํฉ๋๋ค. |
| AI ํํฐ ์ฑํ | SSE(Server-Sent Events) ์คํธ๋ฆฌ๋ฐ ๊ธฐ์ ์ ์ ์ฉํ์ฌ AI ๋ต๋ณ์ ์ง์ฐ ์๊ฐ์ ์ต์ํํ๊ณ , ํ์ต ๋งฅ๋ฝ์ ์ ์งํ๋ ์ค์๊ฐ ์ง์์๋ต ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. |
| ๋ง์ถคํ ํด์ฆ ์์ฑ | ์ฌ์ฉ์์ ํ์ต ์์ ์ AI๊ฐ ์ค์๊ฐ ๋ถ์ํ์ฌ ์ต์ ํ๋ ํด์ฆ๋ฅผ ์๋ ์์ฑํ๋ฉฐ, ๋น๋๊ธฐ ์ค๋ ๋ ์ฒ๋ฆฌ๋ฅผ ํตํด ์์ฑ ๋๊ธฐ ์๊ฐ์ ์ต์ ํํฉ๋๋ค. |
| ํ์ต ๋ฆฌํฌํธ ์์ฑ | ์์ฑ๋ ๋ฉ๋ชจ, ์ฑํ ๋ด์ญ, ํด์ฆ ๊ฒฐ๊ณผ๋ฅผ ํตํฉํ์ฌ iText7 ๊ธฐ๋ฐ์ ๊ณ ํด์๋ PDF ๋ฆฌํฌํธ๋ฅผ ์๋ ๋ ๋๋งํ๊ณ ๋ค์ด๋ก๋ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค. |
| ๋ฆฌ์์ค ์๋น ์ต์ ํ | **AWS S3์ CloudFront(OAC)**๋ฅผ ๊ฒฐํฉํ์ฌ ๋์ฉ๋ 3D ์์ ๋ฐ ์ด๋ฏธ์ง ํ์ผ์ ๋ณด์์ฑ ์๊ฒ ๊ด๋ฆฌํ๊ณ , CDN ์บ์ฑ์ ํตํด ์ ์ก ์๋๋ฅผ ๊ทน๋ํํฉ๋๋ค. |
| ์ธํ๋ผ ๋ฐ ๋ฐฐํฌ | GitHub Actions์ Docker๋ฅผ ํ์ฉํ CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ์ฌ ์ด์ ํจ์จ์ฑ์ ๋์ด๊ณ ์์ ์ ์ธ ์๋น์ค ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. |
๋๋ฉ์ธ ์ค๊ณ ๋ฐ ์ธํ๋ผ ์ํคํ ์ฒ ๊ตฌ์ถ
- Domain Design: ์์ /๋ถํ, ๋ฉ๋ชจ, ์ํฌํ๋ก์ฐ ๋๋ฉ์ธ ๋ชจ๋ธ๋ง ๋ฐ CRUD ๊ตฌํ
- Workflow: ์ค์๊ฐ ๋ ธ๋/์ฃ์ง ์ ์ฅ ์์คํ (Autosave) ๋ฐ ๋ฐ์ดํฐ ์ ํฉ์ฑ ๊ด๋ฆฌ
- Infra & DevOps: AWS(S3, CloudFront) ์ธํ๋ผ ์ค๊ณ ๋ฐ GitHub Actions CI/CD ๊ตฌ์ถ
AI ๊ธฐ๋ฐ ํ์ต ์ฝํ ์ธ ๋ฐ ๋ฆฌํฌํธ ์์คํ ๊ตฌ์ถ
- AI Interaction: WebClient ๊ธฐ๋ฐ AI API ์ฐ๋ ๋ฐ SSE ์คํธ๋ฆฌ๋ฐ ๋ต๋ณ ๊ตฌํ
- Quiz Service: ํ์ต ์ปจํ ์คํธ(๋ฉ๋ชจ/์ฑํ ) ๋ถ์์ ํตํ ๋ง์ถคํ ํด์ฆ ์์ฑ ๋ก์ง ๊ตฌํ
- Reporting: Thymeleaf & iText7์ ์ด์ฉํ ์ค์๊ฐ ํ์ต ๋ฆฌํฌํธ PDF ์๋ ์์ฑ
| ์ฃผ์ | ์์ฝ | ์์ธ ๋ด์ฉ (Click to expand) |
|---|---|---|
| JPA | Autosave ์ ๋ํฌ ์ ์ฝ ์ค๋ฅ | ์ํ ๊ด๋ฆฌ ๋ก์ง ์ต์ ํ[๋ฌธ์ ] ์์ ๋ก์ง์์ new Node() ์์ฑ์ผ๋ก ์ธํ Duplicate Entry ๋ฐ์[์์ธ] ์ค์์ ๊ฐ์ฒด๋ฅผ JPA๊ฐ Insert๋ก ํ๋จ[ํด๊ฒฐ] ๊ธฐ์กด ์ํฐํฐ ์กด์ฌ ์ฌ๋ถ ์ ์กฐํ ํ ๋ณ๊ฒฝ ๊ฐ์ง(Dirty Checking) ์ ๋ [๊ตํ] ์ํฐํฐ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ์ ์ค์์ฑ ์ฒด๊ฐ |
| Infra | S3 vs CloudFront ์ค๊ณ | ์๋น ์ํคํ ์ฒ ์์ฌ๊ฒฐ์ [๋ฌธ์ ] Private S3 ๋ฆฌ์์ค์ ๋ณด์๊ณผ ์ฑ๋ฅ ๊ฐ์ ๊ท ํ ๊ณ ๋ฏผ [์ ํ] CloudFront + OAC ๊ตฌ์กฐ ์ฑํ [์ด์ ] UUID ๊ธฐ๋ฐ ๋น๋ ธ์ถ ์๋ณ์๋ก ๋ณด์ ์ ์ง + CDN ์บ์ฑ์ผ๋ก Latency ๋จ์ถ [๊ตํ] ์์คํ ํจํด์ ๋ง๋ ์ ์ ํ ๋ณต์ก๋ ์ ํ |
| ์ฃผ์ | ์์ฝ | ์์ธ ๋ด์ฉ (Click to expand) |
|---|---|---|
| Async | ํด์ฆ ์์ฑ ๋๊ธฐ ์๊ฐ ๋จ์ถ | ๋น๋๊ธฐ ์ฒ๋ฆฌ(Async) ๋์[๋ฌธ์ ] AI ๋ถ์ ์๊ฐ(15์ด+)์ผ๋ก ์ธํ ๋ธ๋ผ์ฐ์ ํ์์์ [ํด๊ฒฐ] Spring @Async ๋์
์ผ๋ก ๋ฐฑ๊ทธ๋ผ์ด๋ ์ฒ๋ฆฌ ๋ฐ ์ฆ์ ์๋ต ๋ฐํ[ํจ๊ณผ] ์ฌ์ฉ์ ๋๊ธฐ ์ฐจ๋จ ๋ฐฉ์ง ๋ฐ ์๋ฒ ์์ ์ ์ ํจ์จํ |
| SSE | AI ์ฑํ ์๋ต ์ง์ฐ ํด์ | ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ๋ต๋ณ[๋ฌธ์ ] ๋ต๋ณ ์๋ฃ ์ ๊น์ง ๋น ํ๋ฉด ๋ ธ์ถ๋ก ์ธํ UX ์ ํ [ํด๊ฒฐ] Server-Sent Events(SSE) ๊ธฐ๋ฐ ํ ํฐ ๋จ์ ์ค์๊ฐ ์ ์ก [ํจ๊ณผ] TTFB(์ฒซ ์๋ต ์๊ฐ) ๋จ์ถ์ผ๋ก ์ฒด๊ฐ ์๋ต ์๋ ๋ํญ ๊ฐ์ |