๊ด€๋ฆฌ ๋ฉ”๋‰ด

JiYoung Dev ๐Ÿ–ฅ

[Android] ์ž๋ฃŒ๊ตฌ์กฐ (2023.07.14) ๋ณธ๋ฌธ

full stack/์•ˆ๋“œ๋กœ์ด๋“œ

[Android] ์ž๋ฃŒ๊ตฌ์กฐ (2023.07.14)

Shinjio 2023. 7. 14. 17:19

์ž๋ฃŒ๊ตฌ์กฐ

์ž๋ฃŒ๊ตฌ์กฐ : ๊ฐ’(Data)๋‚˜ ์ž‘์—…(Process)๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹

 

 

 

List(๋ฐฐ์—ด)

  • ์ˆœ์ฐจ์ (์ธ๋ฑ์Šค)
  • ์„ ํ˜• ๊ตฌ์กฐ

 

Stack

  • ํ•œ์ชฝ์ด ๋ง‰ํ˜€์žˆ๋Š” ๊ตฌ์กฐ
  • ์„ ์ž…ํ›„์ถœ
  • ์„ ํ˜• ๊ตฌ์กฐ
  • ์ฃผ๋กœ ์ €์žฅํ•˜๋Š” ์šฉ๋„

 

Queue

  • ์–‘์ชฝ์ด ๋šซ๋ ค์žˆ๋Š” ๊ตฌ์กฐ
  • ๋“ค์–ด๊ฐ€๋Š” ๊ณณ์œผ๋กœ๋Š” ๋‚˜์˜ฌ ์ˆ˜ ์—†๋‹ค 
  • ์„ ์ž…์„ ์ถœ
  • ์ฃผ๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก์‹œ ์‚ฌ์šฉ (๋‹จ๋ฐฉํ–ฅ ์ „์†ก) → ์ „์†ก์šฉ Queue๋ฅผ stream์ด๋ผ๊ณ  ๋ถ€๋ฆ„ (Input stream, Output stream ๋”ฐ๋กœ ์กด์žฌ → I/O)
  • ์„ ํ˜• ๊ตฌ์กฐ

 

์„ ํ˜•๊ตฌ์กฐ ํŠน์ง•
๋ฐ์ดํ„ฐ ์ถ”๊ฐ€/์‚ญ์ œ์— ๋ถˆ๋ฆฌ
๋ฐ์ดํ„ฐ ์‚ฝ์ž…์‹œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณต์‚ฌ, ์ž„์‹œ๋กœ ์ €์žฅํ•  ๋ฆฌ์ŠคํŠธ๊ฐ€ ํ•„์š” → ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋ชจ๊ฐ€ ํฌ๊ณ  ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค
์ด๋Ÿฌํ•œ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ์ž๋ฃŒ ๊ตฌ์กฐ → Linked List

๋งํฌ๋ฅผ ๋Š๊ณ  ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ํ›„ ๋‹ค์‹œ ์—ฐ๊ฒฐ → ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€/์‚ญ์ œ์— ์šฉ์ด

 

stream


Buffer์— ์ผ์ • ๋ฐ์ดํ„ฐ๊ฐ€ ์Œ“์˜€์„๋•Œ (buffering) pop
๋ฒ„ํผ๋ง์ด ๋Š๋ฆฌ๋‹ค → ํ†ต์‹  ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค → push๊ฐ€ ๋Š๋ฆฌ๋‹ค 

** ์‚ฌ์ง„ ์ „์†ก ์›๋ฆฌ


์‚ฌ์ง„์„ Bit ๋‹จ์œ„๋กœ ์ชผ๊ฐฌ (8bit = 1byte)
→ btm(๋น„ํŠธ๋งต ํ™•์žฅ์ž) : ํŒŒ์ผ ์ „์†ก์šฉ ํ™•์žฅ์ž
→ ์‚ฌ์ง„์ด byte ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ (byte [])๋˜์–ด ๋ฆฌ์ŠคํŠธ ๊ตฌ์กฐ๋กœ ๋ฐ”๋€Œ์–ด Queue๋ฅผ ํ†ตํ•ด ์ „์†ก ๊ฐ€๋Šฅ

์„œ๋ฒ„์— ์‚ฌ์ง„์„ ์ €์žฅ ํ›„ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์‹ถ์„ ๋•Œ ํ˜น์€ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์„œ๋ฒ„๋กœ ์‚ฌ์ง„ ์ „์†กํ•˜๊ณ  ์‹ถ์„ ๋•Œ 
→ ๋น„ํŠธ๋งต์œผ๋กœ ์‚ฌ์ง„ ๋ณ€ํ™˜ํ•ด์„œ ์ „์†กํ•ด์•ผ ํ•จ

 

Map

  • ์ˆœ์„œ ์—†์Œ → ์ •๋ ฌํ•  ์ˆ˜ ์—†์Œ 
  • key-value ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ → value์— ์ ‘๊ทผํ•˜๊ณ ์ž ํ•  ๋•Œ key๋กœ ๊บผ๋ƒ„
  • JSON, parameter(QueryString)
  • ๊ฒ€์ƒ‰์— ์šฉ์ด 
  • ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€, ์‚ญ์ œ์— ์šฉ์ด
  • ํ‚ค ์ค‘๋ณต ๋ถˆ๊ฐ€, ๋™์ผํ•œ key๊ฐ’์„ put ํ•˜๋ฉด ๊ฐฑ์‹ (์ˆ˜์ •)์ด ์ผ์–ด๋‚จ → ์ค‘๋ณต์ด ์—†๋Š” ํ˜•ํƒœ๋กœ set์ด๋ผ๊ณ ๋„ ํ•จ
  • ๋ฐ์ดํ„ฐ ์ €์žฅ์šฉ

 

 

Tree

  • ๋ฐ์ดํ„ฐ ์ €์žฅ์šฉ → ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐ์ ์œผ๋กœ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉ 
  • ex. ํด๋”๊ตฌ์กฐ
  • ํ•˜์œ„๋…ธ๋“œ๊ฐ€ ์ตœ๋Œ€ 2๊ฐœ๊นŒ์ง€๋งŒ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ → ์ด์ง„ํŠธ๋ฆฌ