API란 무엇인가요? 3편 (2장)

Jion·2025년 4월 18일
post-thumbnail

1. API는 대화 규칙이 에요~

APIApplication Programming Interface의 줄임말입니다
하지만 너무 복잡하게 생각 하지 마세요~

그냥 이렇게 생각하면 됍니다:

프론트(화면)가 백엔드(서버)에게
"이거 해줘요!" 하고 요청할수 있도록
정해진 방식으로 말하는방법

2. 왜 API가 필요할까요?

  • 프론트와 백엔드는 서로 다르게 생긴 세계 입니다.
  • 그래서 그냥은 대화가 안 돼요
  • 그래서 정해진 규칙(API)을 사용해서 서로 소통해야 합니다

3. 실제 예시로 이해하기

로그인 버튼을 눌렀다고 해볼게요~

  • 프론트: 사용자가 ID/PW 입력
  • API: POST /login 이 바로 API의 형태입니다.

4. API에는 여러 종류가 있습니다.

메서드설명예시
GET정보 조회GET /users
POST정보 생성POST /signup
PUT정보 전체 수정PUT /user/3
PATCH정보 일부 수정PATCH /user/3
DELETE정보 삭제DELETE /user/3

5. REST API란?

가장 많이 쓰는 API 설계 방식중 하나 입니다.

REST는 이렇게 약속해요:

  • URL은 명사형으로 (/users , /posts)
  • HTTP 메서드로 목적을 나타냄 (GET , POST , DELETE)
  • 상태 없이 동작함 ( 서버는 누가 보낸지 기억 안 함 )

예시
GET /users -> 사용자 목록 가져오기
DELETE /post/1 -> 1번 게시글 삭제하기

6. 백엔드는 API를 이렇게 만듭니다.(Django 중심)

Django에서 API를 만드는 기본구조

# views.py

from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import json

@csrf_exempt
def login_view(request):
    if request.method == "POST":
        data = json.loads(request.body)
        username = data.get("username")
        password = data.get("password")
        # 로그인 처리 로직
        return JsonResponse({"message": "로그인 성공"})
    return JsonResponse({"error": "잘못된 요청입니다"}, status=400)
# urls.py

from django.urls import path
from .views import login_view

urlpatterns = [
    path("login/", login_view),
]

이처럼 Django는 views.py에서 요청 처리하고
urls.py에서 URL을 등록합니다.
JsonResponse는 프론트와 데이터를 주고받을때 사용하는 JSON 응답 객체입니다.

Flask에서는 이렇게 만들어요 (비교용)

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route("/login", methods=["POST"])
def login():
    data = request.json
    username = data.get("username")
    return jsonify({"message": "로그인 성공"})

FastAPI에서는 이렇게 만들어요 (비교용)

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class LoginData(BaseModel):
    username: str
    password: str

@app.post("/login")
def login(data: LoginData):
    return {"message": "로그인 성공"}

비유로 이해하면

프론트 = 손님
백엔드 = 주방
API = 메뉴판

-> API는 프론트가 백엔드에게 요철할 수 있도록 도와주는 메뉴판 같은 역활
-> 메뉴가 있어야 주문할수 있고 주문이 있어야 요리가 나와요!

마무리 정리

  • API는 프론트와 백엔드가 대화하는 약속된 방식
  • 주로 URL + 메서드(GET , POST 등) 조합으로 만들어 집니다.
  • 가장 널리 쓰이는 설꼐 방식은 REST API 입니다.
  • 백엔드는 API를 만들고 프론트는 그 API에 맞춰 요청을 보냅니다.

다음 글 예고

JSON?
프론트와 백엔드가 데이터를 주고받을때 쓰는 공통언어

profile
중졸 비전공자 개발자 배움의 과정 열정 과 집중 하나 빼면 사치인 사람

0개의 댓글