정말 흔하디흔한,
리스트를 테이블에 보여주고 검색폼 붙어있는 사이트에요.
1년간 겪었던, 또는 봐왔던 구현 방법은,
https://cafe.naver.com/marineraise?type=title&searchText=%EB%A7%88%EB%A6%B0
이런 url이 있으면.
GET /url?location.search
url 뒤에 붙어있는 search부분을 그대~로 GET API에 넣어서 리스트를 불러왔었어요.
하지만 지금 다시 생각해보니, 주소창은 사용자가 입력을 할 수 있다는거에요.
https://cafe.naver.com/marineraise?unknownKey=whatthefuck
이런식으로요.
그래서 문득 돌이켜보니, 이런생각이 들었어요.
(기존)
웹페이지주소 : https://cafe.naver.com/marineraise?type=title&searchText=%EB%A7%88%EB%A6%B0&unknownKey=whatthefuck
API : GET https://cafe.naver.com/marineraise?type=title&searchText=%EB%A7%88%EB%A6%B0&unknownKey=whatthefuck
(제 생각)
웹페이지주소 : https://cafe.naver.com/marineraise?type=title&searchText=%EB%A7%88%EB%A6%B0&unknownKey=whatthefuck
API : GET https://cafe.naver.com/marineraise?type=title&searchText=%EB%A7%88%EB%A6%B0
유효하지않은 key가 queryString에 있는지 체크를 해서 API를 호출할 때는 제외해보면 어떨까 싶었어요.
제외하던 안하던, 서버에서는 어차피 queryString중에 필요한것만 추출해서 응답을 하기때문에,
제외하고 안하고에 따라 응답의 차이가 전-혀 없어요.
제외해봐도 얻을 수 있는 이득이 단 하나도없다는거에요.
비슷한 예시로,
로그인시 이메일 유효성검증을 프론트에서 먼저 하는 이유중 하나는,
유효하지도않은 이메일을 서버로 보낼바엔 클라이언트사이드에서 먼저 체크하면
서버의 부담이 줄어들어서 하는건데,
이 문제의 경우에는, 서버입장에서..
필요한 queryString이 있는지가 중요하지
불필요한 queryString이 있는지는 하나도 안중요하더라구요.
그래서 결론은 남들처럼 "url의 search부분을 그대~로 GET API에 실어서 요청하는게 낫다"
라고 내렸는데
혹시 제가 생각하지못한 부분이 있나요?