인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

Full Stack 개발자님의 프로필 이미지

작성한 질문수

FastAPI 완벽 가이드

react

작성

·

64

0

안녕하세요

저희는 기존에 react + node를 사용해서 개발을 하고 있었는데요

python으로 변경하려는 상황입니다.

 

강의를 보면서 jinja라는 것을 알게 되었는데요.

찾아보니까 react를 사용하면 jinja를 사용하지 않는다고 하더라구요

 

react를 사용하는게 맞을까요 아니면 jinja를 사용하는게 맞을까요

 

보통 어떻게 많이 사용하나요?

답변 2

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

네, react를 사용하면 jinja template engine을 적용할 필요가 없습니다.

react에서 frontend를 다 담당하기 때문에 fastapi 서버에서 jinja template engine을 HTML을 가공해서 생성할 필요가 없습니다.

react와 같이 frontend용 framework/library를 사용할 지 , 서버단에서 html을 가공 생성하는 jinja와 같은 template engine을 사용할지는 프로젝트 내부에서 결정하시면 됩니다.

기존에 react로 frontend가 되어 있다면, (유지보수가 어렵다고 판단되지 않는 한) 굳이 jinja로 변경할 필요는 없어 보입니다.

감사합니다.

Full Stack 개발자님의 프로필 이미지

답변 감사합니다.

그리고 강의와 별도로 궁금한 점이 있습니다.

단순히 다른 개발자분들이 보통 어떠한 방식으로 개발하는지 궁금합니다.

  1. front,backend 각각의 가상 환경에서 개발을 하나요? 아니면 하나의 가상환경에서 front,backend 모두 필요한 것을 설치하고 개발하나요?

    (보통 frontend 강의를 보면 가상환경에서 개발하는 것을 본적이 없어서 front도 가상환경에서 보통 개발하는지가 궁금합니다)

 

  1. 혼자 개발한다고 가정할 때, 첨부한 이미지처럼 Visual Studio에서 폴더로 이미지와 같이 front, backend 폴더로 단순히 나눠서 관리를 하나요? 아니면 별도로 front용,backend 용을 각각 visual studio를 켜놓고 작업을 하나요??


  2. 저는 현재, 이미지와 같이 Visual Studio를 하나 켜두고 개발을 진행하고 있는데요 front폴더와 backend 폴더를 왔다갔다 개발을 하다보니까 Visual Studio 언어를 제대로 인식하지 못해서 계속 Python, JavaScript로 변경해줘야 하는 사항이 있어서 굼긍해서 여쭈어 봅니다.

제 주변에 개발자가 없어서 답변해주신다면 큰 도움이 될 것

권 철민님의 프로필 이미지
권 철민
지식공유자

첨부파일이 안보여서, 어떻게 구성하셨는지는 모르지만, front와 backend로 나눈다기 보다는 node 기반의 javascript와 python 기반의 개발환경 구성이 좀 다릅니다.

둘 다 개발환경내의 라이브러리들이 버전등이 달라지거나 겹쳐지지 않기 위해서 별도의 개발환경을 구성하지만, 방식은 다릅니다. 보통 python은 가상환경으로, javascript는 npm 등으로 프로젝트 구성을 합니다.

둘다 겹치지 않게 디렉토리 구성을 합니다. front와 backend와 같이 디렉토리를 나눌 수 있습니다. python의 가상환경 설정과 npm은 서로 다른 요소이므로 동일한 VSC에서 작업할 수 있습니다. 설정을 python 가상 환경 잡혀있는 console 기반에서 npm을 적용하시면 될 겁니다.

 

 

 

Full Stack 개발자님의 프로필 이미지

너무 감사합니다 강사님!!

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. Full Stack 개발자님!

React와 Jinja는 서로 다른 환경에서 사용되는 도구들입니다. React는 주로 클라이언트 사이드에서 SPA(Single Page Application)를 개발하는데 사용되는 JavaScript 라이브러리인 반면, Jinja는 Python 웹 프레임워크에서 서버 사이드 템플릿 엔진으로 활용됩니다.

일반적으로는 다음과 같은 기준으로 선택할 수 있습니다:

  1. React: 사용자 인터페이스(UI)를 클라이언트에서 렌더링하고자 한다면 React를 사용하는 것이 일반적입니다. 복잡한 인터렉티브 UI나 동적인 페이지 변경을 효율적으로 처리할 수 있습니다.

  2. Jinja: 서버에서 HTML 페이지를 렌더링하여 전송하고 싶다면 Jinja를 사용하는 것이 유리합니다. 이는 페이지가 고정되어 있거나 동적 데이터 삽입이 비교적 간단한 경우에 적합합니다.

보통 프런트엔드와 백엔드를 분리하여 개발하는 경우, Frontend에서는 React를 사용하고, Python을 활용한 Backend에서 FastAPI와 같은 프레임워크로 API를 개발하여 데이터만을 제공하는 방식으로 운용됩니다. 이렇게 하면 프론트와 백엔드의 역할이 명확히 분리되어 관리하기가 쉬워지는 장점이 있습니다.

관련하여, FastAPI와 리액트(RFQ 강의 관련)라는 기존 게시물을 추천드립니다. 이 질문에서는 FastAPI를 백엔드로 사용하면서 프론트엔드와의 통합을 논의하고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.