안녕하세요 장고와 리액트 연동관련되어 질문있습니다.

조회수 289회

안녕하세요 현재 장고와 리액트로 웹사이트를 하나 제작중입니다. 장고는 restframework를 사용하여 api로 만들고 리액트는 api에 접근해 프런트에 보여지게 만들었는데요. 장고 프로젝트 안에 있는 앱 중에 하나가 리액트를 사용하지 않고 장고 템플릿을 사용하여 프런트에 렌더링을 해주고 있는데 개발하는 과정에서는 크게 문제가 없는 것 같은데 배포과정에서 문제가 생길 수도 있을 것 같네요. 아무리 검색해 봐도 이런 구조를 배포하는 법은 찾기가 어렵더라구요.

대략적인 구조는

-frontend(react)
-api
-djangoApp

이런 식인데 frontend도 리액트로 렌더링을 하고 djangoApp도 프런트에 렌더링을 해줍니다. 아무래도 static 파일들이 모여지고 경로를 찾고 하는 과정이 가장 걱정인데 별 다른 옵션 없이도 잘 배포가 가능할까요? 배포는 aws를 이용할 예정입니다. 비슷한 경험이 있으시거나 참고할만한 자료가 있다면 댓글 달아주시면 감사하겠습니다.

감사합니다!

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    크게 문제될 것 없습니다.

    요컨대 서버가 클라이언트 기능을 일부 겸직해도 되겠느냐? 의 문제 같은데요, 클라이언트와 서버를 100% 분리한다는 건 대견한 일이긴 하지만 반드시 그래야 하는 건 아닙니다. 현실 프로젝트에서는 부득이 그렇게 할 수 없는 경우가 썩 있습니다. 예를 들면 구글 OAuth 로그인 구현 과정에서는 구글이 우리 홈페이지 어딘가를 콜백할 페이지(라우트)가 필요한데, 해시 라우터를 쓰고 있을 경우에는 그 콜백 URL에 넣는 해시가 다 씹히기 때문에 전용 뷰를 서버에서 만들어서 뿌려주는 경우가 있습니다. 로그인만 잘 되면, 아무도 뭐라고 하지 않습니다.

    핵심만 이해하시면 헷갈리거나 걱정할 일은 없습니다. 말은 "API 서버"라고 하지만 실은 그냥 우연히 Content-Type: application/json인 응답을 주로 하는 웹앱일 뿐이에요. 그걸 그대로 고객에게 보여줄 수 없어서 끼워들어가져 있는 게 클라이언트 리액트라고 생각해 보세요. 그렇다면 가끔 필요한 곳에서 API 서버가 Content-Type: text/html인 응답을 내려준다면, 리액트는 건너뛰어도 되는 거거든요. 서비스의 내용에 집중해서 적정선만 잘 유지한다면, 누가 뷰를 그릴지 누가 무슨 파일을 사용할지 이걸 운영단에까지 적용할지 등등은 좀더 유연하게 생각하셔도 좋을 것입니다.

    답변이 됐으면 좋겠네요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)