[๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ปTA9 ์ธํ„ด 15์ผ์ฐจ] Spring ๊ธฐ๋ณธ๊ฐœ๋…

Goofiยท2023๋…„ 7์›” 31์ผ
0

Spring

IoC ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ†ตํ•ด bean๋“ค์„ Singleton์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ DIํ•ด์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ

  • ์Šคํ”„๋ง์€ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.
  • ์Šคํ”„๋ง์€ ์˜คํ”ˆ์†Œ์Šค์ด๋‹ค.
  • ์Šคํ”„๋ง์€ IoC ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ€์ง„๋‹ค.
  • ์Šคํ”„๋ง์€ DI๋ฅผ ์ง€์›ํ•œ๋‹ค.
  • ์Šคํ”„๋ง์€ ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์€ ํ•„ํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
  • ์Šคํ”„๋ง์€ ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์€ ์–ด๋…ธํ…Œ์ด์…˜์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
  • ์Šคํ”„๋ง์€ MessageConverter๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ํ˜„์žฌ Json์ด๋‹ค.
  • ์Šคํ”„๋ง์€ BufferdReader ์™€ BufferedWriter๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์Šคํ”„๋ง์€ ๊ณ„์† ๋ฐœ์ „์ค‘์ด๋‹ค.

Ioc(Inversion of Control) : Singleton์œผ๋กœ bean์„ ๊ด€๋ฆฌํ•˜๋Š” Container
Singleton : ๊ฐ์ฒด์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ํ•œ๊ฐœ๋งŒ ์ƒ์„ฑ๋˜๊ฒŒ ํ•œ๋‹ค.
bean : ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์ž๋ฐ” ๊ฐ์ฒด
DI(Dependency Injection) : ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์‹œ IoC์ปจํ…Œ์ด๋„ˆ์—์„œ singleton์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  bean๋“ค์„ ๋ณ€์ˆ˜์— ์˜์กด์„ฑ ์ฃผ์ž…

Class โ†’ ์„ค๊ณ„๋„!
Object โ†’ ์‹ค์ฒดํ™”๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒƒ
Instance โ†’ ์‹ค์ฒดํ™” ๋œ ๊ฒƒ

์ž๋ฐ”)

์œ„ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๊ฐ๊ฐ์˜ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ๋ฉ”์†Œ๋“œ๊ฐ€ ๊ด€๋ฆฌํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์Šคํ”„๋ง์ด ๋“ฑ์žฅํ–ˆ๋‹ค.


์Šคํ”„๋ง์€ ์ž๋™์œผ๋กœ heap๋ฉ”๋ชจ๋ฆฌ์— ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.

ํ•„ํ„ฐ(=ex.๋ฌธ์ง€๊ธฐ)

์Šคํ”„๋ง ์ž์ฒด! ํ•„ํ„ฐ! ์‚ฌ์šฉ

ํ†ฐ์ผ“์—๋„ ํ•„ํ„ฐ๊ฐ€ ์žˆ๋‹ค.
์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์—๋„ ํ•„ํ„ฐ๊ฐ€ ์žˆ๋‹ค. ๋‹ค๋ฅธ๋ง๋กœ ์ธํ„ฐ์…‰ํ„ฐ(AOP)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

@-์–ด๋…ธํ…Œ์ด์…˜

์ปดํŒŒ์ผ์ฒดํ‚น

์–ด๋…ธํ…Œ์ด์…˜ (์ฃผ์„ + ํžŒํŠธ) <- ์ปดํŒŒ์ผ๋Ÿฌ ๋ฌด์‹œ X
//๊ธ€ ~ (์ฃผ์„) <- ์ปดํŒŒ์ผ๋Ÿฌ ๋ฌด์‹œ!


์ปดํŒŒ์ผ ํ•  ๋•Œ ์–ด๋…ธํ…Œ์ด์…˜์ด ๋ถ™์–ด์žˆ์œผ๋‹ˆ๊นŒ Animal์ด๋ผ๋Š” ๋ถ€๋ชจ๊ฐ€ run์ด๋ผ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ฒ ์ง€ ํ•˜๋ฉด์„œ ์˜ˆ์ƒํ•˜๊ณ  ํ™•์ธํ•œ๋‹ค.


Fly๋ฉ”์†Œ๋“œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ปดํŒŒ์ผ์ฒดํ‚น ์‹œ์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

์Šคํ”„๋ง์—์„œ๋Š”!
์–ด๋…ธํ…Œ์ด์…˜ ๊ฐ์ฒด ์ƒ์„ฑ

MessageConverter

์ž๋ฐ”์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ˆ„๊ตฌ๊ฐ€์—๊ฒŒ ์ „์†กํ• ๋•Œ ์ค‘๊ฐ„ ๋ฐ์ดํ„ฐ JSON์œผ๋กœ ์ปจ๋ฒ„ํŒ…ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

์š”์ฒญ๋ฟ๋งŒ์•„๋‹ˆ๋ผ ์‘๋‹ต๋ฐ›์„๋•Œ๋„ ๋ณ€ํ™˜

์Šคํ”„๋ง์€ BufferdReader ์™€ BufferedWriter๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • bit ๋‹จ์œ„๋กœ ํ†ต์‹ ์ด ์•„๋‹ˆ๋ผ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์˜์–ด ํ•œ ๋ฌธ์ž๋กœ ํ‘œํ•  ์ˆ˜ ์žˆ์„๊นŒ?
  • ์˜์–ด ํ•œ๋ฌธ์ž 8bit = 1byte = 2^8 = 256
  • 256๊ฐ€์ง€ ๋ฌธ์ž์ „์†ก ๊ฐ€๋Šฅ
    โ—๏ธํ•œ๊ธ€์€ ์ตœ์†Œ 16bit๊ฐ€ ํ•„์š”ํ•˜๋‹ค

์ฝ์„ ๋•Œ๋Š” 8bit์”ฉ ๋Š์–ด ์ฝ์œผ๋ฉด ํ•œ ๋ฌธ์ž์”ฉ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

1๋ฐ”์ดํŠธ : ํ†ต์‹  ๋‹จ์œ„

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋ฐ”์ดํŠธ ํ†ต์‹ ์„ ๋งŽ์ด ํ•œ๋‹ค.

์ฆ‰, BufferdWriter๋Š” ๋‹ค์‹œ ์–˜๊ธฐํ•˜์ž๋ฉด Byte Stream์„ ํ†ตํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ๋ฐ์ดํ„ฐ ์ „์†ก๋‹จ์œ„๊ฐ€ ๋ฌธ์ž์—ด๋กœ ๊ฐ€๋ณ€ ๊ธธ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ฒŒ ํ•ด์ฃผ๋Š” ํด๋ž˜์Šค์ด๋‹ค.

ํ•˜์ง€๋งŒ, ์ง์ ‘ ๊ตฌํ˜„ํ•  ํ•„์š”์—†์ด ์–ด๋…ธํ…Œ์ด์…˜์„ ์ œ๊ณตํ•œ๋‹ค.
@ResponseBody -> Bufferdwriter ๋™์ž‘
@RequestBody -> BufferdReader ehdwkr

profile
์˜ค๋Š˜๋ณด๋‹จ ๋‚ด์ผ์ด ๊ฐ•ํ•œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค!!๐Ÿง‘๐Ÿปโ€๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด