encodeURIComponent는 주소 한 칸에 넣을 글자를 포장하는 함수예요. 검색어에 &가 있으면 주소가 거기서 끊긴 걸로 읽히니, 깨지기 쉬운 글자를 %26 같은 안전한 모양으로 싸서 넣는 거죠.
비유가 깨지는 곳 포장을 두 번 하면 %가 %25가 돼서 값이 깨져요. encodeURI는 주소 전체용이라 &나 = 같은 구조 문자를 그대로 두니, 쿼리 값엔 encodeURIComponent나 URLSearchParams를 써요.
encodeURIComponent()는 URL(Uniform Resource Locator)의 한 조각(쿼리 값, 경로 세그먼트)에 넣을 문자열을 퍼센트 인코딩(Percent-Encoding)하는 함수다. encodeURI()는 URL 전체를 인코딩하므로 &·=·?·/ 같은 구조 문자는 그대로 둔다.
쿼리 키(Query Key)는 TanStack Query가 캐시 항목을 식별하고 무효화 범위를 고르는 배열이다. 키를 일반적인 것에서 구체적인 것 순서로 쌓고, 한 곳(키 팩토리)에서 만들게 하면 부분 일치(Partial Matching)로 원하는 범위만 정확히 무효화할 수 있다.
XSS(Cross-Site Scripting)는 공격자가 넣은 스크립트가 내 사이트의 출처(origin) 권한으로 사용자 브라우저에서 실행되는 공격이다. 같은 출처의 코드로 돌기 때문에 same-origin-policy가 막아 주지 못한다. 그 스크립트는 페이지를 바꾸고, 로그인한 사용자 행세를 하며 요청을 보내고, JS가 읽을 수 있는 데이터(localStorage의 토큰 등)를 빼 갈 수 있다.
SEO(Search Engine Optimization)는 검색 엔진이 페이지를 잘 찾고(크롤링, crawling), 이해해서 저장하고(색인, indexing), 알맞은 검색어로 노출하도록(순위, ranking) 사이트를 다듬는 일이다. 개발자가 맡는 부분은 대부분 앞의 두 단계, 즉 "검색 엔진이 읽을 수 있게 만드는 것"이다.
DRF에서 파서(Parser)는 요청 본문을 파이썬 자료형으로 바꾸고, 렌더러(Renderer)는 응답 데이터를 클라이언트가 받을 형식으로 바꾼다. 어떤 렌더러를 쓸지는 요청의 Accept 헤더를 보고 고르는데, 이를 콘텐츠 협상(content negotiation)이라 한다.