1. 기존 사이트의 기능 및 아키텍처 분석
✅ 1-1. 핵심 기능 파악 (비즈니스 로직 중심)
먼저 새 프로젝트에서 반드시 구현해야 할 기능을 정리해야 합니다.
이를 위해 기존 사이트를 사용하면서 주요 기능을 파악합니다.
📌 분석할 주요 기능 예시
- ✅ 로그인 및 인증 방식 (JWT, OAuth, 세션 기반인지 확인)
- ✅ 유저 권한 관리 (일반 사용자, 관리자 등)
- ✅ 데이터 저장 방식 (DB 구조 및 데이터 모델)
- ✅ 검색 기능 (어떤 방식으로 데이터를 검색하는지)
- ✅ API 호출 패턴 (REST, GraphQL, WebSocket 사용 여부)
- ✅ 비즈니스 로직 (예: 주문, 결제, 추천 시스템 등)
📌 도구 추천
- 직접 사이트를 사용하면서 주요 기능 정리 (노션, Miro 등 사용)
- 주요 페이지에서 발생하는 API 요청 분석 (Chrome DevTools → Network 탭 활용)
1-2. 기존 사이트의 API 분석
새로운 프로젝트에서 기존 사이트의 기능을 유사하게 구현하려면, 핵심 기능을 먼저 파악해야 한다.
하지만, 핵심 기능은 결국 API를 통해 제공되므로, API부터 분석하는 것이 가장 효과적이다.
📌 API를 분석하면 다음을 알 수 있음
- API 엔드포인트 URL 구조
- GET /api/v1/products
- POST /api/v1/auth/login
- PUT /api/v1/user/profile
- Request & Response 데이터 형식
- 요청 시 전달하는 Query Parameters / Request Body
- 응답 데이터 구조 및 필요한 필드 확인
- 인증 방식 확인
- Authorization: Bearer <JWT_TOKEN> → JWT 토큰 기반인가?
- Set-Cookie: JSESSIONID=xyz → 세션 기반인가?
- X-CSRF-TOKEN → CSRF 방어가 적용되어 있는가?
📌 API 분석 방법
- 🟢 Chrome DevTools → Network 탭 (XHR 필터)
- 🟢 Postman으로 API 요청 재현 및 데이터 확인
- 🟢 Burp Suite / Mitmproxy를 활용한 트래픽 캡처
📌 1. API 분석 단계
📌 기존 사이트의 API를 분석하는 단계는 다음과 같습니다.
✅ 1-1. API 요청 흐름 확인 (Chrome DevTools 활용)
- 웹사이트를 열고 F12 (Chrome DevTools) 실행
- Network 탭 이동 → XHR / Fetch 필터 선택
- 웹사이트에서 로그인, 검색, 데이터 조회 등 주요 기능 수행
- API 요청 URL, 메서드(GET, POST 등), 요청/응답 데이터를 확인
📌 분석해야 할 요소
- API 엔드포인트(URL)
- 요청 방식 (GET, POST, PUT, DELETE)
- Request Header / Body (인증 토큰, 쿠키 포함 여부)
- 응답 데이터 구조 (JSON, XML 등)
- HTTP 상태 코드 (200, 403, 404, 500 등)
✅ 1-2. API 정리 (문서화)
API를 하나씩 분석하면서 각 엔드포인트를 정리합니다.
📌 정리할 문서 예시 (Notion, Confluence, Excel 등 활용 가능)
기능HTTP 메서드URL요청 데이터응답 데이터설명
로그인 | POST | /api/v1/auth/login | { "email": "test@test.com", "password": "1234" } | { "token": "JWT_TOKEN" } | JWT 기반 로그인 |
회원 정보 조회 | GET | /api/v1/users/me | Authorization: Bearer <TOKEN> | { "id": 1, "name": "John" } | 로그인한 사용자 정보 조회 |
게시글 목록 | GET | /api/v1/posts?page=1 | 없음 | [ { "id": 1, "title": "Test" } ] | 페이징된 게시글 목록 |
게시글 상세 | GET | /api/v1/posts/1 | 없음 | { "id": 1, "title": "Test", "content": "Hello" } | 특정 게시글 상세 |
검색 기능 | GET | /api/v1/search?query=test | 없음 | [ { "id": 1, "title": "Test" } ] | 검색 API |
✅ 이렇게 정리하면 새 프로젝트에서 어떤 API를 구현해야 할지 명확해짐!
✅ 1-3. API 직접 호출 및 테스트
API의 동작을 보다 정확히 이해하기 위해 Postman이나 cURL을 활용해 직접 호출하여 테스트합니다.
📌 Postman을 활용한 API 호출
- POST /api/v1/auth/login 요청 테스트
- GET /api/v1/posts?page=1 호출하여 게시글 데이터 확인
- GET /api/v1/users/me 호출 → 응답값에서 사용자 정보 확인
'개발 프로젝트 > 프로젝트 개발방법론' 카테고리의 다른 글
프로젝트를 어떻게 기획/설계할 것인가? (1) | 2024.09.07 |
---|---|
개발업계 도메인을 고려한 프로젝트 주제선정 (1) | 2024.08.02 |
제로베이스 연습 프로젝트 포인트정리 (0) | 2024.07.23 |