ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • REST API 뽀개기: 초보자도 이해하는 웹 서비스 기본 원리
    🧪 API & 테스트/🧪 REST API 2024. 12. 29. 18:28
    728x90

    🤔 웹 서비스는 어떻게 작동할까?

    우리가 매일 사용하는 웹 서비스 (네이버, 유튜브, 쇼핑몰 등)는 마치 마법처럼 보입니다.

    버튼 하나만 누르면 원하는 정보를 바로 보여주고, 상품을 주문하고, 친구들과 소통할 수 있죠.

    이 마법 같은 기술의 뒤에는 바로 REST API라는 숨은 영웅이 있습니다.

     

    REST API? 그게 뭔데?

    REST API는 웹 서비스의 핵심 기술입니다. 쉽게 말해, 웹 서비스들이 서로 대화하기 위한 공통 언어라고 생각하면 됩니다.

    마치 우리가 한국어를 사용해서 서로 의사소통하는 것처럼, 웹 서비스들은 REST API를 사용하여 정보를 주고받고, 서로의 기능을 이용합니다.

     

    예를 들어,

    쇼핑몰 웹사이트에서 상품을 주문할 때, 웹사이트는 REST API를 사용하여 결제 시스템과 통신하고, 배송 정보를 택배 회사에 전달합니다.

    이처럼 REST API는 다양한 웹 서비스들이 서로 연결되어 작동할 수 있도록 돕는 중요한 역할을 합니다.

     

    🤝 REST API는 어떻게 작동할까?

    REST API는 레스토랑과 비슷한 방식으로 작동합니다.

    1. 손님(클라이언트)이 → 메뉴판(API 문서)을 보고    원하는 음식(자원)을 주문(요청)합니다. (예: "김치찌개 주세요!")
    2. 주방(서버)에서는 주문을 받아    음식을 준비합니다.
    3. 준비된 음식을    쟁반(응답)에 담아    손님에게 제공합니다.

    REST API에서는 이 과정이 다음과 같이 이루어집니다.

         1. 클라이언트(웹 브라우저, 모바일 앱 등)가 API 문서를 참고하여 원하는 자원(데이터)을 요청합니다.

             (예: /users/123 (ID가 123인 사용자 정보)를 GET 방식으로 요청)

     

         2.  서버(웹 서비스를 제공하는 컴퓨터)는 요청을 받아 해당 자원을 찾아 JSON이나 XML과 같은 형식으로 응답합니다.

     

     

    REST API의 핵심 구성 요소

    REST API를 제대로 이해하려면 몇 가지 중요한 구성 요소를 알아야 합니다. 마치 레스토랑에서 주문을 할 때 메뉴판을 보고, 음식 이름, 가격 등을 확인하는 것과 같습니다.

    • URI (Uniform Resource Identifier): 자원을 식별하는 주소입니다. 웹 페이지 주소(URL)와 비슷한 개념입니다. (예: /users/123, /products/456)
      • http://api.example.com/users/123 에서 /users/123 부분이 URI입니다.
      • URI는 각 자원에 대한 고유한 주소를 제공하여, 클라이언트가 원하는 자원을 정확하게 요청할 수 있도록 합니다.

    • HTTP 메서드: 자원에 대해 어떤 작업을 수행할지 지정합니다. 마치 레스토랑에서 "김치찌개 주세요" (주문), "물 좀 더 주세요" (추가 요청), "계산해주세요" (종료) 와 같은 행동을 지정하는 것과 같습니다.
      • GET (조회): 자원을 가져옵니다. ("김치찌개 주세요")
      • POST (생성): 새로운 자원을 만듭니다. ("새로운 메뉴를 추가해주세요")
      • PUT (업데이트): 기존 자원을 수정합니다. ("김치찌개에 고기를 더 넣어주세요")
      • DELETE (삭제): 자원을 삭제합니다. ("이 메뉴는 삭제해주세요")
      • PATCH (일부 업데이트): 자원의 일부를 수정합니다. ("김치찌개 덜 맵게 해주세요")

    • 요청 헤더: 클라이언트가 서버에 추가적인 정보를 전달합니다. 마치 레스토랑에서 "덜 맵게 해주세요", "빨리 가져다주세요" 와 같은 요청 사항을 전달하는 것과 같습니다.
      • Accept: 클라이언트가 어떤 형식의 응답을 원하는지 알려줍니다. (예: application/json, text/xml)
      • Content-Type: 클라이언트가 서버에 어떤 형식의 데이터를 보내는지 알려줍니다. (예: application/json, text/xml)
      • Authorization: 클라이언트가 서버에 접근할 권한이 있는지 확인하기 위한 정보를 담고 있습니다. (예: API 키, 토큰)
      • User-Agent: 클라이언트가 어떤 웹 브라우저나 앱을 사용하는지 알려줍니다.

    • 응답 코드: 서버가 클라이언트에게 요청 처리 결과를 알려줍니다. 마치 레스토랑에서 주문한 음식이 나왔을 때 "여기 있습니다" (성공), "재료가 떨어졌습니다" (실패) 와 같은 응답을 받는 것과 같습니다.
      • 2xx: 성공 (예: 200 OK, 201 Created)
      • 3xx: 리다이렉션 (예: 301 Moved Permanently, 302 Found) - 다른 주소로 이동해야 함을 의미합니다.
      • 4xx: 클라이언트 오류 (예: 400 Bad Request (잘못된 요청), 404 Not Found (찾을 수 없음)) - 클라이언트의 잘못으로 요청이 실패했음을 의미합니다.
      • 5xx: 서버 오류 (예: 500 Internal Server Error) - 서버 내부의 문제로 요청이 실패했음을 의미합니다.

    🧑‍💻 개발자는 REST API를 어떻게 만들고 사용할까?

    • API 구현: 개발자는 Spring Framework (자바), Express.js (Node.js) 와 같은 도구를 사용하여 REST API를 만듭니다. 이러한 도구들은 마치 요리 레시피처럼, REST API를 쉽고 빠르게 만들 수 있도록 도와줍니다.
      • @RestController, @GetMapping과 같은 어노테이션은 마치 레시피의 재료 목록과 조리법처럼, 어떤 자원을 어떻게 처리할지 지정하는 역할을 합니다.
      • 인텔리제이에서 Spring Boot를 사용하여 REST API를 구현하는 예시 화면 (컨트롤러 코드, 어노테이션)

    • API 테스트: 개발자는 Postman과 같은 도구를 사용하여 REST API가 제대로 작동하는지 테스트합니다. Postman은 마치 레스토랑에서 음식을 주문하고 맛을 보는 것처럼, REST API에 다양한 요청을 보내고 응답을 확인하여 문제가 없는지 검증합니다.
    •  Postman에서 REST API를 테스트하는 화면 (GET 요청, POST 요청, 응답 확인)

     

     

    REST API는 어디에 사용될까?

    REST API는 우리 주변의 다양한 웹 서비스에서 사용됩니다.

    • 소셜 미디어: Facebook, Instagram, Twitter 등의 소셜 미디어 플랫폼은 REST API를 통해 사용자 정보, 친구 목록, 게시물, 좋아요 등을 관리합니다. 덕분에 우리는 친구들과 소통하고, 좋아하는 콘텐츠를 공유할 수 있습니다.
    • 쇼핑몰: Amazon, Coupang, Gmarket 등의 쇼핑몰 웹사이트는 REST API를 통해 상품 정보, 재고, 주문, 결제, 배송 등을 관리합니다. 덕분에 우리는 편리하게 쇼핑을 즐길 수 있습니다.
    • 금융: 은행, 증권사 등의 금융 기관은 REST API를 통해 계좌 정보, 거래 내역, 송금, 결제 등을 처리합니다. 덕분에 우리는 안전하고 편리하게 금융 거래를 할 수 있습니다.
    • 지도: Google Maps, Naver Map 등의 지도 서비스는 REST API를 통해 위치 정보, 길 찾기, 주변 정보 등을 제공합니다. 덕분에 우리는 길을 잃지 않고 목적지까지 찾아갈 수 있습니다.
    • 여행: 항공사, 호텔 예약 웹사이트 등은 REST API를 통해 항공편 정보, 좌석 예약, 호텔 정보, 예약 등을 관리합니다. 덕분에 우리는 편리하게 여행 계획을 세울 수 있습니다.
    • 음악 스트리밍: Spotify, Melon, YouTube Music 등의 음악 스트리밍 서비스는 REST API를 통해 음악 정보, 재생 목록, 사용자 취향 등을 관리합니다. 덕분에 우리는 좋아하는 음악을 언제 어디서든 감상할 수 있습니다.
    • 날씨: 기상청 웹사이트는 REST API를 통해 날씨 정보, 예보, 기상 특보 등을 제공합니다. 덕분에 우리는 날씨 변화에 대비할 수 있습니다.
    • 뉴스: 네이버 뉴스, 다음 뉴스 등의 뉴스 웹사이트는 REST API를 통해 뉴스 기사, 속보, 댓글 등을 제공합니다. 덕분에 우리는 실시간으로 뉴스를 접할 수 있습니다.

     

    REST API는 현대 웹 서비스의 핵심 기술입니다.

    REST API를 이해하면 웹 서비스가 어떻게 작동하는지, 개발자들이 어떻게 웹 서비스를 만드는지 더 잘 이해할 수 있습니다.

    또한, REST API를 활용하면 다양한 웹 서비스를 서로 연결하여 새로운 서비스를 만들거나 기존 서비스를 개선할 수 있습니다. 😉

    이 글이 REST API를 이해하는 데 도움이 되었기를 바랍니다. 😊

    728x90
Designed by Tistory.