Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- react native
- js
- s3 upload
- Next.js
- React
- Access Key 생성
- AWS
- babel.config.js
- 리액트 네이티브
- 리액트 네이티브 에러
- 백준
- react native 세팅
- error
- 리엑트 네이티브 아이콘
- GIT
- aws bucket 정책
- img upload
- Project
- react native font
- 에러
- 리액트
- PongWorld
- firebase 라이브러리
- 문자열 대소문자 구별
- react native picker
- react native 개발
- fire base
- 문자열 대소문자
- react native CLI
- AWS Access Key
Archives
- Today
- Total
밝을희 클태
[ Remix ] fetch로 서버 사이드 액션 호출 테스트 본문
요즘 회사에서 프로젝트를 진행할 때 주로 Remix 풀스택 프레임워크를 사용하고 있다.
그런데 사용하면서 불편한 점이 하나 있다.바로 서버 사이드 액션을 호출할 때 반드시 action 함수를 사용해야 한다는 점이다.
물론 Remix의 구조는 장점도 많지만,
개인적으로는 그 장점을 상쇄할 만큼 불편한 부분도 있다.
예를 들어, 복잡한 코드 흐름 속에서 useFetcher()를 사용한 뒤,
그 상태 값을 useEffect 내부에서 다시 검증해야 한다는 점이 매우 번거로웠다.
간단한 프로젝트라면 상관없지만,
파일 하나에 코드가 길어질수록 A 함수에서 서버에 요청을 보내고,
응답을 B 영역(useEffect 등)에서 따로 처리해야 하는 구조는
코드의 흐름이 끊겨 보여서 읽고 쓰기 모두 어려웠다.
그러다가 문득 생각했다.
action 함수도 결국 내부적으로는 fetch가 래핑돼 있을 텐데,
그렇다면 직접 fetch로 호출해도 되지 않을까?
테스트를 해봤고, 실제로 클라이언트 측에서 fetch를 사용해도
Remix의 서버 사이드 액션을 동일하게 호출할 수 있었다.
🧪 테스트 방식
1. 서버 사이드 액션 생성
app/routes/api.test.ts
import { json } from "@remix-run/react";
export const action = async () => {
console.log("hello world in server");
return json("hello world");
};
2. 클라이언트 사이드에서 호출
useEffect(() => {
const test = async () => {
const res = await fetch("/api/test", {
method: "POST",
});
console.log(await res.json());
};
test();
}, []);
action을 사용하지 않고도 서버 사이드 액션을 성공적으로 호출할 수 있다.
'React' 카테고리의 다른 글
[ @tanstack/react-virtual ] 대형 리스트 성능 최적화하기 (0) | 2025.04.19 |
---|---|
[ React / Next.js ] 이미지 슬라이더(image-slider)를 만들어보자 (0) | 2024.05.09 |