ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Rest 넌 뭐니??
    Study/Server 2022. 12. 16. 23:07
    반응형

    스프링을 배우면서 Rest방식??Rest  API?? @RestController 등...Rest에 대해서 많이 들어 봤을것이다.

    나도 공부 하면서 많이 들어 봤지만 들었을때는 아하! 하고 알지만 또 까묵....

    그래서 다시한번 정리 해본다.

     

    1.Rest방식이 나오게된 배경

    과거 웹 애플리케이션이 주가 되던시절 서버의 데이터를 소비하는 주체는 오직 '브라우저'라는 특정한 애플리케이션만 있었고,  '브라우저'가 소화 가능한 모든 데이터를 HTML이라는 형태로 전달하고, 브라우저는 그저 화면에 보여주는 역할만을 해왔다. 

    그러나 시간이 흘러 모바일이 우리생활과 밀접해 '앱' 이라는 데이터 소비 주체가 생겨나면서 보이는 화면 역시 자신만의 방식으로 서비스를 하게 되면서 점점 서버에게 순수한 데이터만을 요구하게 되었고, 시간이 흘러 '브라우저' 또한 '앱'처럼 서버에 순수한 데이터만을 받아 '브라우저' 내부에서 별도의 방식을 통해서 데이터를 소비하는 형태로 전환되었다.

    이러한 데이터 소비 형태로 전환 되면서 좀더 효율적이게 데이터를 주고받을 방법은 없을까?! 에서 나온 결과가 Rest방식이 나오게 되었다.

    2.Rest 란?

    Representational State Transfer 의 약자로 자원의 이름으로 구분하여 해당 자원의 상태(정보)를 주고 받는 어떠한 정해진 형식을 말한다. 즉, 이러한 형식으로 사용하면 효과적으로 자원의 상태를 주고받을수 있으니 이러한 형식을 쓰는걸 'REST방식' 이라 부르자고 개발자들끼리 약속하는것을 의미한다.

     

    3.Rest  API 란?

    Rest  API는 웹의 통신 규약인 HTTP를 이용한다. 여기서 API란 컴퓨터의 기능을 실행시키는 방법을 의미 합니다.

    예를들어 파이썬에서 print('hello') 로 출력을 하고 자바스크립트에서는 document.write('hello')로 출력한다. 이런것 하나하나가 API라고 볼수 있다.

    Rest  API도 기능을 실행시키는 방법중 하나이나 내컴퓨터가 아니라 남의 컴퓨터를 실행하는것으로

    예를들어,특정주소 http://localhost:8080/member/member_id 로 접속을 했을때 특정 멤버의 데이터를 조회할수도 있다.

    이렇게 인터넷과 나의컴퓨터를 제어할때 어떻게 하면 실행 착오를 줄이고 더 좋은 API를 만들수 있을까의 결과물이 

    Rest  API 이다.

    Rest  API는 특정기술을 의미하는것이 아니라 HTTP를 이용해서 기계들이 통신을 할때 HTTP가 가진 잠재력을 최대한 이용할수 있도록 유도하기 위한 모범사례중 하나이다.

     

    그렇다면,Rest  API 어떻게 쓰는걸까?

    첫번째, URI는 정보의 자원(RESOURCE)을 표현해야한다.

    두번째, 자원(RESOURCE)에 대한 행위는 HTTP Method(POST,GET,PUT/PATCH,DELETE)로 표현한다.

     

    예를 들어,

    회원 목록 /members -> GET
    회원 등록 /members -> POST
    회원 조회 /members/{id} -> GET
    회원 수정 /members/{id} -> PATCH,PUT,POST
    회원 삭제 /members/{id} -> DELETE

     

    이렇게 자원은 URI로 표현하고 이거에 대한 행위는 HTTP Method(POST,GET,PUT/PATCH,DELETE)로 표현

    참고로, 주소창에는 URI부분만 보이고 HTTP Method 보이지 않음, 보고싶으면 개발자도구로 확인할수 있음. 

     

    4.@RestController란?

    출처: https://mangkyu.tistory.com/49

     

    @RestController는 @Controller+@ResponseBody를 합친것

    @RestController의 주 용도는  json형태로 객체 데이터를 반환하는 것으로 객체를 ResponseEntity로 감싸서 반환한다.

    반응형

    댓글

Designed by Tistory.