|
| 1 | +# Re:Life — AI 평행우주 시뮬레이션 |
| 2 | +<br> |
| 3 | + |
| 4 | +[`Re:Life 서비스 링크`](https://www.relife.kr/) |
| 5 | + |
| 6 | +<br> |
| 7 | + |
| 8 | +## 개요 |
| 9 | +1. [소개](#소개) |
| 10 | +2. [기술스택](#기술스택) |
| 11 | +3. [빌드 및 사용법](#빌드-및-사용법) |
| 12 | +4. [문의](#문의) |
| 13 | + |
| 14 | +<br> |
| 15 | + |
| 16 | +## 소개 |
| 17 | +- 프로그래머스 웹개발 6기 8회차 1팀(OneTop)의 **백엔드 최종 프로젝트** 레포지토리입니다.<br> |
| 18 | +- **Re:Life**는 사용자의 중요한 인생 선택을 기록하고, AI와 실제 통계를 바탕으로 "그때 다른 선택을 했더라면?" 에 대한 **평행우주 시나리오**를 생성·비교할 수 있는 플랫폼입니다. |
| 19 | + |
| 20 | +<br> |
| 21 | + |
| 22 | +## 기술스택 |
| 23 | +### 백엔드 |
| 24 | +- [`Spring Boot (Java 21)`](https://spring.io/) |
| 25 | +- [`Spring Security`] |
| 26 | +- [`OAuth2.0 (Google/GitHub)`] |
| 27 | +- [`Spring Data JPA`] |
| 28 | +- [`Spring Session (Redis)`] |
| 29 | +- [`Redis`] |
| 30 | +- [`Springdoc OpenAPI (Swagger UI)`] |
| 31 | +- [`QueryDSL`] |
| 32 | +- [`Flyway`] |
| 33 | +- [`Actuator`] |
| 34 | +- [`REST API`] |
| 35 | +- [`H2`] |
| 36 | +- [`PostgreSQL`] |
| 37 | +- [`AWS SDK for S3`] |
| 38 | + |
| 39 | +### 프론트 엔드 |
| 40 | +- [`TypeScript`] |
| 41 | +- [`Next.js`](https://nextjs.org/) |
| 42 | +- [`Tailwind CSS`](https://tailwindcss.com/) |
| 43 | + |
| 44 | +### 배포 |
| 45 | +- [`AWS (S3 / CloudFront)`](https://aws.amazon.com/ko/) |
| 46 | + |
| 47 | +<br> |
| 48 | + |
| 49 | +## 빌드 및 사용법 |
| 50 | +### 서비스 접속 |
| 51 | +- 실제 서비스는 아래 URL에서 접속 가능합니다.<br> |
| 52 | + [https://www.relife.kr](https://www.relife.kr) |
| 53 | + |
| 54 | +### 로컬 빌드 및 실행 — Backend |
| 55 | +1. 저장소를 클론합니다. |
| 56 | + <br>ex) `git clone <this-repo-url> .` |
| 57 | + |
| 58 | +2. 빌드/실행 |
| 59 | +#### Unix / macOS |
| 60 | +```bash |
| 61 | +cd back |
| 62 | + |
| 63 | +# 1. Clean \& Build |
| 64 | +./gradlew clean build |
| 65 | + |
| 66 | +# 2. Run the JAR |
| 67 | +java -jar build/libs/\*.jar |
| 68 | + |
| 69 | +# 3. (선택) 개발 모드로 바로 실행 |
| 70 | +./gradlew bootRun |
| 71 | +``` |
| 72 | + |
| 73 | +#### Windows |
| 74 | + |
| 75 | +``` bash |
| 76 | +cd back |
| 77 | + |
| 78 | +# 1. Clean \& Build |
| 79 | +gradlew.bat clean build |
| 80 | + |
| 81 | +# 2. Run the JAR |
| 82 | +java -jar build\libs\*.jar |
| 83 | + |
| 84 | +# 3. 개발 모드로 바로 실행 |
| 85 | +gradlew.bat bootRun |
| 86 | + |
| 87 | +프록시/정적리소스 서버는 팀 환경에 맞게 설정 파일을 사용 |
| 88 | +``` |
| 89 | +### 주의사항 (Backend 환경변수) |
| 90 | +백엔드 설정파일에 환경변수가 필요 |
| 91 | +<br> |
| 92 | +back/.env.local |
| 93 | + |
| 94 | +### env 파일 |
| 95 | +```bash (env) |
| 96 | +AWS_REGION=SHOULD_BE_SET_IF_YOU_USE_AWS_DEPENDENCIES |
| 97 | +AWS_ACCESS_KEY_ID=SHOULD_BE_SET_IF_YOU_USE_AWS_DEPENDENCIES |
| 98 | +AWS_SECRET_ACCESS_KEY=SHOULD_BE_SET_IF_YOU_USE_AWS_DEPENDENCIES |
| 99 | +AWS_CLOUD_FRONT_DOMAIN=SHOULD_BE_SET_IF_YOU_USE_AWS_DEPENDENCIES |
| 100 | +AWS_S3_BUCKET_NAME=SHOULD_BE_SET_IF_YOU_USE_AWS_DEPENDENCIES |
| 101 | +PROD_BASE_DOMAIN=localhost |
| 102 | + |
| 103 | +GOOGLE_CLIENT_ID=MUST_BE_SET_AT_LEAST |
| 104 | +GOOGLE_CLIENT_SECRET=MUST_BE_SET_AT_LEAST |
| 105 | +GITHUB_CLIENT_ID=MUST_BE_SET_AT_LEAST |
| 106 | +GITHUB_CLIENT_SECRET=MUST_BE_SET_AT_LEAST |
| 107 | + |
| 108 | +GEMINI_API_KEY=MUST_BE_SET_AT_LEAST |
| 109 | + |
| 110 | +``` |
| 111 | + |
| 112 | +문의 |
| 113 | +백엔드 팀원 정보 및 역할 |
| 114 | + |
| 115 | +<br> |
| 116 | +김영건(PO) |
| 117 | + |
| 118 | + |
| 119 | +이찬수(백엔드 팀장) |
| 120 | + |
| 121 | + |
| 122 | +김지훈(인프라/배포) |
| 123 | + |
| 124 | + |
| 125 | +오현배(커뮤니티) |
| 126 | + |
| 127 | + |
| 128 | +임정민(회원관리 및 보안) |
| 129 | + |
0 commit comments