Skip to content

D201-Crit/CRIT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

CRIT

ํ”„๋กœ์ ํŠธ ๊ฐœ์š”


SSAFY 9๊ธฐ 2ํ•™๊ธฐ ๊ณตํ†ต ํ”„๋กœ์ ํŠธ

2023-07-04 ~ 2023-08-18

ํ”„๋กœ์ ํŠธ ๊ธฐํš ๋ฐฐ๊ฒฝ

CRIT์€ ๋‹จ์ˆœํ•œ ์ฑŒ๋ฆฐ์ง€ ์„œ๋น„์Šค๋ฅผ ๋„˜์–ด, ์ฐธ๊ฐ€์ž๋“ค์ด 'ํ•จ๊ป˜' ์„ฑ์žฅํ•˜๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด์— 'ํ˜ผ์ž'์„œ ๋ฏธ์…˜์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‚ฌ์ง„์œผ๋กœ ์ธ์ฆํ•˜๋˜ ์ฑŒ๋ฆฐ์ ธ์Šค์˜ ๋ฐฉ์‹์€ ์†Œํ†ต์˜ ์•„์‰ฌ์›€์„ ๋”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์•„์‰ฌ์›€๊ณผ ๋ฌด๋ฃŒํ•œ ์ธ์ฆ์˜ ๋ฃจํ‹ด์„ ๊นจ๊ธฐ ์œ„ํ•ด, CRIT์€ ๊ฐ•ํ™”๋œ โ€˜์†Œ์…œ ๊ธฐ๋Šฅโ€™์„ ์ค‘์‹ฌ์œผ๋กœ ์ˆํผ๊ณผ ๋‹ค์–‘ํ•œ ๊ฒŒ์‹œ๊ธ€์„ ํ†ตํ•ด ์ฐธ๊ฐ€์ž๋“ค ๊ฐ„์˜ ์†Œํ†ต์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ, ์‹ค์‹œ๊ฐ„ ์ธ์ฆ ์‹œ์Šคํ…œ์€ ๋‹จ์ˆœํžˆ ์‚ฌ์ง„์„ ์ฐ๊ณ  ์ž ์— ๋“œ๋Š” ๋ฃจํ‹ด์„ ๋ฒ—์–ด๋‚˜, ์ฐธ๊ฐ€์ž๋“ค์ด ๊ทธ ์ˆœ๊ฐ„์˜ ์ง„์ •ํ•œ ๋ณ€ํ™”์™€ ์„ฑ์ทจ๊ฐ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ณต์œ ํ•˜๊ณ  ํ•จ๊ป˜ ์ฆ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฐธ๊ฐ€์ž๋“ค์€ ์ผ์ƒ์˜ ์†Œ์ค‘ํ•œ ์ˆœ๊ฐ„์„ ๋ชจ์•„ ์ ์ฐจ '๊ฐ“์ƒ'์„ ์‚ด ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ , CRIT ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ํ•จ๊ป˜ ๋” ํฐ ์„ฑ์žฅ์„ ์ถ”๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CRIT์—์„œ ํ•จ๊ป˜ํ•˜๋Š” ์ฑŒ๋ฆฐ์ง€๋Š” ๋‹จ์ˆœํ•œ ๋ชฉํ‘œ ๋‹ฌ์„ฑ์ด ์•„๋‹Œ, ํ•จ๊ป˜ ๋‚˜๋ˆ„๋ฉฐ ์„ฑ์žฅํ•˜๋Š” ๊ฒฝํ—˜์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„œ๋น„์Šค๋ช… & ๋กœ๊ณ 


crit1

  • C : Create Goals(๋ชฉํ‘œ๋ฅผ ์„ค์ •ํ•˜์„ธ์š”)
  • R : Realize your Goals(๋ชฉํ‘œ๋ฅผ ๊ฑฐ๋จธ์ฅ์„ธ์š”)
  • I : Improve yourself everyday(๋งค์ผ ์ž์‹ ์„ ๊ฐœ์„ ํ•˜์„ธ์š”)
  • T : Try again when you fail(์‹คํŒจํ•˜๋ฉด ๋‹ค์‹œ ์‹œ๋„ํ•˜์„ธ์š”)

์ฃผ์š” ๊ธฐ๋Šฅ


์ฑŒ๋ฆฐ์ง€

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

์ปค๋ฎค๋‹ˆํ‹ฐ & ์†Œ์…œ

  • ์‡ผ์ธ  ์ปจํ…์ธ 
    • ์ง์ ‘ ์ดฌ์˜ํ•œ ์ฑŒ๋ฆฐ์ง€ ๊ณผ์ •์„ ๊ณต์œ ํ•ด ๋ณด์„ธ์š”
    • ์ฑŒ๋ฆฐ์ง€ ๊ฟ€ํŒ์„ ๊ณต์œ ํ•ด ๋ณด์„ธ์š”
  • ๊ฐœ์ธ ํ”ผ๋“œ ์ž‘์„ฑ
    • ํ•˜๋ฃจํ•˜๋ฃจ ์„ฑ์žฅํ•˜๋Š” ๋ชจ์Šต์„ ๊ธฐ๋กํ•˜์„ธ์š”
  • ๋‹ค์–‘ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œํŒ
    • ๊ฒŒ์‹œํŒ์—์„œ ๋‹ค์–‘ํ•œ ์‚ฌ๋žŒ๋“ค๊ณผ ์†Œํ†ตํ•ด๋ณด์„ธ์š”
  • ๋‹ค์–‘ํ•œ ์‚ฌ๋žŒ๋“ค๊ณผ ํŒ”๋กœ์ž‰ & ํŒ”๋กœ์šฐ
    • ๋‹ค์Œ ์ฑŒ๋ฆฐ์ง€๋ฅผ ๊ฐ™์ดํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ๊ณผ ์ธ์—ฐ์„ ๋งบ์œผ์„ธ์š”

CRIT ๊ธฐ๋Šฅ ์†Œ๊ฐœ


์‹œ์ž‘ํŽ˜์ด์ง€ & ํšŒ์›๊ฐ€์ž… & ๋กœ๊ทธ์ธ

ํšŒ์›๊ฐ€์ž…

๋ฉ”์ธํŽ˜์ด์ง€ & ์ปค๋ฎค๋‹ˆํ‹ฐ

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

ํ”„๋กœํ•„ & ๋ฉ”์‹œ์ง€

ํ”„๋กœํ•„

์ฑŒ๋ฆฐ์ง€

์ฑŒ๋ฆฐ์ง€

๊ธฐ์ˆ  ์ฐจ๋ณ„์ 


Spring Security

Spring Security์—์„œ ์ œ๊ณตํ•˜๋Š”UsernamePasswordAuthenticationFilter์™€ Access Token์„ ์ด์šฉํ•˜์—ฌ ์ธ์ฆ์ด ์™„๋ฃŒ๋œ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผย HttpServletRequest์— ๋‹ด์•„์ค๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋กœ๊ทธ์ธ ํ•œ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ URL์— ๋…ธ์ถœํ•˜์ง€ ์•Š๊ณ  ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Web RTC, OpenVidu ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉ

OpenVidu๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ kurento-midea-server๋ฅผ ๊ฑฐ์ณ ์„œ๋กœ ์˜์ƒ์ •๋ณด๋ฅผ ์†ก์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ• ๋ฐ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฑŒ๋ฆฐ์ง€๋ฅผ ์„ค์ •ํ•  ๋•Œ ํŠน์ • ์ธ์›์ˆ˜๋งŒํผ ๋“ค์–ด ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ์„ค์ •ํ•˜์˜€๊ณ  ํ•ด๋‹น ์ธ์›์ˆ˜์— ๋„๋‹ฌํ•˜๋ฉด ์ฑŒ๋ฆฐ์ง€๊ฐ€ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Docker, Jenkins๋ฅผ ์ด์šฉํ•œ CI/CD๊ตฌ์ถ• ๋ฐ SSL์ธ์ฆ์„œ ์ ์šฉ

Docker imageย Jenkins์˜ย pipeline์„ ์ด์šฉํ•˜์—ฌ ์ž๋™ ๋ฐฐํฌ๋ฅผ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค.ย Gitlab webhook์„ ์„ค์ •ํ•˜์—ฌ Jenkins์— ๋นŒ๋“œ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์„ค์ •ํ–ˆ์œผ๋ฉฐ Gitlab์—์„œ master ๋ธŒ๋žœ์น˜์— pushํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋ฐฐํฌ๋  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์ถ•ํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐฐํฌ๋กœ ์ธํ•œ ์‹œ๊ฐ„ ๋‚ญ๋น„๋ฅผ ์ค„์˜€์Šต๋‹ˆ๋‹ค.

  • frontend,ย Vue js์—์„œ๋Š”ย Nginx์™€ ํ•จ๊ป˜ ec2์„œ๋ฒ„์—์„œ ๋นŒ๋“œํ•œ ํ›„ ๋ฐฐํฌ
  • backend,ย springBoot์—์„œ๋Š”ย docker image๋กœ ๋นŒ๋“œํ•œ ํ›„ ๋ฐฐํฌ
  • nginx์™€ย letsencrypt๋ฅผ ํ†ตํ•ดย sslย ์ธ์ฆ์„œ๋ฅผ ์ ์šฉํ–ˆ๊ณ ย frontend์—์„œ๋Š”ย /๋กœย 80(http),ย 443(https)ย ๋กœ ํ”„๋ก์‹œ๋ฅผ ๋ถ„๋ฆฌ์‹œ์ผฐ๊ณ ,ย backend์—์„œ๋Š”ย /api๋กœย 80(http),ย 443(https)ย ๋กœ ํ”„๋ก์‹œ๋ฅผ ๋ถ„๋ฆฌ

aws S3, cloudfront๋ฅผ ์ด์šฉํ•œ ํŒŒ์ผ์—…๋กœ๋“œ

์‡ผ์ธ (Shorts) ์ปจํ…์ธ  ๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จ์œผ๋กœ์จ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ํ’๋ถ€ํ•œ ๋ฏธ๋””์–ด ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ ์˜ˆ์ƒ๋˜๋Š” ๋Œ€๋Ÿ‰์˜ ์ด๋ฏธ์ง€์™€ ๋™์˜์ƒ ํŒŒ์ผ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Amazon S3 ์Šคํ† ๋ฆฌ์ง€ ์†”๋ฃจ์…˜์„ ์ฑ„ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด ์„ ํƒ์€ ๋Œ€์šฉ๋Ÿ‰ ๋ฏธ๋””์–ด ํŒŒ์ผ์„ ์•ˆ์ •์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ๋ฅผ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.

๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์‚ฌ์šฉ์ž๋“ค์ด ์ด๋Ÿฌํ•œ ๋ฏธ๋””์–ด ์ปจํ…์ธ ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด Amazon CloudFront ์ฝ˜ํ…์ธ  ์ „์†ก ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด S3์™€ ์—ฐ๋™ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ๋ฏธ๋””์–ด ํŒŒ์ผ๋“ค์€ ์ „ ์„ธ๊ณ„ ๋‹ค์–‘ํ•œ ์œ„์น˜์˜ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ์ €์ง€์—ฐ์œผ๋กœ ์ œ๊ณต๋  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์œผ๋ฉฐ, ์ด๋Š” ์›น ํŽ˜์ด์ง€์˜ ๋กœ๋”ฉ ์†๋„๋ฅผ ํ˜„๊ฒฉํ•˜๊ฒŒ ๊ฐœ์„ ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. CloudFront์˜ ์บ์‹ฑ ๋ฐ ๊ฐ€์†ํ™” ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•จ์œผ๋กœ์จ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์˜ ํ’ˆ์งˆ์„ ๋†’์ด๊ณ , ๋” ๋‚˜์•„๊ฐ€ ์„œ๋น„์Šค์˜ ์„ฑ๊ณผ๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ๊ธฐ์—ฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ํ™˜๊ฒฝ


1.1 Frontend

  • Node js 18.19.0
  • React 18.2.0
  • axios 1.4.0
  • jquery 3.7.0
  • swiper 10.1.0

1.2 Backend

  • Java 11
    • java OpenJDK
    • Spring Boot
      • Spring Data JPA
      • Spring Security
      • oauth2
      • JUnit
      • Lombok
      • Swagger
    • Gradle 1.0.10
    • drewnoakes 2.18.0

1.3 Server

  • Ubuntu 20.04.3
  • Nginx 1.18.0
  • Docker 24.0.4
  • Docker-Compose 2.20.2
  • OpenVidu 2.28.0
  • Jenkins 2.401.3

1.4 Database

  • mariaDB 2.4.1

1.5 UI/UX

  • Figma

1.6 IDE

  • Visual Studio Code
  • IntelliJ IDEA

1.7 ํ˜•์ƒ / ์ด์Šˆ๊ด€๋ฆฌ

  • Gitlab
  • Jira

1.8 ๊ธฐํƒ€ ํˆด

  • Sonarqube 4.6.2
  • S3 2.2.6
  • Cloudfront
  • mattermost 7.8.6
  • jasypt 2.14.2
  • postman 10.17.0
  • teachable machine 0.8.5

์•„ํ‚คํ…์ฒ˜


์ˆ˜์ •ํ•œ_์•„ํ‚คํ…์ณ2__1_

ERD


erd

ํ˜‘์—… ํˆด


  • GitLab
  • Jira
  • Notion
  • Mattermost

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published