Q. RESTful 하다는 것은 어떤 건가요?

> REST를 잘 지킨 시스템입니다. RESTful의 목적은 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것 입니다.

 

 REST에 대해서 말씀드리면, 웹에서 데이터를 전송하고 처리하는 방법을 정의한 인터페이스입니다. 모든 데이터의 구조와 처리방식은 URI을 통해 정의되기 때문에 직관적으로 이해하기가 좋습니다.

 

REST의 아키텍쳐는 고유한 ID로 명시한 자원과 HTTP Method인 행위 Client요청에(request) 대한 CRUD 응답(response)인 표현으로 구성되어있습니다. 

 

특징은 서버 클라이언트 구조 / 무상태성 / 캐시 처리 가능/ 계층화 / 인터페이스 일관성이 있습니다.

순서대로 간략히 말씀드리면,

 1) 서버와 클라이언트의 역할을 확실히 구분시켜주어 서버 클라이언트 간 개발해야 할 내용이 명확해지고 서로 의존성이 줄어들게 됩니다. (서버는 api 제공, 클라이언트는 인증이나 컨텍스트(세션, 로그인 정보)등을 직접 관리)

 2) REST는 무상태성입니다. 작업을 위한 상태정보(세션정보나 쿠키 정보등)를 따로 저장하고 관리하지 않기 때문에 API 서버는 들어오는 요청(respones)만을 단순히 처리하면 됩니다. 그래서 서비스의 자유도가 높아지고 구현이 단순해집니다.

 3) 캐싱기능은 HTTP 웹 표준을 그대로 사용하기 때문에, HTTP 프로토콜 캐싱 기능인 Last-Modified 태그나 E- Tag를 이용하면 캐싱 구현이 가능합니다.

 4) 계층화는 REST는 다중 계층으로 구성될 수 있습니다. 보안, 로드 밸런싱, 암호화 계층을 추가해 구조상의 유연성을 만들 수 있고 PROXY, 게이트웨이 같은 네트워크 기반의 중간매체를 사용할 수 있습니다.

 5) 마지막 특징 인터페이스 일관성은 HTTP 표준만 따르면 안드로이드,IOS 플랫폼 등등 특정 언어나 기술에 상관없이 모든 플랫폼에서 사용할 수 있습니다. 

 

단순히 하나의 브라우저만 지원하던 이전과 달리, 최근 서버 프로그램은 여러 웹 브라우저와 아이폰, 안드로이드 등 다양한 애플리케이션과 통신할 수 있어야합니다. 이런 상황에 범용적이고 쉽게 사용 가능한 REST API 방식이 생겨났고 지금까지 해당 방식이 많이 쓰이고 있습니다.

 

그럼에도 몇몇 단점이 있어 이를 보완하기 위해 GraphQL이 등장했고 프로젝트 성격에 따라 어느 방식을 사용하는 것이 좋은지 고려하는것이 좋다고 생각합니다. 

 

 

 


12/9 TIL

진~짜 간만에 TIL! 요새 너무 바빴당 아침부터 밤까지 공부하고 취준하고 운동하고 책읽고 열심히 사는중.

git에 잔디 쌓이는 재미가 쏠쏠하당 자바스크립트로 게임 만드느라 3일정도 홀라당 코딩하고 간만에 책읽는 재미 붙어서 11월에만 5권은 읽은거 같다. 뭐 요번주부터는 진짜 취업해야지.. 생각들어서 이력서 적당히 내면서 개인프로젝트 하고 있는데 노마드코더강의 들은거 진짜 잘한거 같당 그동안 머리박으면서 코딩했던거 개념 차근차근 알려주고 꿀팁 알려줘서 아 이렇게 하면 컴팩트하게 코드 작성 하겠구나~ 싶어서 지금 단계에 맞는 강의를 찾은듯.

 

뭐 공부하고 운동하고 재미없게 살아서 스페셜한 일은 없었는데, 우리 월드컵16강 진출한거 띠용해서 16강전 친구네 놀러가서 같이 본거 정도? 아니 포르투갈 이기고 우르과이가 가나 2골차이로 이겨서 16강 진출한거 진짜 에바아님? 드라마도 스토리 이정도면 짜친다는 소리 들을거 같은데, 증말 중요한건 꺾이지 않는 마음이었나보다. (유투브에 ㅈ만쳐도 '중요한건 꺾이지 않는 마음'이 뜬다 올해 슬로건..)

물론 새벽4시에 일어나서 본 브라질 전은 4대1로 떡실신 당하긴 했지만 거기까지 간 스토리만으로도 충분히 감동적이고 대단했고 인터뷰에서 오히려 져서 죄송하다고 사과하는 선수들을 보며 전혀 그렇게 생각 안한다고 말해주고 싶었당

그리고 후반전은 너무너무 잘했음 국대들 짱짱맨..bb

 

 

+ Recent posts