๐Ÿ“’ Today I Learn/๐Ÿ Python

Spark๋ฅผ ์ด์šฉํ•œ ๋น…๋ฐ์ดํ„ฐ ๋ถ„์„ (1)

ny:D 2024. 7. 17. 10:52

240715 Today I Learn

์ŠคํŒŒํฌ๋ž€?

๐Ÿ’ฅ Spark?
SQL, ์ŠคํŠธ๋ฆฌ๋ฐ, ๋จธ์‹ ๋Ÿฌ๋‹ ๋ฐ ๊ทธ๋ž˜ํ”„ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ธฐ๋ณธ ์ œ๊ณต ๋ชจ๋“ˆ์ด ์žˆ๋Š” ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์šฉ ํ†ตํ•ฉ ๋ถ„์„ ์—”์ง„. ํด๋ผ์šฐ๋“œ์˜ Apache Hadoop, Apache Mesos, Kubernetes์—์„œ ์ž์ฒด์ ์œผ๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์†Œ์Šค์— ๋Œ€ํ•ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Œ.
→ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์— ํŠนํ™”๋œ ํ”„๋ ˆ์ž„ ์›Œํฌ

ํŒŒ์ด์ฌ๊ณผ ๋ฐ์ดํ„ฐ

๋ฉ”๋ชจ๋ฆฌ 

  • RAM  = ์ž‘์—… ๊ณต๊ฐ„
    • ๊ธฐ์–ต๋œ ์ •๋ณด๋ฅผ ์ฝ์–ด๋‚ด๊ธฐ๋„ ํ•˜๊ณ  ๋‹ค๋ฅธ ์ •๋ณด๋ฅผ ๊ธฐ์–ต์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋กœ์„œ, ์ปดํ“จํ„ฐ์˜ ์ฃผ๊ธฐ์–ต์žฅ์น˜, ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์ผ์‹œ์  ๋กœ๋”ฉ(loading), ๋ฐ์ดํ„ฐ์˜ ์ผ์‹œ์  ์ €์žฅ ๋“ฑ์— ์‚ฌ์šฉ๋จ.
    • ์ปดํ“จํ„ฐ๋ฅผ ๋„๋ฉด RAM์— ์˜ฌ๋ผ๊ฐ„ ๋ฐ์ดํ„ฐ๋Š” ์‚ญ์ œ 
  • SSD = ์ €์žฅ ๊ณต๊ฐ„
    • ์žฅ๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€(์ €์žฅ)ํ•˜๋Š” ๊ณต๊ฐ„
    • ์ปดํ“จํ„ฐ๋ฅผ ๊บผ๋„, Disk์˜ ๋ฐ์ดํ„ฐ๋Š” ์‚ฌ๋ผ์ง€์ง€ ์•Š์Œ.

CPU

  • ํ”„๋กœ๊ทธ๋žจ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ผ์„ ๋‹ด๋‹นํ•˜๋Š” ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜
  • ๋ช…๋ น์–ด๋ฅผ ํ•ด๋…ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์žฅ์น˜๋กœ, ์ œ์–ด์žฅ์น˜, ์—ฐ์‚ฐ์žฅ์น˜, ๋ ˆ์ง€์Šคํ„ฐ๋“ค๋กœ ๊ตฌ์„ฑ
๐Ÿ‘ฉ‍๐Ÿ’ป ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ
ํ•˜๋‚˜์˜ ์ž‘์—…์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์ฝ”์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ. ์ŠคํŒŒํฌ ๋˜ํ•œ ์—ฌ๋Ÿฌ ๋Œ€์˜ PC๋ฅผ, ๊ทธ๋ฆฌ๊ณ  ๊ฐ PC์˜ ์—ฌ๋Ÿฌ ์ฝ”์–ด๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•œ๋‹ค.

๋ฐ์ดํ„ฐ ํƒ€์ž…

๐Ÿ˜ฐ ์˜ค๋ฒ„ํ”Œ๋กœ
ํฌ๊ธฐ์— ๋งž์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด ์˜๋„ํ•˜์ง€ ์•Š์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š”๊ฒƒ.
ํŒŒ์ด์ฌ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™์ Dynamic์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ๋ฐ์ดํ„ฐํ˜•์ด ๋ฐ”๋€๋‹ค. ๋”ฐ๋ผ์„œ ํฐ ์ˆซ์ž๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์€ ๊ต‰์žฅํžˆ ์ฃผ์˜ํ•ด์•ผํ•จ.
  • ์ •์ˆ˜ (int)

  • int8:-128 ~ 127
  • int16: -32768 ~ 32727
  • Int32: -2,147,483,648 ~ 2,147,483,647
  • Int64: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
  • ์†Œ์ˆ˜ (float)
    • ์ปดํ“จํ„ฐ๋Š” ์ด์ง„๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ •์ˆ˜๋Š” ํ‘œํ˜„ํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ์ˆ˜(0.2,  0.8, ํŒŒ์ด์™€ ๊ฐ™์€ ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ์ˆซ์ž)๋Š” ์ •ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†์Œ. → ๋ถ€๋™์†Œ์ˆ˜์  ์‚ฌ์šฉ
    • ๋ถ€๋™์†Œ์ˆ˜์  ๋˜ํ•œ ์ •์ˆ˜์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ float16, float64 ๋“ฑ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ๋” ํฐ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜๋ก ๊ฐ’์ด ์ •ํ™•ํ•ด์ง€์ง€๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ๋” ๋ฌด๊ฑฐ์›Œ์ง„๋‹ค.
๐Ÿ’ก ๋ถ€๋™์†Œ์ˆ˜์ 

ํ•˜๋‚˜์˜ ์ˆซ์ž๋ฅผ ํ˜•ํƒœ์™€ ์ž๋ฆฟ์ˆ˜๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ. ํ•„์—ฐ์ ์œผ๋กœ ์˜ค์ฐจ๋ฅผ ๋™๋ฐ˜ํ•จ.
  • ๋ฌธ์ž์—ด (String, Category) 

  • ๋Œ€๋ถ€๋ถ„์˜ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ํ™œ์šฉํ•ด ์ธ์ฝ”๋”ฉ → ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— Category ์‚ฌ์šฉ
  • Category(๋ฒ”์ฃผ)ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด  ๊ฐ ๋ฐ์ดํ„ฐ์˜ ๊ณ ์œ ๊ฐ’์„ ๋‚ด๋ถ€์—์„œ ์ˆซ์ž๋กœ ์น˜ํ™˜ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ์ด ๊ฐ€๋Šฅ.
  • ๋‚ ์งœ (Datetime)
    • ์ผ๋ฐ˜์ ์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด๋“ค์€ Unix Timestamp๋ฅผ ๊ธฐ์ค€์œผ๋กœํ•จ.(UTC time zone์„ ์‚ฌ์šฉ)
    • ๋…„๋„๋Š” %y, %Y(4์ž๋ฆฌ)๋กœ, ์›”์„ %m, ์ผ์€ %d๋กœ ํ‘œํ˜„
    • ์‹œ๊ฐ„๋Œ€time zone์€ ์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ๊ต‰์žฅํžˆ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์œผ๋กœ ํŠนํžˆ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ฒ”๊ตญ๊ฐ€์ ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์‹œ๊ฐ„์˜ ํ‘œ์ค€ํ™”๋Š” ํ•„์ˆ˜. → ๋Œ€๋ถ€๋ถ„์˜ Database ๋˜ํ•œ timezone ์ •๋ณด๋ฅผ ํ•„์ˆ˜๋กœ ํ•จ.

ํŒŒ์ผ ์œ ํ˜•

์‹œ๊ณต๊ฐ„์  ๋น„์šฉ

  • ์‹œ๊ฐ„์  ๋น„์šฉ: ์ฝ๊ณ  ์“ฐ๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค
    • ํŒŒ์ผ ์œ ํ˜•์— ๋”ฐ๋ผ ์ˆ˜์‹ญ๋ฐฐ๊นŒ์ง€ ์ฐจ์ด๊ฐ€ ๋‚ฉ๋‹ˆ๋‹ค
  • ๊ณต๊ฐ„์  ๋น„์šฉ: ์ €์žฅ๋œ ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค
    • ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํŒŒ์ผ ์œ ํ˜•์— ๋”ฐ๋ผ ์ˆ˜์‹ญ๋ฐฐ๊นŒ์ง€ ์ฐจ์ด๊ฐ€ ๋‚ฉ๋‹ˆ๋‹ค
    • ์ข€ ๋” ๋‚˜์•„๊ฐ€, ์ž…/์ถœ๋ ฅ ์‹œ์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋„ ๊ต‰์žฅํžˆ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค

ํŒŒ์ผ ์œ ํ˜•

  • csv, txt
    • Comma(,) ๋Œ€์‹  Tab(\t)๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ๊ตฌ๋ถ„์žseperator๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Œ.
    • ๋ฐ์ดํ„ฐ ์•ˆ์— ๊ตฌ๋ถ„์ž๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๊ฒฝ์šฐ, ๋ฐฉ์–ดํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ๊นจ์งˆ ์œ„ํ—˜์ด ์žˆ์Œ.
    • ๊ฐ€์žฅ ๋А๋ฆฌ๊ณ , ๋ฌด๊ฑฐ์›Œ์„œ ์†Œ๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ฉด ๋ถ€์ ์ ˆ
    • ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์ €์žฅ
  • json : ๋ณ„๋„์˜ ์••์ถ• ๊ณผ์ •์ด ์—†์Œ
    • ์ €์žฅ๋œ ์ž๋ฃŒ๋ฅผ python์˜ dictionary์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ๊ฐ•์ œํ•˜๋ฉฐ, ์ด๋ฅผ JSON Object๋ผ ํ•จ. → {”ํ‚ค”:”๊ฐ’”}
    • ํŒŒ์ด์ฌ์˜ dict๋ฅผ json์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ dumpํ•œ๋‹ค๊ณ ํ•จ.
    • ๋น„๊ต์  ๊ฐœ๋ฐœ์ž์˜ ์„ ํ˜ธ๋„๊ฐ€ ๋†’์œผ๋ฉฐ, ๋น„๊ต์  ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋„ JSON์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ.
    • ์ธ์ฝ”๋”ฉ ๋ฐฉ๋ฒ•์„ utf-8์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ 
  • Pickle : ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ๋กœ ๊ฐœ์ธ์šฉ ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ ํŽธ๋ฆฌํ•œ ๋ฐ์ดํ„ฐ ํ˜•์‹
    → ๋ฒ„์ „๊ณผ ์šด์˜์ฒด์ œ์— ๋Œ€ํ•œ ์˜์กดDependency์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ˜‘์—…ํ•  ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์œ„ํ—˜์ด ์žˆ์Œ.
    • csv, json๋ณด๋‹ค 2~30% ์ •๋„ ์šฉ๋Ÿ‰์ด ๊ฐ€๋ฒผ์›€ (csv, json)๋ณด๋‹ค 2~30% ์ •๋„ ์šฉ๋Ÿ‰์ด ๊ฐ€๋ฒผ์›€)
    • nested type์„ ์ง€์›
    • ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ์—์„œ ๊ทธ๋ฆฌ๊ณ  ๋•Œ๋กœ๋Š” ๋ถ„์‚ฐ์ฒ˜๋ฆฌ์—์„œ ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ pickle๋กœ ์ง๋ ฌํ™”Serializeํ•จ.
  • Parquet : ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ €์žฅ์—์„œ ํ‘œ์ค€
    • ๊ต‰์žฅํžˆ ๊ฐ€๋ณ๊ณ , ๋น ๋ฅด๋ฉฐ ๋‹ค์ˆ˜์˜ OLAB Database๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ parquet๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•จ.

I/O(Input & Output) : ๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ

  • ์ „์ฒ˜๋ฆฌ์—์„œ ์ž˜ ๋Œ๋‹ค๊ฐ€ ์ €์žฅ์‹œ ๋ฐ์ดํ„ฐ๊ฐ€ ํ„ฐ์งˆ ์ˆ˜ ์žˆ์Œ

  • ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์ˆ˜๊ธ‰์€ ๋ฉ”๋ชจ๋ฆฌ(Network < Disk < Memory) →  In-memory DB๋ฅผ ์‚ฌ์šฉ
  • ์ŠคํŒŒํฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ Memory์—์„œ ์ฒ˜๋ฆฌ

ํด๋ผ์šฐ๋“œ

3๋Œ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ

  • AWS : ์‹œ์žฅ์—์„œ ์ง€๋ฐฐ์ ์ธ ์œ„์น˜์— ์žˆ์Œ.
  • GCP : Bigquery์—์„œ๋งŒ ์‚ฌ์šฉ. ๊ทธ๋Ÿฌ๋‚˜, ํ˜ธํ™˜์ด ๋งค์šฐ ์ข‹์Œ.
  • Azure : ํŽธ๋ฆฌํ•˜์ง€๋งŒ ๋น„์Œˆ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๐Ÿ’ก ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 
  • ๋ฐ์ดํ„ฐ ๊ณต์œ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Œ.
  • ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ์ œ๊ณต.
  • ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ธ๋ฑ์‹ฑ ๊ธฐ๋Šฅ์„ ์ œ๊ณต.
  • ๋ฐ์ดํ„ฐ ๋ฐฑ์—…๊ณผ ๋ณต์›: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑ์—…ํ•˜๊ณ  ๋ณต์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์†์‹ค์„ ๋ฐฉ์ง€. ์ด๋ฅผ ํ†ตํ•ด ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์Œ.

์•„ํ‚คํ…์ณ ์˜ˆ์‹œ

  • RDS: ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    • postgres์™€ mysql ๋“ฑ ๋‹ค์–‘ํ•œ ์˜ต์…˜์ด ์žˆ์Œ.
    • ์ธ๋ฑ์‹ฑ์„ ์ž˜ ํ™œ์šฉํ•˜๋ฉด ์ข‹์Œ.
    • ํ•ญ์ƒ ์„œ๋ฒ„๊ฐ€ ๋–  ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๋น„์šฉ์ด ๋‚˜๊ฐ.
  • Athena: S3์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ™”ํ˜• ์ฟผ๋ฆฌ ์„œ๋น„์Šค
    • ๋ณดํ†ต S3์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์™€ ์—ฐ๋™
    • Serverless๋ผ๊ณ  ํ•˜์—ฌ, ์ฟผ๋ฆฌ๋ฅผ ์šด์šฉํ•  ๋•Œ๋งŒ ์ž ์‹œ ๊ธฐ๊ธฐ๋ฅผ ๋นŒ๋ ค ์—ฐ์‚ฐํ•œ ๋’ค ๋‹ค์‹œ ๋ฐ˜๋‚ฉ. ๋”ฐ๋ผ์„œ ๋ณดํ†ต ๋น„์šฉ์ด ์ €๋ ด
    • ๋ฐ”๋กœ Spark์™€ ์—ฐ๋™ํ•  ์ˆ˜๋„ ์žˆ์Œ.
  • Redshift: ๋น ๋ฅด๊ณ  ๊ฐ•๋ ฅํ•œ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์ง•
    • ๊ตฌ๋™์„ ์œ„ํ•ด์„œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ(์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ)๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ์šด์˜ํ•ด์•ผ ํ•จ. → ๋น„์Œˆ.
    • ๋ณต์žกํ•œ ์—ฐ์‚ฐ์— ์กฐ๊ธˆ ๋” ํšจ์œจ์ 
    • ์ŠคํŒŒํฌ์™€ ์—ฐ๋™ ๊ฐ€๋Šฅ