
Q. REST에서 무상태성(Stateless)이란 무엇인지 설명해 주세요.
웹 서비스를 설계할 때 자주 언급되는 개념 중 하나가 바로 REST 아키텍처 입니다.
REST는 여러 제약 조건을 통해 탄순하면서도 확장성 있는 시스템을 만들 수 있게 하는데, 그중 핵심이 바로 무상태성(Sateless)이에요.
무상태성은 말 그대로 서버가 클라이언트의 상태를 보존하지 않는다는 의미입니다.
즉, 클라이언트가 서버에 요청을 보낼 때마다 그 요청 자체만으로 처리가 가능해야 하며, 서버는 "이전에 어떤 요청이 왔는지", "현재 클라이언트가 어떤 상태인지" 같은 정보를 따로 기억하지 않습니다.
그래서 클라이언트는 서버로 요청을 보낼 때마다 인증 정보, 필요한 데이터, 요청을 처리하기 위한 모든 조건을 함께 전달해야 합니다.
서버는 이를 바탕으로 요청을 독립적으로 처리하고 결과를 반환합니다.
쉽게 말해, 각각의 요청은 완전히 독립적이고 자기완결적(self-cntained)이어야 한다는 원칙이죠.
GET /user/123 요청을 보낼 때, 항상 인증 토큰이나 필요한 파라미터를 포함해야 합니다.REST는 이 두 가지 방식 중 무상태성을 따르는 것이 원칙입니다.
결국 REST의 무상태성은 서버가 클라이언트의 상태를 저장하지 않고, 요청 하나하나를 독립적으로 처리하도록 하는 원칙입니다.
이 원칙 덕분에 RESTful 서비스는 단순하고 확장성이 뛰어나지만, 동시에 클라이언트가 상태 관리 책임을 더 지게 된다는 특징이 있습니다.