리다이렉트와 포워드 특정 URL 접속 시 리다이렉트 또는 포워드가 일어나게 되면 작업 중인 페이지가 전환된다. 리다이렉트와 포워드는 페이지가 전환된다는 점에서 비슷한 역할을 한다. 하지만 이 둘 사이에는 페이지를 전환하는 주체가 다르다는 큰 차이점이 있는데, 이 차이점이 동작에 큰 영향을 미친다. 리다이렉트는 페이지 전환 주체가 클라이언트이며, 포워드는 페이지 전환 주체가 서버이다. 클라이언트가 주체가 되어 페이지를 전환하는 방법은 접속한 URL이 아닌 다른 URL로 직접 접속하는 방법 밖에 없다. 반대로 서버가 전환 주체가 되면 URL 주소가 바뀌지 않고도 서버 내부의 동작을 통해 다른 응답을 클라이언트에 내려줄 수 있게 된다. 리다이렉트와 포워드가 무엇인지, 어떻게 동작이 다른지를 살펴볼 것이다. 리..
Network
직렬화와 역직렬화 통신에서는 객체 그 자체를 통신에 사용하기가 어렵다. 때문에 컴퓨터에서는 파일을 다른 컴퓨터로 보내기 전 통신이 가능하면서 나중에 재구성할 수 있는 포맷으로 변환해주어야 한다. 우리는 이러한 과정을 직렬화라고 한다. 이렇게 변환된 포멧의 일종이 바로 JSON이다. 직렬화된 파일은 다시 객체 형태로 변환되어야 하는데 이러한 과정을 바로 역직렬화라고 한다. Moshi란? Moshi란 JSON과 객체 사이의 직렬화와 역직렬화를 쉽고 안전하게 할 수 있도록 돕는 라이브러리이다. Moshi의 특징으로는 리플랙션과 Codegen 방식의 변환을 모두 지원한다는 점이다. 이러한 방식으로 자 이제 Moshi를 이용해 JSON을 어떻게 역직렬화 하는지 살펴보자 Moshi Annotation에 JSON 구..
JSON이란 JSON(JavaScript Object Notation) 은 데이터를 키(key)-값(value) 쌍으로 만들어 저장하기 위한 포멧의 일종이다. { "id": 1, "priority": 999 } JSON은 위와 같은 포멧으로 저장되는데 ':'을 기준으로 왼쪽 값이 key가 되며 오른쪽 값이 value가 된다. 즉, 위의 데이터를 해석하면 위 데이터값은 id가 1이고 priority가 999인 데이터라 볼 수 있다. JSON의 구성 JSON은 총 세가지로 구성되어 있다. Key-Value 쌍 JSON Object JSON Array Key-Value 쌍이 무엇인지는 방금 위에서 살펴보았다. JSON Object는 Key-Value 쌍을 여러개 가진 Object이며 JSON Array는 JS..
DELETE 메서드 DELETE 메서드는 리소스를 삭제하기 위해 사용된다. DELETE 메서드는 특정 리소스를 제거하기 위해 사용된다. 특정 경로의 리소스를 제거하기 위해 사용되므로, 데이터를 담는 바디가 있을 필요가 없다. 따라서 DELETE 메서드는 시작라인과 헤더로만 구성된다. DELETE 메서드 수행 시 과 같이 삭제를 요청 받은 리소스 경로의 리소스는 제거된다. 물론 없으면 아무런 일도 일어나지 않는다.
PATCH 메서드 PATCH메서드는 리소스를 부분 변경하기 위해 사용된다. 앞서 배운 POST와 PUT은 신규 리소스를 등록하거나 덮어쓰기 위해 사용되었다. 하지만, 항상 리소스를 새로 등록하는 것은 비용이 비싸다. 따라서 일부 데이터가 변경되거나 추가되었을 경우에 대한 동작이 필요하다. PATCH는 이러한 부분 변경을 지원하는 메서드이다. 구체적인 예시보다는 을 통해 이해하도록 하자. /post/100 경로에 A: 300, C: 400이라는 리소스가 등록되어 있을 때 PATCH를 통해 A: 100, B: 200을 PATCH하라는 요청이 왔을 경우 A는 300에서 100으로 변경되고 B는 200으로 신규 등록되며 C는 그대로 400으로 남아있는다. 부분 변경을 지원하는 동작이 PATCH 메서드이다.