Skip to content

HangHae-12/back

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

325 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ–ํ‚จ๋”๊ทธ๋ฃจ

M1

๐Ÿ“ ๊ฐœ์š”


๐Ÿ•ธ ์•„ํ‚คํ…์ณ



โš’ ๊ธฐ์ˆ ์Šคํƒ


๐Ÿ’ก ์ฃผ์š” ๊ธฐ๋Šฅ

์ ‘๊ธฐ/ํŽผ์น˜๊ธฐ
  • 1. ๊ฐ„ํŽธํ•œ ์†Œ์…œ ๋กœ๊ทธ์ธ



  • 2. ๋“ฑํ•˜์› ๊ด€๋ฆฌ ์„œ๋น„์Šค

    • ์‹ค์‹œ๊ฐ„ ๋“ฑ ํ•˜์› ์ฒ˜๋ฆฌ


    • ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ ๊ธฐ๋Šฅ(ํ•™๋ถ€๋ชจ ๋“ฑ,ํ•˜์› ์นดํ†ก ์ „์†ก)


  • 3. ์ถœ๊ฒฐ ๊ด€๋ฆฌ ์„œ๋น„์Šค

    • ์›”๋ณ„ ์ถœ์„๋ถ€(+ ์—‘์…€ ๋‚ด๋ณด๋‚ด๊ธฐ ๊ธฐ๋Šฅ)


    • ์ผ๋ณ„ ์ถœ์„๋ถ€(+ ์—‘์…€ ๋‚ด๋ณด๋‚ด๊ธฐ ๊ธฐ๋Šฅ)


    • ๊ฒฐ์„ ์‹ ์ฒญ ๋ฐ ์ทจ์†Œ


  • 4. ์œ ์น˜์› ์šด์˜๊ด€๋ฆฌ ์„œ๋น„์Šค
    • ๋ฐ˜ ๋ณ„ ๊ฐค๋Ÿฌ๋ฆฌ



    • ์•„์ด ์ •๋ณด ์—ด๋žŒ


๐Ÿ“ API ๋ช…์„ธ

ํ‚จ๋”๊ทธ๋ฃจ ํŒ€ ๋…ธ์…˜ ๋ฐ”๋กœ๊ฐ€๊ธฐ


๐Ÿ“Š ERD

๐Ÿค ํ˜‘์—…๋ฐฉ์‹

TEAM RULE

  • ์ „์ฒดํšŒ์˜์‹œ๊ฐ„: ์ €๋… 8์‹œ
  • BE ํšŒ์˜์‹œ๊ฐ„: ์ €๋… 5์‹œ 30๋ถ„
    • ์ฝ”๋“œ๋ฆฌ๋ทฐ
    • ์ด์Šˆ ๊ณต์œ ํ•˜๊ธฐ
    • ์ง„ํ–‰ ์ƒํ™ฉ ๊ณต์œ ํ•˜๊ธฐ
  • ์ ์–ด๋„ ํšŒ์˜ ์‹œ๊ฐ„์—๋Š” ๋น„๋””์˜ค์™€ ์Œ์„ฑ ํ‚ค๊ธฐ
  • ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ์ปค๋ฐ‹ํ•˜๊ธฐ
  • pr ํ…œํ”Œ๋ฆฟ ์–‘์‹ ์ค€์ˆ˜ํ•˜๊ธฐ
  • Issue ํ…œํ”Œ๋ฆฟ ์–‘์‹ ์ค€์ˆ˜ํ•˜๊ธฐ
  • ๋จธ์ง€ํ•˜๊ณ  ๋‚˜์„œ ๋ธŒ๋žœ์น˜ ๊ผญ ์ง€์šฐ๊ธฐ
  • ํ’€ ๋‹น๊ธฐ๊ธฐ ์ „์— ํŒจ์น˜ํ•˜๊ธฐ
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ปจ๋ฒค์…˜ ์ค€์ˆ˜ํ•˜๊ธฐ

โš–๏ธ ๊ธฐ์ˆ ์  ์˜์‚ฌ๊ฒฐ์ •

์ ‘๊ธฐ/ํŽผ์น˜๊ธฐ
๊ธฐ์ˆ  ์„ ํƒ์ง€ ์ด์œ 
Redis 1. DB ์ €์žฅ
2. Redis
์œ ์น˜์›์ด๋ผ๋Š” ํŠน์„ฑ์ƒ, ์„ ์ƒ๋‹˜์ด ์ ‘์†์„ ์˜ค๋ž˜ ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Refresh Token์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.
Refresh Token์„ DB์— ์ €์žฅ ํ•ด์„œ ์‚ฌ์šฉ์„ ํ•ด๋„ ๋˜์ง€๋งŒ, ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ง์ ‘ ๋งŒ๋ฃŒ ๋œ Refresh Token์„ ์‚ญ์ œ ํ•ด์ค˜์•ผ ํ•˜๊ธฐ๋„ ํ•˜๊ณ  , ์บ์‹œ์ธ Redis๊ฐ€ ๋” ๊ฐ€๋ณ๊ณ  ์†๋„๋„ ๋น ๋ฅด๊ณ  TTL์„ ํ†ตํ•ด์„œ ์ž๋™์œผ๋กœ ์‚ญ์ œ๋„ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— Redis๋ฅผ ์ ์šฉ ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.
ImageIO 1. Marvin open source Library 2. Graphics2D 3. ImageIO ์ฒ˜์Œ์—๋Š” ์ด๋ฏธ์ง€๋ฅผ S3์— ์—…๋กœ๋“œ๋งŒ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ, ์ด๋ฏธ์ง€๋ฅผ ๋ฆฌ์‚ฌ์ด์ง•ํ•ด์•ผ ํ•  ํ•„์š”์„ฑ์ด ์ƒ๊ธฐ๋ฉด์„œ ์ด๋ฏธ์ง€ ๋ฆฌ์‚ฌ์ด์ง• ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ•ด์•ผ ํ–ˆ๋‹ค. ๊ฐ€์žฅ ๋จผ์ € Marvin open source Library๋ฅผ ์‚ฌ์šฉํ•ด ๋ฆฌ์‚ฌ์ด์ง•ํ–ˆ์ง€๋งŒ ์ด๋ฏธ์ง€๊ฐ€ ์‹ฌํ•ด๊ฒŒ ๋„ํŠธํ™”๋˜๋Š” ๋ฌธ์ œ์™€ ํ”„๋กœ์ ํŠธ ์ „์ฒด ์šฉ๋Ÿ‰๋ณด๋‹ค marvin ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์šฉ๋Ÿ‰์ด ์•ฝ 3๋ฐฐ ๋” ์ปธ์œผ๋ฉฐ, ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฌธ์ œ๋„ ์žˆ์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ java.awt ํŒจํ‚ค์ง€์˜ Graphics2D ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ๋ณ„๋„์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€ ์‚ฌ์šฉ ์—†์ด ๊ตฌํ˜„์„ ํ•ด ๋ณด์•˜์ง€๋งŒ ์„ฑ๋Šฅ์€ ๊ฐœ์„ ๋˜์—ˆ์ง€๋งŒ ๋„ํŠธํ™”๊ฐ€ ๋”์šฑ ์‹ฌ๊ฐํ•ด์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ Graphics2D ๋Œ€์‹  ImageIOํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ๋ฆฌ์‚ฌ์ด์ง•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฑ„ํƒํ–ˆ๋‹ค. ๋„ํŠธํ™”๊ฐ€ ์•„์˜ˆ ์—†๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์—ˆ์ง€๋งŒ ๋‹ค๋ฅธ 2๊ฐœ์˜ ๋ฐฉ๋ฒ•์— ๋น„ํ•ด ์ •๋„๊ฐ€ ๋‚ฎ์•˜์œผ๋ฉฐ ๋ณ„๋„์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜๋„ ํ•„์š”์—†์—ˆ๊ณ , ์„ฑ๋Šฅ๋„ Graphics2D์™€ ํฐ ์ฐจ์ด๋ฅผ ๋ณด์ด์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
์นด์นด์˜ค ์•Œ๋ฆผ ๊ธฐ๋Šฅ 1. ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์•Œ๋ฆผ ๊ตฌํ˜„
2. ๋ฐฑ์—”๋“œ์—์„œ ์•Œ๋ฆผ ๊ตฌํ˜„
ํ”„๋ก ํŠธ์—”๋“œ, ๋ฐฑ์—”๋“œ ๋ชจ๋‘ ์นด์นด์˜ค ์•Œ๋ฆผ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ ๋ฐฑ์—”๋“œ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.
1. ํŠธ๋žœ์žญ์…˜
๋‹จ์ˆœ ์นด์นด์˜ค ์•Œ๋ฆผ ๊ธฐ๋Šฅ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์•„์ด์˜ ๋“ฑํ•˜์› ์ƒํƒœ๋„ ๋ฐ”๋€Œ์–ด์•ผ ํ•˜๋ฏ€๋กœ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์ฒ˜๋ฆฌ ์‹œ ์นด์นด์˜ค ์•Œ๋ฆผ ๋ฉ”์‹œ์ง€ API ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋“ฑํ•˜์› ์ƒํƒœ ๋ณ€๊ฒฝ API๋„ ํ•„์š”ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์„œ๋ฒ„์—์„œ๋Š” API ํ•˜๋‚˜๋กœ ๊ฐ™์€ ํŠธ๋žœ์žญ์…˜์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋กœ์ธํ•ด ์นด์นด์˜ค ์•Œ๋ฆผ ๊ธฐ๋Šฅ๊ณผ ๋“ฑํ•˜์› ์ƒํƒœ ๋ณ€๊ฒฝ์„ ๋ฌถ์–ด์„œ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
2. ๋ณด์•ˆ
์นด์นด์˜ค ๋ฉ”์‹œ์ง€ API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ๋ณด์•ˆ์ƒ ์ค‘์š”ํ•œ kakaoId์™€ AccessToken์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋ฅผ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์ฒ˜๋ฆฌํ•˜๋ฉด, ์ด ์ •๋ณด๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋…ธ์ถœ๋˜๊ฑฐ๋‚˜ ํƒˆ์ทจ๋  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐฑ์—”๋“œ์—์„œ ์ฒ˜๋ฆฌํ•˜๋ฉด, ์•ˆ์ „ํ•œ ํ™˜๊ฒฝ์—์„œ ์ด ์ •๋ณด๋“ค์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ณต์žกํ•œ ๋™์  ์ฟผ๋ฆฌ ์ž‘์„ฑ 1. JPA ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ
2. @Query
3. QueryDSL
๊ธฐ์กด์˜ JPA ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ๋Š” ๋™์  ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๋ฐ ํ•œ๊ณ„๊ฐ€ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA์˜ @Query๋ฅผ ์‚ฌ์šฉํ•˜๋ ค ํ–ˆ๋‹ค. @Query๋„ ๋™์  ์ฟผ๋ฆฌ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ข‹์€ ๋Œ€์•ˆ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์œผ๋‚˜ ๊ทธ๋ž˜๋„ ์ฃผ์–ด์ง„ ๋ฌธ์ œ์— ์ ์šฉํ•˜๊ธฐ์—๋Š” ๊ณ ๋ คํ•ด์•ผ ํ•  ์กฐ๊ฑด์ด ๋„ˆ๋ฌด ๋งŽ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค๋„ ๊ฐ€๋…์„ฑ์ด ๋„ˆ๋ฌด ๋–จ์–ด์ ธ ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์–ด๋ ต๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๋ฐ˜๋ฉด QueryDSL์˜ where ๋‹ค์ค‘ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐฉ์‹์€ ์ฃผ์–ด์ง„ ๋ฌธ์ œ์˜ ์กฐ๊ฑด๋“ค์„ ๋™์ ์œผ๋กœ ์ปค์ŠคํŠฌํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ ์ƒ๊ฐํ–ˆ๋‹ค. ์ด ์™ธ์—๋„ ์ปดํŒŒ์ผ ์—๋Ÿฌ๋ฅผ ์žก์„ ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ @Query๋ณด๋‹ค ์ฟผ๋ฆฌ ์ž์ฒด์˜ ๊ฐ€๋…์„ฑ์ด ํ›จ์”ฌ ์ข‹๋‹ค๋Š” ์ ๋„ QueryDSL์„ ๋„์ž…ํ•œ ์ด์œ ์˜€๋‹ค.

๐Ÿ”จ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

์ ‘๊ธฐ/ํŽผ์น˜๊ธฐ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages