제일 처음의 개념은 독립성이다. 즉 해당 앱만 띠어다가 다른 프로젝트에 옮겨넣는다고 하더라도, 마이그레이션 해주고, 관련 패키지들만 설치되어있다면 다른 프로젝트에서도 돌아갈 수 있는 기능의 모음들인가를 뜻한다. 하지만 현실은 그렇지 않다. 내가 프로젝트로 진행했었던 에어비엔비에서도, 숙소를 만드는 순간 숙소의 호스트가 생기고, 예약을 하는순간 게스트와 호스트의 외래키가 필요해진다. 여기에서 내 의견을 조금 덧붙이자면, 앱의 이름에 따라 REST API의 URI가 정해지는 만큼, 해당 앱에서 다루는 주요 리소스에 따라 붙이는게 맞다고 생각한다.
말그대로 HTML이 한개의 페이지로 이루어진 어플리케이션을 말한다. 싱글페이지가 아닌 웹페이지는 페이지를 이동할 때마다 같은 nav bar, footer같은 정보들을 불필요하게 렌더링하게되는데 SPA의 경우는 이러한 부분들이 처음 접속시에만 렌더링되고, 이후에는 페이지에 표시될 내용들을 필요한 부분만 렌더하여 뿌려주게 된다.
200 OK
요청이 성공적으로 이루어진 경우
400 Bad Request
잘못된 문법으로 서버가 요청을 이해할 수 없는 경우.
401 Unauthorized
미인증, 상용 서비스의 측면에서 보면 우리 회원인지 인증이 되지 않은 경우
403 Forbidden
미인가, 해당 컨텐츠에 접근할 권리가 없다.
(예를들어, 하나의 웹에서 관리자 권한까지 사용할 수 있다는 가정하에, 단순히 회원 권한만 가진 유저가 관리자 권한을 필요로 하는 컨텐츠에 접근을 요청했을 경우)
404 Not Found
해당 리소스를 찾을 수 없다.
405 Method Not Allowed
해당 메소드가 허용되지 않았거나, 존재했지만 삭제된 경우.
409 Conflict
요청이 해당 서버의 상태와 충돌될 경우.
(예를들어, 해당 이메일로 가입된 계정이 이미 있음에도 불구하고, 중복된 이메일로 가입을 시도할때)