Home > Backend Development > ๐Ÿ“š[Backend Development] ๐ŸŽข๋กค๋Ÿฌ์ฝ”์Šคํ„ฐ ํƒ€์ด์ฟค ์†์— ์‚ด์•„์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ(Framework)์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Library)

๐Ÿ“š[Backend Development] ๐ŸŽข๋กค๋Ÿฌ์ฝ”์Šคํ„ฐ ํƒ€์ด์ฟค ์†์— ์‚ด์•„์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ(Framework)์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Library)
Backend Ddevelopment Framework Library Server CS

โœ… Intro.

์ œ๊ฐ€ ์–ด๋ฆด ์  ๊ฐ€์žฅ ๊ธฐ์–ต์— ๋‚จ๋Š” ๊ฒŒ์ž„์„ ๊ณ ๋ฅด๋ผ๋ฉด ์ €๋Š” โ€œ๋กค๋Ÿฌ์ฝ”์Šคํ„ฐ ํƒ€์ด์ฟคโ€ ์„ ๊ณ ๋ฅผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์–ผ๋งˆ๋‚˜ ์ด ๊ฒŒ์ž„์— ์• ์ •์ด ์žˆ์—ˆ๋ƒ ํ•˜๋ฉด, ์ด๋Ÿฐ ์ผํ™”๋„ ์žˆ์—ˆ๋‹ต๋‹ˆ๋‹ค.

์ œ๊ฐ€ ๋„ˆ๋ฌด ์ด ๊ฒŒ์ž„์— ๋น ์ ธ์„œ ๋ฐค์ƒˆ ๊ฒŒ์ž„์„ ํ•˜๋‹ค ๋ณด๋‹ˆ ๊ฒŒ์ž„ ์‹œ๊ฐ„์„ ์ •ํ•ด์ฃผ์…”์„œ ๋ฐค์—๋Š” ๋ชปํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ €๋Š” ๋ถ€๋ชจ๋‹˜ ๋ชฐ๋ž˜ โ€œ๋กค๋Ÿฌ์ฝ”์Šคํ„ฐ ํƒ€์ด์ฟคโ€์„ ํ”Œ๋ ˆ์ดํ•˜๊ธฐ ์œ„ํ•ด ๋ถ€๋ชจ๋‹˜๊ป˜์„œ ์ฃผ๋ฌด์‹œ๋Š” ์‹œ๊ฐ„์— ์ด๋ถˆ๋กœ ๋ชจ๋‹ˆํ„ฐ๋ฅผ ๋ฎ๊ณ  ๊ทธ ์ด๋ถˆ ์†์—์„œ ๋•€์„ ๋ป˜๋ป˜ ํ˜๋ฆฌ๋ฉฐ ๊ฒŒ์ž„์„ ํ–ˆ์—ˆ๋‹ต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์ผํ™”๋ฅผ ๋– ์˜ฌ๋ฆฌ๋‹ˆ ์›ƒ์Œ์ด ๋‚˜๋„ค์š” ๐Ÿ˜Š

ํ”„๋ ˆ์ž„์›Œํฌ(Framework)์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Library)์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…์„ ํ•˜๋Š”๋ฐ ์™œ Intro์— โ€œ๋กค๋Ÿฌ์ฝ”์Šคํ„ฐ ํƒ€์ด์ฟคโ€ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์ด ๊ณ„์‹ค ๊ฑฐ์˜ˆ์š”!!

์‚ฌ์‹ค โ€œ๋กค๋Ÿฌ์ฝ”์Šคํ„ฐ ํƒ€์ด์ฟคโ€ ์€ โ€œํ”„๋ ˆ์ž„์›Œํฌ(Framework)์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Library)โ€ ๋กœ ํ”Œ๋ ˆ์ด ํ•˜๋Š” ๊ฒŒ์ž„์ด๋ผ๊ณ  ๋งํ•ด๋„ ๋ฌด๋ฐฉํ•˜๊ฑฐ๋“ ์š” !!

์ด์ œ, ๋ณธ๊ฒฉ์ ์œผ๋กœ โ€œ๋กค๋Ÿฌ์ฝ”์Šคํ„ฐ ํƒ€์ด์ฟคโ€๊ณผ โ€œํ”„๋ ˆ์ž„์›Œํฌ(Framework) ๊ทธ๋ฆฌ๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Library)โ€๊ฐ€ ์–ด๋–ค ๊ด€๊ณ„์ธ์ง€ ํ•œ ๋ฒˆ ์•Œ์•„๋ด…์‹œ๋‹ค ๐Ÿ™Œ

๐ŸŽก 1. ๋‚˜๋งŒ์˜ ๋†€์ด๋™์‚ฐ์„ ๋งŒ๋“ค์–ด๋ด…์‹œ๋‹ค!

์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ๋Š” ๋ฉ‹์ง„ ํ…Œ๋งˆํŒŒํฌ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ผ์ • ๊ธฐ๊ฐ„ ์•ˆ์— ์ •ํ•ด์ง„ ์ˆ˜์ต์„ ๋‚ด๋Š” ๊ฒƒ์ด์—์š”!!
๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ…Œ๋งˆํŒŒํฌ์— ์žฌ๋ฏธ์žˆ๋Š” ๋ณผ๊ฑฐ๋ฆฌ, ๋จน๊ฑฐ๋ฆฌ ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๐ŸŽขโ€์žฌ๋ฏธ์žˆ๋Š” ๋†€์ด๊ธฐ๊ตฌโ€๐ŸŽก ๊ฐ€ ์žˆ์–ด์•ผ๊ฒ ์ฃ ?!

๐Ÿ› ๏ธ 2. ๋†€์ด๊ธฐ๊ตฌ๋ฅผ ๋งŒ๋“œ๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• โœŒ๏ธ

๋กค๋Ÿฌ์ฝ”์Šคํ„ฐ ํƒ€์ด์ฟค์—์„œ โ€œ๋†€์ด๊ธฐ๊ตฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€โ€๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

1๏ธโƒฃ ๋‚ด๊ฐ€ ์ง์ ‘ ์†์ˆ˜ ๋งŒ๋“ค๊ธฐ !

  • ์ง์ ‘ ์†์ˆ˜ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋ ˆ์ผ ์กฐ๊ฐ์„ ํ•˜๋‚˜์”ฉ ๋ถ™์—ฌ์„œ ๋กค๋Ÿฌ์ฝ”์Šคํ„ฐ๋ฅผ ์›ํ•˜๋Š” ๋ชจ์–‘์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด์ฃ . ๐ŸŽข

2๏ธโƒฃ ์ด๋ฏธ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋Š” ๋†€์ด๊ธฐ๊ตฌ ์„ค์น˜ํ•˜๊ธฐ !

  • ์ด๋ฏธ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋Š” ๋†€์ด๊ธฐ๊ตฌ๋Š” ์›ํ•˜๋Š” ์œ„์น˜์— ์„ค์น˜๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๐ŸŽก

๐Ÿงฑ 2. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ == ๋ ˆ์ผ ์กฐ๊ฐ.

<img src=โ€https://github.com/devKobe24/images2/blob/main/rc_tycoon_4.png?raw=trueโ€ whidth = 350, height = 350>

  • ๋‹ค์–‘ํ•œ ๋ชจ์–‘์˜ ๋ ˆ์ผ ์กฐ๊ฐ์„ ๋‚ด๊ฐ€ ์ง์ ‘ ์„ ํƒํ•ด์„œ ์กฐ๋ฆฝํ•ด์š”.
  • ์ฝ”๋„ˆ, ๋ฃจํ”„, ๊ฒฝ์‚ฌ, ์ƒ์Šน ๋“ฑ ๋‚ด๊ฐ€ ์ฃผ๋„ํ•ด์„œ ์—ฐ๊ฒฐํ•˜์ฃ .
  • ๋‚ด๊ฐ€ ์„ค๊ณ„ํ•œ ๋Œ€๋กœ, ๋‚ด๊ฐ€ ์˜๋„ํ•œ ๋Œ€๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ› ๏ธ ์ฆ‰, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ž€!

๋‚ด๊ฐ€ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋งŒ ๊ณจ๋ผ์„œ ์กฐ๋ฆฝํ•˜๋Š” ๋„๊ตฌ ๋ชจ์Œ ์ž…๋‹ˆ๋‹ค :)

๐Ÿง‘โ€๐Ÿ’ป ๊ฐœ๋ฐœ์ž ๋น„์œ :

  • Lombok, Jackson, Apache, Commons, Retrofit, QueryDSL ๋“ฑ์€ ๋ชจ๋‘ ๋ ˆ์ผ ์กฐ๊ฐ ๊ฐ™์€ ์กด์žฌ !
  • ๋‚ด๊ฐ€ ์ง์ ‘ ํ˜ธ์ถœํ•˜๊ณ  ์‚ฌ์šฉํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ—๏ธ 3. ํ”„๋ ˆ์ž„์›Œํฌ == ๋†€์ด๊ธฐ๊ตฌ ์ž๋™ ์šด์˜ ์‹œ์Šคํ…œ.

<img src=โ€https://github.com/devKobe24/images2/blob/main/rc_tycoon_3.png?raw=trueโ€ whidth = 350, height = 350>

  • ๋‚ด๊ฐ€ ๋†€์ด๊ธฐ๊ตฌ๋ฅผ ์„ค์น˜ํ•˜๋ฉด
    • ํƒ‘์Šน ๋Œ€๊ธฐ์—ด ๋งŒ๋“ค๊ธฐ โžž ์ž…์žฅ โžž ์ถœ๋ฐœ โžž ์šดํ–‰ โžž ํ•˜์ฐจ
      ์ด ๋ชจ๋“  ๊ณผ์ •์€ ๊ฒŒ์ž„์ด ์ž๋™์œผ๋กœ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

๐Ÿง‘โ€๐Ÿ’ป ๊ฐœ๋ฐœ์ž ๋น„์œ :

  • Spring, Django, Rails, Angular ๋“ฑ์€ ๋ฐ”๋กœ ์ด ์‹œ์Šคํ…œ๊ณผ ๊ฐ™์•„์š”.
  • ์ „์ฒด ํ๋ฆ„์€ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๊ฐ–๊ณ  ์žˆ๊ณ , ๋‚˜๋Š” ํ•„์š”ํ•œ ๋ถ€ํ’ˆ๋งŒ ๋„ฃ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ข ์ด๊ฒƒ์ด ๋ฐ”๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋งํ•˜๋Š”

์ œ์–ด์˜ ์—ญ์ „ (Inversion of Control) ์ž…๋‹ˆ๋‹ค.
ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋‚˜์˜ ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์ „์ฒด ํ๋ฆ„์„ ํ†ต์ œํ•ด์š”!


โš”๏ธ 4. ์ •๋ฉด ๋น„๊ต: ํ”„๋ ˆ์ž„์›Œํฌ(Framework) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Library)

๋น„๊ต ํ•ญ๋ชฉ ๐Ÿงฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(๋ ˆ์ผ ์กฐ๊ฐ) ๐Ÿ—๏ธ ํ”„๋ ˆ์ž„์›Œํฌ (๋†€์ด๊ธฐ๊ตฌ ์‹œ์Šคํ…œ)
์ฃผ๋„๊ถŒ ๊ฐœ๋ฐœ์ž (๋‚ด๊ฐ€ ํ˜ธ์ถœ) ํ”„๋ ˆ์ž„์›Œํฌ (ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋‚ด ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœ)
์œ ์—ฐ์„ฑ ๋งค์šฐ ๋†’์Œ ๋‚ฎ์Œ (ํ‹€ ์•ˆ์—์„œ ๋™์ž‘)
์‚ฌ์šฉ ๋ฐฉ์‹ ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ๊ณจ๋ผ ์‚ฌ์šฉ ํ‹€์„ ๋”ฐ๋ฅด๊ณ  ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์ฑ„์›€
์ง„์ž… ๋‚œ์ด๋„ ๋‚ฎ์Œ (์ง๊ด€์ ) ์ค‘๊ฐ„ ์ด์ƒ (๊ตฌ์กฐ ์ดํ•ด ํ•„์š”)
์˜ˆ์‹œ Lombok, Jackson, Retrofit Spring, Django, Angular

๐ŸŒˆ 5. ๊ฒฐ๋ก : ๋‹น์‹ ์€ ์ง€๊ธˆ ์–ด๋–ค ๋†€์ด๊ณต์›์„ ์ง“๊ณ  ์žˆ๋‚˜์š”?

๐ŸŽข ์ง์ ‘ ๋ ˆ์ผ์„ ์กฐ๋ฆฝํ•˜๋Š” ์ž์œ ๋กœ์šด ์„ค๊ณ„์ž?
โžž ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ

๐ŸŽ  ์ž๋™ ์šด์˜ ์‹œ์Šคํ…œ์„ ํ™œ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ ์„ค๊ณ„์ž?
โžž ํ”„๋ ˆ์ž„์›Œํฌ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ


๐ŸŽ ๋ถ€๋ก: ํ•„์ž์˜ ํ•œ๋งˆ๋””.

โ€œ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‚ด๊ฐ€ ๊บผ๋‚ด ์“ฐ๋Š” ๋„๊ตฌ๊ณ ,
ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋‚˜๋ฅผ ๊ปด์•ˆ์€ ํฐ ๊ตฌ์กฐ๋‹ค.โ€

๐ŸŽข ๋กค๋Ÿฌ์ฝ”์Šคํ„ฐ ํƒ€์ด์ฟค ๋•๋ถ„์— ๊ฐœ๋…์ด ์ž˜ ๋“ค์–ด์™”๋‚˜์š”?
๊ทธ๋žฌ๋‹ค๋ฉด ๋„ˆ๋ฌด ๊ธฐ๋ถ„์ด ์ข‹์„๊ฒƒ ๊ฐ™์•„์š” ๐Ÿ˜†

๊ทธ๋ ‡๋‹ค๋ฉด ์˜ค๋Š˜์€ ์—ฌ๊ธฐ๊นŒ์ง€ !! ๋‹ค์Œ์— ๋˜ ๋งŒ๋‚˜์š” ์•ˆ๋…• ๐Ÿ™Œ


๐Ÿ“Ž ์ด๋ฏธ์ง€ ์ถœ์ฒ˜

  • Pinterest
  • imgur
  • ์ง์ ‘ ์ธ๊ฒŒ์ž„์—์„œ ์Šคํฌ๋ฆฐ์ƒท