YoriEat 서비스의 백엔드 서버 리포지토리입니다. 이 프로젝트는 gin gonic
, MongoDB
, Docker
, Docker Compose
를 사용하여 구성되었습니다.
.
├── Dockerfile
├── README.md
├── api
│ ├── controller
│ │ ├── login_controller.go
│ │ ├── profile_controller.go
│ │ ├── profile_controller_test.go
│ │ ├── refresh_token_controller.go
│ │ ├── signup_controller.go
│ │ └── task_controller.go
│ ├── middleware
│ │ └── jwt_auth_middleware.go
│ └── route
│ ├── login_route.go
│ ├── profile_route.go
│ ├── refresh_token_route.go
│ ├── route.go
│ ├── signup_route.go
│ └── task_route.go
├── bootstrap
│ ├── app.go
│ ├── database.go
│ └── env.go
├── cmd
│ └── main.go
├── docker-compose.yaml
├── domain
│ ├── error_response.go
│ ├── jwt_custom.go
│ ├── login.go
│ ├── profile.go
│ ├── refresh_token.go
│ ├── signup.go
│ ├── success_response.go
│ ├── task.go
│ └── user.go
├── go.mod
├── go.sum
├── internal
│ └── tokenutil
│ └── tokenutil.go
├── mongo
│ └── mongo.go
├── repository
│ ├── task_repository.go
│ ├── user_repository.go
│ └── user_repository_test.go
└── usecase
├── login_usecase.go
├── profile_usecase.go
├── refresh_token_usecase.go
├── signup_usecase.go
├── task_usecase.go
└── task_usecase_test.go
go test ./...
이 프로젝트에서는 use-case, repository, database의 테스트를 위해 모의 코드를 생성해야 합니다.
mockery --dir=domain --output=domain/mocks --outpkg=mocks --all
mockery --dir=mongo --output=mongo/mocks --outpkg=mocks --all
해당 use-case, repository, 또는 database의 인터페이스에 변경 사항이 있을 때마다 테스트를 위해 모의 코드를 재생성해야 합니다.
프로젝트의 환경 변수를 설정하려면 bootstrap/env.go
파일을 참고하세요.
MongoDB 데이터베이스 초기화는 bootstrap/database.go
파일을 통해 이루어집니다.
애플리케이션을 시작하려면 cmd/main.go
파일을 사용하세요.
이 프로젝트는 Docker 및 Docker Compose를 사용하여 쉽게 배포할 수 있습니다. Dockerfile
과 docker-compose.yaml
파일을 참고하여 컨테이너를 빌드하고 실행하세요.