REST API 를 쓰면 장단점이 무엇인가요??
REST API 를 쓰면 장단점이 무엇인가요??
요즘 대부분의 프론트단은 REST API 로 구축하여 화면단과 데이터단을 분리하여 작업하는것으로 알고있습니다.
이때 굳이 이렇게 작업하는 이유나 장단점이 있다면 무엇인지 궁금합니다.
1. 흔히 말하는 서버리스(AWS Lambda가 대표적) 아키텍처의 구축이 가능합니다. 적은 인력으로 유연한 서버 확장/관리가 가능해집니다.(돈은 더 많이들어갑니다)
2. 백엔드만 장애가 발생할 경우 사용자에게 최소한의 서비스 표시 및 공격상황을 알려줄 수 있도록 대응이 가능해집니다.
3. 백엔드/프론트엔드의 업무의 완전 분업화로 인하여 풀스택이 없는 협업상황에서 더욱 더 유리합니다.
단점도 존재합니다.
1. 검색엔진 최적화(SEO)에서 불리합니다.
가능은 합니다만 백엔드의 비중이 더 큰편입니다. 현재 제 추측이지만 구글을 제외한 검색엔진들은 자바스크립트 해석이 불가능하기 때문에 서버사이드 렌더링(SSR)이라는 형태로 백엔드를 운영하게 됩니다. 완전히 프론트/백엔드를 나누는 의미가 퇴색됩니다.2. 세션 검증, 인증토큰 갱신 등 백엔드 서버와 데이터를 주고받는 과정이 더 많아져 불필요한 요청이 많아집니다.
3. 서버에서 컴파일한 데이터를 전송할때보다 오히려 느린 경우가 있습니다.
제가 아는건 이정도 수준입니다.
개발에 주어진 환경/사용해야 하는 이유에 따라 결정하는편이 좋습니다. 도움이 되셨길 바랍니다.
안녕하세요.
2000년 이후로 restful or rest architecture는 web개발의 표준이라고 해도 과언이 아닙니다. 화면단이 프론트라면 그 이외의 부분은 백엔드이고, 프론트와 백엔드의 연결은 REST API를 통해서 사용하고 있습니다. 이렇게 분리를 하면 다음과 같은 장점들이 있습니다.
1. client/server로 분리함으로써 작업의 효율이 올라갑니다. 퍼블리셔는 client인 화면단만, 그리고 서버나 API개발 혹은 DB개발자는 backend에서 별도로 작업하면 됩니다. 즉 둘이 같이 소스에서 작업할 필요가 없고 별도의 분리된 공간에서 분리된 소스로 작업하면 됩니다.
2. 이런 분리는 이식성이나 변경용이성을 가져옵니다. 즉 중간에 서버를 바꾸게 되어도 rest API만 유지되면 되므로, 자유로운 변경이 가능합니다. 예를 들어 서버를 node.js로 개발했다가 python으로 변경을 해도 이 것이 화면단에는 전혀 영향을 미치지 않게 됩니다.
반대로 개발한 화면단의 서버를 다른 곳에 쉽게 이식할수도 있습니다.
3. 여기에 확장성의 장점도 있습니다. 서버의 성능은 프론트와 백엔드 모두에 관계가 되는데요, 서로 영향을 미치지 않고 서버의 성능을 확장할수 있습니다.
4. 심지어 3번에서 서버를 윈도우용 서버를 구축하던 리눅스용을 구축하던 이 또한 상관이 없게 됩니다. 즉 platform independent한 장점을 가지게 되고, 이를 cloud로 확장해 보면 Amazon cloud이던 MS Azure이던 어디로 옮겨도 상관이 없는 장점을 가지게 됩니다.
딱히 단점은, 특별히 생각해보기 어려운 거 같습니다.(적어도 제 기준에는요.)
안녕하세요 :)
REST API 장단점을 질문 주셨군요!장점 단점 나눠서 설명드릴텐데요
장점
1. 일단 쉬운 사용이라고 볼 수 있겠네요 따로 요청을 하면 뭔가 분석할 필요가 없이 쉽게 볼 수 있다는점입니다.
2. 클라이언트가 REST API로 서버와 통신을 한다는 점입니다. 따로 클라이언트 측에 문법에 얽매이지 않고 자유롭게 사용 할 수있습니다.
3. 헤더 부분에 URI 처리가 가능해서 XML JSON 등 다양한 언어로 접근이 가능하다는 점입니다.
단점
1. HTTP 메소드를 이용하기 때문에 편하기도 하지만 HTTP로 인해 메소드가 한정적이다.
2. 따로 REST API의 표준이라는게 정해져있지 않아 다른 REST API와 다른점들이 많다.
해당 질문의 사용하는 이유는 장점에 속해 있습니다.
더 궁금 하신 부분 있으시면 댓글 부탁드리겠습니다 :)
REpresentational State Transfer API
웹에서 제공하는 자원에 URI 를 부여해서 사용하는 것인데요~
화면(프론트엔드)과 데이터단 분리는 REST API 이전에 기본적으로 사용하는 것으로 알고 있습니다.
REST API의 가장 큰 장점은 클라이언트 모듈 없이(필요에 따라 제공) 쉽게
2개 이상의 시스템(고객)에서 통신을 할 수 있어 인기가 높다고 생각합니다.
통신 서비스를 제공하는 모든 회사가 개발자들에게 제공하고 있죠.
보다 많은 내용은 구글링 추전합니다.