Project

[Project] - Distance

EJUN 2024. 5. 12. 21:36

Team Distance๐Ÿ’• & 9oormthin-univ ์™€ ํ•จ๊ป˜ํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค..!
์ด๋ฒˆ '๋””์Šคํ„ด์Šค' ๋ผ๋Š” ํ”„๋กœ์ ํŠธ๋Š” ๋Œ€ํ•™์ƒ์„ ๋Œ€์ƒ์œผ๋กœํ•œ 1:1 ๋žœ๋ค์ฑ„ํŒ… ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค๐ŸŽ‰

ํ•ด์ปคํ†ค์—์„œ ์ธ์—ฐ์ด ๋‹ฟ์•„ ์ง€๊ธˆ๊นŒ์ง€ ์ญ‰ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉฐ ์ˆœ์ฒœํ–ฅ๋Œ€ํ•™๊ต๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์‹ค์ œ ์„œ๋น„์Šค๊นŒ์ง€ ๋ฐฐํฌ๋ฅผ ์ง„ํ–‰ํ•˜์˜€์–ด์š”!!!

 

๋””์Šคํ„ด์Šค๋Š” '์ถ•์ œ๊ธฐ๊ฐ„' ์ด๋ผ๋Š” ํ•œ์ •๋œ ๊ธฐ๊ฐ„๋™์•ˆ์—๋งŒ ์šด์˜์„ ํ•จ์œผ๋กœ์จ ์‚ฌ์šฉ์ž๋“ค์˜ ์ฐธ์—ฌ๋ฅผ ๋”์šฑ ๋” ์ด๋„๋Š” ์„œ๋น„์Šค์˜ˆ์š”..!!

์ด์ œ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์†Œ๊ฐœ๋Š” ์—ฌ๊ธฐ๊นŒ์ง€ํ•˜๊ณ , ์ด์ œ๋ถ€ํ„ฐ ์„œ๋น„์Šค์— ๋Œ€ํ•ด ์„ค๋ช…์„ ํ•ด๋ณผ๊ฒŒ์š”๐Ÿ˜Š

 

 


 

๋””์Šคํ„ด์Šค ๊ฐœ์š”
์ฃผ์š” ๊ธฐ๋Šฅ
• STOMP๋ฅผ ํ™œ์šฉํ•œ 1:1 ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…
๋Œ€ํ•™ ๋ฉ”์ผ ํ˜น์€ ํ•™์ƒ์ฆ์„ ํ†ตํ•œ ๋Œ€ํ•™์ƒ ์ธ์ฆ
๊ฑฐ๋ฆฌ ๊ธฐ๋ฐ˜ ์ถ”์ฒœ ๊ธฐ๋Šฅ
๋Œ€ํ•™ ์ถ•์ œ ์ •๋ณด ํ™•์ธ
๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ 2024.03 ~ 2024.05
Skills JAVA17, Spring Boot 2.7, JPA, AWS ec2, AWS rds, Mysql, Docker, Docker-compose, CI/CD, Nginx
๋‹ด๋‹น ์—ญํ• 
1. DB์„ค๊ณ„
2. REST API์„ค๊ณ„
   a. ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… API
   b. ๋Œ€ํ•™์ƒ ์ธ์ฆ API
   c. ์ถ•์ œ ์ •๋ณด ๋“ฑ๋ก API
   d. ์œ„์น˜ ์—…๋ฐ์ดํŠธ API
      e. ์ฑ„ํŒ… API
      f. ์ฑ„ํŒ… ๋Œ€๊ธฐ์—ด API
3. JWT ๋กœ๊ทธ์ธ ๋ฐฉ์‹ ๊ตฌํ˜„
4. Deployment
   a. AWS EC2๋ฅผ ํ†ตํ•œ ์„œ๋ฒ„ ๋ฐฐํฌ
      b. AWS RDS๋ฅผ ์‚ฌ์šฉํ•ด DB ๊ตฌ์ถ•
   c. Docker๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ฐ Docker-compose๋ฅผ ํ™œ์šฉํ•ด ๋ฐฐํฌ
   d. CI/CD๋ฅผ ํ†ตํ•œ ์ž๋™ํ™”
5. Custom Exception
   a. ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ๋ชฉ์ ์— ๋งž๊ฒŒ ์ปค์Šคํ…€์— ์˜ˆ์™ธ์ฒ˜๋ฆฌ
6. AWS Lamda & SNS
      a. AWS Lamda์™€ SNS๋ฅผ ํ™œ์šฉํ•ด์„œ Slack์—ฐ๋™ ํ›„ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ตฌํ˜„
7. ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ
      a. AWS S3๋ฅผ ํ™œ์šฉํ•ด ํ‘ธ๋“œํŠธ๋Ÿญ ์ด๋ฏธ์ง€ ์ €์žฅ ๋ฐ ์‚ญ์ œ
8. ๋ฌธ์ž์ธ์ฆ API๊ตฌํ˜„
      a. 
Coolsms API๋ฅผ ํ†ตํ•œ ๋ฌธ์ž์ธ์ฆ ๊ตฌํ˜„
Github https://github.com/team-distance/distance-be

 

 


๋””์Šคํ„ด์Šค ๊ตฌ์กฐ

๋””์Šคํ„ด์Šค ERD

๋””์Šคํ„ด์Šค ERD
  • member : ์‚ฌ์šฉ์ž ์ •๋ณด ๊ด€๋ฆฌ
  • member_hobby : ์‚ฌ์šฉ์ž ์ทจ๋ฏธ ๊ด€๋ฆฌ
  • member_tag : ์‚ฌ์šฉ์ž ํƒœ๊ทธ ๊ด€๋ฆฌ
  • fcm : FCM ๋ฉ”์‹œ์ง€ ๊ด€๋ฆฌ
  • report : ์‹ ๊ณ ๊ด€๋ฆฌ
  • student_card : ํ•™์ƒ์ฆ ์ •๋ณด ๊ด€๋ฆฌ
  • chatroom : ์กด์žฌํ•˜๋Š” ์ฑ„ํŒ…๋ฐฉ ๊ด€๋ฆฌ
  • roommember : ์ฑ„ํŒ…๋ฐฉ์•ˆ์— ์žˆ๋Š” ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ
  • chatroomsession : ๋ฐฉ์— ๋“ค์–ด์˜จ ์‚ฌ์šฉ์ž ์„ธ์…˜ ๊ด€๋ฆฌ
  • chatmessage : ์ฑ„ํŒ…๋ฐฉ์— ๋‚˜๋ˆˆ ๋ฉ”์‹œ์ง€ ์ •๋ณด ๊ด€๋ฆฌ
  • chat_waiting : ๋Œ€๊ธฐ์—ด ์ฑ„ํŒ…๋ฐฉ ๊ด€๋ฆฌ
  • food_truck : ํ‘ธ๋“œํŠธ๋Ÿญ ์ •๋ณด ๊ด€๋ฆฌ
  • truck_menu : ํ‘ธ๋“œํŠธ๋Ÿญ์˜ ๋ฉ”๋‰ด ์ข…๋ฅ˜ ๊ด€๋ฆฌ
  • artist : ์ถ•์ œ ๊ฐ€์ˆ˜ ์ •๋ณด ๊ด€๋ฆฌ
  • refresh : refresh Token๋ฐœ๊ธ‰์„ ์œ„ํ•œ ํ† ํฐ๊ฐ’ ์ €์žฅ

 


UI ๋ฐ ๊ธฐ๋Šฅ

 

distance - ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€

Login ํŽ˜์ด์ง€

 

distance - ํšŒ์›๊ฐ€์ž…(1)

ํšŒ์›๊ฐ€์ž…(1) ํŽ˜์ด์ง€

 

distance - ํšŒ์›๊ฐ€์ž…(2)

ํšŒ์›๊ฐ€์ž…(2) ํŽ˜์ด์ง€

 

distance - ๋ฉ”์ธ ํŽ˜์ด์ง€

Main ํŽ˜์ด์ง€

 

distance - ์ฑ„ํŒ…๋ฐฉ ์ƒ์„ฑ

์ฑ„ํŒ…๋ฐฉ ์ƒ์„ฑ ํŽ˜์ด์ง€

 

 

distance - ๋Œ€๊ธฐ์—ด ํŽ˜์ด์ง€

๋Œ€๊ธฐ์—ด ํŽ˜์ด์ง€

 

distance - ์ฑ„ํŒ…๋ฐฉ ๋ชฉ๋ก ํŽ˜์ด์ง€

์ฑ„ํŒ…๋ฐฉ ๋ชฉ๋ก ํŽ˜์ด์ง€

 

distance - ์ฑ„ํŒ…๋ฐฉ

์ฑ„ํŒ…๋ฐฉ ํŽ˜์ด์ง€

 

distance - ์ฑ„ํŒ…๋ฐฉ(์ „ํ™” ๋ชจ๋‹ฌ)

์ฑ„ํŒ…๋ฐฉ ๋‚ด ์ „ํ™” ๋ชจ๋‹ฌ

 

distance - ํ•™์ƒ ์ธ์ฆ ํŽ˜์ด์ง€

ํ•™์ƒ ์ธ์ฆ ํŽ˜์ด์ง€

 

distance - ์ถ•์ œ ์ •๋ณด ํŽ˜์ด์ง€

์ถ•์ œ ์ •๋ณด ํŽ˜์ด์ง€

 


๋Š๋‚€ ์ 
distance๋Š” 24.03.23 ~ 24.03.24 2์ผ๋™์•ˆ ์ง„ํ–‰ํ•œ ํ•ด์ปคํ†ค์˜ ํŒ€์›๋“ค๊ณผ ํ•ด์ปคํ†ค์ด ๋๋‚˜๋„ ์ง์ ‘ ์„œ๋น„์Šค ๋ฐฐํฌ๋ฅผ ๋ชฉ์ ์œผ๋กœ ์‹œ์ž‘ํ•œ ํ”„๋กœ์ ํŠธ์ด๋‹ค. 
๋ช‡ ๋ฒˆ์˜ ์„œ๋น„์Šค๋ฐฐํฌ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ, ๋ญ”๊ฐ€ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ๋งŒ๋“ค๋ฉด์„œ๋„ ์žฌ๋ฐŒ๋Š” ํ”„๋กœ์ ํŠธ์ด๊ณ  ๊ธฐ๋Šฅ๊ตฌํ˜„์ด ์ •์ƒ์ ์œผ๋กœ ๋œ๋‹ค๋ฉด ์ตœ์†Œ 100๋ช…์˜ ์œ ์ €๋Š” ๋“ค์–ด์˜ฌ ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ์„ ํ•˜๋ฉฐ ํŒ€์›๋“ค๊ณผ ์„œ๋น„์Šค๋ฅผ ์ œ์ž‘ํ•˜์˜€๋‹ค.
๋งˆ์นจ๋‚ด 5์›”2์ผ ๋ชฉ์š”์ผ,,, ๋‚˜์˜ ํ•™๊ต์ธ ์ˆœ์ฒœํ–ฅ๋Œ€ํ•™๊ต์— ์ฒซ ์„œ๋น„์Šค๋ฅผ ์˜คํ”ˆํ•˜์˜€๋‹ค๐Ÿ˜ฎ!!!
์ด๋ฒˆ์— ์„œ๋น„์Šค๋Š” ์ •๋ง 2์ฃผ์ผ๋™์•ˆ์˜ QAํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์น˜๋ฉฐ ๋ชจ๋“  ํŒ€์›๋“ค์ด ๋‹ค ํ•จ๊ป˜ ํ•ด์ปคํ†ค ๋Š๋‚Œ์ฒ˜๋Ÿผ ๋ฐค์„ ์ƒˆ๊ฐ€๋ฉฐ ์„œ๋น„์Šค์˜ ์™„์„ฑ๋„๋ฅผ ๋†’์—ฌ๊ฐ”๊ณ ,  ๊ธฐ๋Šฅ๋“ค์ด ์ ์ฐจ ๊ตฌํ˜„์ด ๋˜๋ฉด์„œ ๋ฟŒ๋“ฏํ•จ๋„ ๋งŽ์ด ๋Š๊ผˆ๋˜ ๊ฑฐ ๊ฐ™๋‹ค ใ…Žใ…Ž(์ค‘๊ฐ„์— ๊ฐœ๋ฐœ์ž๋ฅผ ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ๋ผ๋Š” ์ƒ๊ฐ์„ 100๋ฒˆ๋„ ๋„˜๊ฒŒ ํ•œ๋“ฏ)
๋”ฑ ์ฒซ ์„œ๋น„์Šค ์˜คํ”ˆํ•œ์ง€ 2์‹œ๊ฐ„ ์ฏค ์œ ์ €๊ฐ€ 100๋ช…์ด ๋˜์—ˆ๊ณ , ํŒ€์›๋“ค๋ผ๋ฆฌ ์ •๋ง ์ข‹์•„ํ•˜๋ฉด์„œ ๊ทธ ๋™์•ˆ์˜ ๊ณ ์ƒ์ด ๋‹ค ์‚ฌ๋ผ์ง€๋Š” ๋Š๋‚Œ์ด์—ˆ๋‹ค...

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ฐœ๋ฐœ ์™ธ์ ์ธ ๋ถ€๋ถ„๋„ ์ •๋ง ๋งŽ์ด ๋ฐฐ์šฐ๊ฒŒ ๋œ ๊ณ„๊ธฐ์˜€๋‹ค.
์šฐ์„  ๋Š˜ ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ ์ธ์ฆ๊ณผ์ •์„ ์ •๋ง ๊ผผ๊ผผํžˆ ํ•˜๋Š” ๊ฒƒ์ด ๋งˆ๋ƒฅ ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ด๋ฒˆ ํ•ด์ปคํ†ค๋•Œ ๋ฐ๋ชจ๋ถ€์Šค๋ฅผ ์šด์˜ํ–ˆ๋Š”๋ฐ ์ด๋•Œ ๋ฐ›์•˜๋˜ ํ”ผ๋“œ๋ฐฑ์ด "ํšŒ์›๊ฐ€์ž… ํ•˜๋Š” ๊ณผ์ •์ด ๋„ˆ๋ฌด ๋ณต์žกํ•ด์š”" ์˜€๋‹ค..!
์ด ๋•Œ ๋ฌด์กฐ๊ฑด ๊ฐœ๋ฐœ ์ธก๋ฉด์—์„œ๋งŒ ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ Client์ž…์žฅ์—์„œ๋„ ์ƒ๊ฐ์„ ํ•ด์•ผ๋œ๋‹ค๋Š”(๋„ˆ๋ฌด๋‚˜๋„ ๋‹น์—ฐํ•œ..)๊ฒƒ์„ ๊นจ๋‹ซ๊ณ  ํšŒ์›๊ฐ€์ž… ๋กœ์ง์„ ๋‹จ์ˆœํ™”ํ•˜๋Š”๋ฐ ๊ธฐ๋Šฅ๊ตฌํ˜„์— ๊ฑธ๋ฆฐ ์‹œ๊ฐ„๋ณด๋‹ค ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ๋ฅผ ์ƒ๊ฐํ•˜๋Š”๋ฐ ๋” ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ ๊ฑฐ ๊ฐ™๋‹ค.
๋˜ํ•œ ์ง€๊ธˆ๊นŒ์ง€๋Š” ๊ฐœ๋ฐœ์ด ๋งˆ๋ฌด๋ฆฌ๋˜๋ฉด ๋. ์ด๊ฑฐ์˜€์ง€๋งŒ ์ด๋ฒˆ์—” ์ง์ ‘ ์œ ์ €๋“ค์ด ๋งŽ์ด ์‚ฌ์šฉ์„ ํ•˜๊ณ  ๊ทธ๋ ‡๊ธฐ์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ•ด์ค˜์•ผํ–ˆ๋‹ค. 
๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ•˜๋Š”๊ฑฐ๊นŒ์ง„ okay์˜€๋‹ค.. 
ํ•˜์ง€๋งŒ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์ด๊ฑธ ์ˆ˜์ •ํ•  ๋•Œ ์ •๋ง ๊นƒ์— ํ‘ธ์‹œํ•˜๊ณ  ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ๋„์šฐ๋Š” ๊ทธ ๊ณผ์ •์ด ๋„ˆ๋ฌด ํž˜๋“ค์—ˆ๋‹ค...
์ผ๋‹จ dev์„œ๋ฒ„์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜์˜€๋‹คํ•ด๋„ ๋ฐฐํฌํ–ˆ์„ ๋•Œ ๋˜ ์–ด๋–ค ์˜ค๋ฅ˜๊ฐ€ ํ„ฐ์งˆ์ง€ ์˜ˆ์ƒ์ด ์˜ค์งˆ ์•Š์•˜๊ณ , ec2๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์žฌ๋ฐฐํฌ๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ์–ด์ฉ” ์ˆ˜ ์—†์ด ๋‹ค์šดํƒ€์ž„์ด ๋ฐœ์ƒํ•  ์ˆ˜ ๋ฐ–์— ์—†์—ˆ๊ธฐ์— ์ด ์ ์„ ๊ณ ๋ คํ•˜๋ฉด์„œ ํ•˜๋‹ˆ๊นŒ ๋Š˜ ํ•˜๋˜ ๊ฒƒ์ธ๋ฐ๋„ ๋„ˆ๋ฌด ํž˜๋“ค์—ˆ๋‹ค.

๋˜ํ•œ ์ด๋ฒˆ์— ์ฒ˜์Œ ์‹œ๋„ํ•œ STOMP๋ฅผ ํ™œ์šฉํ•œ ์ฑ„ํŒ…์€ ๋‚˜์—๊ฒŒ ํฐ ๋„์ „์ด์—ˆ๋‹ค..!!!
์‹œ์ž‘๋ถ€ํ„ฐ ๊ต‰์žฅํžˆ ์–ด๋ ค์› ๊ณ , ์ฑ„ํŒ…์„ ์œ„ํ•œ ํŒจํ‚ค์ง€, ํ…Œ์ด๋ธ”๋งŒ ๋ฌด์ง€๋ฌด์ง€ ๋งŽ์•˜๋‹คใ…œใ…œ
์ง€๊ธˆ ๋ญ”๊ฐ€ ์ผ๋‹จ์€ ๊ธฐ๋Šฅ ๊ตฌํ˜„์—๋งŒ ์ง‘์ค‘์„ ํ–ˆ๋‹ค๋ฉด ์•ž์œผ๋กœ๋Š” ๋ฆฌํŒฉํ† ๋ง์˜ ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ€๋ถ„๋„ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ ์„ฑ๋Šฅ ๊ณ ๋„ํ™”์— ํž˜์„ ์จ๋ณผ ๊ฒƒ์ด๋‹ค.