본문 바로가기

웹기술

나의 REST API 설계 과정 이번 글은 회원 로그인 API를 RESTful하게 작성하는 과정을 기록한 글입니다. 코드는 디자인 가이드부터 시작됩니다. REST API (Representational State Transfer API)란? REST를 준수해 만든 API REST API를 통해 (1) 클라이언트와 서버 간 결합도를 낮출 수 있고 (2) 자원 관리가 쉬운 장점을 가짐 - REST란? 웹의 장점을 최대한 활용할 수 있는 네트워크 아키텍처로써 - REST를 준수한 API는 아래와 같은 구성으로 이루어져있음 - REST 구성 (1) 자원 (Resource) - URI (2) 행위 (Verb) - HTTP Method (3) 표현 (Representations) 즉 네트워크 자원을 표현하는데에 집중하고, 처리하는 방법에 대한 정.. 더보기
직렬화와 데이터 형식 (XML, JSON, YAML) 더보기 구조화된 데이터를 (like 테이블) 전송하기 위해 아래 형식 중 선택할 수 있음 XML (eXtensible Markup Language) : 다른 시스템간 정보를 교환하는데 사용하는 마크업 언어 JSON (JavaScript Object Notation) : YAML : 사용자 편의를 중시하는 데이터 표현 방식 직렬화 (Serialization) 컴퓨터의 데이터 객체를 저장매체에 저장할 수 있는 형식, 또는 네트워크를 통해 전송할 수 있는 것으로 변환하는 것을 뜻함 데이터 전송을 편리하고 효율적으로 하려면 한줄의 긴 텍스트로 전송하면 된다. 하지만 아래 그림과 같은 구조화된 테이블 데이터를 전송하려면 어떻게할까? XML (eXtensible Markup Language) XML은 사람과 기계가.. 더보기
CORS CORS (Cross Origin Resource Sharing) 다른 Origin으로 요청을 보내기 위해 지켜야하는 브라우저의 정책으로 교차 출처 자원 공유라고 부름 원래대로라면 SOP에 의해 막히게 될 요청을 풀어주는 정책임 즉, 서버는 평소처럼 요청이 오면 응답을 해줄 뿐이고, 브라우저가 자신이 보낸 요청 및 서버로부터 받은 응답의 데이터가 CORS 정책을 지키는지 검사하여 안전한 요청을 보낸 건지 검사하는 것이다. 따라서 서버가 정상적으로 응답을 해줬더라도, 알고 보니 안전한 요청이 아니라고 판단되면 해당 응답을 버린다. 그렇기 때문에 서버 간 통신에서는 이러한 정책이 전혀 적용되지 않는다는 것을 알 수 있다. ※ 참고로, 위에서 언급한 예외 상황 중 CORS 요청을 제외한 나머지 경우는 요청 시.. 더보기
API vs REST API vs HTTP API ?! API (Application Programming Interface) 애플리케이션에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 즉, 컴퓨터나 소프트웨어끼리 데이터를 주고 받는 인터페이스이다. HTTP API HTTP라는 통신 규칙으로 소통하는 API이다. 잠깐 HTTP를 사용하지 않는 API도 있나?! 인터넷을 사용하지 않는 시스템끼리 통신할 때는 HTTP API를 사용하지 않는다. REST API (Representational State Transfer) REST를 준수해 만든 API REST 구성 (1) 자원 (Resource) - URI (2) 행위 (Verb) - HTTP Method (3) 표현 (Representations) REST란.. 더보기
브라우저에 URL을 입력하면 어떤 과정이 진행될까? 브라우저 rendering process 1. uri를 입력하면 해당 uri에 접속한적이 있는지 자료저장소에서 찾고, 방문했다면 쿠키를 렌더링 엔진으로 저장 2. rendering engine (webkit) working process : - rendering engine : 요청한 URI를 기반으로 server에게 요청하고 server로 부터 URI에 해당하는 데이터 (HTML, CSS, JavaScript)를 받아서 파싱한 후 렌더링함 (Chrome webkit) 3. HTML, CSS parsing process : 브라우저가 웹페이지를 그리기 위해 필요한 파일들을 가져오는 단계 4. 렌더링 과정 : 가져온 파일 (html, css, js, 외부 리소스) 을 가지고 브라우저가 웹 페이지 렌더링 j.. 더보기