Skip to content

Latest commit

ย 

History

391 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

KNU-Matzip | ๊ณต์ฃผ๋Œ€ํ•™๊ต ํ•™์ƒ๋“ค์„ ์œ„ํ•œ ๋ง›์ง‘ ์„œ๋น„์Šค

์บ ํผ์Šค ์ฃผ๋ณ€์˜ ๋ง›์ง‘๋“ค์„ ์ง€๊ธˆ ๋ฐ”๋กœ ์ฐพ์•„๋ณด์„ธ์š”!

๐Ÿ”— ์„œ๋น„์Šค ๋ฐ”๋กœ๊ฐ€๊ธฐ

KNU-Matzip

๐Ÿ“– ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

KNU-Matzip ์„œ๋ฒ„๋Š” ๊ณต์ฃผ๋Œ€ํ•™๊ต ํ•™์ƒ๋“ค์„ ์œ„ํ•œ ์บ ํผ์Šค ๋ง›์ง‘ ํ๋ ˆ์ด์…˜ ์„œ๋น„์Šค์˜ API ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.

  • ๊ธฐ๊ฐ„: 2025.09 ~ ํ˜„์žฌ (์šด์˜ ์ค‘)
  • ์—ญํ• : ๋ฐฑ์—”๋“œ ์„ค๊ณ„ ๋ฐ ๊ฐœ๋ฐœ

๋ฌธ์ œ ์ •์˜

ํ•™๊ต ์ฃผ๋ณ€ ๋ง›์ง‘ ์ •๋ณด๋Š” ๋„ค์ด๋ฒ„ ์ง€๋„ยท๊ฒ€์ƒ‰์œผ๋กœ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ด‘๊ณ ยทํ˜‘์ฐฌ์„ฑ ์ฝ˜ํ…์ธ ๊ฐ€ ์„ž์—ฌ ์‹ ๋ขฐํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•™์ƒ๋“ค์€ ์‹ค์ œ ๊ฒฝํ—˜ ๊ธฐ๋ฐ˜ ํ›„๊ธฐ๋ฅผ ์–ป์œผ๋ ค ์—๋ธŒ๋ฆฌํƒ€์ž„์„ ์ฐพ์ง€๋งŒ, ํ›„๊ธฐ๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๋ฐ€๋ ค ์‚ฌ๋ผ์ง€๊ณ  ์—ฌ๋Ÿฌ ๊ฒŒ์‹œ๊ธ€์— ํฉ์–ด์ ธ ์žˆ์–ด ์›ํ•˜๋Š” ๋ง›์ง‘ ํ•˜๋‚˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ๋งค๋ฒˆ ๋ฐ˜๋ณต ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ ์ •์˜

โš™๏ธ ๊ธฐ์ˆ  ์Šคํƒ

Back-end

Back-end

  • Language / Framework: Java 17, Spring Boot 3.4 (Web, Data JPA, Security, Validation)
  • Auth: Kakao OAuth2 + Stateless JWT (jjwt)
  • DB: MySQL (์šด์˜) / H2 (ํ…Œ์ŠคํŠธ)
  • ๊ด€์ธก์„ฑ: Spring Boot Actuator, Prometheus, Grafana
  • ์•Œ๋ฆผ: Discord Webhook
  • Infra: AWS EC2, Nginx
Front-end ์Šคํƒ (๋ณ„๋„ ์ €์žฅ์†Œ)

Front-end


๐Ÿ›๏ธ ์•„ํ‚คํ…์ฒ˜

Back-end Architecture

ํŒจํ‚ค์ง€ ๊ตฌ์กฐ

๊ธฐ๋Šฅ์ด ๋Š˜์–ด๋‚ ์ˆ˜๋ก ๊ณ„์ธต ์šฐ์„ (controller/, service/ โ€ฆ) ๊ตฌ์กฐ๋Š” ํ•˜๋‚˜์˜ ๋ณ€๊ฒฝ์ด ์—ฌ๋Ÿฌ ํŒจํ‚ค์ง€์— ํฉ์–ด์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋„๋ฉ”์ธ ๋‹จ์œ„๋กœ ๋จผ์ € ๋‚˜๋ˆ„๊ณ , ๊ฐ ๋„๋ฉ”์ธ ๋‚ด๋ถ€๋ฅผ 3๊ณ„์ธต ๋ ˆ์ด์–ด๋“œ๋กœ ํ†ต์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

com.matzip
โ”œโ”€โ”€ auth      # ์นด์นด์˜ค ๋กœ๊ทธ์ธ / JWT ๋ฐœ๊ธ‰ยท์žฌ๋ฐœ๊ธ‰
โ”œโ”€โ”€ user      # ํ”„๋กœํ•„
โ”œโ”€โ”€ place     # ๋ง›์ง‘ ๋“ฑ๋กยท์กฐํšŒยท์ฐœยท๊ฒ€์ƒ‰
โ”œโ”€โ”€ lottery   # ๋Ÿญํ‚ค ๋“œ๋กœ์šฐ ์‘๋ชจ ์ด๋ฒคํŠธ
โ”œโ”€โ”€ admin     # ๋ง›์ง‘ ์Šน์ธยท๊ฑฐ์ ˆ
โ””โ”€โ”€ common    # ์‘๋‹ตยท์˜ˆ์™ธยท๋ณด์•ˆยท์„ค์ •ยท๋กœ๊น…ยท๋ถ„์„ ๋“ฑ ๊ณตํ†ต

# ๊ฐ ๋„๋ฉ”์ธ ๋‚ด๋ถ€
controller โ†’ service โ†’ repository โ†’ DB
                    โ†˜ client (์™ธ๋ถ€ APIยท์บ์‹œ ์–ด๋Œ‘ํ„ฐ)

ERD

knu-matzip-erd

๐Ÿ“ฑ ์ฃผ์š” ๊ธฐ๋Šฅ

๊ธฐ๋Šฅ ์„ค๋ช…
๋ง›์ง‘ ํƒ์ƒ‰ ์นดํ…Œ๊ณ ๋ฆฌยท์ง€๋„๋กœ ์บ ํผ์Šค ๊ทผ์ฒ˜ ๋ง›์ง‘ ์กฐํšŒ, ์ฐœ, ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰
๋ง›์ง‘ ๋“ฑ๋ก ์บ ํผ์Šคยท์‹๋‹นยท์ถ”์ฒœ ๋ฉ”๋‰ดยทํƒœ๊ทธยท์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ์ž…๋ ฅํ•ด ๋“ฑ๋ก ์‹ ์ฒญ
๊ด€๋ฆฌ์ž ์Šน์ธ ๋“ฑ๋ก ์‹ ์ฒญ๋œ ๋ง›์ง‘์„ ๊ด€๋ฆฌ์ž๊ฐ€ ์Šน์ธยท๊ฑฐ์ ˆ (์Šน์ธ ์‹œ Discord ์•Œ๋ฆผ)
๋Ÿญํ‚ค ๋“œ๋กœ์šฐ ๋ง›์ง‘ ๋“ฑ๋ก์œผ๋กœ ์–ป์€ ์‘๋ชจ๊ถŒ์œผ๋กœ ๊ธฐํ”„ํ‹ฐ์ฝ˜ ์ด๋ฒคํŠธ ์ฐธ์—ฌ, ์Šค์ผ€์ค„๋Ÿฌ ์ถ”์ฒจ
์˜ค๋Š˜ ๋ญ ๋จน์ง€ ๋žœ๋ค ์นดํ…Œ๊ณ ๋ฆฌ ์ถ”์ฒœ
๋‚ด ์ •๋ณด ๋“ฑ๋ก ํ˜„ํ™ฉยท๊ธฐํ”„ํ‹ฐ์ฝ˜ ์กฐํšŒ

๐Ÿ“ธ ํ™”๋ฉด ์Šคํฌ๋ฆฐ์ƒท ๋ณด๊ธฐ

๋ง›์ง‘ ํƒ์ƒ‰

ํƒ์ƒ‰1 ํƒ์ƒ‰2 ํƒ์ƒ‰3 ํƒ์ƒ‰4

๋ง›์ง‘ ๋“ฑ๋ก

๋“ฑ๋ก1 ๋“ฑ๋ก2 ๋“ฑ๋ก3 ๋“ฑ๋ก4

๋Ÿญํ‚ค ๋“œ๋กœ์šฐ ์ด๋ฒคํŠธ

์ด๋ฒคํŠธ1 ์ด๋ฒคํŠธ2 ์ด๋ฒคํŠธ3 ์ด๋ฒคํŠธ4

์˜ค๋Š˜ ๋ญ ๋จน์ง€ / ๋‚ด ์ •๋ณด

์ถ”์ฒœ ๋‚ด์ •๋ณด1 ๋‚ด์ •๋ณด2 ๋‚ด์ •๋ณด3


๐Ÿš€ ๋กœ์ปฌ ์‹คํ–‰

# 1. ๋กœ์ปฌ MySQL ์ค€๋น„ (localhost:3306/knu_matzip)

# 2. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •
export DB_USER=... DB_PASS=... JWT_SECRET_KEY=... KAKAO_CLIENT_ID=... STATE_SECRET_KEY=...

# 3. ์‹คํ–‰ (local ํ”„๋กœํŒŒ์ผ)
SPRING_PROFILES_ACTIVE=local ./gradlew bootRun

๊ฒ€์ฆ

./gradlew build   # ๋นŒ๋“œ + ํ…Œ์ŠคํŠธ
./gradlew test    # ์ „์ฒด ํ…Œ์ŠคํŠธ (H2 ์ธ๋ฉ”๋ชจ๋ฆฌ + ๋”๋ฏธ ์‹œํฌ๋ฆฟ์œผ๋กœ ์™ธ๋ถ€ ์˜์กด ์—†์ด ๋™์ž‘)
  • ์Šคํ‚ค๋งˆ ๋ฐ˜์˜: local์€ ddl-auto: update, prod๋Š” validate
  • ๋ฐฐํฌ: main ๋ธŒ๋žœ์น˜ push ์‹œ EC2 ์ž๋™ ๋ฐฐํฌ

About

๐Ÿฝ๏ธ ๊ณต์ฃผ๋Œ€ํ•™๊ต ์ฃผ๋ณ€ ๋ง›์ง‘ ์„œ๋น„์Šค(feat. ๊ณต์ฃผ๋Œ€์ฒ˜๋Ÿผ)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages