Team 5
Team name: ์บํฐํผ๐
| ํ์๋ ํฐ :: ๋น์ ์ ์ถ์ต์ ๊ฐ์งํด๋๋ฆฝ๋๋ค. ๋ฏธ๋์ ๋น์ ๊ณผ ์ํตํ๋ ๊ธธ. ํ์๋ ํฐโฑ
Time Capsule๊ณผ Letter์ ํฉ์ฑ์ด
์์คํ ์ถ์ต์ ๋ด์ ๋ฏธ๋๋ก ๋ณด๋ด๋ ๋น๋์์ฑ ๋ฉ์์ง ์๋น์ค
-
๋ ํฐ ์์ฑ๊ธฐ๋ฅ
- ์์ ์
๋ก๋
- ํด๋ํฐ์์ ์ดฌ์ํ ์์ ๋ฐ ์จ๋ฒ์ ์ ์ฅ๋ ์์ ์ ๋ก๋
- ์คํ ์กฐ๊ฑด ์ค์
- ์คํํ ๋ ์ง ์ง์
- ์ถ์ต์ ์ฅ์ ์ ์ฅ
- kakao map์ ํตํด ๊ธฐ์ตํ๊ณ ์ถ์ ์ฅ์ ์ ์ฅ
- ์์ ์
๋ก๋
-
๋ ํฐ ์กฐํ
- ๋ ํฐ ์์ฑ ์ ๋ ํฐ ์๋ณ์๋ก ์ฌ์ฉ๋๋ ๊ณ ์ ํ ํฐ์ ๋ฐ๊ธ
- ์คํ/๋น์คํ ๋ ํฐ๋ฅผ ๊ตฌ๋ณํ์ฌ ๋ณธ์ธ์๊ฒ ์์ฑ๋ ๋ ํฐ ์ ๊ณต
-
๊ทธ๋ฃน ๊ธฐ๋ฅ
- ๋ฉค๋ฒ ์ถ๊ฐ
- ์ด๋ฆ์ผ๋ก ๋ฉค๋ฒ ๊ฒ์
- ๋ฉค๋ฒ ์ถ๊ฐ
-
์๋ฆผ ๊ธฐ๋ฅ
- ์๋ฒ์์ ๋ถ ๋จ์๋ก ๋ ํฐ ํ์ธ ํ ์๋ฆผ ์ ์ก
- ์ฌ์ดํธ ๋ด๋ถ ์๋ฆผ
- ์๋ฆผ ๋ฒํผ์ผ๋ก ์กฐํ
- ๋ฌธ์ ๋ฉ์์ง
- ์คํ ๋ ์ง์ ๋ฌธ์ ๋ฉ์์ง ๋ฐ์ก
-
๋ชจ๋ฐ์ผ ํธํ
- ios, andriod, windows ๊ฐ์ ํธํ ๊ฐ๋ฅ
- [์๋ฆผ ๊ธฐ๋ฅ]
![]() |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|
Yes | 10+ | Yes | Yes | Yes |
Tool | ๊ธฐ์ |
---|---|
GitLab | ๊ธฐ๋ฅ๋ณ branch๋ฅผ ๋๋ ์ ์ฝ๋ ๋ฒ์ ๊ด๋ฆฌ |
Jira | Issue ๊ด๋ฆฌ๋ฅผ ์ํด Git๊ณผ ์ฐ๋ํ์ฌ ์ฌ์ฉ |
Scrum Poker | Jira Issue ๋ณ ์คํ๋ฆฐํธ ์๊ฐ ๊ด๋ฆฌ๋ฅผ ์ํ ์ดํ๋ฆฌ์ผ์ด์ |
VS Code | code ๊ตฌํ์ ์ํ Tool |
Google Chrome | ๊ตฌํํ ํ๋ฉด์ ์ถ๋ ฅํ๊ธฐ ์ํ ๋ธ๋ผ์ฐ์ |
Library | ๋ด์ฉ |
---|---|
Spring | Backend ๊ตฌํ์ ์ํ Java web framework |
React | Frontend ๊ตฌํ์ ์ํ JavaScript framework |
Language | ๊ธฐ์ |
---|---|
Java | Backend ๊ตฌํ ์ธ์ด |
JavaScript | Frontend ๊ตฌํ ์ธ์ด |
HTML/CSS | Frontend ๊ตฌํ ์ธ์ด |
Entitiy Relationship Diagram
Sequence Diagrams
- ๋ก๊ทธ์ธ
- ํ์๊ฐ์
- ID/PW ์ฐพ๊ธฐ
- ์บก์์์ฑ ๋ฐ ์กฐํ

- ๊ทธ๋ฃน๊ด๋ฆฌ
Name | Description |
---|---|
"@material-ui/core" | React components for faster and simpler web development. Build your own design system, or start with Material Design |
"@material-ui/icons" | This package provides the Google Material icons packaged as a set of React components. |
"@material-ui/lab" | This package hosts the incubator components that are not yet ready to move to core. |
"@reduxjs/toolkit" | This package hosts the incubator components that are not yet ready to move to core. |
"@testing-library/jest-dom" | Custom jest matchers to test the state of the DOM |
"@testing-library/react" | Simple and complete React DOM testing utilities that encourage good testing practices. |
"antd" | An enterprise-class UI design language and React UI library. |
"axios" | Promise based HTTP client for the browser and node.js |
"gsap" | GSAP is a robust JavaScript toolset that turns developers into animation superheroes |
"howler" | howler.js is an audio library for the modern web |
"moment" | A JavaScript date library for parsing, validating, manipulating, and formatting dates. |
"node-sass" | Node-sass is a library that provides binding for Node.js to LibSass, the C version of the popular stylesheet preprocessor, Sass. |
"react-device-detect" | Detect device, and render view according to the detected device type. |
"react-dom" | This package serves as the entry point to the DOM and server renderers for React |
"react-scripts" | This package includes scripts and configuration used by Create React App. Please refer to its documentation: |
"react-howler" | A React.js wrapper for howler.js (audio player). |
"sweetalert" | A beautiful replacement for JavaScript's "alert" |
Name | Description |
---|---|
$mysql |
MySQL connector |
$lombok |
getter, setter, toString ๋ฑ์ ๋ฉ์๋ ์์ฑ ์ฝ๋๋ฅผ ์ค์ฌ์ฃผ๋ ์ฝ๋ ๋ค์ด์ดํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ |
$jjwt |
JWT ํ ํฐ ์์ฑ ๋ฐ JWT ํ ํฐ ํ์ฑ, ๊ฒ์ฆ์ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ |
$json |
JavaScript Object Notation; ๊ฒฝ๋(Lightweight)์ DATA-๊ตํ ํ์ |
$jackson |
JSON Convertor(์ปจํธ๋กค๋ฌ์์ ์ ๋ฌํ DTO๋ฐ์ดํฐ๋ฅผ JSON์ผ๋ก ๋ณ๊ฒฝํ๊ธฐ ์ํด ์ฌ |
$swagger |
REST ์น ์๋น์ค๋ฅผ ์ค๊ณ, ๋น๋, ๋ฌธ์ํ, ์๋นํ๋ ์ผ์ ๋์์ฃผ๋ ๋ํ ๋๊ตฌ ์ํ๊ณ์ ์ง์์ ๋ฐ๋ ์คํ ์์ค ์ํํธ์จ์ด |
DB ์์ฑํ๊ณ ์ค์ ํ์ผ application.properties(๋ฐฑ์๋), .env(ํ๋ก ํธ์๋) ํ์ผ ์์ฑ ๋ฐ ์ถ๊ฐํ์๋ฉด ๋ฉ๋๋ค
- Git clone ๋ฐ๊ธฐ
git clone https://lab.ssafy.com/s04-bigdata-sub3/s04p23d106.git
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๋น
- 'timeletter' ํ ์ดํฐ๋ฒ ์ด์ค ์์ฑ
CREATE SCHEMA `timeletter`;
- ํ์ํ ํ ์ด๋ธ ์์ฑ
- [Backend] application.properties ์ค์
- backend\src\main\resources ํด๋ ์๋ ์์ฑํ์๋ฉด ๋ฉ๋๋ค
- mysql ๋๋ฉ์ธ๊ณผ ์์ด๋/๋น๋ฒ ์์ฑ
server:
servlet:
context-path: /timeletter
# fileupload
spring:
servlet:
multipart:
enabled:true
max-file-size:500MB
max-request-size:500MB
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://k4d105.p.ssafy.io/timeletter?serverTimeZone=UTC&CharacterEncoding=UTF-8
username: caterpie
password: password
jpa:
hibernate:
ddl-auto: none
show-sql: false
properties:
hibernate:
format_sql: true
# jwt
jwt:
header: Authorization
secret: dGltZWxldHRlci1pcy1hLXNsb3ctbWVzc2FuZ2VyLXBsYXRmb3JtLXNlcnZpY2VkLWJ5LXRlYW0tY2F0ZXJwaWUtc2luY2UtMjAyMS1hbGwtcmlnaHRzLXJlc2VydmVkLWF0LWNhdGVycGllCg==
token-validity-in-seconds: 86400
# logging
logging:
level:
com.caterpie: DEBUG
- [Frontend] .env ์์ฑ
- frontend ํด๋ ์๋ ์์ฑํ์๋ฉด ๋ฉ๋๋ค
- nginx์ ๋ช ์๋ location์ ๋ฐ๋ผ๊ฐ๋๋ค
React_APP_SERVER_URL={๋๋ฉ์ธ์ฃผ์}
React_APP_SPRING_URL={๋๋ฉ์ธ์ฃผ์}/timeletter
React_APP_STORAGE_URL={๋๋ฉ์ธ์ฃผ์}/videos
- [Frontend] ๋ชจ๋ ๋ค์ด๋ก๋
# frontend ํด๋๋ก ์ด๋ํด์ ๋ค์ด
cd frontend/
npm install
- [Backend] (Option) Spring boot๋ฅผ build(jar ํ์ผ ์์ฑ)
# backend ํด๋๋ก ์ด๋ํด์ Spring boot jar ํ์ผ ์์ฑ
cd backend/build/libs
./gradlew bootJar
- ๋ฐฑ์๋ ์คํ
- ์์ฑํ jar ํ์ผ ์คํ
java -jar [filename].jar //timeletter.jar
- ํน์ war ํ์ผ ์์ฑํ์ง ์๊ณ demon์ผ๋ก ๋ก์ปฌ์์ ์คํํ๊ณ ์ถ๋ค๋ฉด STS์ ๊ฐ์ IDEA์์ Spring boot Run์ ์คํํ๊ฑฐ๋ ์๋ ๋ช ๋ น์ด๋ฅผ ํตํด ์คํ
mvn spring-boot:run
- ํ๋ก ํธ์๋ ์คํ
- ํจํค์ง ์ค์น
$ npm i
- React ์คํ
npm start
ํด๋น ์๋น์ค๋ AWS EC2๋ฅผ ํตํด ๋ฐฐํฌํ์๊ณ Docker์ Jenkins๋ฅผ ์ด์ฉํด CI/CD ๊ตฌ์ถํ์์ต๋๋ค:
- AWS EC2 ์ธ์คํด์ค ์์ฑ (ubuntu)
- docker ์ค์น
- ํ์ํ ์ด๋ฏธ์ง๋ฅผ docker hub๋ฅผ ํตํด ์ค์น
- Jenkins
- MySQL
- docker-compose.yml ์์ฑ(services -
jenkins
,db
,frontend
network:caterpie
) - Jenkins์ Gitlab repository ์ฐ๋
- MySQL ์ปจํ
์ด๋์
timeletter
DB ์คํค๋ง ์์ฑ - Nginx ์ค์ (frontend/nginx ํด๋์ default.conf)
- frontend, backend ํด๋ ์์ dockerfile ์์ฑ
- ํ๋ก์ ํธ root ์์น์ Jenkins ํ์ผ ์์ฑ
- Build and Test ๊ณผ์
- Build (frontend, backend)
- Run (์ปจํ ์ด๋ ์คํ)
docker ps
๋ฅผ ํตํด frontend, backend, django ์ปจํ ์ด๋๊ฐ ์คํ๋๋ ๊ฒ์ ํ์ธ (Jenkins, MySQL ํฌํจ)
- Caterpie ๋ ธ์
- [๊ณํ์](./์ฐ์ถ๋ฌผ/ํ๋ก์ ํธ ๊ณํ์ ์์.pdf)
- [์์ด์ดํ๋ ์](./์ฐ์ถ๋ฌผ/ํ์์บก์ Wireframe.pdf)
- ๊ธฐ๋ฅ๋ช ์ธ์
- [ํ ์คํธ ์ผ์ด์ค](./์ฐ์ถ๋ฌผ/ํ๋ฉด๋ณ ํ ์คํธ ์ผ์ด์ค ๋ฐ ์กฐ์น์ฌํญ.pdf)
- ๋ฐํ์๋ฃ - ๊ธฐํ
- ๋ฐํ์๋ฃ - ์ต์ข
- ์์ธ์ต(FE)
- ์ด๋ํ(FE)
- ์ดํ์ง(FE)
- ์ฅ๋ฏผํธ(BE)
- ์กฐํ์ญ(BE)