Skip to content

project1-team04/team4-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

374 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ Threadly

Threadly๋Š” Jira์˜ ์นธ๋ฐ˜๋ณด๋“œ ๊ธฐ๋Šฅ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉด์„œ, ์‹ค์‹œ๊ฐ„ ํ˜‘์—…์„ ๊ฐ•ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ฑ„ํŒ… ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด์Šˆ ๊ด€๋ฆฌ, ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ƒํ™ฉ ์ถ”์ ๊ณผ ๋”๋ถˆ์–ด WebSocket ๊ธฐ๋ฐ˜์˜ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์„ ์ง€์›ํ•˜์—ฌ ํŒ€์› ๊ฐ„ ์›ํ™œํ•œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ๋•์Šต๋‹ˆ๋‹ค.


๐Ÿ“Œ ๊ธฐ์ˆ  ์Šคํƒ

๐Ÿ”น ๋ฐฑ์—”๋“œ

๊ธฐ์ˆ  ๋ฒ„์ „
Java OpenJDK 17
SpringBoot 3.3.1
MySQL 8.3.0
Redis 3.3.1
MongoDB 8.0.4
Firebase 9.1.1

WebSocket JWT

๐Ÿ”น ํ”„๋ก ํŠธ์—”๋“œ

๊ธฐ์ˆ  ๋ฒ„์ „
React 18
Nginx 1.18.0
Axios Latest

๐Ÿ”น ๋ฐฐํฌ

GitLab Runner


๐Ÿ—๏ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

architecture.png


๐Ÿ—‚ ERD

ERD


API ๋ฌธ์„œ

๐Ÿ‘‰ Swagger ๋งํฌ


๐ŸŽจ ์™€์ด์–ดํ”„๋ ˆ์ž„

๐Ÿ‘‰ Figma ๋งํฌ


๐Ÿ“… ์ผ์ • ๊ด€๋ฆฌ

Kanban


๐Ÿ“œ ์ฝ”๋“œ ์ปจ๋ฒค์…˜

๐Ÿ”น ๋ฐฑ์—”๋“œ

BackEnd Convention

๐Ÿ”น ํ”„๋ก ํŠธ์—”๋“œ

FrontEnd Convention


๐Ÿš€ ๊ธฐ๋Šฅ

โœ… ๋ฉ”์ธ ๊ธฐ๋Šฅ

  • ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ: ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ ๋ฐ ๊ถŒํ•œ ๊ด€๋ฆฌ
  • ์ด์Šˆ ๊ด€๋ฆฌ: ์ด์Šˆ ์ƒ์„ฑ, ๋ฐฐ์ •, ์ƒํƒœ ๋ณ€๊ฒฝ ๋ฐ ์‚ญ์ œ
  • ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…: WebSocket๋ฅผ ํ™œ์šฉํ•œ ํ”„๋กœ์ ํŠธ ๋‚ด ํŒ€์› ๊ฐ„ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…
  • ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ: ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๊ถŒํ•œ ์„ค์ • ๋ฐ ์ดˆ๋Œ€

๐Ÿ“Œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ

  • ์ด๋ฉ”์ผ ์ดˆ๋Œ€ ์‹œ์Šคํ…œ
  • ํ”„๋กœ์ ํŠธ ๊ฒ€์ƒ‰ ๋ฐ ํ•„ํ„ฐ๋ง
  • ์ด์Šˆ ์ƒํƒœ ํŠธ๋ž˜ํ‚น
  • ์ด์Šˆ ๊ฒ€์ƒ‰ ๋ฐ ํ•„ํ„ฐ๋ง
  • ์บ์‹ฑ ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™” (Redis ํ™œ์šฉ)
  • ๋ณด์•ˆ ๊ฐ•ํ™” (JWT ๊ธฐ๋ฐ˜ ์ธ์ฆ ๋ฐ ์ธ๊ฐ€, ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ์ง€์›)
  • GitLab Runner๋ฅผ ํ™œ์šฉํ•œ CI/CD ์ž๋™ ๋ฐฐํฌ

๐ŸŒ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • (application.yaml)

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors