인프런 커뮤니티 질문&답변

루키키키님의 프로필 이미지

작성한 질문수

Supabase, Next 풀 스택 시작하기 (feat. 슈파베이스 OAuth, nextjs 14)

8.5 AuthHeader

혹시 ssr과 csr을 병행하여 사용하고 싶을 땐

해결된 질문

24.08.01 12:51 작성

·

93

·

수정됨

1

api/(site)/page.tsx
에 actions/todo/todo.actions.ts를 사용하고

하위컴포넌트들에서는 ex) api/(site)/compoents/...container.ts 내부에서는 hook을 임포트한것들이
apis/todo-no-rls.ts를 사용하면 될까요?

*위 예시는 강의에서 다룬 파일만을 예를 들었보았습니다.

답변 2

1

도도(코딩루팡)님의 프로필 이미지
도도(코딩루팡)
지식공유자

2024. 08. 01. 21:11

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 로 만들어서 처리하죠.

 

  1. 서버 액션으로 한번에 처리하지 않더라도 말씀하신것처럼 해도 괜찮습니다.

SSR 시나리오

  • 1번과 동일 합니다.

CSR 시나리오

 

0

루키키키님의 프로필 이미지
루키키키
질문자

2024. 08. 19. 15:00

물론 프로젝트의 크기와 구조, 기능, 팀원과의 의견 등으로 나뉘어지겠지만

actions/todo(프로젝트명)/csrApi/todo(프로젝트명).ts

actions/todo(프로젝트명)/ssrApi/todo(프로젝트명).ts
이런식으로 관리하는게 좋을까요? 아니면 강의에 나온것처럼 ssr은 actions폴더 및에 csr은 apis밑에 나누는게 좋을까요?

도도(코딩루팡)님의 프로필 이미지
도도(코딩루팡)
지식공유자

2024. 08. 19. 21:07

서버액션은 scr, ssr 나누지 않아도 괜찮습니다. 공용으로 사용 가능해요.!

  • 'use server' 을 붙이면 항상 서버에서 실행됩니다.

  • 서버는 서버함수를 쓸 수 있어요.

  • 클라이언트는 서버함수를 쓸 수 있어요. ( POST API로 함수를 호출하고 응답값을 받아옵니다. )

*유사한 개념의 rpc를 조사해주시면 이해가 되실꺼에요. next.js의 서버액션은 사실 기존 클라이언트 상태계에 흔하지 않던 방식이거든요.