8000 GitHub - Step3-kakao-tech-campus/Team7_BE: 7์กฐ
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Step3-kakao-tech-campus/Team7_BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๋กœ๊ณ 




๋ฏธ๋ฆฌ๋ณด๊ธฐ


๐Ÿค” ์™œ ์ด๋Ÿฐ ์„œ๋น„์Šค๋ฅผ?

๐Ÿ“ ๋ฌธ์ œ ์ƒํ™ฉ ์ธ์‹ 1๋‹จ๊ณ„ <์นดํ…Œ์บ  1,2 ๋‹จ๊ณ„๋ฅผ ๊ฒช์œผ๋ฉฐ>

  • ์นดํ…Œ์บ ์˜ ํ•ต์‹ฌ, ์ž๊ธฐ์ฃผ๋„์  ํ•™์Šต -> ๋งค์ผ, ๋งค์ฃผ TIL ์ž‘์„ฑ ๋ฐ ์ œ์ถœ
  • ํ•˜์ง€๋งŒ 100๋ช…์ด ๋„˜๋Š” ํ•™์ƒ๋“ค์˜ TIL์„ ํ•˜๋‚˜์˜ ๋…ธ์…˜ ํŽ˜์ด์ง€์—์„œ ์ผ๊ด„ ๊ด€๋ฆฌ

๊ณต๋ถ€

ํ•™์ƒ์˜ ๋ถˆํŽธํ•จ - ๋‚ด TIL์ด ์‚ญ์ œ๋  ์ˆ˜ ์žˆ๊ณ , ์„œ๋กœ์˜ TIL์ด ๋ชจ๋‘ ๊ณต๊ฐœ๋จ
๋ฉ˜ํ† ์˜ ๋ถˆํŽธํ•จ - ์ผ์ผ์ด ์ž‘์„ฑ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ด์•ผ ํ•˜๊ณ , ์ œ์ถœ ์—ฌ๋ถ€ ํ™•์ธ๋„ ๋ฒˆ๊ฑฐ๋กœ์›€

-> ํ•™์Šต์ผ์ง€๋ฅผ ๋” ํŽธํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ  ์ œ์ถœํ•  ์ˆ˜๋Š” ์—†์„๊นŒ?

โญ๏ธ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ <๊ทธ๋ฃน ๋กœ๋“œ๋งต ์„œ๋น„์Šค>

  • ๋กœ๋“œ๋งต์„ ๋งŒ๋“ค์–ด์„œ ๊ตฌ์„ฑ์›๋“ค์ด ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์ž
  • ๋กœ๋“œ๋งต์˜ ๊ฐ ๋‹จ๊ณ„๋ฅผ ์ง์ ‘ ์„ค์ •ํ•˜๊ณ , ๊ตฌ์„ฑ์›๋“ค์ด ๋‹จ๊ณ„๋ณ„๋กœ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์ž
  • ์ œ์ถœ ๊ธฐํ•œ์— ๋งž์ถฐ ๊ฐ ๋‹จ๊ณ„๋ณ„๋กœ ํ•™์Šตํ•œ TIL์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์ž
  • ์ œ์ถœ๋œ TIL์€ ํ•œ๋ˆˆ์— ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์ž

ํ‹ธ


๐Ÿ“ ๋ฌธ์ œ ์ƒํ™ฉ ์ธ์‹ 2๋‹จ๊ณ„ <์ž๊ธฐ์ฃผ๋„์  ๊ฐœ๋ฐœ ํ•™์Šต์˜ ์–ด๋ ค์›€>

  • ๊ฐœ๋ฐœ, ๊ธฐ์ˆ  ์Šคํƒ ๊ณต๋ถ€๋Š” ์Šค์Šค๋กœ ์‹œ์ž‘ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ
ํ•˜์ง€๋งŒ ์–ด๋””์„œ๋ถ€ํ„ฐ ์–ด๋–ค ์ˆœ์„œ๋กœ ํ•™์Šตํ•ด์•ผ ํ• ์ง€ ๋ง‰๋ง‰ํ•จ
๋‚ด๊ฐ€ ์ž˜ํ•˜๊ณ  ์žˆ๋Š”์ง€๋„ ํ™•์ธํ•˜๊ธฐ ์–ด๋ ค์›€

-> ์–ด๋–ค ์ˆœ์„œ๋กœ ๊ณต๋ถ€ํ•ด์•ผ ํ• ์ง€, ๋˜ ์ž˜ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•  ๋ฐฉ๋ฒ•์ด ์žˆ์„๊นŒ?

โญ๏ธ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ <๋กœ๋“œ๋งต ์ œ๊ณต ๋ฐ TIL ๊ณต์œ >

  • ์Šค์Šค๋กœ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋กœ๋“œ๋งต์„ ์ œ๊ณตํ•˜์ž
  • ๋‹จ๊ณ„๋ณ„๋กœ ์ฐธ๊ณ  ์ž๋ฃŒ๋ฅผ ์ œ๊ณตํ•˜๊ณ , ํ•™์Šต ํ›„ TIL์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์ž
  • ์ œ์ถœ์ด ์™„๋ฃŒ๋˜๋ฉด, ํ•ด๋‹น ํ•™์Šต ๋‹จ๊ณ„์— ์ œ์ถœ๋œ TIL์„ ๋ชจ๋‘ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์ž
  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ TIL์„ ์ฐธ๊ณ ํ•˜์—ฌ, ๋ณธ์ธ์˜ ํ•™์Šต์ด ์ž˜ ์ง„ํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€ ์ ๊ฒ€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์ž

ํ‹ธ


๐Ÿงฉ ์ฃผ์š” ๊ธฐ๋Šฅ

TIL ์ž‘์„ฑ ํ•™์Šต ์ฐธ๊ณ 
- ๋งˆํฌ๋‹ค์šด ์—๋””ํ„ฐ๋ฅผ ํ†ตํ•ด TIL ์ž‘์„ฑ
- ์ž๋™ ์ €์žฅ ๊ธฐ๋Šฅ์œผ๋กœ ์ž‘์„ฑ ๋„์ค‘ ๋ฐ์ดํ„ฐ ์œ ์‹ค ๋ฐฉ์ง€
- ๊ฐ STEP๋ณ„ ์ฐธ๊ณ ์ž๋ฃŒ ์กฐํšŒ
- ์ œ์ถœํ•œ TIL์— ๋‹ฌ๋ฆฐ ์ฝ”๋ฉ˜ํŠธ ํ™•์ธ ๊ฐ€๋Šฅ
TIL ํ•™์Šต ์ฐธ๊ณ 
๋ฉ”์ธ ์ฐธ๊ณ  ์ž๋ฃŒ
- ์ž‘์„ฑํ•œ TIL ๋ชฉ๋ก์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์กฐํšŒ
- ์žฅ๋ฏธ๋ฐญ์„ ํ†ตํ•ด ํ•™์Šต ์—ด์ •๊ณผ ์ง„ํ–‰ ์ƒํ™ฉ ํ™•์ธ
- ๊ฐœ์ธ๊ณผ ๊ทธ๋ฃน ๋กœ๋“œ๋งต์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ด€๋ฆฌ
- ๋กœ๋“œ๋งต์— ์™ธ๋ถ€ ์ฐธ๊ณ ์ž๋ฃŒ(URL, ์œ ํŠœ๋ธŒ) ์ฒจ๋ถ€
๋ฉ”์ธ ์ฐธ๊ณ  ์ž๋ฃŒ
๋กœ๋“œ๋งต ๋ชฉ๋ก ๊ตฌ์„ฑ์› ๊ด€๋ฆฌ
- ๋‚ด๊ฐ€ ์ฐธ์—ฌํ•˜๊ณ  ์žˆ๋Š” ๋กœ๋“œ๋งต์˜ ๋ชฉ๋ก ํ™•์ธ
- ํ˜„์žฌ ๋ชจ์ง‘ ์ค‘์ธ ๊ทธ๋ฃน ๋กœ๋“œ๋งต ๋ชฉ๋ก ํ™•์ธ
- ๋กœ๋“œ๋งต์— ์†ํ•œ ๊ทธ๋ฃน์› ๋ชฉ๋ก ์กฐํšŒ
- ๋ฉค๋ฒ„ ๊ถŒํ•œ ๋ณ€๊ฒฝ ๋ฐ ๊ฐ•ํ‡ด ์ฒ˜๋ฆฌ์™€ ๋กœ๋“œ๋งต ์‹ ์ฒญ์ž ์Šน์ธยท๊ฑฐ์ ˆ ๊ด€๋ฆฌ
- ๊ทธ๋ฃน์› TIL ์ž‘์„ฑ ํ˜„ํ™ฉ ํ™•์ธ
๋ฉ”์ธ ํŒ€
TIL ๊ณต์œ ํ•˜๊ธฐ ๊นƒํ—ˆ๋ธŒ ์—…๋กœ๋“œ
- ์ž์‹ ์ด ํ•™์Šตํ•œ ๋‚ด์šฉ(TIL)์„ ํƒ€์ธ๊ณผ ๊ณต์œ 
- ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ•™์Šต ๋ฐฉ์‹์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋™๊ธฐ ๋ถ€์—ฌ
- ์ž‘์„ฑํ•œ TIL์„ ๊นƒํ—ˆ๋ธŒ์— ์—…๋กœ๋“œ
- ๊ฐœ์ธ ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ํ•™์Šต ๊ธฐ๋ก ๋ณด๊ด€
๊ณต์œ  ๊นƒ

๐ŸŽฏ BE - ํ•ต์‹ฌ ๊ฐœ๋ฐœ ์˜์—ญ

๊ธฐ๋Šฅ ์„ค๋ช…
๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž… - JWT๋ฅผ ํ™œ์šฉํ•ด ์ธ์ฆ ์‹œ์Šคํ…œ ๊ตฌํ˜„
- ๋กœ๊ทธ์ธ ์‹œ Access Token ๋ฐœ๊ธ‰, ๋งŒ๋ฃŒ ์‹œ Refresh Token์„ ํ™œ์šฉํ•ด ์ธ์ฆ ์ƒํƒœ ์œ ์ง€
๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ - ํŽ˜์ด์ง€๋ณ„ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์—ฌ TIL ์ œ๋ชฉ, ํŠน์ • ๋‚ ์งœ, ๋กœ๋“œ๋งต ์ด๋ฆ„, ๊ตฌ์„ฑ์› ์ด๋ฆ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ
์ด๋ฏธ์ง€ ์—…๋กœ๋“œ - AWS S3๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ”„๋กœํ•„ ์‚ฌ์ง„๊ณผ TIL ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ , ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„
์•Œ๋ฆผ ๊ธฐ๋Šฅ - ์‚ฌ์šฉ์ž๊ฐ€ ์ œ์ถœํ•œ TIL์— ๋Œ“๊ธ€์ด ๋‹ฌ๋ฆฌ๋ฉด, ์•Œ๋ฆผ์„ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„
๋Œ“๊ธ€ ๊ธฐ๋Šฅ - ์ œ์ถœ๋œ TIL์— ๋Œ“๊ธ€์„ ์ž‘์„ฑํ•˜๊ณ , ์ˆ˜์ • ๋ฐ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„
์‚ญ์ œ ๊ธฐ๋Šฅ - JPQL๊ณผ @Where์„ ํ™œ์šฉํ•˜์—ฌ ๋ฌผ๋ฆฌ์  ์‚ญ์ œ ์—†์ด ๋…ผ๋ฆฌ์  ์‚ญ์ œ ๊ตฌํ˜„
- ๋…ผ๋ฆฌ์  ์‚ญ์ œ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๊ณ , ์‚ญ์ œ๋œ ๋ฐ์ดํ„ฐ์˜ ์ด๋ ฅ ์ถ”์  ๋ฐ ํ™œ์šฉ ๊ฐ€๋Šฅ
์˜ˆ์™ธ ์ฒ˜๋ฆฌ - ๊ณตํ†ต ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ์œ ์ง€๋ณด์ˆ˜์„ฑ ํ–ฅ์ƒ ๋ฐ ์ค‘๋ณต ์ตœ์†Œํ™”
๊ถŒํ•œ ์ฒ˜๋ฆฌ - ๋กœ๋“œ๋งต ๋‚ด ์—ญํ• ์— ๋”ฐ๋ฅธ ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐ ์ ‘๊ทผ ์ œ์–ด ๊ตฌํ˜„ (Master, Manager, Member, None)
ํ…Œ์ŠคํŠธ ์ฝ”๋“œ - JUnit5๋ฅผ ํ™œ์šฉํ•ด ์ปจํŠธ๋กค๋Ÿฌ ๋‹จ์œ„ํ…Œ์ŠคํŠธ ์ž‘์„ฑ
์„ฑ๋Šฅ ๊ฐœ์„  - Lazy Loading๊ณผ Fetch Join์„ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•ด N+1 ๋ฌธ์ œ ํ•ด๊ฒฐ
- ๋ถˆํ•„์š”ํ•œ ์˜์กด์„ฑ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์–‘๋ฐฉํ–ฅ๋ณด๋‹ค ๋‹จ๋ฐฉํ–ฅ ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ์šฐ์„  ์ ์šฉ
๋ฆฌํŒฉํ† ๋ง - DTO๋ฅผ class๊ฐ€ ์•„๋‹Œ record๋กœ ์„ ์–ธํ•˜์—ฌ depth๋ฅผ ์ค„์ด๊ณ , ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ๊ฐ€๋…์„ฑ ๊ฐœ์„ 

๐Ÿ  ERD

ERD


โš™๏ธ ์•„ํ‚คํƒ์ณ ๊ตฌ์กฐ

์•„ํ‚คํ…์ณ


  • Redis๋ฅผ ์ด์šฉํ•ด Refresh Token์„ ์ €์žฅํ•˜๊ณ  ์ธ์ฆ ์‹œ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ์ตœ์ ํ™”.
  • Docker๋ฅผ ์ด์šฉํ•ด ๊ฐ ์„œ๋น„์Šค(Spring, React, Redis, MariaDB)๋ฅผ ๋ชจ๋“ˆํ™”ํ•˜๊ณ , ๋„คํŠธ์›Œํฌ ์„ค์ •๊ณผ ์ข…์†์„ฑ ๊ด€๋ฆฌ ์ž๋™ํ™”
  • React(Next.js)์™€ Spring์„ Nginx ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์‚ฌ์ด๋“œ ์š”์ฒญ์„ ๋™์ผํ•œ API ์—”๋“œํฌ์ธํŠธ๋กœ ๋ผ์šฐํŒ…
  • Next.js์˜ SSR์„ ํ™œ์šฉํ•ด ํด๋ผ์ด์–ธํŠธ ๋ Œ๋”๋ง ์ด์ „์— ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ œ์–ดํ•˜๊ณ , React-Query์˜ prefetch/Hydration์œผ๋กœ ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ ์ตœ์ ํ™”

๐ŸŽฅ ์‹œ์—ฐ ์˜์ƒ

๐Ÿ“ ๋žœ๋”ฉ ํŽ˜์ด์ง€ โ†’ ํšŒ์›๊ฐ€์ž… โ†’ ํŠœํ† ๋ฆฌ์–ผ

sign.mov

๐Ÿ“ ๋ฉ”์ธ ํ™”๋ฉด

main.mov

๐Ÿ“ TIL ์ž‘์„ฑํ•˜๊ธฐ

til.mov

๐Ÿ“ ๋กœ๋“œ๋งต ๋‘˜๋Ÿฌ๋ณด๊ธฐ โ†’ ๋กœ๋“œ๋งต ๊ด€๋ฆฌ

roadmap.mov

๐Ÿ”— ๊ด€๋ จ ์ฃผ์†Œ

๋ฌธ์„œ
API ๋ฌธ์„œ
ํ”ผ๊ทธ๋งˆ

๐Ÿ‘จโ€๐Ÿ’ป๐Ÿง‘โ€๐Ÿ’ป TIL-y ๊ตฌ์„ฑ์›

๊น€๋™์˜ ์กฐ์ค€์„œ ์ดํ•œํ™ ๊น€์ˆ˜ํ˜„ ์ด์ƒ๋ช…
๊น€๋™์˜ ์กฐ์ค€์„œ ์ดํ•œํ™ ๊น€์ˆ˜ํ˜„ ์ด์ƒ๋ช…
FE FE BE BE BE
์กฐ์žฅ ํ…Œํฌ๋ฆฌ๋” ๊ธฐํš๋ฆฌ๋” ์Šค์ผ€์ค„๋Ÿฌ ๋ฆฌ๋งˆ์ธ๋”

About

7์กฐ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5

0