์ต๊ณ ์ API๋ฅผ ์ฐพ๊ณ ๊ณต์ ํ์ธ์!
๊ฐ๋ฐ์๋ค์ด ์ค์ ์ฌ์ฉ ๊ฒฝํ์ ๊ณต์ ํ๋ฉฐ ํจ๊ป ๋ง๋๋ API ์ ํ ๊ฐ์ด๋
API Wiki์ ๋ฐฑ์๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋๋ค.
API ์ํค๋ ๊ฐ๋ฐ์๋ค์ด ํ๋ก์ ํธ์ ์ ํฉํ API๋ฅผ ๋น ๋ฅด๊ณ ์ ํํ๊ฒ ์ ํํ ์ ์๋๋ก ๋๋ ์ปค๋ฎค๋ํฐ ๊ธฐ๋ฐ ์ ๋ณด ํ๋ซํผ์
๋๋ค.
์ํคํผ๋์์ ํ์
๋ฐฉ์๊ณผ Hugging Face์ ์ค์ฌ์ฉ์ ๊ฒ์ฆ ๋ชจ๋ธ์ ๊ฒฐํฉํ์ฌ,
๋ถ์ฐ๋ API ์ ๋ณด๋ฅผ ํ ๊ณณ์ ๋ชจ์ผ๊ณ ์ค์ ๊ฐ๋ฐ์๋ค์ ๊ฒฝํ์ ๊ณต์ ํ๋ ์ํ๊ณ๋ฅผ ๊ตฌ์ถํฉ๋๋ค.
- ํต์ฌ ๋ชฉํ: API ์กฐ์ฌ ์๊ฐ์ 8์๊ฐ์์ 2์๊ฐ์ผ๋ก 70% ๋จ์ถ
- ํ์ง ๋ชฉํ: API ์ ํ ํ ๊ต์ฒด์จ์ 35%์์ 10%๋ก ๊ฐ์
- ์ปค๋ฎค๋ํฐ ๋ชฉํ: ์๊ฐ ํ์ฑ ๊ธฐ์ฌ์ 100๋ช ์ด์ ํ๋ณด
ํ๋ก์ ํธ์ ์ค๊ณ ๋ฌธ์์ ํ์
๊ท์น์ docs/ ๋๋ ํ ๋ฆฌ์์ ์์ธํ๊ฒ ๊ด๋ฆฌํ๊ณ ์์ต๋๋ค.
| ๋ฌธ์ ์ข ๋ฅ | ๋ด์ฉ ๋ฐ ๋งํฌ |
|---|---|
| Ground Rules | ๐ ํ ํ์ ๊ท์น ๋ฐ ๊ธฐ์ ์คํ ์์ธ |
| DB Design | ๐พ ERD |
| Infrastructure | โ๏ธ ์ธํ๋ผ ๊ตฌ์ฑ ๋ค์ด์ด๊ทธ๋จ |
| API Spec | Swagger UI ๏ผ๋ฐฐํฌ ํ๊ฒฝ๏ผ |
ํ์ฌ AWS EC2 ํ๊ฒฝ์ ๋ฐฐํฌ๋์ด ์์ผ๋ฉฐ, Nginx๋ฅผ ๋ฆฌ๋ฒ์ค ํ๋ก์๋ก ์ฌ์ฉํ์ฌ HTTPS(SSL) ๋ณด์์ด ์ ์ฉ๋์ด ์์ต๋๋ค.
GitHub Actions๋ฅผ ํตํด CI/CD ์๋ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ์ด ๊ตฌ์ถ๋์ด ์์ต๋๋ค.
- Server URL:
https://apiwiki-api.my-project.cloud - Docs (Swagger):
https://apiwiki-api.my-project.cloud/swagger-ui/index.html
- GitHub
main๋ธ๋์น์ ์ฝ๋ Push - GitHub Actions ํธ๋ฆฌ๊ฑฐ (Build & Test)
.jarํ์ผ ๋น๋ ํ AWS EC2๋ก ์ ์ก (SCP)- EC2 ๋ด๋ถ
deploy.sh์คํฌ๋ฆฝํธ ์คํ - ๊ธฐ์กด ํ๋ก์ธ์ค ์ข ๋ฃ ๋ฐ ์๋ ์ฌ๋ฐฐํฌ
โ ๏ธ ๋ฐฐํฌ ์ ์ ์์ฌํญ (Known Limitations)
ํ์ฌ ์ธํ๋ผ ๋น์ฉ ์ ๊ฐ ๋ฐ ๊ตฌ์กฐ ๋จ์ํ๋ฅผ ์ํด ๋จ์ผ ์ธ์คํด์ค ๋ฐฐํฌ ๋ฐฉ์์ ์ฑํํ๊ณ ์์ต๋๋ค.
์ด์ ๋ฐ๋ผ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ ์คํ ์ ๊ธฐ์กด ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๊ณ ์ ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ๋์ ์ฝ 15~30์ด ๊ฐ์ ๋ค์ดํ์(์๋น์ค ์ผ์ ์ค๋จ)์ด ๋ฐ์ํฉ๋๋ค.
์ถํ ํธ๋ํฝ ์ฆ๊ฐ ์ Nginx๋ฅผ ํ์ฉํ Blue/Green ๋ฌด์ค๋จ ๋ฐฐํฌ ๋์ ์ ํตํด ๊ฐ์ ํ ์์ ์ ๋๋ค.
์ด ํ๋ก์ ํธ๋ฅผ ๋ก์ปฌ ํ๊ฒฝ์์ ์คํํ๊ธฐ ์ํ ๊ฐ์ด๋์ ๋๋ค.
- JDK 21 ์ด์
- MySQL 8.0 ์ด์
git clone https://github.com/umc-apiwiki/APIWIKI_BE_v1.git
cd apiwiki-backend๋ณด์์ ์ํด application.yml์ DB ์ ์ ์ ๋ณด ๋ฑ์ด ๋น์์ ธ ์์ต๋๋ค.
์คํ ์ ์๋ ํ๊ฒฝ๋ณ์๋ฅผ ์ฃผ์
ํด์ผ ์ ์ ์๋ํฉ๋๋ค.
[IntelliJ ์ค์ ๋ฐฉ๋ฒ]
- ์๋จ ์คํ ์ค์ (
Run/Debug Configurations) ํด๋ฆญ Modify optionsโEnvironment variables์ ํ- ์๋ ๋ด์ฉ์ ์ ๋ ฅ
| Key | Description | Example (Dummy) |
|---|---|---|
DB_HOST |
RDS ์๋ํฌ์ธํธ ๋๋ ๋ก์ปฌ ์ฃผ์ | localhost |
DB_PORT |
๋ฐ์ดํฐ๋ฒ ์ด์ค ํฌํธ | 3306 |
DB_NAME |
์คํค๋ง ์ด๋ฆ | apiwiki |
DB_USERNAME |
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ณ์ ๋ช | root |
DB_PASSWORD |
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋น๋ฐ๋ฒํธ | 1234 |
JWT_SECRET |
JWT ์๋ช ํค (32์ ์ด์ ํ์) | R0EIc9AX4k... |
# Mac / Linux
./gradlew clean build
java -jar build/libs/apiwiki-backend-0.0.1-SNAPSHOT.jar
# Windows
./gradlew.bat clean build
java -jar build/libs/apiwiki-backend-0.0.1-SNAPSHOT.jar์์ธํ ๊ธฐ์ ์ ์ ์ด์ ์ ๋ฒ์ ์ ๋ต์ Docs > Project Rules ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
| Category | Stack |
|---|---|
| Language | Java 21 |
| Framework | Spring Boot 3.4.2, Spring Security, Spring Data JPA |
| Database | MySQL 8.0 (Prod), H2 (Test) |
| Infra | AWS EC2, RDS |
| Web Server | Nginx (Reverse Proxy, SSL/TLS) |
| CI/CD | GitHub Actions |
๊ธฐ์ฌํ์๊ธฐ ์ ์ ๋ฐ๋์ ์๋ ๋ฌธ์๋ฅผ ํ์ธํด์ฃผ์ธ์.
- Ground Rules(ํ์ ๊ท์น)์ ๋จผ์ ์ฝ์ด์ฃผ์ธ์.
- Contributing Guide์ ๋ฐ๋ผ ์ด์์ PR์ ์์ฑํด์ฃผ์ธ์.