Threadly๋ Jira์ ์นธ๋ฐ๋ณด๋ ๊ธฐ๋ฅ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉด์, ์ค์๊ฐ ํ์ ์ ๊ฐํํ๊ธฐ ์ํด ์ฑํ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ํ๋ก์ ํธ ๊ด๋ฆฌ ๋๊ตฌ์ ๋๋ค. ์ด์ ๊ด๋ฆฌ, ํ๋ก์ ํธ ์งํ ์ํฉ ์ถ์ ๊ณผ ๋๋ถ์ด WebSocket ๊ธฐ๋ฐ์ ์ค์๊ฐ ์ฑํ ์ ์ง์ํ์ฌ ํ์ ๊ฐ ์ํํ ์ปค๋ฎค๋์ผ์ด์ ์ ๋์ต๋๋ค.
| ๊ธฐ์ | ๋ฒ์ |
|---|---|
| OpenJDK 17 | |
| 3.3.1 | |
| 8.3.0 | |
| 3.3.1 | |
| 8.0.4 | |
| 9.1.1 |
| ๊ธฐ์ | ๋ฒ์ |
|---|---|
| 18 | |
| 1.18.0 | |
| Latest |
๐ Swagger ๋งํฌ
๐ Figma ๋งํฌ
- ํ๋ก์ ํธ ๊ด๋ฆฌ: ํ๋ก์ ํธ ์์ฑ, ์์ , ์ญ์ ๋ฐ ๊ถํ ๊ด๋ฆฌ
- ์ด์ ๊ด๋ฆฌ: ์ด์ ์์ฑ, ๋ฐฐ์ , ์ํ ๋ณ๊ฒฝ ๋ฐ ์ญ์
- ์ค์๊ฐ ์ฑํ : WebSocket๋ฅผ ํ์ฉํ ํ๋ก์ ํธ ๋ด ํ์ ๊ฐ ์ค์๊ฐ ์ฑํ
- ์ฌ์ฉ์ ๊ด๋ฆฌ: ํ์๊ฐ์ , ๋ก๊ทธ์ธ, ๊ถํ ์ค์ ๋ฐ ์ด๋
- ์ด๋ฉ์ผ ์ด๋ ์์คํ
- ํ๋ก์ ํธ ๊ฒ์ ๋ฐ ํํฐ๋ง
- ์ด์ ์ํ ํธ๋ํน
- ์ด์ ๊ฒ์ ๋ฐ ํํฐ๋ง
- ์บ์ฑ ๋ฐ ์ฑ๋ฅ ์ต์ ํ (Redis ํ์ฉ)
- ๋ณด์ ๊ฐํ (JWT ๊ธฐ๋ฐ ์ธ์ฆ ๋ฐ ์ธ๊ฐ, ๋ฆฌํ๋ ์ ํ ํฐ ์ง์)
- GitLab Runner๋ฅผ ํ์ฉํ CI/CD ์๋ ๋ฐฐํฌ
server:
port: 8080
spring:
cache:
type: redis
data:
mongodb:
uri: mongodb://localhost:27017/threadly
database: threadly
auto-index-creation: true
redis:
host: localhost
port: 6379
servlet:
multipart:
enabled: true
max-file-size: 10MB
max-request-size: 10MB
application:
name: team04-backend
jpa:
hibernate:
ddl-auto: create-drop
show-sql: true
properties:
hibernate:
format_sql: true
defer-datasource-initialization: true
datasource:
username: "USER_USERNAME"
password: "USER_PASSWORD"
url: jdbc:mysql://localhost:49153/threadly?serverTimezone=UTC&characterEncoding=UTF-8
mail:
host: "USER_HOST"
port: "USER_PORT"
username: "USER_USERNAME"
password: "USER_PASSWORD"
properties:
smtp:
auth: true
timeout: 5000
starttls:
enable: true
springdoc:
api-docs:
path: /api-docs # API ๋ฌธ์ ๊ธฐ๋ณธ ๊ฒฝ๋ก
swagger-ui:
path: /swagger-ui.html # Swagger UI ๊ฒฝ๋ก
token:
secret: "USER_SECRET"
access-token-expiration: 600000 # 10๋ถ (๋ฐ๋ฆฌ์ด)
refresh-token-expiration: 1 # 1์๊ฐ (์๊ฐ)
firebase:
storage:
bucket-name: "USER_BUCKET_NAME"
json-path: "USER_JSON_PATH"
oauth2:
google:
oauth-uri: "oauth-uri"
client-id: "client-id"
client-secret: "client-secret"
access-scope: "access-scope"
redirect-uri: "redirect-uri"
grant-type: "grant-type"
kakao:
oauth-uri: "oauth-uri"
client-id: "client-id"
redirect-uri: "redirect-uri"
grant-type: "grant-type"
naver:
oauth-uri: "oauth-uri"
client-id: "client-id"
client-secret: "client-secret"
redirect-uri: "redirect-uri"
grant-type: "grant-type"
app:
page-size: 10




