Go 및 React를 사용한 단일 애플리케이션 구축
이 문서는 Go와 React를 사용하여monolith 서비스를 구축할 수 있도록 하고, 제가 발표한 샘플 파일을 소개합니다.
단일 Go and React 애플리케이션 템플릿
오칸드 / 본보기로 삼다
단일 Go 및 React 응용 프로그램 구축을 위한 템플릿
단일 Go and React 애플리케이션 템플릿
이 저장소는 간단하면서도 단일한 서비스를 제공합니다. 그 중 하나는 Go로 작성되었고, 전면은 React입니다.이 서비스는 현대 서비스(예를 들어 마이크로 서비스나 마이크로 전단)를 대상으로 하지 않지만 개발과 배치의 단순성과 용이성을 볼 수 있습니다.때로는 단일 서비스가 소형 또는 비관건적인 업무 상황(예를 들어 내부 시스템)에 도움이 된다.
이 항목에서는 다음 언어와 프레임워크에 대해 설명합니다.
빠른 시작(개발용)
저장소에는 두 개의 항목이 있습니다.프런트엔드 및 서버 측에 사용됩니다.프런트엔드 항목은
frontend
하위 항목에 있으며 yarn
를 통해 종속 항목을 설치하고 디버그 서버를 실행할 수 있습니다.$ cd frontend
$
…
The project introduce the following languages and frameworks:
- Server-side
- Frontend
The application serves a tiny social blog as a sample. The users can publish the articles and add comments. Feel free to customize and build your applications based on this project.
빠른 시작(개발용)
The repository contains two projects; for the frontend and server-side. The frontend project is in frontend
sub-project, you can install dependencies and run the debug server by yarn
:
$ cd frontend
$ yarn install && yarn start
그런 다음 go run
디버그 모드에서 서버측 서비스를 실행합니다.$ go run main.go -debug
예시 응용 프로그램을 http://localhost:8000
에 보실 수 있습니다예제 어플리케이션: 작은 소셜 블로그
이 프로그램은 최소한의 소셜 블로그를 예로 제공했다.기사를 검색하여 브라우저를 통해 게시할 수 있습니다.너도 너의 평론을 문장에 보낼 수 있다.
모든 전단 페이지는 한 페이지 응용 프로그램이라고 불리는 한 페이지로 구성된다.서버는 HTML로 응답합니다.페이지는 원활하게 전송될 수 있다.프런트엔드 스크립트 사용axios은 API를 통해 비동기적으로 기사와 의견을 가져오고 보냅니다.서버측 응용 프로그램은 다음과 같은 REST API를 제공합니다.
GET /api/health
및 GET /api/ready
: 어플리케이션의 수명 주기를 보장하기 위한 상태 점검 엔드포인트자세한 내용은 Kubernetes docs를 참조하십시오.GET /api/articles
: 요약된 모든 기사를 가져옵니다.GET /api/articles/{article_id}
: 내용이 완전한 문장을 얻다.POST /api/articles
: 새로운 문장을 만듭니다.GET /api/articles/{article_id}/comments
: 기사 평론article_id
을 얻습니다.POST /api/articles/{article_id}/comments
: 기사 idarticle_id
에 대한 새 설명을 만듭니다.어떻게 개발합니까
서버 사이드 go 서비스는 API를 사용하여 같은 사이드에서 웹 패키지 개발 서버에 서비스를 제공할 수 있는 디버깅 모드가 있습니다.이렇게 하면 프런트엔드 스크립트가 CORS 헤드 없이 API에 액세스할 수 있습니다.
/api/
로 시작하는 경로를 포함하지 않는 모든 요청은 웹 패키지에서 제공한 자산으로 되돌아옵니다서버측
서버 사이드 프로그램은 두 개의 패키지
repository
와 web
가 있다. repository
패키지는 사용자의 요청을 읽고 지속하는 인터페이스와 실현을 포함한다.현재 실행 서버는 데이터를 저장하지 않습니다.다시 시작하면 서버에서 게시한 글이나 사용자가 보낸 댓글을 잃어버립니다.그것들을 오래 유지하려면 메모리에 아날로그 저장하는 것이 아니라 메모리 라이브러리를 실현해 보십시오.web
패키지는 사용자 URL의 요청 경로를 제공하고 요청에 대한 응답을 표시합니다.MVC 또는 DDD에서는 디렉터 레이어라고 합니다.일부 API 또는 모델을 추가하려면 각각 repository
및 web
로 설정합니다.더 복잡한 논리나 용례가 필요하다면, 새 패키지를 마음대로 실행하거나 추가할 수 있습니다.프런트엔드
모든 페이지는 한 페이지로 구성되어 있으며, 이를 한 페이지 응용 프로그램이라고 부른다.react-router는 클라이언트의 루트를 실현하는 라이브러리이다.
frontend
하위 항목은 react-scripts에서 초기화되고 디렉터리 구조와 구축 과정을 보존한다.각 구성 요소는 frontend/src
편평화 중입니다.프로덕션 환경에 배포하는 방법
수동 배포
생산 중
yarn start
과 go run
의 웹 패키지 개발 서버를 사용해서는 안 됩니다.배치하기 전에 구축해야 합니다.프런트엔드 자산을 생성하려면 yarn build
를 실행하십시오.이 명령은 축소된 HTML, JavaScript 및 CSS를 생성합니다.$ (cd frontend && yarn install && yarn build)
실행 가능한 바이너리 파일을 만들기 위해 서버측 응용 프로그램을 컴파일하려면 go build
:$ CGO_ENABLED=0 go build -o go-react-boilerplate -trimpath .
그런 다음 다음과 같은 방법으로 실행을 확인할 수 있습니다../go-react-boilerplate -webroot ./frontend/build
서버 측에서 -webroot
지정한 디렉터리에 있는 자산 파일을 제공하기 때문에 ApacheHTTP 서버나 NGINX와 같은 제3자 HTTP 서버가 필요하지 않습니다.Docker 컨테이너 만들기
저장소는 Dockerfile로 구성됩니다.docker 용기를 사용하면 응용 프로그램을 더욱 빨리 개발하고 배치를 더욱 쉽게 할 수 있습니다.Dockerfile은 여러 단계로 구성합니다.그것은 전방과 서버 사이드 단계를 구축하는 절차를 포함한다.
docker build
와 docker run
를 통해 docker 이미지를 구축하고 이미지에서 컨테이너를 실행할 수 있습니다.$ docker build -t go-react-builderplate .
$ docker run --rm -p 8000:8000 go-react-builderplate
Reference
이 문제에 관하여(Go 및 React를 사용한 단일 애플리케이션 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ueokande/building-a-monolithic-application-with-go-and-react-2i63텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)