🚩[3단계-1] 내 프로젝트 맞춰 만들어보는 API 스펙

2025. 6. 9. 19:10·프로젝트
목차
  1. 📈  [3단계-1] 내 프로젝트 맞춰 만들어보는 API 스펙
  2. 1. 📚 프론트엔드와 협업을 위한 '계약서'
  3. 2. ⚡ 프론트엔드 개발이 '동시에' 가능
  4. 3. 🚀 초기 기획 오해 방지
  5. 1. 회원가입 (Signup)
  6. 2. 로그인 (Login)
  7. 3. 내 정보 조회 (My Profile)
  8. 4. 내 정보 수정 (Update Profile)
  9. 5. 계좌 목록 조회 (List Accounts)
  10. 6. 계좌 생성 (Create Account)
  11. 7. 결제내역 목록 조회 (List Transactions)
  12. 8. 결제내역 생성 (Create Transaction)

📈  [3단계-1] 내 프로젝트 맞춰 만들어보는 API 스펙


🚩 왜 API 스펙을 먼저 작성할까?


1. 📚 프론트엔드와 협업을 위한 '계약서'

  • 백엔드가 API를 어떻게 만들건지 먼저 정리해두는 거야.
  • 프론트는 이 스펙을 보고:
    • 어떤 URL로
    • 어떤 요청 데이터를 보내야 하고
    • 어떤 응답 데이터를 받을지
  • 미리 알 수 있어.

👉 즉, API 스펙 = 프론트랑 백엔드 사이 약속!


2. ⚡ 프론트엔드 개발이 '동시에' 가능

  • 프론트 개발자는 백엔드 완성 기다리지 않고
    mock 데이터(가짜 데이터)로 프론트 개발을 시작할 수 있어.
  • 백엔드 개발자는 이 스펙 기준으로 API를 만들면 되고.

👉 서로 독립적으로 개발, 프로젝트 전체 속도 엄청 빨라짐!


3. 🚀 초기 기획 오해 방지

  • 만들다가 "어? 이거 API에 없는데?"
  • "이거 데이터 빠졌는데?" 이런거 나오면 프로젝트 터짐.

미리:

  • 어떤 기능
  • 어떤 데이터 구조
  • 어떤 요청/응답 방식
  • 어떤 HTTP 메서드 (GET, POST, PATCH...)

이걸 다 정리해놓으면,
👉 처음부터 프론트, 백엔드, 기획팀이 같은 그림을 그리고 시작할 수 있어.


📚 요약

왜 해야 하나?이유
✅ 프론트-백 협업 기준서 API 요청/응답 형식 미리 정의
✅ 개발 동시 진행 가능 프론트는 스펙 보고 mock 개발, 백은 실제 API 개발
✅ 기획, 설계 오해 방지 개발 중 큰 수정/충돌 방지
 

💡 정리 한줄

👉 API 스펙은 프론트와 백엔드가 같은 언어로 말하게 해주는 '계약서'다.


그래서 지금 작성한 이 API 스펙을 프론트팀에 공유하면

🔥 "우리 이 스펙 기준으로 개발할게요!"

하고 바로 프론트 팀도 이 URL 기준으로 개발 들어가는 거야.

 

👉 필요 API 설계

1. 회원가입 (Signup)

  • 설명: 사용자 회원가입 처리
  • HTTP 메서드: POST /api/signup/

▶️ Request Body:

{
  "email": "user@example.com",
  "password": "password123",
  "nickname": "닉네임",
  "name": "홍길동",
  "phone_number": "010-1234-5678"
}

▶️ Response:

{
  "message": "회원가입이 완료되었습니다.",
  "user_id": 1
}

2. 로그인 (Login)

  • 설명: JWT 토큰 발급
  • HTTP 메서드: POST /api/token/

▶️ Request Body:

{
  "email": "user@example.com",
  "password": "password123"
}

▶️ Response:

{
  "access": "jwt-access-token",
  "refresh": "jwt-refresh-token"
}

3. 내 정보 조회 (My Profile)

  • 설명: 로그인 사용자 정보 조회
  • HTTP 메서드: GET /api/users/me/

▶️ Response:

{
  "id": 1,
  "email": "user@example.com",
  "nickname": "닉네임",
  "name": "홍길동",
  "phone_number": "010-1234-5678",
  "date_joined": "2025-06-09T12:00:00Z"
}

🔐 Access Token 필요


4. 내 정보 수정 (Update Profile)

  • 설명: 로그인 사용자 정보 수정
  • HTTP 메서드: PATCH /api/users/me/

▶️ Request Body:

{
  "nickname": "새로운 닉네임",
  "phone_number": "010-9876-5432"
}

▶️ Response:

{
  "message": "회원 정보가 수정되었습니다."
}

💰 Account API

5. 계좌 목록 조회 (List Accounts)

  • 설명: 사용자 계좌 목록 조회
  • HTTP 메서드: GET /api/accounts/

▶️ Response:

[
  {
    "id": 1,
    "account_number": "123-456-789",
    "bank_code": "004",
    "account_type": "자동인출",
    "balance": "100000.00",
    "created_at": "2025-06-09T12:00:00Z"
  }
]

6. 계좌 생성 (Create Account)

  • 설명: 새 계좌 생성
  • HTTP 메서드: POST /api/accounts/

▶️ Request Body:

{
  "account_number": "987-654-321",
  "bank_code": "004",
  "account_type": "준비금"
}

▶️ Response:

{
  "message": "계좌가 성공적으로 생성되었습니다.",
  "account_id": 2
}

💳 Transaction API

7. 결제내역 목록 조회 (List Transactions)

  • 설명: 계좌 결제 내역 조회
  • HTTP 메서드: GET /api/accounts/<int:account_id>/transactions/

▶️ Response:

[
  {
    "id": 1,
    "transaction_amount": "50000.00",
    "post_transaction_amount": "150000.00",
    "transaction_details": "급여",
    "transaction_type": "입금",
    "transaction_method": "이체거래",
    "transaction_timestamp": "2025-06-08T14:00:00Z"
  }
]

8. 결제내역 생성 (Create Transaction)

  • 설명: 계좌에 결제 내역 추가
  • HTTP 메서드: POST /api/accounts/<int:account_id>/transactions/

▶️ Request Body:

{
  "transaction_amount": "30000.00",
  "transaction_details": "ATM 인출",
  "transaction_type": "출금",
  "transaction_method": "ATM",
  "transaction_timestamp": "2025-06-09T15:30:00Z"
}

▶️ Response:

{
  "message": "결제 내역이 성공적으로 추가되었습니다.",
  "transaction_id": 5
}

📅 기본 ERD

User (CustomUser)
    └── Account (1:N)
           └── TransactionHistory (1:N)

 

'프로젝트' 카테고리의 다른 글

📚 회원 탈퇴(DELETE) 기능 정리 (10)  (0) 2025.06.10
🚩[3단계-1] Django 5.2 + DRF + Swagger (drf-spectacular) 적용 정리  (0) 2025.06.09
📌 [3단계] DRF(Django REST Framework) 설치 및 Docker 적용  (0) 2025.06.09
📮4. Django DB 연결 대기 커스텀 커맨드 제작 및 GitHub Actions 적용기  (0) 2025.06.09
📮 3. Django ORM을 활용하여 Model 생성하기  (1) 2025.06.09
  1. 📈  [3단계-1] 내 프로젝트 맞춰 만들어보는 API 스펙
  2. 1. 📚 프론트엔드와 협업을 위한 '계약서'
  3. 2. ⚡ 프론트엔드 개발이 '동시에' 가능
  4. 3. 🚀 초기 기획 오해 방지
  5. 1. 회원가입 (Signup)
  6. 2. 로그인 (Login)
  7. 3. 내 정보 조회 (My Profile)
  8. 4. 내 정보 수정 (Update Profile)
  9. 5. 계좌 목록 조회 (List Accounts)
  10. 6. 계좌 생성 (Create Account)
  11. 7. 결제내역 목록 조회 (List Transactions)
  12. 8. 결제내역 생성 (Create Transaction)
'프로젝트' 카테고리의 다른 글
  • 📚 회원 탈퇴(DELETE) 기능 정리 (10)
  • 🚩[3단계-1] Django 5.2 + DRF + Swagger (drf-spectacular) 적용 정리
  • 📌 [3단계] DRF(Django REST Framework) 설치 및 Docker 적용
  • 📮4. Django DB 연결 대기 커스텀 커맨드 제작 및 GitHub Actions 적용기
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (787) N
      • Python (32)
      • 프로젝트 (110) N
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    btsreunion
    travel ban
    bts
    btsdischarge
    newpoliticalparty
    smartphonedurability
    self-growth
    hotcoffeecase
    livebroadcast
    RM
    youngprofessionals
    뷔
    global politics
    lawsuitculture
    chinanightlife
    classaction
    homebartrend
    urbantrends
    college reunions
    life reflection
    titaniumcase
    btsjungkook
    americanlaw
    gpterror
    btscomeback
    chatgpterror
    remittance
    trumpmuskclash
    americaparty
    basalcellcarcinoma
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
🚩[3단계-1] 내 프로젝트 맞춰 만들어보는 API 스펙

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.