글에서 우리가 설치한 json-server는 눈치 못챘겠지만 Restful 서버다 Restful이란 url이 아닌 클라이언트로 부터 온 메소드가 무엇인가? 에 따라 서버 동작이 결정되는 것인데, 강제는 아니고 써보니 명확하고 좋아서 모두 그렇게 쓰는 관례다. 규모가 커졌을 때 프론트 와 백엔드를 나누어 작업할 때도 그렇게 좋다.
아래가 가장 일반적 메소드 사용 관례다.(참고로 form태그는 get과 post만 지원한다) 모두 지원하는 것은 AJAX다 (아래 이외에도 patch등등 더 있다.)
GET 은 조회, POST는 생성, PUT은 수정, DELETE는 삭제
json-server가 restful임을 확인하기 위해 chrome web store에서 rest client로 검색 아래 boomerang을 브라우져 확장 프로그램으로 추가하자. (그냥 브라우져에선 코드 작성없이 get 이외의 메소드 요청을 할 수 없어서 필요하다)
사실 추천하고 싶은 건 Talend API Tester - Free Edition 인데.. 여기선 Boomerang이 큼직큼직 해서 지금 상황에선 더 적합하다. Boomerang을 이용하여 json-server가 restful임을 확인하자. 먼저 get 메소드 전체 리스트
get 메소드 특정 id 한명만 조회
post 메소드 생성 (데이터 추가)
생성 후에 메소드만 POST에서 GET으로 바꾸어 보면 추가 된 걸 확인 가능
put 메소드 수정 (데이타 변경)
수정 후에 메소드만 PUT에서 GET으로 바꾸어 보면 추가 된 걸 확인 가능
DELETE는 직접 한번 해보기 바람
지난 글에서우세종이라 이야기 했던 것이 react-query인데, 지금은 더 유명해져서
tanstack이라고 불리고, 물 들어올 때 노 저으라고 마구 인기 상승중이다.
낯설긴 하겠지만 요 타이밍에 얼굴이라도 익히게 한번 써먹어 보자.(자주 봐야 친해진다.)
비동기도 지난번엔 fetch를 썼으니,이번엔 axios를 한번 써보자.(then을 한번만 쓰면 되서 좋다!)
결과는 이전 글과 같지 않을 수 없다!!. 상세 설명을 하기 전에 오늘은 Container function안의 흐름만 눈여겨 보길 바란다. useQuery 이후로 그저 아래로 비동기식 흐름이 아니라, 동기식 흐름에, useState도 없다. 이거이 react-query의 장점이다. 그저 아래로 눈이 흐르면 된다. (....??? 아마 아직 아닐거다... 몇번은 더 봐야 할것이다.) 이왕 본 김에 조금 더 나아가 보자
MyButton.jsx
importstyledfrom"styled-components";
constMyButton=styled.button`
color: #fff;
background-color: #0069d9;
border-color: #0062cc;
border-radius: 8px;
margin-right: 10px;
width: 200px;
height:50px;
font-size:1.5em;
`;
exportdefaultMyButton;
Container.jsx 조금 길고 낯설겠지만 그냥 흐름 style을 편한 맘으로 인사정도로 보자