๐Ÿ‰

ํŒจํ‚ค์ง€ ๊ตฌ์กฐ, ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ, ์„ค์ • ์ •๋ณด ๊ด€๋ฆฌ, ๋ฉ˜ํ† ๋‹˜ ๋ง์”€

์ƒ์„ฑ์ผ
Jun 22, 2022 11:22 AM
tag
Property
 

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

๋„๋ฉ”์ธ ๋ณ„๋กœ ๋‚˜๋ˆˆ ์ด ํŒจํ‚ค์ง€ ๊ตฌ์กฐ.. ์ด๋Œ€๋กœ ๊ดœ์ฐฎ์€๊ฐ€?

๐Ÿงจ ๋ฌธ์ œ์ 

  • ํ™”๋ฉด ํ•˜๋‚˜ํ•˜๋‚˜๊ฐ€ ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ์ด ๋„ˆ๋ฌด ์—ฎ์–ด ์žˆ์–ด์„œ ์–ด๋””์— ์ฑ…์ž„์„ ์ค˜์•ผ ๋ ์ง€์— ๋Œ€ํ•ด์„œ ๋…ผ๋ž€์˜ ์—ฌ์ง€๊ฐ€ ๋งŽ๋‹ค.
    • ex) ์ธ์Šคํƒ€๊ทธ๋žจ ๊ฐœ์ธ ํŽ˜์ด์ง€
    • ํ•ด๋‹น ํ™”๋ฉด์€ ๊ฐœ์ธ ํŽ˜์ด์ง€๊ธด ํ•˜์ง€๋งŒ ๊ฒŒ์‹œ๊ธ€๊นŒ์ง€ ์กฐํšŒํ•˜๊ณ  ์žˆ์Œ
    • ํ•˜์ง€๋งŒ PostService ์—์„œ ์ด๋ฏธ MemberGiver๋ฅผ ์ฐธ์กฐ ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, MemberService์—์„œ PostGiver๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ์ˆœํ™˜ ์ฐธ์กฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ๋จ
    • ์ด๋ฅผ ์œ„ํ•ด ์ผ๋‹จ MemberController์—์„œ PostService๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ง„ํ–‰ ์ค‘โ€ฆ
 

โœจ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€โ€ฆ?

  • ํ™”๋ฉด(UseCase) ๋ณ„๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค..?

๐Ÿถ Image Upload

  • ImageManager
    • ํด๋ž˜์Šค ๋ช…์€ ์ด๋ฏธ์ง€ ์ธ๋ฐ, ์ด๋ฏธ์ง€ ๊ด€๋ จ๋œ ๊ฒ€์‚ฌ๊ฐ€ ์—†๋‹ค.
    • ์ด๋ฏธ์ง€ ๋“ฑ๋ก๊นŒ์ง€ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๋ฌถ๋Š” ๊ฒƒ์ด ๋งž๋Š” ๊ฒƒ์ธ๊ฐ€.
    • create์— for๋ฌธ ๋ถ€๋ถ„์€ ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ์ธ๊ฐ€.
      • ๊ฐ์ฒด๋กœ ๋ฌถ์–ด์„œ stream์„ ๋Œ๋ฆฌ๋Š” ๋ฐฉ๋ฒ• 1
      • โ€ฆ?
    • ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ๋กœ ๋„˜๊ฒจ์ค„ ๋•Œ, ServerFileName & Path๋ฅผ ๋‚˜๋ˆ ์„œ ๋„˜๊ฒจ์ฃผ๋Š” ๋ถ€๋ถ„
      • ๋‘๊ฐœ๋ฅผ ํ•ฉ์ณ์„œ ๋„˜๊ฒจ์ค˜๋„ ๋˜์ง€ ์•Š๋Š”๊ฐ€..?
    • ์ถ”๊ฐ€์ ์œผ๋กœ Aws - S3๋กœ ๋Œ€์ฒด๋ ์ˆ˜๋„ ์žˆ๋„๋ก Interface๋„ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ข‹์„ ๋“ฏ
      • ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ๊ฐˆ์•„๋ผ์šธ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์„๋“ฏ?
      • But! Inteface๋ฅผ ๋„ˆ๋ฌด ๋‚จ์šฉํ•˜๋Š”๊ฑด ์ข‹์ง€ ์•Š์Œ!

๐Ÿ” ์‹œํ๋ฆฌํ‹ฐ ๋ถ€๋ถ„

  • ๋ฉ˜ํ† ๋‹˜ : ํŠน์ • ๊ฒฝ๋กœ๋Š” ํ•„ํ„ฐ๋ฅผ ์Šคํ‚ต์„ ํ•˜๊ฑฐ๋‚˜ ์ธ์ฆ์„ ํ—ˆ์šฉํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ ์ด๋Ÿฐ ๋ถ€๋ถ„๋„ ์™ธ๋ถ€ ์„ค์ •์œผ๋กœ ๋นผ๋‚ด์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.
    • notion image
      notion image
  • Security - filterChain ์„ค์ • ๋ถ€๋ถ„์˜ ๋“ค์—ฌ์“ฐ๊ธฐ ์ปจ๋ฒค์…˜
    • notion image
      ์ด ๋ถ€๋ถ„๋„ ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜๊ณผ ๊ฐ™์€ ๊ณณ์— ๊ทœ์น™์„ ๋ฌธ์„œํ™” ํ•˜๋Š”๊ฑด ์–ด๋–จ์ง€..?
      ์›๋ž˜๋Š” ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์ตœ๋Œ€ ๋ช‡๊ฐœ๋กœ ์ œํ•œ์„ ํ–ˆ์ง€๋งŒ, ์ด ๋ถ€๋ถ„์€ ์–ด์ฉ” ์ˆ˜ ์—†์œผ๋‹ˆ ์ด๋ ‡๊ฒŒ ํ•˜๊ฒ ๋‹ค..? ๐Ÿค”
       
      ๋ฉ˜ํ† ๋‹˜ : ์ด๋Ÿฐ ์ปจ๋ฒค์…˜๋„ ๋งž์ถฐ์ฃผ์„ธ์š”. ์›๋ž˜๋ผ๋ฉด ๋ฉ”์†Œ๋“œ ์ฒด์ด๋‹์€ ํ•œ์ค„์— ํ•œ๊ฐœ๋กœ ์ œํ•œํ•˜์ง€๋งŒ, ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” โ€œXX์— ๋Œ€ํ•œ ์„ค์ • ๋น„ํ™œ์„ฑํ™”โ€ ๋ผ๋Š” ์˜๋ฏธ์ด๋ฏ€๋กœ ์˜ˆ์™ธ ์ ์œผ๋กœ ํ•œ์ค„์— ๋‘ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋˜๊ฐ€ ์˜ˆ์™ธ๋ผ๋„ ์ปจ๋ฒค์…˜์„ ์ •ํ•˜์„ธ์š”.
      notion image
 

๐Ÿชฌ ํ”„๋กœ์ ํŠธ ์„ค์ •

  • Keyword
    • Git ์„ค์ •
    • ์•„๋‹ˆ๋ฉด private ํ•˜๊ฒŒ ๊ฐ€์ ธ๊ฐ€๋ผ..?
    • ์„ค์ •์ด ์™ธ๋ถ€๋กœ ๋…ธ์ถœ๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.

๐Ÿ‘ ๋ฉ˜ํ† ๋‹˜ ๋ง์”€

  • ๋ฌธ์„œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ ๊ณ„์†ํ•ด์„œ Update ํ•ด ๋‚˜์•„๊ฐ€๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜๋‹ค! (์˜ˆ์‹œ๋กœ ์Šคํ”„๋ฆฐํŠธ ๊ทœ์น™์ด๋‚˜ Git ์ปจ๋ฒค์…˜ ๊ฐ™์€ ๊ฒฝ์šฐ๋„ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„๋ฉด์„œ ์ˆ˜์ •ํ•˜๋Š”?)
  • Stream, Generic, Interface ์ต์ˆ™ํ•ด์ง€๊ธฐ๋„ ๊พธ์ค€ํžˆ ํ•˜๋Š”๊ฒƒ์„ ์ถ”์ฒœ (ํ•˜๋ฃจ 10๋ถ„์”ฉ๋งŒ ํˆฌ์žํ•  ๊ฒƒ)
  • ํšŒ๊ณ ํ•˜๊ณ  ๋ฐ”๋กœ ๋‹ค์Œ ์Šคํ”„๋ฆฐํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ํšŒ๊ณ ๋ฅผ ํ•˜๊ณ  ์Šคํ”„๋ฆฐํŠธ๋Š” ๊ทธ ๋‚ ๊นŒ์ง€๋Š” ๋‚จ๊ฒจ ๋„ฃ๊ณ , ๊ทธ ๋‹ค์Œ๋‚  ์Šคํ”„๋ฆฐํŠธ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœ
  • ๋กœ๊ทธ์ธ ์•ˆํ•ด๋„ ํŽ˜์ด์ง€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„๋„ ์žˆ์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค. ๐Ÿ˜Ž