혹시 ssr과 csr을 병행하여 사용하고 싶을 땐
api/(site)/page.tsx
에 actions/todo/todo.actions.ts를 사용하고
하위컴포넌트들에서는 ex) api/(site)/compoents/...container.ts 내부에서는 hook을 임포트한것들이
apis/todo-no-rls.ts를 사용하면 될까요?
*위 예시는 강의에서 다룬 파일만을 예를 들었보았습니다.
回答 2
1
1.
결론적으로는 actions/todo/todo.action.ts 을 사용해서도 SSR, CSR모두 대응이 가능합니다.
-참고 코드 : https://github.com/dodokyo/supa-next-todo/blob/main/actions/todo/todo.action.ts
SSR 시나리오 : 서버에서 서버사이드 랜더링 과정에서, 서버의 함수(actions/todo/todo.action.ts)을 호출하는것은 문제가 없습니다.
CSR 시나리오 : 브라우저에서 서버의 함수 ( actions/todo/todo.action.ts )을 호출하는것은 원래는 불가능합니다. 하지만 가능 합니다. 개발자 입장에서는 함수를 import 해서 사용하면 됩니다. 뒤에서 NextJS에서는 이를 API 로 만들어서 처리하죠.
서버 액션으로 한번에 처리하지 않더라도 말씀하신것처럼 해도 괜찮습니다.
SSR 시나리오
1번과 동일 합니다.
CSR 시나리오
apis/todos-no-rls.ts 는 createSupabaseBrowserClient 를 사용하고 있기 때문에, 브라우저에서 supabase 서버로 데이터 패칭을 합니다.
참고 코드 : https://github.com/dodokyo/supa-next-todo/blob/main/apis/todos-no-rls.ts
0
물론 프로젝트의 크기와 구조, 기능, 팀원과의 의견 등으로 나뉘어지겠지만
actions/todo(프로젝트명)/csrApi/todo(프로젝트명).ts
actions/todo(프로젝트명)/ssrApi/todo(프로젝트명).ts
이런식으로 관리하는게 좋을까요? 아니면 강의에 나온것처럼 ssr은 actions폴더 및에 csr은 apis밑에 나누는게 좋을까요?
0
서버액션은 scr, ssr 나누지 않아도 괜찮습니다. 공용으로 사용 가능해요.!
'use server' 을 붙이면 항상 서버에서 실행됩니다.
서버는 서버함수를 쓸 수 있어요.
클라이언트는 서버함수를 쓸 수 있어요. ( POST API로 함수를 호출하고 응답값을 받아옵니다. )
*유사한 개념의 rpc를 조사해주시면 이해가 되실꺼에요. next.js의 서버액션은 사실 기존 클라이언트 상태계에 흔하지 않던 방식이거든요.
vsCode 대신 커서를 사용
0
78
2
mac 터미널 설정이 궁금합니다
0
74
1
DBeaver와 supabase connection
0
280
2
가상환경 같은건 없나요?
0
102
3
serverComponent=false일 때 쿠키 세팅을 하는 이유?
0
122
2
getUser 에 갑자기 serverComponent가 추가된 이유?
0
90
2
getUser 에 갑자기 serverComponent가 추가된 이유?
0
91
2
useCallback의 디펜던시 배열에 supabase 넣는 이유?
0
84
2
수파베이스 인증 토큰에서 개인정보 지우는 법?
0
152
2
Server Actions CRUD 로직, RLS 테스트 권한 error
2
124
2
DBeaver로 supabase connection해보기
0
426
2
Supabase CRUD 하기 또는 REST API화 하기 중 질문이 있습니다.
1
251
2
Direct connection / Transaction pooler / Session pooler 차이가 무엇인가요?
1
576
2
LiveDemo 페이지 정상작동하나요?
2
136
2
서버 컴포넌트에서 API 호출 시 Supabase의 클라이언트/서버 클라이언트 차이점이 궁금합니다.
0
329
2
7.2 구글 로그인 1 - AuthUI 구현 구글 로그인 관련 질문드립니다.
0
397
2
7.2 강 구글 로그인 1 강좌에서 redirectTo 로 설정해도 이동이 안되요.
0
410
3
로딩에 대한 질문
1
199
1
DBeaver는 왜쓰는 건가요?
2
657
1
타입에러에 관해 질문있습니다
0
287
4
9.1 강의에서 생긴 servercomponent 변수
2
278
2
3:07에 const result = 입력하는 부분은 복붙인가요??
0
176
1
{10.2장] 로그인 후 새로고침 해야 todolist가 보입니다
0
224
1
serverComponent 가 갑자기 강의에서나와요
0
264
1

