42 서울 내에서 탁구 경기 매칭, 전적, 상점 서비스를 제공하는 프로젝트 입니다.
향후 추가 서비스 확장 예정
-
3기: 2023.04.16 ~ 2023.06.23
-
4기: 2023.08.01 ~ 2023.09.21
- v1에서 확장을 위해 열어둔 구조나 테이블마다 여러 곳에 있던 중복된 속성 제거
- v1 -> v2 테이블 수 감소 : 14 -> 12
- v1에서 1개의 예약만 되던 것에서 최대 3개까지 예약을 잡을 수 있도록 변경
- v2에서 도커 도입을 통해 컨테이너를 통한 서버 관리 도입
- grafana를 통한 서버 모니터링 도입
- 상점, 티어 등 서비스 확장을 위한 DB 재설계
![ERD V3](https://private-user-images.githubusercontent.com/105616046/270185160-a1eb2c31-53cc-4c12-94ff-5ca51ec2d522.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIyODg0NTQsIm5iZiI6MTcyMjI4ODE1NCwicGF0aCI6Ii8xMDU2MTYwNDYvMjcwMTg1MTYwLWExZWIyYzMxLTUzY2MtNGMxMi05NGZmLTVjYTUxZWMyZDUyMi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzI5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyOVQyMTIyMzRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xNDU3M2YwMjJmM2RiNDMyMTQxM2ZjYzg5MGVlMmYxOWRlMGZmZTAxYTY4ZDQ4NWQ2ZGY0Y2Y0NjE4ZWU5NTViJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.iUi2JVCgpHsCAEu2WQ7bcXJjG_18GrbskG-KBvJRvGA)
- 출석, 게임 승패에 연관해 재화 시스템 추가
![attendance](https://private-user-images.githubusercontent.com/95139402/270960281-caa564c8-cb1b-45eb-975c-9e685911e764.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIyODg0NTQsIm5iZiI6MTcyMjI4ODE1NCwicGF0aCI6Ii85NTEzOTQwMi8yNzA5NjAyODEtY2FhNTY0YzgtY2IxYi00NWViLTk3NWMtOWU2ODU5MTFlNzY0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI5VDIxMjIzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQxZmYyMWIxMWFjNDgwMjYwMTY3MTU3ZjZiMTNiNjk3YWFlOTIwYjkzN2I2NTEwYTRmNDNhNWYzOWVjNTNjMWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.K2Ph2Al_n2PTLA0KpSa5qJkVlF5WrXiiQnWyezw3PlQ)
- 유저 요구사항을 반영한 기능 확장
![스크린샷 2023-09-23 오후 11 48 01](https://private-user-images.githubusercontent.com/105616046/270115283-77ce958b-5901-4638-9833-ab27cc182e88.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIyODg0NTQsIm5iZiI6MTcyMjI4ODE1NCwicGF0aCI6Ii8xMDU2MTYwNDYvMjcwMTE1MjgzLTc3Y2U5NThiLTU5MDEtNDYzOC05ODMzLWFiMjdjYzE4MmU4OC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzI5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyOVQyMTIyMzRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jOGZkMTFiYTA2MDRmNzYyYzBlNGJlMDM1ZjdmNDk5MTBhM2U4MmQ0YzVlMzRkYjZhZjdiN2YxZjMzMjkxMTRhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.L0pDjpjrNHvcrtj7IKQcJU5b6aAxy316At4xUs6qm0c)
![스크린샷 2023-09-23 오후 11 48 18](https://private-user-images.githubusercontent.com/105616046/270115285-f953cbc4-9d97-4485-b318-4fe73e3e3222.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIyODg0NTQsIm5iZiI6MTcyMjI4ODE1NCwicGF0aCI6Ii8xMDU2MTYwNDYvMjcwMTE1Mjg1LWY5NTNjYmM0LTlkOTctNDQ4NS1iMzE4LTRmZTczZTNlMzIyMi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzI5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyOVQyMTIyMzRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04OGQ5MjVjZjZhNjM4ZDVkZjA2OTI2NjM5ZGY0NzhhMjA2NjA2MDhjYTVkODgwYzY2MTk0Nzg5YWNkMDRlNTRlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.cgQVfXn6NhWPExCJRWVR4rbKEoT88TKseitISSR4ZSY)
- 랭킹전 활성화를 위한 티어 시스템 추가
![tier](https://private-user-images.githubusercontent.com/95139402/270962528-342e0013-13e0-4482-84b5-4381df0498cf.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIyODg0NTQsIm5iZiI6MTcyMjI4ODE1NCwicGF0aCI6Ii85NTEzOTQwMi8yNzA5NjI1MjgtMzQyZTAwMTMtMTNlMC00NDgyLTg0YjUtNDM4MWRmMDQ5OGNmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI5VDIxMjIzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTlmNmE4MDUzOGZjNzUwYTkwODIyNDk2ODRkOGYwN2JmOTUzM2Y4MmQwM2MwMWM0Y2I0MjdjNTUzMTEwNzEwZWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.IfETP1IttZE6wcCOc4SfhjIe9NSwezT5p4-idEZQnRk)
- 원활한 운영을 위한 관리자 기능 추가
![admin](https://private-user-images.githubusercontent.com/95139402/270960852-59756773-48f3-463a-91e4-6bb263aac2f5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIyODg0NTQsIm5iZiI6MTcyMjI4ODE1NCwicGF0aCI6Ii85NTEzOTQwMi8yNzA5NjA4NTItNTk3NTY3NzMtNDhmMy00NjNhLTkxZTQtNmJiMjYzYWFjMmY1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI5VDIxMjIzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI1OGRkZGU4NDQwZjg0Njk5MjAzMTNhYzdjODAzMzUzNzBhNTkzYmJjZTIwNjM5OTFhMTQyMGEzYjVjNDBkMjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.YEp-2mLl3Jtxrk_Q_j_tBLWQ5iGlZFBzpHW68ie_FDk)
🏓 | 🏓 | 🏓 | 🏓 | 👨🏻💻 |
안영선 @yoahn | 김재혁 @jaehyuki | 김의진 @yuikim | 이현규 @hyunkyle | 이 철 @cheolee |
PM Game기능 담당 |
DB 마이그레이션&관리, 알림,관리자 기능 일부담당 |
매칭 기능, 로그인기능 일부담당, 관리자기능 일부담당 |
로그인기능, 인프라 담당 |
관리자 기능, 로그 담당 |
👩🏻💻 | 🏓 | 🏓 | 🏓 | 🏓 |
류민아 @mryoo | 신시온 @sishin | 류경엽 @klew | 권태현 @taehkwon | 이 철 @cheolee |
PM 확성기,출석 기능 담당 |
티어, 상품 관리자 기능, 인프라 담당 |
유저 이미지, 유저 프로필 장식 기능 담당 |
상점 기능 담당 | 재화 기능 담당 |
다음과 같은 양식의 "application.xml"파일이 "src/main/resources/"경로에 필요합니다.
spring:
profiles:
active: main
security:
oauth2.client:
authenticationScheme: ""
registration:
42:
redirect-uri: ""
authorization-grant-type: ""
scope: public
kakao:
redirect-uri: ""
authorization-grant-type: ""
scope: ""
provider:
42:
authorization-uri: ""
token-uri: ""
user-info-uri: ""
user-name-attribute: ""
kakao:
authorization-uri: ""
token-uri: ""
user-info-uri: ""
user-name-attribute: ""
mvc:
hiddenmethod:
filter:
enabled: ""
data:
web:
pageable:
default-page-size: ""
one-indexed-parameters: ""
mail:
host: ""
port: ""
username: ""
password: ""
properties:
mail:
smtp:
starttls:
enable: ""
required: ""
auth: ""
# Message 설정
messages:
basename: ""
encoding: ""
springdoc:
swagger-ui:
path: ""
default-consumes-media-type: ""
default-produces-media-type: ""
app:
auth:
tokenSecret: ""
refreshTokenSecret: ""
info:
image:
defaultUrl: '유저 기본 이미지 경로'
itemNotFoundUrl: 'not_found 이미지 경로'
---
spring.config.activate.on-profile: main
spring:
# main server에서는 swagger-ui를 사용하지 않음
springdoc:
swagger-ui:
enabled: ""
# 데이터 소스 설정
datasource:
url: ""
driverClassName: ""
user: ""
password: ""
flyway:
enabled: ""
baselineOnMigrate: ""
locations: ""
url: ""
user: ""
password: ""
jpa:
database-platform: ""
hibernate:
ddl-auto: ""
properties:
hibernate:
show_sql: ""
format_sql: ""
use_sql_comments: ""
security:
oauth2.client:
registration:
42:
client-id: ""
client-secret: ""
kakao:
client-id: ""
client-secret: ""
client-authentication-method: ""
# Redis 설정
cache:
type: ""
redis:
host: ""
port: ""
# cors 설정
cors:
allowed-origins: ""
allowed-methods: ""
allowed-headers: ""
allowed-credentials: ""
max-age: ""
info:
web:
frontUrl: ""
domain: ""
cloud:
aws:
credentials:
accessKey: ""
secretKey: ""
s3:
bucket: ""
dir: ""
region:
static: ""
stack:
auto: ""
slack:
xoxbToken: ""
app:
auth:
tokenExpiry: ""
refreshTokenExpiry: ""