REST API와 Access Token, Refresh Token 쉽게 알아보기

2024. 12. 31. 16:36IT정보/초보자를 위한 IT 팁

반응형

REST API는 웹 개발에서 클라이언트와 서버가 데이터를 주고받는 가장 인기 있는 방식 중 하나입니다. 단순하고 효율적일 뿐만 아니라, 보안을 위해 Access TokenRefresh Token을 활용할 수 있어 강력한 기능을 제공합니다. 이번 글에서는 REST API와 토큰 기반 인증 방식을 쉽고 간단하게 풀어보겠습니다.


REST API란?

**REST API(Representational State Transfer API)**는 클라이언트(예: 브라우저나 앱)가 서버의 데이터나 기능(리소스)에 접근하도록 도와주는 규칙입니다. REST API는 간단한 규칙을 바탕으로 작동하기 때문에 배우기 쉽고 직관적입니다.

REST API의 특징

  1. 클라이언트-서버 구조
    • 클라이언트와 서버는 독립적으로 동작하므로 유지보수가 쉽습니다.
  2. 무상태성
    • 요청마다 독립적으로 처리되며, 이전 요청의 상태를 기억하지 않습니다.
  3. URI
    • 리소스를 식별하는 고유 주소. 예: /users/123는 ID가 123인 사용자를 의미합니다.
  4. HTTP 메서드 사용
    • 작업 유형을 나타냅니다.
      • GET: 데이터 조회
      • POST: 데이터 생성
      • PUT: 데이터 수정
      • DELETE: 데이터 삭제
  5. JSON 데이터 형식
    • 보편적으로 사용되는 데이터 형식으로, 요청과 응답에 자주 사용됩니다.


Access Token과 Refresh Token

REST API에서 인증을 처리할 때 가장 흔히 쓰이는 방식이 바로 Access TokenRefresh Token입니다.

Access Token이란?

  • 사용자가 인증되었음을 증명하는 임시 토큰입니다.
  • API 요청 시 서버에 전달해 권한을 확인받습니다.
  • 유효 기간이 짧습니다(몇 분 ~ 몇 시간).

Refresh Token이란?

  • Access Token이 만료되었을 때 새로운 Access Token을 발급받는 장기 토큰입니다.
  • 유효 기간이 길며(몇 주 ~ 몇 달), 오직 Access Token 재발급에만 사용됩니다.


REST API와 토큰의 사용 흐름

  1. 로그인
    사용자가 로그인하면 서버는 Access TokenRefresh Token을 발급합니다.
    {
      "access_token": "eyJhbGciOiJIUzI1NiIsInR5...",
      "refresh_token": "dGhpcyBpcyByZWZyZXNoIHRv..."
    }
  2. API 요청
    클라이언트는 Access Token을 API 요청 헤더에 포함하여 서버에 보냅니다.
    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5...
  3. 토큰 만료 시 재발급
    Access Token이 만료되면 Refresh Token을 사용해 새 Access Token을 요청합니다.
    {
      "refresh_token": "dGhpcyBpcyByZWZyZXNoIHRv..."
    }
  4. 새로운 Access Token 사용
    발급받은 새 Access Token으로 API를 계속 호출합니다.


REST API와 HTTP 메서드

REST API는 HTTP 메서드를 사용해 서버와 상호작용합니다. 

작업  HTTP 메서드 URI 예제
사용자 목록 조회 GET /users
사용자 정보 조회 GET /users/{id}
사용자 생성 POST /users
사용자 수정 PUT /users/{id}
사용자 삭제 DELETE /users/{id}

 

REST API와 토큰의 장점

  1. 간결하고 직관적
    • HTTP 메서드와 URI만 이해하면 쉽게 활용할 수 있습니다.
  2. 보안 강화
    • Access Token은 짧은 유효 기간으로 안전하게, Refresh Token은 토큰 재발급에만 사용됩니다.
  3. 언어 및 플랫폼 독립적
    • 다양한 프로그래밍 언어와 환경에서 쉽게 구현 가능합니다.


REST API 사용 시 주의사항

  1. HTTPS 사용 필수
    • 토큰이 네트워크를 통해 전송되므로 암호화된 HTTPS 연결을 사용해야 합니다.
  2. Refresh Token 관리
    • Refresh Token은 로컬스토리지 대신 안전한 서버나 보안 스토리지에 저장하세요.
  3. 토큰 유효 기간 설정
    • Access Token은 짧게, Refresh Token은 적절히 길게 설정해 보안을 강화하세요.


실습 도구와 참고 사이트

  1. JSONPlaceholder: 무료 REST API 실습 사이트.
  2. Postman: API 테스트와 디버깅을 도와주는 도구.
  3. JWT 공식 사이트: Access Token 구조를 분석하고 디코딩할 수 있는 도구.


결론

REST API는 간단하면서도 강력한 데이터 통신 방식입니다. Access TokenRefresh Token을 적절히 활용하면 보안성을 강화하고 효율적인 인증 시스템을 구축할 수 있습니다. 

다음 글에서는 위 내용을 토대로 사용예제를 다뤄보겠습니다.

 

#REST APIREST API 태그 삭제#restful apirestful api 태그 삭제#rest api 설계rest api 설계 태그 삭제#REST API란REST API란 태그 삭제#rest api 예제rest api 예제 태그 삭제#rest api 보안rest api 보안 태그 삭제#rest api 인증rest api 인증 태그 삭제#rest api 개발rest api 개발 태그 삭제#rest api 튜토리얼rest api 튜토리얼 태그 삭제#rest api 문서화rest api 문서화

반응형