REST API 와 RESTful API 차이는 그냥 부모, 자식 간의 관계인듯 하다

이번에 동료 개발자들과 점심을 먹던 중 사소한 주제에 대한 토론(?)이 있었습니다.

바로 REST API 와 RESTful API 입니다.

사실 저도 REST API 나 RESTful API 모두 동일하다 생각하고 있었습니다.

하지만 엄밀히 말하면 동일한 개념은 아니며, 그 차이점을 설명할 수 있어야 된단 생각이 들어 포스팅합니다 :)

 

REST API 란?

REST API 란 Representational State Transfer API의 약자로, 분산 시스템(ex. MSA)간의 자원을 표현하고 전달하기 위한 아키텍처 스타일입니다.

  • REST API 특징
    • 자원(URI) : 서비스의 모든 것을 나타내는 개념. (ex. 주문, 결제, 회원 등)
    • 표현(Representation) : json, xml 등 다양한 형식으로 표현 가능
    • 상태(State) : HTTP 응답 상태 코드(2xx[성공], 3xx[리다이렉트], 4xx[클라이언트 에러], 5xx[서버 에러])
    • 표준화된 인터페이스(Uniform Interface) : HTTP 요청 메소드(GET, POST, PUT, DELETE)

정리하자면, REST API 는 자원, 표현, 상태, 표준 인터페이스를 통해 클라이언트와 서버 간의 통신을 구현하는 아키텍처 입니다.

즉 REST API 는 REST 아키텍처 스타일을 따르는 API를 의미합니다.

 

  • REST API 원칙
    • 클라이언트/서버 구조 : 클라이언트와 서버는 독립적으로 구성되어 있습니다.
    • 무상태성(Stateless) : 서버가 클라이언트의 상태를 유지하지 않고 각 요청을 완전히 독립적으로 처리하는 방식입니다. 즉, 서버는 클라이언트의 이전 요청이나 상태에 대해 알지 못하며, 
    • 캐시 처리 가능(Cacheable) : 서버 응답 시간 개선을 위해 캐시를 처리할 수 있습니다.
    • 계층화 시스템(Layered System) : 클라이언트와 서버 사이에 여러 개의 중간 계층(레이어)을 두고 통신하는 방식입니다. 시스템의 확장성, 보안성, 성능 등을 향상시킵니다.
    • 인터페이스 일관성(Uniform Interface) : 위의 REST API 의 특징 참고
    • 자기 서술적 메시지(Self-descriptive Messages) : 위의 REST API 의 특징 참고

 

RESTful API란?

RESTful API 는 REST API 아케텍처를 적용하여 설계된 API를 의미합니다. REST API 를 상속 했다고 보시면 될 것 같습니다.

 

그렇다면 차이점은?

* 원칙이나 특징은 똑같습니다. 하지만 RESTful API 는 REST API 아키텍처 기반으로 좀 더 구체적으로 설계되었고, 더 엄격하게 REST API 를 따른다고 말할 수 있습니다.

 

Homebrew 란?

Homebrew는 macOS 및 Linux 운영 체제에서 소프트웨어 패키지를 설치하고 관리하는 오픈 소스 패키지 관리자 입니다.

  • 커맨드 라인 인터페이스를 통해 간편하게 소프트웨어 설치 가능
  • 간편한 패키지 관리 및 업데이트
  • maxOS 용으로 개발 되었지만 Linux 용 포트도 존재

즉, 터미널에서 명령어를 통해 프로그램을 설치할 수 있기 때문에 mac 사용자 사이에서는 필수 프로그램으로 여겨집니다.

 

Homebrew

The Missing Package Manager for macOS (or Linux).

brew.sh

 

 

 

Homebrew 설치 방법

1. Terminal 실행

 

2. 설치 명령어 실행(아래 명령어를 복붙 합니다.)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

 

 

 

3. 설치 확인

brew --version

 

Homebrew 가 정상적으로 설치되었으면 brew 명령어를 통해 버전 확인을 할 수 있습니다.

 

 

* 만약 설치 시 Warning: /opt/homebrew/bin is not in your PATH 에러가 발생하면 아래 링크를 확인 해주세요.

https://gabrielyj.tistory.com/217

 

[mac os] brew 설치 중 Warning: /opt/homebrew/bin is not in your PATH. 오류 발생

mac os 에서 Homebrew 설치 시 발생하는 PATH 문제 해결 ==> Updating Homebrew... Warning: /opt/homebrew/bin is not in your PATH. Instructions on how to configure your shell for Homebrew can be found in the 'Next steps' section below. 문제 해

gabrielyj.tistory.com

 

 

git 란?

git은 분산 버전 관리 시스템입니다.

  • 소스 코드의 변경 이력 관리 - 어떤 변경이 있었는지 쉽게 확인 가능하며 필요한 경우 이전 버전으로 돌아갈 수 있음
  • 협업 - 여러 개발자가 동시에 작업할 수 있음.
  • 브랜치 관리 - 개별 브랜치 개발을 통해 병렬 개발 가능
  • 히스토리 관리 : 코드 변경에 대한 히스토리 확인이 가능

 

1. Terminal 실행

 

2. git 설치 명령어 실행

brew install git

* brew command 는 homebrew 가 설치되어 있어야 사용 가능 합니다. 설치가 필요하시면 아래 글을 참조 해주세요.

https://gabrielyj.tistory.com/218

 

3. git 설치 버전 확인

git --version

 

 

 

+ Recent posts