SQL Struct: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ฑ…์žฅ์ฒ˜๋Ÿผ ์ƒ๊ฐํ•˜๋Š” ๋ฒ•์„ ๋ฐฐ์šธ ๋•Œ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฑฐ๋Œ€ํ•œ ๋„์„œ๊ด€์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž. ์ง€๊ธˆ๊นŒ์ง€ ์ˆ˜์‹ญ ๋…„ ๋™์•ˆ, ์šฐ๋ฆฌ๋Š” ์ „ํ†ต์ ์ธ ๋„์„œ๊ด€ ๋ชฉ๋ก ์‹œ์Šคํ…œ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ฆฌํ•ด์™”๋‹ค. ๋ชจ๋“  ์ฑ…์˜ ์ •๋ณด๋ฅผ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์นด๋“œ์— ์ ์–ด์„œ ๋ณ„๋„์˜ ์„œ๋ž์— ๋ณด๊ด€ํ•˜๋Š” ๋ฐฉ์‹ ๋ง์ด๋‹ค. ์ œ๋ชฉ ์นด๋“œ๋Š” ์—ฌ๊ธฐ, ์ €์ž ์นด๋“œ๋Š” ์ €๊ธฐ, ์ถœํŒ์—ฐ๋„๋Š” ๋˜ ๋‹ค๋ฅธ ๊ณณ์—. ์ด๊ฒŒ ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋งํ•˜๋Š” **์ •๊ทœํ™”(normalization)**๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ ๋„์„œ๊ด€์ด ์ฑ…์˜ ๋ชจ๋“  ์ •๋ณด๋ฅผ ํ•˜๋‚˜์˜ ๋˜‘๋˜‘ํ•œ ๋ด‰ํˆฌ์— ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์–ด๋–จ๊นŒ? ์ œ๋ชฉ, ์ €์ž, ์ถœํŒ ์ •๋ณด, ์‹ฌ์ง€์–ด ๋ฆฌ๋ทฐ๊นŒ์ง€ ๋ชจ๋‘ ๊น”๋”ํ•˜๊ฒŒ ํ•œ ๊ณณ์— ๋ชจ์•„๋‘˜ ์ˆ˜ ์žˆ๋‹ค๋ฉด? ์ด๊ฒŒ ๋ฐ”๋กœ ํ˜„๋Œ€ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ struct๊ฐ€ ํ•ด์ฃผ๋Š” ์ผ์ด๋‹ค.

Struct๊ฐ€ ๋ญ”์ง€ ์ •ํ™•ํžˆ ์•Œ์•„๋ณด์ž

Struct๋Š” ๋ฐ์ดํ„ฐ๊ณ„์˜ ์Šค์œ„์Šค ์•„๋ฏธ ๋‚˜์ดํ”„ ๊ฐ™์€ ์กด์žฌ๋‹ค. ๊ด€๋ จ๋œ ์ •๋ณด๋“ค์„ ์–ต์ง€๋กœ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์— ๋‚˜๋ˆ  ๋‹ด์ง€ ์•Š๊ณ (๋„์„œ๊ด€ ์นด๋“œ ์‹œ์Šคํ…œ์ฒ˜๋Ÿผ), ์—ฐ๊ด€๋œ ํ•„๋“œ๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์„œ ๋…ผ๋ฆฌ์ ์ธ ๋ฉ์–ด๋ฆฌ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.

-- ๊ธฐ์กด ๋ฐฉ์‹: ํ…Œ์ด๋ธ” ์—ฌ๋Ÿฌ ๊ฐœ
-- books: book_id, title
-- authors: book_id, author_name  
-- publishers: book_id, publisher_name, year

-- Struct ๋ฐฉ์‹: ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ํ…Œ์ด๋ธ”์— ๋ญ‰์ณ๋†“๊ธฐ
CREATE TABLE books (
  book_id INT64,
  info STRUCT<
    title STRING,
    author STRING,
    publisher STRING,
    year INT64
  >
)

ํŒŒ์ผ๋ง ์บ๋น„๋‹›(๊ธฐ์กด ํ…Œ์ด๋ธ”๋“ค)๊ณผ ์ž˜ ์ •๋ฆฌ๋œ ์„œ๋ฅ˜๊ฐ€๋ฐฉ(struct)์˜ ์ฐจ์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ๋‘˜ ๋‹ค ์„œ๋ฅ˜๋ฅผ ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์„œ๋ฅ˜๊ฐ€๋ฐฉ์€ ๊ด€๋ จ ์žˆ๋Š” ๊ฒƒ๋“ค๋ผ๋ฆฌ ๊ตฌ์—ญ์„ ๋‚˜๋ˆ ์„œ ํ•จ๊ป˜ ๋„ฃ์–ด๋‘”๋‹ค.

Array of Structs์˜ ๋งˆ๋ฒ•

์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ์ง„์งœ ์žฌ๋ฐŒ์–ด์ง„๋‹ค. ์šฐ๋ฆฌ ์ฑ… ๋ด‰ํˆฌ๊ฐ€ ์—ฌ๋Ÿฌ ๊ถŒ์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด? ์ด๊ฒŒ ๋ฐ”๋กœ array of structs๋‹ค. ์™„์ „ํ•œ ์ฑ… ์ •๋ณด ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ํ™•์žฅํ˜• ํด๋” ๊ฐ™์€ ๊ฑฐ๋‹ค.

-- ๊ณ ๊ฐ์˜ ๋…์„œ ๊ธฐ๋ก
CREATE TABLE customers (
  customer_id INT64,
  name STRING,
  reading_history ARRAY<STRUCT<
    book_title STRING,
    genre STRING,
    rating INT64,
    date_read DATE
  >>
)

๋ฏผ์ง€๋ผ๋Š” ๊ณ ๊ฐ์˜ ๋…์„œ ๊ธฐ๋ก์ด ์ด๋Ÿฐ ์‹์œผ๋กœ ์ €์žฅ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž:

๋ฏผ์ง€์˜ ๋…์„œ ๊ธฐ๋ก:
๐Ÿ“š [
  {title: "ํ•ด๋ฆฌํฌํ„ฐ", genre: "ํŒํƒ€์ง€", rating: 5, date_read: "2025-01-15"},
  {title: "๋ฏธ์›€๋ฐ›์„ ์šฉ๊ธฐ", genre: "์ž๊ธฐ๊ณ„๋ฐœ", rating: 4, date_read: "2025-02-20"},
  {title: "๋“„", genre: "์†Œ์„ค", rating: 5, date_read: "2025-03-10"}
]

๋ฏผ์ง€์˜ ๋ชจ๋“  ๋…์„œ ๊ธฐ๋ก์ด ํ•œ ๊ณณ์— ๋”ฑ ๋“ค์–ด์žˆ๋‹ค. ๊ณ ๊ฐ ์ •๋ณด์™€ ํ•จ๊ป˜ ๋‹ค๋‹ˆ๋Š” ๊ฐœ์ธ ๋…์„œ ๋‹ค์ด์–ด๋ฆฌ ๊ฐ™์€ ๋А๋‚Œ์ด๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ณ„์˜ ์˜์›ํ•œ ๋–ก๋ฐฅ

์ด์ฏค ๋˜๋ฉด ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด๋ง์—์„œ ๊ฐ€์žฅ ๋œจ๊ฑฐ์šด ๋…ผ์Ÿ๊ฑฐ๋ฆฌ๊ฐ€ ๋‚˜์˜จ๋‹ค: ๋ฐ์ดํ„ฐ๋ฅผ ๋„์„œ๊ด€ ๋ชฉ๋ก์ฒ˜๋Ÿผ ๊น”๋”ํ•˜๊ฒŒ ๋‚˜๋ˆ  ๋†“์„ ๊ฑฐ๋ƒ(์ •๊ทœํ™”), ์•„๋‹ˆ๋ฉด ๊ฐœ์ธ ํŒŒ์ผํ•จ์ฒ˜๋Ÿผ ๋ญ‰์ณ ๋†“์„ ๊ฑฐ๋ƒ(struct ์“ด ๋น„์ •๊ทœํ™”)?

๋„์„œ๊ด€ ๋ชฉ๋ก ์Šคํƒ€์ผ (์ •๊ทœํ™”)

  • ์ข‹์€ ์ : ์ค‘๋ณต ์—†์ด ๊น”๋”, ํ•˜๋‚˜๋งŒ ๊ณ ์น˜๋ฉด ๋
  • ์•„์‰ฌ์šด ์ : ์ „์ฒด ์ •๋ณด ๋ณด๋ ค๋ฉด ์—ฌ๊ธฐ์ €๊ธฐ ๋’ค์ ธ์•ผ ํ•จ
  • ์–ธ์ œ ์“ฐ๋‚˜: ๊ฐœ๋ณ„ ์ •๋ณด๋ฅผ ์ž์ฃผ ์ˆ˜์ •ํ•  ๋•Œ

๊ฐœ์ธ ํŒŒ์ผํ•จ ์Šคํƒ€์ผ (Structs)

  • ์ข‹์€ ์ : ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋‹ค ํ•œ ๊ณณ์—, ๋น ๋ฅด๊ฒŒ ์กฐํšŒ ๊ฐ€๋Šฅ
  • ์•„์‰ฌ์šด ์ : ํ•˜๋‚˜ ๊ณ ์น˜๋ ค๋ฉด ํ†ต์งธ๋กœ ๋‹ค์‹œ ์จ์•ผ ํ•จ
  • ์–ธ์ œ ์“ฐ๋‚˜: ์ฃผ๋กœ ์ฝ๊ธฐ๋งŒ ํ•˜๊ณ  ์ˆ˜์ •์€ ๋ณ„๋กœ ์•ˆ ํ•  ๋•Œ

Struct๊ฐ€ ์ž์ฃผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฑธ ์‹ซ์–ดํ•˜๋Š” ์ด์œ 

์Œ์‹์  ์ƒํ™ฉ์„ ์ƒ๊ฐํ•ด๋ณด์ž. ์„œ๋น™ํ•˜๋Š” ์ž…์žฅ์—์„œ:

๊ธฐ์กด ํ…Œ์ด๋ธ” ๋ฐฉ์‹ (์ •๊ทœํ™”): ์ฃผ๋ฌธ ํ•ญ๋ชฉ๋งˆ๋‹ค ๋”ฐ๋กœ ์ „ํ‘œ๋ฅผ ์“ด๋‹ค. ์†๋‹˜์ด ํ•˜๋‚˜ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๊ณ  ํ•˜๋ฉด ๊ทธ ์ „ํ‘œ๋งŒ ๋ฒ„๋ฆฌ๊ณ  ์ƒˆ๋กœ ์“ฐ๋ฉด ๋œ๋‹ค.

Struct ๋ฐฉ์‹: ์ „์ฒด ์ฃผ๋ฌธ์„ ํ•˜๋‚˜์˜ ํฐ ์ „ํ‘œ์— ๋‹ค ์ ๋Š”๋‹ค. ์†๋‹˜์ด ํ•˜๋‚˜๋งŒ ๋ฐ”๊พธ๊ณ  ์‹ถ์–ด๋„ ์ „์ฒด ์ „ํ‘œ๋ฅผ ์ง€์šฐ๊ณ  ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์จ์•ผ ํ•œ๋‹ค.

-- ์ •๊ทœํ™”๋œ ํ…Œ์ด๋ธ”: ๊ฐ„๋‹จํ•œ ์—…๋ฐ์ดํŠธ
UPDATE order_items SET quantity = 3 WHERE order_id = 123 AND item = 'ํ”ผ์ž';

-- Struct: ๋ณต์žกํ•œ ์—…๋ฐ์ดํŠธ - ๋ฐฐ์—ด ์ „์ฒด๋ฅผ ๋‹ค์‹œ ์จ์•ผํ•จ
UPDATE orders 
SET items = ARRAY(
  SELECT CASE 
    WHEN item.name = 'ํ”ผ์ž' 
    THEN STRUCT(item.name, 3 as quantity, item.price)
    ELSE item
  END
  FROM UNNEST(items) as item
)
WHERE order_id = 123;

๊ทธ๋ž˜์„œ struct๋Š” ๋ถ„์„์šฉ(์ฃผ๋กœ ์ฝ๊ธฐ)์—๋Š” ์งฑ์ด์ง€๋งŒ, ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ง‰ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์‹œ์Šคํ…œ์—๋Š” ๊ณจ์น˜ ์•„ํ”ˆ ์กด์žฌ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด์˜ Struct ์ƒ์กด๋ฒ•

1. ์Šคํ‚ค๋งˆ ๋ณ€ํ™”: ์„ฑ์žฅํ†ต์€ ํ”ผํ•  ์ˆ˜ ์—†๋‹ค

Struct๋Š” ์‚ฌ์ถ˜๊ธฐ ์• ๋“ค ๊ฐ™๋‹ค. ์ž๋ผ๋ฉด์„œ ๋ณ€ํ•˜๋Š” ๊ฑด ๋‹น์—ฐํ•œ๋ฐ, ํ•ญ์ƒ ์˜ˆ์˜๊ฒŒ ๋ณ€ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. ์ƒˆ ํ•„๋“œ ์ถ”๊ฐ€๋Š” ๋ณดํ†ต ๊ดœ์ฐฎ์ง€๋งŒ, ๊ธฐ์กด ๊ฑธ ์—†์• ๊ฑฐ๋‚˜ ์ด๋ฆ„ ๋ฐ”๊พธ๋Š” ๊ฑด ๋’ค์ชฝ ์‹œ์Šคํ…œ๋“ค์„ ๋‹ค ํ„ฐํŠธ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

2. ์ €์žฅ ์šฉ๋Ÿ‰: ํฌ๊ธฐ๊ฐ€ ๋‹ค ํ•˜๋Š” ๊ฑฐ ์•„๋‹ˆ๋‹ค

Struct๋ฅผ ์—ฌํ–‰ ์ง ์‹ธ๊ธฐ๋ผ๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž. ์ž˜ ์ •๋ฆฌ๋œ struct๋Š” ํ…ŒํŠธ๋ฆฌ์Šค ๊ณ ์ˆ˜๊ฐ€ ์‹ผ ์บ๋ฆฌ์–ด ๊ฐ™๋‹ค. ๋ชจ๋“  ๊ฒŒ ๋”ฑ๋”ฑ ๋งž์•„๋–จ์–ด์ง„๋‹ค. ํ•˜์ง€๋งŒ ๋นˆ ๊ณต๊ฐ„ ํˆฌ์„ฑ์ด์ธ struct๋Š” ์Šคํ‹ฐ๋กœํผ๋งŒ ์ž”๋œฉ ๋“ค์–ด์žˆ๋Š” ํƒ๋ฐฐ์ƒ์ž ๊ฐ™๋‹ค. ๊ณต๊ฐ„ ๋‚ญ๋น„์˜ ๋ํŒ์™•์ด๋‹ค.

3. ์„ฑ๋Šฅ ํŒจํ„ด: ๊ณ ์†๋„๋กœ vs ๊ณจ๋ชฉ๊ธธ ํƒํ—˜

  • ์ž˜ ๋˜๋Š” ๊ฒƒ: ๊ด€๋ จ ๋ฐ์ดํ„ฐ ํ†ต์งธ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ (๊ณ ์†๋„๋กœ ์Œฉ์Œฉ)
  • ์•ˆ ๋˜๋Š” ๊ฒƒ: ํŠน์ • ์ค‘์ฒฉ๊ฐ’ ์ฐพ๊ธฐ (๊ณจ๋ชฉ๊ธธ ํ—ค๋งค๊ธฐ)

4. ํ”Œ๋žซํผ ํ˜ธํ™˜์„ฑ: ๊ฐ์ž ๋‹ค๋ฅธ ์–ธ์–ด ์“ฐ๋Š” ๋А๋‚Œ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋งˆ๋‹ค struct ์ง€์›์ด ์ œ๊ฐ๊ฐ์ด๋‹ค. BigQuery๋Š” struct ๋งˆ๋‹ˆ์•„๊ณ , Spark๋„ ์ž˜ ์•ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ตฌํ˜• ์‹œ์Šคํ…œ๋“ค์€ ํ†ต์—ญ์‚ฌ๊ฐ€ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์•„์˜ˆ ๋ชป ์•Œ์•„๋“ฃ๋Š”๋‹ค.

5. ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ: ๋งˆํŠธ๋ฃŒ์‹œ์นด ์ธํ˜• ํšจ๊ณผ

Struct ๋ฐฐ์—ด์„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ’€์–ดํ—ค์น˜๋ฉด ๋Ÿฌ์‹œ์•„ ์ธํ˜• ๊นŒ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์ฒ˜์Œ์—” ํ•˜๋‚˜์˜€๋Š”๋ฐ ๊ฐ‘์ž๊ธฐ ๊ฐœ๋ณ„ ์กฐ๊ฐ๋“ค์ด ์šฐ๋ฅด๋ฅด ์Ÿ์•„์ ธ ๋‚˜์™€์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‹ค ์ฐจ์ง€ํ•œ๋‹ค.

ํ”ํ•œ Struct ํ•จ์ •๋“ค (๊ทธ๋ฆฌ๊ณ  ํ”ผํ•˜๋Š” ๋ฒ•)

“์ธ์…‰์…˜” ๋ณ‘

Struct๋ฅผ ๋„ˆ๋ฌด ๊นŠ๊ฒŒ ์ค‘์ฒฉํ•˜์ง€ ๋ง์ž. ์ƒ์ž ์•ˆ์˜ ์ƒ์ž ์•ˆ์˜ ์„œ๋ž ์•ˆ์˜ ์ฐฝ๊ณ ์—์„œ ๋ญ”๊ฐ€๋ฅผ ์ฐพ๋Š” ๊ฑฐ๋‚˜ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ๋‚˜์ค‘์— ์•„๋ฌด๋„ ๋ญ๊ฐ€ ์–ด๋”” ์žˆ๋Š”์ง€ ๊ธฐ์–ต ๋ชปํ•œ๋‹ค.

“๋งŒ๋Šฅ ์ฃผ๋จธ๋‹ˆ” ์ฆํ›„๊ตฐ

struct์— ๋ญ๋“  ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ด์„œ ๋‹ค ๋„ฃ์œผ๋ฉด ์•ˆ ๋œ๋‹ค. ๋™์ „๋ถ€ํ„ฐ ์˜์ˆ˜์ฆ๊นŒ์ง€ ๋‹ค ๋“ค์–ด์žˆ๋Š” ์ง€๊ฐ‘ ๊ฐ™์€ ๊ผด์ด ๋œ๋‹ค. ๊ธฐ์ˆ ์ ์œผ๋ก  ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ํ˜„์‹ค์ ์œผ๋ก  ์ง€์˜ฅ์ด๋‹ค.

“์—…๋ฐ์ดํŠธ ์ง€์˜ฅ”

์ž์ฃผ ๋ฐ”๋€Œ๋Š” ๋ฐ์ดํ„ฐ์— struct ์“ฐ๋Š” ๊ฑด ์ฝ”ํŒ…๋œ ๋ฉ”๋‰ดํŒ ๊ฐ™๋‹ค. ๊ฐ€๊ฒฉ ํ•˜๋‚˜ ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ํ†ต์งธ๋กœ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

์–ธ์ œ Struct ์“ธ์ง€ ๋ง์ง€ ์ •ํ•˜๊ธฐ

์ด๋Ÿด ๋•Œ๋Š” Struct ๊ณ ๊ณ :

  • ์›๋ž˜๋ถ€ํ„ฐ ์ค‘์ฒฉ๋œ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ์ผ ๋•Œ (์ฃผ์†Œ, ์ƒํ’ˆ ์ •๋ณด, ํ”„๋กœํ•„ ๊ฐ™์€ ๊ฒƒ๋“ค)
  • ์ฃผ๋กœ ์ฝ๊ธฐ๋งŒ ํ•˜๊ณ  ๊ฐœ๋ณ„ ์ˆ˜์ •์€ ๊ฑฐ์˜ ์•ˆ ํ•  ๋•Œ
  • ์ค‘์ฒฉ๋œ ํ•„๋“œ๋“ค ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ๋ถ„์„ํ•ด์•ผ ํ•  ๋•Œ
  • ๋ถ„์„์ด๋‚˜ ๋ฆฌํฌํŒ… ์‹œ์Šคํ…œ ๋งŒ๋“ค ๋•Œ

์ด๋Ÿด ๋•Œ๋Š” Struct ํ”ผํ•˜๊ธฐ:

  • ๊ฐœ๋ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ž์ฃผ ์ˆ˜์ •ํ•  ๋•Œ
  • ํŠน์ • ์ค‘์ฒฉ๊ฐ’์„ ๊ณ„์† ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ์ธ๋ฑ์‹ฑํ•ด์•ผ ํ•  ๋•Œ
  • ๋™์‹œ์ ‘์† ๋งŽ์€ ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ ๋งŒ๋“ค ๋•Œ
  • ํŒ€์ด ๋ณต์žกํ•œ ๊ฑธ ๊ฐ๋‹นํ•˜๊ธฐ ์–ด๋ ค์šธ ๋•Œ

์ •๋ฆฌํ•˜์ž๋ฉด

Struct๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•œ ๋˜‘๋˜‘ํ•œ ๋น„์„œ ๊ฐ™์€ ์กด์žฌ๋‹ค. ๊ด€๋ จ ์ •๋ณด๋“ค์„ ์˜ˆ์˜๊ฒŒ ์ •๋ฆฌํ•ด์ฃผ๊ณ  ํŠน์ • ์ž‘์—…๋“ค์„ ํ›จ์”ฌ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋“  ๋น„์„œ๊ฐ€ ๊ทธ๋ ‡๋“ฏ์ด, ์ ์žฌ์ ์†Œ์— ์จ์•ผ ํ•œ๋‹ค. ๊ธฐ์กด์˜ ์ข‹์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ ์›์น™๋“ค์„ ๋Œ€์ฒดํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ๋„๊ตฌ์ƒ์ž์— ํ•˜๋‚˜ ๋” ์ถ”๊ฐ€๋œ ๊ฑฐ๋‹ค.

ํ•ต์‹ฌ์€ ์–ธ์ œ ํŒŒ์ผ๋ง ์บ๋น„๋‹›(๊ธฐ์กด ํ…Œ์ด๋ธ”)์„ ์“ธ์ง€, ์–ธ์ œ ์ •๋ฆฌ๋œ ์„œ๋ฅ˜๊ฐ€๋ฐฉ(struct)์„ ์“ธ์ง€ ์•„๋Š” ๊ฒƒ์ด๋‹ค. ๋‘˜ ๋‹ค ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด ์„ธ๊ณ„์—์„œ ๊ฐ์ž ์—ญํ• ์ด ์žˆ๊ณ , ์ตœ๊ณ ์˜ ์†”๋ฃจ์…˜์€ ๋ณดํ†ต ๋‘˜์„ ์ „๋žต์ ์œผ๋กœ ์„ž์–ด ์“ฐ๋Š” ๊ฑฐ๋‹ค.

๊ธฐ์–ตํ•˜์ž: struct๋Š” “ํ…Œ์ด๋ธ”๊ณผ ํ–‰"์œผ๋กœ ์ƒ๊ฐํ•˜๋˜ ๊ฑธ “๋ฌธ์„œ์™€ ๊ฐ์ฒด"๋กœ ์ƒ๊ฐํ•˜๊ฒŒ ๋ฐ”๊พธ๋Š” ๋ณ€ํ™”๋‹ค. ์ด๋Ÿฐ ํŒจ๋Ÿฌ๋‹ค์ž„ ์ „ํ™˜์„ ๋ฐ›์•„๋“ค์ด๋˜, ์ˆ˜์‹ญ ๋…„๊ฐ„ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐฐ์šด ๊ฒƒ๋“ค์€ ๋ฒ„๋ฆฌ์ง€ ๋ง์ž. ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด๋ง์˜ ๋ฏธ๋ž˜๋Š” ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ๊ฐ ๋„๊ตฌ๋ฅผ ์–ธ์ œ ์ œ๋Œ€๋กœ ์“ธ์ง€ ์•„๋Š” ๋ฐ ์žˆ๋‹ค.