202506_REST
Directory actions
More options
Directory actions
More options
202506_REST
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
# 📝 Todo REST API Application
JSON Server를 사용하여 RESTful API를 구현한 Todo 관리 애플리케이션입니다. jQuery와 XMLHttpRequest를 활용하여 CRUD 기능을 제공합니다.
## ✨ 주요 기능
### 기본 CRUD 기능
- **📋 목록 조회**: 모든 Todo 항목을 테이블 형태로 표시
- **🔍 개별 조회**: ID를 입력하여 특정 Todo 항목 조회
- **➕ 항목 추가**: 새로운 Todo 항목 등록
- **✏️ 항목 수정**: 기존 Todo 항목의 내용 및 완료 상태 수정
- **🗑️ 항목 삭제**: Todo 항목 삭제
### 필터링 기능
- **✅ 완료된 항목만 보기**: completed가 true인 항목만 필터링
- **⏳ 미완료 항목만 보기**: completed가 false인 항목만 필터링
## 🛠️ 기술 스택
- **Frontend**: HTML5, CSS3, JavaScript (jQuery)
- **Backend**: JSON Server (RESTful API)
- **HTTP 통신**: XMLHttpRequest
- **데이터 형식**: JSON
## 📁 파일 구조
```
project/
├── ex.36.asyncprogramming2.html # 메인 HTML 파일
├── ex.36.asyncprogramming2.js # JavaScript 로직
├── todos.json # JSON 데이터 파일
└── README.md
```
## 🚀 실행 방법
### 1. JSON Server 설치 및 실행
```bash
# JSON Server 전역 설치
npm install -g json-server
# todos.json 파일 생성
echo '[
{"id":1, "todo":"할일1", "completed":true},
{"id":2, "todo":"할일2", "completed":false}
]' > todos.json
# JSON Server 실행 (포트 7777)
json-server --watch todos.json --port 7777
```
### 2. 애플리케이션 실행
1. `ex.36.asyncprogramming2.html` 파일을 웹 브라우저에서 엽니다
2. JSON Server가 `http://localhost:7777`에서 실행 중인지 확인합니다
## 📊 API 엔드포인트
| 메서드 | 엔드포인트 | 설명 |
|--------|------------|------|
| GET | `/todos` | 모든 Todo 목록 조회 |
| GET | `/todos/:id` | 특정 ID의 Todo 조회 |
| GET | `/todos?completed=true` | 완료된 Todo만 조회 |
| GET | `/todos?completed=false` | 미완료 Todo만 조회 |
| POST | `/todos` | 새 Todo 추가 |
| PUT | `/todos/:id` | 특정 Todo 수정 |
| DELETE | `/todos/:id` | 특정 Todo 삭제 |
## 🎯 사용 방법
### 1. Todo 목록 보기
- **"목록버튼"** 클릭하여 모든 Todo 항목을 테이블에 표시
### 2. 특정 Todo 조회
1. 번호 입력 필드에 원하는 ID 입력
2. **"입력 목록 보기"** 버튼 클릭
### 3. 새 Todo 등록
1. **번호 등록**: 고유한 ID 입력
2. **할 일 등록**: Todo 내용 입력
3. **완료 여부**: true/false 선택
4. **"등록하기"** 버튼 클릭
### 4. Todo 수정
1. 테이블에서 원하는 항목의 내용을 직접 수정
2. 완료 상태를 드롭다운에서 변경
3. **"수정하기"** 버튼 클릭
### 5. Todo 삭제
- 테이블에서 원하는 항목의 **"삭제하기"** 버튼 클릭
### 6. 필터링
- **"완료 목록만 보기"**: 완료된 항목만 표시
- **"미완료 목록만 보기"**: 미완료 항목만 표시
## 💡 주요 특징
### 데이터 검증
- 빈 필드 체크로 필수 입력값 검증
- 중복 ID 방지 기능
- 존재하지 않는 ID 조회 시 알림
### 동적 UI 업데이트
- 테이블 내에서 직접 수정 가능한 입력 필드
- 실시간 데이터 반영
- 사용자 친화적인 알림 메시지
### RESTful API 패턴
- HTTP 메서드별 적절한 API 사용
- 쿼리 파라미터를 활용한 필터링
- JSON 데이터 포맷 활용
## 🔧 핵심 함수
### `datarow(responseArr)`
- 받은 데이터 배열을 기반으로 테이블 행 생성
- 각 행에 수정/삭제 버튼 이벤트 바인딩
### 이벤트 핸들러들
- **목록 조회**: `#listBtn` 클릭 이벤트
- **개별 조회**: `#numberBtn` 클릭 이벤트
- **등록**: `#regiBtn` 클릭 이벤트
- **필터링**: `#falseComBtn`, `#trueComBtn` 클릭 이벤트
## 🐛 알려진 제한사항
- JSON Server가 실행 중이어야 정상 동작
- 브라우저의 CORS 정책에 따른 제한 가능
- ID는 숫자 타입으로 제한
## 🎓 학습 포인트
이 프로젝트는 다음과 같은 웹 개발 개념을 학습할 수 있습니다:
- RESTful API 설계 및 활용
- XMLHttpRequest를 통한 HTTP 통신
- jQuery를 이용한 DOM 조작
- JSON 데이터 처리
- 동적 이벤트 바인딩
- 사용자 입력 검증
## 📝 라이선스
이 프로젝트는 학습 목적으로 제작되었습니다.
---
**Happy Coding! 🚀**