• [์ž๋ฃŒ๊ตฌ์กฐ] ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ข…๋ฅ˜

    2024. 1. 24.

    by. @leeeun

    Section 00 ์ƒํ™œ์† ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

    • ๊ทธ๋ฆ‡์„ ์•„๋ฌด๋ ‡๊ฒŒ๋‚˜ ์Œ“์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ข…๋ฅ˜๋ณ„๋กœ ๋ถ„๋ฅ˜ํ•˜๋ฉด ๊ทธ๋ฆ‡์„ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Œ.
    • ์ž๋ฃŒ๊ตฌ์กฐ→ ๊ทธ๋ฆ‡(์ž๋ฃŒ)์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜→ ์ตœ์ ์˜ ์ด๋™๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•

     

    Section 01 ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ฐœ๋…๊ณผ ์ข…๋ฅ˜

     

    ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ฐœ๋…

    • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ํšจ์œจ์ ์ธ ์ž๋ฃŒ(๋ฐ์ดํ„ฐ)์˜ ํ˜•ํƒœ
    • ๋ฐ์ดํ„ฐ๋Š” ๋™์ผํ•ด๋„ ํšจ์œจ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ์— ์ €์žฅํ•จ์œผ๋กœ์จ ๊ด€๋ฆฌ๊ฐ€ ํšจ์œจ์ ์ด๊ฒŒ

     

    ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ข…๋ฅ˜

    • ๋ฐ์ดํ„ฐํ˜• - ๊ฐ€์žฅ ๋‹จ์ˆœ. ์ •์ˆ˜, ์‹ค์ˆ˜, ๋ฌธ์ž, ๋ฌธ์ž์—ด
    • ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ - ๋ฆฌ์ŠคํŠธ, ์Šคํƒ, ํ
    • ๋น„์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ - ํŠธ๋ฆฌ์™€ ๊ทธ๋ž˜ํ”„
    • ํŒŒ์ผ ์ž๋ฃŒ๊ตฌ์กฐ - ์ˆœ์ฐจํŒŒ์ผ, ์ƒ‰์ธ ํŒŒ์ผ, ์ง์ ‘ ํŒŒ์ผ

    ๋‹จ์ˆœ ์ž๋ฃŒ๊ตฌ์กฐ

    • ์ •์ˆ˜, ์‹ค์ˆ˜, ๋ฌธ์ž, ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์€ ์ปดํ“จํ„ฐ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ์ž๋ฃŒํ˜•
    • ์ •์ˆ˜ int or integer
      • ์†Œ์ˆ˜์ ์ด ์—†๋Š” ํ˜•ํƒœ 0, 100, -17๋“ฑ..
    • ์‹ค์ˆ˜ (Float)
      • ์†Œ์ˆ˜์ ์ด ์žˆ๋Š” ํ˜•ํƒœ
    • ๋ฌธ์ž (Character)
      • ํ•œ ๊ธ€์ž๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋Š” ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋ฅผ ํ†ตํ•ด ํ‘œ๊ธฐ
    • ๋ฌธ์ž์—ด (String)
      • ๋ฌธ์ž ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๋ฌถ์€ ๊ฒƒ์œผ๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋Š” ํฐ ๋”ฐ์˜ดํ‘œ๋ฅผ ํ†ตํ•ด ํ‘œ๊ธฐ

     

    ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ(Linear Data Structrue)

    • ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ํ•œ ์ค„๋กœ ํ‘œ๊ธฐํ•œ ์ž๋ฃŒ๊ตฌ์กฐ
    • ์„ ํ˜•๋ฆฌ์ŠคํŠธ, ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ, ์Šคํƒ, ํ๊ฐ€ ํ•ด๋‹น๋œ๋‹ค.

     

    ๋น„์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ(Non-Linear Data Structrue)

    • ๋น„์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ํ•œ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ๋’ค์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋”ฐ๋ผ์˜ค๋Š”๊ฒƒ์„ ๋งํ•˜๋ฉฐ ๊ฐ ๋ฐ์ดํ„ฐ๊ฐ€ 1:n ๋˜๋Š” n:n์˜ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค.
    • ํŠธ๋ฆฌ์™€ ๊ทธ๋ž˜ํ”„๊ฐ€ ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ด๋‹ค.

     

    ํŒŒ์ผ ์ž๋ฃŒ๊ตฌ์กฐ(File Data Structure)

     

    ํŒŒ์ผ์ด ๋””์Šคํฌ์— ์ €์žฅ๋˜๋Š” ๋ฐฉ์‹์— ๋”ฐ๋ผ ์ˆœ์ฐจ ํŒŒ์ผ๊ณผ, ์ง์ ‘ ํŒŒ์ผ, ์ƒ‰์ธ ์ˆœ์ฐจ ํŒŒ์ผ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

     

     

    ์ˆœ์ฐจ ํŒŒ์ผ (Sequential File)

    • ํŒŒ์ผ ๋‚ด์šฉ์„ ๋…ผ๋ฆฌ์ ์ธ ์ฒ˜๋ฆฌ ์ˆœ์„œ์— ๋”ฐ๋ผ ์—ฐ์†ํ•ด์„œ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. = ์ž…๋ ฅ๋˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅ๋œ๋‹ค.
    • ๊ตฌ์กฐ๊ฐ€ ๊ฐ„๋‹จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๊ฐ„ ํšจ์œจ์„ฑ์€ ๋†’์ง€๋งŒ, ๋‹ค๋ฅธ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ๋•Œ ํŒŒ์ผ ๋‚ด์šฉ์„ ์žฌ๊ตฌ์„ฑ ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค.
    • ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ๋„ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ชจ๋‘ ์ฐพ์•„์•ผํ•จ → ๋น„ํšจ์œจ์ 

     

    ์ง์ ‘ ํŒŒ์ผ (Direct File)

    • ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์ž„์˜์˜ ๋ฌผ๋ฆฌ์ ์ธ ์œ„์น˜์— ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
    • ๋‚ด์šฉ์„ ์ €์žฅํ•˜๋Š” ์œ„์น˜๋Š” ํ•ด์‹œ ํ•จ์ˆ˜ ๋ผ๋Š” ๊ณ„์‚ฐ์‹์œผ๋กœ ๊ฒฐ์ •๋œ๋‹ค.

     

    ์ƒ‰์ธ ์ˆœ์ฐจ ํŒŒ์ผ (Indexed Sequential File)

     

    • ์ˆœ์ฐจ ํŒŒ์ผ๊ณผ ์ง์ ‘ ํŒŒ์ผ์ด ๊ฒฐํ•ฉ๋œ ํ˜•ํƒœ๋กœ, ๋ฐ์ดํ„ฐ๋ฅผ ํ‚ค ๊ฐ’ ์ˆœ์„œ๋กœ ์ •๋ ฌ์‹œ์ผœ ๊ธฐ๋กํ•˜๊ณ , ํ‚ค ํ•ญ๋ชฉ ๋งŒ์„ ๋ชจ์€ ์ƒ‰์ธ์„ ๊ตฌ์„ฑํ•˜์—ฌ ํŽธ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

    ๋Œ“๊ธ€