React Native 앱을 위한 API 서버
프론트엔드에서 요청하면, 데이터를 JSON으로 돌려주는 역할만 합니다!
React Native 앱 → "데이터 주세요!" → Django 서버 → "여기 있어요!"
↓
MariaDB
간단히 말하면:
- ✅ 앱에서 필요한 데이터를 조회해서 전달
- ✅ 데이터를 JSON 형태로 제공
- ❌ 화면(HTML)은 만들지 않음
- ❌ 직접 데이터 수정은 불가 (읽기 전용)
- 메인 도메인:
https://codequest.co.kr - API 테스트:
https://codequest.co.kr/api/test/ - API 문서:
https://codequest.co.kr/api/docs/(Swagger UI) - 관리자 페이지:
https://codequest.co.kr/admin/
// 데이터 가져오기
fetch('https://codequest.co.kr/api/test/')
.then(response => response.json())
.then(data => {
console.log(data); // 서버에서 받은 데이터
});{
"message": "서버에서 보낸 메시지",
"data": {
"id": 1,
"title": "제목",
"content": "내용"
}
}[ 사용자의 앱 ]
↓
[ Cloudflare ] ← 보안 & 속도 향상
↓
[ Nginx ] ← 트래픽 관리
↓
[ Django (Gunicorn) ] ← 실제 API 처리
↓
[ MariaDB ] ← 데이터 저장소
- Cloudflare: 해외 접속 차단, DDoS 방어, 빠른 속도
- Nginx: 요청을 Django로 전달하는 문지기
- Django: 실제 로직 처리 & API 제공
- MariaDB: 모든 데이터 저장
- 모든 통신이 암호화되어 전송됩니다
- 앱 ↔ 서버 간 데이터 도청 불가능
- Cloudflare에서 해외 IP 자동 차단
- 한국(KR)에서만 서버 접근 가능
- 데이터 조회만 가능
- 수정/삭제는 관리자만 가능
Swagger UI에서 모든 API를 테스트하고 확인할 수 있습니다: 👉 https://codequest.co.kr/api/docs/
/api/test/- 서버 연결 테스트- 새로운 내용 추가되면 여기에 작성 부탁드립니다!
| 분류 | 기술 |
|---|---|
| 언어 | Python 3.x |
| 프레임워크 | Django 5.2.7 |
| API | Django REST Framework |
| 데이터베이스 | MariaDB |
| 서버 | AWS EC2 (Ubuntu 24.04) |
| 웹서버 | Nginx + Gunicorn |
| 보안/CDN | Cloudflare |
| 도메인 | codequest.co.kr |
- API 엔드포인트로 요청 보내기
- JSON 응답 받아서 처리하기
- HTTPS 사용하기
- 직접 데이터베이스 접근
- HTTP(비암호화) 사용
- API 문서에 없는 엔드포인트 호출
- 클라우드: AWS 서울 리전
- 서버 타입: EC2 t3.micro (프리티어)
- 운영체제: Ubuntu 24.04 LTS
- 24시간 365일 운영
- 자동 재시작 설정 완료
# 1. 로컬에서 푸시
git push origin main
# 2. 서버에서 풀
git pull origin main
# 3. 서버 재시작
sudo systemctl restart gunicorn⏱️ 예상 시간: 약 1-2분
🔄 다운타임: 거의 없음 (재시작 동안만 잠깐)
| 항목 | 내용 |
|---|---|
| 서버 역할 | React Native 앱을 위한 데이터 제공 |
| 접근 방법 | HTTPS API 호출 |
| 주요 기능 | 데이터 조회 (읽기 전용) |
| 문서 | Swagger UI |
| 보안 | HTTPS + 한국 IP만 허용 |
| 가용성 | 24/7 운영 |
- 📡 API 테스트
- 📚 API 문서 (Swagger)
- 🔧 관리자 페이지
- ☁️ Cloudflare 대시보드