[Data Modeling] ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง 1์ผ์ฐจ - ๊ฐœ๋…/๋…ผ๋ฆฌ/๋ฌผ๋ฆฌ ๋ชจ๋ธ๋ง๊ณผ ERD ๊ธฐ์ดˆ

  • DataModeling
[Data Modeling] ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง 1์ผ์ฐจ - ๊ฐœ๋…/๋…ผ๋ฆฌ/๋ฌผ๋ฆฌ ๋ชจ๋ธ๋ง๊ณผ ERD ๊ธฐ์ดˆ

๐Ÿ“ ์—ฐ๊ด€ ํฌ์ŠคํŒ…

1. ๋“ค์–ด๊ฐ€๋ฉฐ

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ๊ธฐ๋ณธ ํ๋ฆ„๊ณผ ERD๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ž์ฃผ ๋งŒ๋‚˜๋Š” ์„ค๊ณ„ ํฌ์ธํŠธ๋ฅผ ์ •๋ฆฌํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์€ ๋‹จ์ˆœํžˆ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“œ๋Š” ์ž‘์—…์ด ์•„๋‹ˆ๋ผ, ์—…๋ฌด์—์„œ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๊ณ  ๊ด€๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ์ •์˜ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

์‹ค์Šต ๋„๊ตฌ๋Š” ์ž์œ ๋กญ๊ฒŒ ์„ ํƒํ•ด๋„ ๋˜์ง€๋งŒ, ์ˆ˜์—…์—์„œ๋Š” ERD Cloud์™€ ERD Editor๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐœ๋…์„ ์ •๋ฆฌํ–ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ๋‹จ๊ณ„
  • ์‹๋ณ„ ๊ด€๊ณ„์™€ ๋น„์‹๋ณ„ ๊ด€๊ณ„
  • M:N ๊ด€๊ณ„ ํ•ด์†Œ
  • ์†์„ฑ์˜ ์œ ํ˜•
  • ์„ค๊ณ„ ์†์„ฑ๊ณผ ํŒŒ์ƒ ์†์„ฑ
  • ์Šˆํผํƒ€์ž…๊ณผ ์„œ๋ธŒํƒ€์ž…
  • ํšŒ์‚ฌ/์ง์›/ํ”„๋กœ์ ํŠธ ์˜ˆ์ œ์™€ ์„ค๋ฌธ์ง€ ํ”„๋กœ์ ํŠธ ์˜ˆ์ œ

2. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ „์ฒด ํ๋ฆ„

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

2.1 ๊ฐœ๋… ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

๊ฐœ๋… ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์€ ์—…๋ฌด์—์„œ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š” ํ•ต์‹ฌ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ถ”์ถœํ•˜๊ณ , ์ „์ฒด ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ณจ๊ฒฉ์„ ๋งŒ๋“œ๋Š” ๋‹จ๊ณ„๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” ์ƒ์„ธ ์ปฌ๋Ÿผ๋ณด๋‹ค๋Š” ์—”ํ‹ฐํ‹ฐ์™€ ์—”ํ‹ฐํ‹ฐ ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•œ๋‹ค.

  • ํ•ต์‹ฌ ์—”ํ‹ฐํ‹ฐ ์ถ”์ถœ
  • ์ „์ฒด ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ณจ๊ฒฉ ์ƒ์„ฑ
  • ๊ฐœ์ฒด-๊ด€๊ณ„ ๋‹ค์ด์–ด๊ทธ๋žจ ์ž‘์„ฑ

2.2 ๋…ผ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

๋…ผ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์€ ๊ฐœ๋… ๋ชจ๋ธ๋ง์—์„œ ์ •์˜ํ•œ ์—”ํ‹ฐํ‹ฐ์™€ ๊ด€๊ณ„๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ƒ์„ธ ์†์„ฑ์„ ์ •์˜ํ•˜๋Š” ๋‹จ๊ณ„๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” ์‹๋ณ„์ž๋ฅผ ํ™•์ •ํ•˜๊ณ , ์ •๊ทœํ™”์™€ ๊ฐ™์€ ์ƒ์„ธํ™” ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  • ์—”ํ‹ฐํ‹ฐ๋ณ„ ์ƒ์„ธ ์†์„ฑ ์ •์˜
  • ์‹๋ณ„์ž ํ™•์ •
  • ์ •๊ทœํ™” ์ˆ˜ํ–‰
  • ํŠธ๋žœ์žญ์…˜ ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„

2.3 ๋ฌผ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

๋ฌผ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์€ ์‹ค์ œ ์‚ฌ์šฉํ•  DBMS์˜ ํŠน์„ฑ๊ณผ ๊ตฌํ˜„ ํ™˜๊ฒฝ์„ ๊ณ ๋ คํ•ด ์Šคํ‚ค๋งˆ๋ฅผ ๊ตฌ์ฒดํ™”ํ•˜๋Š” ๋‹จ๊ณ„๋‹ค. ๋…ผ๋ฆฌ ๋ชจ๋ธ์„ ์‹ค์ œ ํ…Œ์ด๋ธ”, ์ปฌ๋Ÿผ, ์ธ๋ฑ์Šค ๊ตฌ์กฐ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

  • ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ํฌ๊ธฐ ์ •์˜
  • ์ธ๋ฑ์Šค ์ •์˜
  • ์„ฑ๋Šฅ์„ ๊ณ ๋ คํ•œ ์—ญ์ •๊ทœํ™” ๊ฒ€ํ† 
  • ๋ชฉํ‘œ DBMS์— ๋งž๋Š” ์Šคํ‚ค๋งˆ ๋„์ถœ

3. Entity์™€ Relationship ์„ค๊ณ„

3.1 Entity ๋„์ถœ

์—”ํ‹ฐํ‹ฐ๋Š” ์—…๋ฌด์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํšŒ์‚ฌ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์—์„œ๋Š” ํšŒ์‚ฌ, ๋ถ€์„œ, ์ง์›, ํ”„๋กœ์ ํŠธ, ๋ถ€์–‘๊ฐ€์กฑ ๋“ฑ์ด ์—”ํ‹ฐํ‹ฐ ํ›„๋ณด๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

์—”ํ‹ฐํ‹ฐ๋ฅผ ๋„์ถœํ•  ๋•Œ๋Š” ๋‹ค์Œ ์งˆ๋ฌธ์„ ๊ธฐ์ค€์œผ๋กœ ํŒ๋‹จํ•˜๋ฉด ์ข‹๋‹ค.

  • ์—…๋ฌด์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋Œ€์ƒ์ธ๊ฐ€?
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?
  • ์†์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š”๊ฐ€?
  • ๋‹ค๋ฅธ ์—”ํ‹ฐํ‹ฐ์™€ ๊ด€๊ณ„๋ฅผ ๋งบ๋Š”๊ฐ€?

3.2 ์‹๋ณ„ ๊ด€๊ณ„์™€ ๋น„์‹๋ณ„ ๊ด€๊ณ„

์‹๋ณ„ ๊ด€๊ณ„์™€ ๋น„์‹๋ณ„ ๊ด€๊ณ„๋Š” ๋ถ€๋ชจ ์—”ํ‹ฐํ‹ฐ์˜ ํ‚ค๊ฐ€ ์ž์‹ ์—”ํ‹ฐํ‹ฐ์—์„œ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€์— ๋”ฐ๋ผ ๊ตฌ๋ถ„๋œ๋‹ค.

  • ์‹๋ณ„ ๊ด€๊ณ„: ๋ถ€๋ชจ ํ…Œ์ด๋ธ”์˜ ํ‚ค๊ฐ€ ์ž์‹ ํ…Œ์ด๋ธ”๋กœ ์ „์ด๋˜์—ˆ์„ ๋•Œ, ์ž์‹ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค์— ํฌํ•จ๋˜๋Š” ๊ด€๊ณ„
  • ๋น„์‹๋ณ„ ๊ด€๊ณ„: ๋ถ€๋ชจ ํ…Œ์ด๋ธ”์˜ ํ‚ค๊ฐ€ ์ž์‹ ํ…Œ์ด๋ธ”๋กœ ์ „์ด๋˜์—ˆ์ง€๋งŒ, ์ž์‹ ํ…Œ์ด๋ธ”์˜ ์ผ๋ฐ˜ ์™ธ๋ž˜ํ‚ค๋กœ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ๊ด€๊ณ„

ERD์—์„œ๋Š” ๋ณดํ†ต ์‹๋ณ„ ๊ด€๊ณ„๋ฅผ ์‹ค์„ , ๋น„์‹๋ณ„ ๊ด€๊ณ„๋ฅผ ์ ์„ ์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ถ€์„œ์™€ ์‚ฌ์›์ด ์žˆ์„ ๋•Œ, ์‚ฌ์›์ด ๋ฐ˜๋“œ์‹œ ๋ถ€์„œ์˜ ํ‚ค๋ฅผ ์ž์‹ ์˜ ๊ธฐ๋ณธํ‚ค๋กœ ํฌํ•จํ•ด์•ผ ํ•˜๋Š” ๊ตฌ์กฐ๋ผ๋ฉด ์‹๋ณ„ ๊ด€๊ณ„๊ฐ€ ๋œ๋‹ค. ๋ฐ˜๋Œ€๋กœ ์‚ฌ์› ํ…Œ์ด๋ธ”์ด ๋ณ„๋„์˜ ์‚ฌ์›๋ฒˆํ˜ธ๋ฅผ ๊ธฐ๋ณธํ‚ค๋กœ ๊ฐ€์ง€๊ณ , ๋ถ€์„œ๋ฒˆํ˜ธ๋Š” ์†Œ์†์„ ๋‚˜ํƒ€๋‚ด๋Š” ์™ธ๋ž˜ํ‚ค๋กœ๋งŒ ์‚ฌ์šฉ๋œ๋‹ค๋ฉด ๋น„์‹๋ณ„ ๊ด€๊ณ„๊ฐ€ ๋œ๋‹ค.

3.3 M:N ๊ด€๊ณ„ ํ•ด์†Œ

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” M:N ๊ด€๊ณ„๋ฅผ ์ง์ ‘ ํ‘œํ˜„ํ•˜๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์—, ๋ณดํ†ต ์ค‘๊ฐ„ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด 1:N ๊ด€๊ณ„ ๋‘ ๊ฐœ๋กœ ๋ถ„ํ•ดํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ฑ…๊ณผ ์ €์ž์˜ ๊ด€๊ณ„๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด, ํ•œ ๊ถŒ์˜ ์ฑ…์€ ์—ฌ๋Ÿฌ ์ €์ž๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ  ํ•œ ๋ช…์˜ ์ €์ž๋„ ์—ฌ๋Ÿฌ ์ฑ…์„ ์“ธ ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ฑ…๊ณผ ์ €์ž ์‚ฌ์ด์— ์ฑ…_์ €์ž ๊ฐ™์€ ์—ฐ๊ฒฐ ํ…Œ์ด๋ธ”์„ ๋‘”๋‹ค.

erDiagram
    direction LR
    BOOK ||--o{ BOOK_AUTHOR : "ํฌํ•จ"
    AUTHOR ||--o{ BOOK_AUTHOR : "์ฐธ์—ฌ"

    BOOK["์ฑ…"] {
        int book_id PK "์ฑ…ID"
        string book_name "์ฑ…์ด๋ฆ„"
    }

    AUTHOR["์ €์ž"] {
        int author_id PK "์ €์žID"
        string author_name "์ €์ž์ด๋ฆ„"
    }

    BOOK_AUTHOR["์ฑ…_์ €์ž"] {
        int book_id PK, FK "์ฑ…ID"
        int author_id PK, FK "์ €์žID"
    }

๋‹ค๋งŒ ์กฐํšŒ ์„ฑ๋Šฅ์„ ์ด์œ ๋กœ ์—ฐ๊ฒฐ ํ…Œ์ด๋ธ”์— ์ฑ…์ด๋ฆ„, ์ €์ž์ด๋ฆ„ ๊ฐ™์€ ๊ฐ’์„ ํ•จ๊ป˜ ์ €์žฅํ•˜๊ณ  ์‹ถ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” ์ฑ… ์ด๋ฆ„์ด ์ฑ… ID์— ์ข…์†๋˜๊ณ , ์ €์ž ์ด๋ฆ„์ด ์ €์ž ID์— ์ข…์†๋˜๋Š” ๊ตฌ์กฐ์ด๋ฏ€๋กœ 2์ •๊ทœํ˜•์„ ์œ„๋ฐ˜ํ•œ๋‹ค.

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

4. Attribute ์„ค๊ณ„

์†์„ฑ์€ ์—”ํ‹ฐํ‹ฐ์˜ ์„ฑ์งˆ, ๋ถ„๋ฅ˜, ์ˆ˜๋Ÿ‰, ์ƒํƒœ, ํŠน์„ฑ ๋“ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์„ธ๋ถ€ ํ•ญ๋ชฉ์ด๋‹ค. ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ตฌ์ฒดํ™”ํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์†์„ฑ์„ ์ •์˜ํ•œ๋‹ค.

4.1 ๊ธฐ๋ณธ ์†์„ฑ

๊ธฐ๋ณธ ์†์„ฑ์€ ํ•ด๋‹น ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์—…๋ฌด์ ์œผ๋กœ ์›๋ž˜ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์†์„ฑ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ง์› ์—”ํ‹ฐํ‹ฐ์˜ ์ง์›๋ช…, ์ฃผ์†Œ, ๊ธ‰์—ฌ, ์„ฑ๋ณ„, ์ƒ๋…„์›”์ผ ๋“ฑ์€ ๊ธฐ๋ณธ ์†์„ฑ์— ํ•ด๋‹นํ•œ๋‹ค.

4.2 ์„ค๊ณ„ ์†์„ฑ

์„ค๊ณ„ ์†์„ฑ์€ ์›๋ž˜ ์—…๋ฌด์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š์ง€๋งŒ, ์‹œ์Šคํ…œ์˜ ํšจ์œจ์„ฑ์ด๋‚˜ ์‹๋ณ„์„ ์œ„ํ•ด ์ž„์˜๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ์†์„ฑ์ด๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ์ฝ”๋“œ, ์ผ๋ จ๋ฒˆํ˜ธ, ์ˆœ๋ฒˆ ๊ฐ™์€ ๊ฐ’์ด ์žˆ๋‹ค.

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

์ด๋Ÿด ๋•Œ ๋ฐฉ๋ฌธ ์ˆœ๋ฒˆ ๊ฐ™์€ ์„ค๊ณ„ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•˜๋ฉด์„œ ๋ฐฉ๋ฌธ ์ด๋ ฅ์„ ์•ˆ์ •์ ์œผ๋กœ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

erDiagram
    direction LR
    CUSTOMER ||--o{ VISIT : "์š”์ฒญ"

    CUSTOMER["๊ณ ๊ฐ"] {
        int customer_id PK "๊ณ ๊ฐ๋ฒˆํ˜ธ"
        string customer_name "๊ณ ๊ฐ๋ช…"
    }

    VISIT["๋ฐฉ๋ฌธ"] {
        int customer_id PK, FK "๊ณ ๊ฐ๋ฒˆํ˜ธ"
        int visit_seq PK "๋ฐฉ๋ฌธ์ˆœ๋ฒˆ"
        datetime visited_at "๋ฐฉ๋ฌธ์ผ์‹œ"
        string visit_content "๋ฐฉ๋ฌธ๋‚ด์šฉ"
    }

4.3 ํŒŒ์ƒ ์†์„ฑ

ํŒŒ์ƒ ์†์„ฑ์€ ๋‹ค๋ฅธ ์†์„ฑ์ด๋‚˜ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ ๊ณ„์‚ฐํ•˜๊ฑฐ๋‚˜ ๋ณ€ํ˜•ํ•ด์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์ด๋‹ค. ํŒŒ์ƒ ์†์„ฑ์€ ๋ฐ์ดํ„ฐ ์ค‘๋ณต๊ณผ ๋ฌด๊ฒฐ์„ฑ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๊ธ‰์  ์ ๊ฒŒ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์› ํ…Œ์ด๋ธ”์— ๋ถ€์–‘์ž์ˆ˜ ์ปฌ๋Ÿผ์„ ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋ถ€์–‘์ž์ˆ˜๋Š” ๋ถ€์–‘๊ฐ€์กฑ ํ…Œ์ด๋ธ”์—์„œ COUNT(*)๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ด๋ฏ€๋กœ ํŒŒ์ƒ ์†์„ฑ์ด๋‹ค.

erDiagram
    direction LR
    EMPLOYEE ||--o{ DEPENDENT : "๊ฐ€์ง"

    EMPLOYEE["์‚ฌ์›"] {
        int employee_id PK "์‚ฌ์›๋ฒˆํ˜ธ"
        string employee_name "์‚ฌ์›๋ช…"
        int dependent_count "๋ถ€์–‘์ž์ˆ˜"
    }

    DEPENDENT["๋ถ€์–‘๊ฐ€์กฑ"] {
        int employee_id PK, FK "์‚ฌ์›๋ฒˆํ˜ธ"
        string dependent_name PK "๋ถ€์–‘๊ฐ€์กฑ๋ช…"
        string relationship "๊ด€๊ณ„"
    }

์‚ฌ์›.๋ถ€์–‘์ž์ˆ˜๋ฅผ ๋ณ„๋„ ์ปฌ๋Ÿผ์œผ๋กœ ์ €์žฅํ•˜๋ฉด ๋ถ€์–‘๊ฐ€์กฑ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œ๋  ๋•Œ๋งˆ๋‹ค ํ•จ๊ป˜ ๊ฐฑ์‹ ํ•ด์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ ์‹ค์ œ ๋ถ€์–‘๊ฐ€์กฑ์€ 3๋ช…์ธ๋ฐ ์‚ฌ์› ํ…Œ์ด๋ธ”์˜ ๋ถ€์–‘์ž์ˆ˜๊ฐ€ 2๋ช…์ด๋ผ๋ฉด ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์ด ๊นจ์ง„ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ๋ถ€์–‘์ž์ˆ˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์กฐํšŒ ์‹œ์ ์— ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด ์ ์ ˆํ•˜๋‹ค. ์„ฑ๋Šฅ์ƒ ๋ฐ˜๋“œ์‹œ ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค๋ฉด Trigger, Computed Column, ๋ฐฐ์น˜ ์ž‘์—… ๋“ฑ์„ ํ†ตํ•ด ์ •ํ•ฉ์„ฑ์„ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.

5. ์„ค๊ณ„ ์‹œ ์ฃผ์˜ํ•ด์•ผ ํ•  ๋ฌธ์ œ

5.1 ์ค‘๋ณต ์†์„ฑ ๋ฌธ์ œ

๋ฐฉ๋ฌธ1์ผ์‹œ, ๋ฐฉ๋ฌธ1๋‚ด์šฉ, ๋ฐฉ๋ฌธ2์ผ์‹œ, ๋ฐฉ๋ฌธ2๋‚ด์šฉ์ฒ˜๋Ÿผ ๋ฐ˜๋ณต๋˜๋Š” ์†์„ฑ์„ ์ปฌ๋Ÿผ์œผ๋กœ ๊ณ„์† ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์€ ์ข‹์ง€ ์•Š๋‹ค. ๋ฐฉ๋ฌธ ํšŸ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚  ๋•Œ๋งˆ๋‹ค ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๊ณ , ์กฐํšŒ์™€ ๊ด€๋ฆฌ๋„ ์–ด๋ ค์›Œ์ง„๋‹ค.

์ด๋Ÿฐ ๊ฒฝ์šฐ ๋ฐ˜๋ณต๋˜๋Š” ์†์„ฑ์„ ๋ณ„๋„์˜ ์—”ํ‹ฐํ‹ฐ๋กœ ๋ถ„๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ๋ฐฉ๋ฌธ์€ ๊ณ ๊ฐ์— ์ข…์†๋œ ๋ฐ˜๋ณต ๋ฐ์ดํ„ฐ์ด๋ฏ€๋กœ ๋ฐฉ๋ฌธ ํ…Œ์ด๋ธ”์„ ๋”ฐ๋กœ ๋งŒ๋“ค๊ณ , ๊ณ ๊ฐ๊ณผ ๋ฐฉ๋ฌธ์„ 1:N ๊ด€๊ณ„๋กœ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์ด ์ ์ ˆํ•˜๋‹ค.

5.2 ํŒŒ์ƒ ์†์„ฑ์˜ ์ •ํ•ฉ์„ฑ ๋ฌธ์ œ

ํŒŒ์ƒ ์†์„ฑ์€ ํŽธ๋ฆฌํ•˜์ง€๋งŒ ์ •ํ•ฉ์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฝ๋‹ค. ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์—์„œ ๊ณ„์‚ฐ ๊ฐ€๋Šฅํ•œ ๊ฐ’์„ ์ปฌ๋Ÿผ์œผ๋กœ ์ €์žฅํ•˜๋ฉด, ์›๋ณธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ํŒŒ์ƒ ์ปฌ๋Ÿผ๋„ ํ•จ๊ป˜ ๊ฐฑ์‹ ๋˜์–ด์•ผ ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ํŒŒ์ƒ ์†์„ฑ์„ ์ €์žฅํ•  ๋•Œ๋Š” ๋‹ค์Œ ๊ธฐ์ค€์„ ํ•จ๊ป˜ ๊ฒ€ํ† ํ•ด์•ผ ํ•œ๋‹ค.

  • ์กฐํšŒ ์„ฑ๋Šฅ์ƒ ์ •๋ง ์ €์žฅ์ด ํ•„์š”ํ•œ๊ฐ€?
  • ์›๋ณธ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์‹œ ํŒŒ์ƒ ๊ฐ’์„ ์–ด๋–ป๊ฒŒ ๊ฐฑ์‹ ํ•  ๊ฒƒ์ธ๊ฐ€?
  • Trigger, ๊ณ„์‚ฐ ์ปฌ๋Ÿผ, ๋ฐฐ์น˜ ์ž‘์—… ์ค‘ ์–ด๋–ค ๋ฐฉ์‹์ด ์ ์ ˆํ•œ๊ฐ€?
  • ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?

5.3 ๋ฐ˜์ •๊ทœํ™”์™€ ์„ฑ๋Šฅ ์‚ฌ์ด์˜ ๊ท ํ˜•

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

์˜ˆ๋ฅผ ๋“ค์–ด ์ฑ… ID, ์ €์ž ID, ์ฑ… ์ด๋ฆ„, ์ €์ž ์ด๋ฆ„์„ ์ž์ฃผ ์กฐํšŒํ•ด์•ผ ํ•œ๋‹ค๋ฉด ์ฑ…, ์ €์ž, ์ฑ…_์ €์ž ์„ธ ํ…Œ์ด๋ธ”์„ ๋งค๋ฒˆ ์กฐ์ธํ•ด์•ผ ํ•œ๋‹ค. ์ด ๊ฒฝ์šฐ ์„ฑ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์ผ๋ถ€ ๊ฐ’์„ ์ค‘๋ณต ์ €์žฅํ•˜๋Š” ๋ฐ˜์ •๊ทœํ™”๋ฅผ ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค๋งŒ ๋ฐ˜์ •๊ทœํ™”๋Š” ์ •๊ทœํ™” ์œ„๋ฐ˜์„ ์˜๋„์ ์œผ๋กœ ๊ฐ์ˆ˜ํ•˜๋Š” ์„ค๊ณ„๋‹ค. ๋”ฐ๋ผ์„œ ์„ฑ๋Šฅ ์ด์ ๊ณผ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๋น„์šฉ์„ ํ•จ๊ป˜ ํŒ๋‹จํ•ด์•ผ ํ•œ๋‹ค.

6. ์Šˆํผํƒ€์ž…๊ณผ ์„œ๋ธŒํƒ€์ž…

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

์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์›์ด๋ผ๋Š” ๊ณตํ†ต ๊ฐœ๋… ์•„๋ž˜์— ๊ธฐ์ˆ ์ง๊ณผ ๊ด€๋ฆฌ์ง์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์› ํ…Œ์ด๋ธ”์—๋Š” ๋ชจ๋“  ์‚ฌ์›์ด ๊ณตํ†ต์œผ๋กœ ๊ฐ€์ง€๋Š” ์†์„ฑ์„ ๋‘๊ณ , ๊ธฐ์ˆ ์ง๊ณผ ๊ด€๋ฆฌ์ง ํ…Œ์ด๋ธ”์—๋Š” ๊ฐ ์œ ํ˜•๋งŒ ๊ฐ€์ง€๋Š” ์†์„ฑ์„ ๋‘”๋‹ค.

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

7. ์‹ค์Šต ERD ์ •๋ฆฌ

7.1 ํšŒ์‚ฌ-๋ถ€์„œ-์ง์›-ํ”„๋กœ์ ํŠธ ์˜ˆ์ œ

๋‹ค์Œ์€ ํšŒ์‚ฌ, ๋ถ€์„œ, ์ง์›, ํ”„๋กœ์ ํŠธ, ์ง€์—ญ, ๋ถ€์–‘๊ฐ€์กฑ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ฆฌํ•œ ERD ์˜ˆ์ œ๋‹ค. ์ง์›๊ณผ ํ”„๋กœ์ ํŠธ๋Š” M:N ๊ด€๊ณ„์ด๋ฏ€๋กœ ์ง์›_ํ”„๋กœ์ ํŠธ ์—ฐ๊ฒฐ ํ…Œ์ด๋ธ”๋กœ ํ•ด์†Œํ•œ๋‹ค.

erDiagram
    direction LR
    COMPANY ||--o{ DEPARTMENT : "๊ตฌ์„ฑ"
    DEPARTMENT ||..o{ EMPLOYEE : "์†Œ์†"
    EMPLOYEE ||..o| DEPARTMENT : "๊ด€๋ฆฌ"
    DEPARTMENT ||..o{ LOCATION : "์œ„์น˜"
    DEPARTMENT ||..o{ PROJECT : "๊ด€๋ฆฌ"
    EMPLOYEE ||--o{ EMPLOYEE_PROJECT : "์ฐธ์—ฌ"
    PROJECT ||--o{ EMPLOYEE_PROJECT : "ํฌํ•จ"
    EMPLOYEE ||--o{ DEPENDENT : "๊ฐ€์ง"
    EMPLOYEE ||..o{ EMPLOYEE : "๊ฐ๋…"
    PROJECT ||..|| LOCATION : "์œ„์น˜"

    COMPANY["ํšŒ์‚ฌ"] {
        int company_id PK "ํšŒ์‚ฌ๋ฒˆํ˜ธ"
    }

    DEPARTMENT["๋ถ€์„œ"] {
        int department_id PK "๋ถ€์„œ๋ฒˆํ˜ธ"
        int company_id PK, FK "ํšŒ์‚ฌ๋ฒˆํ˜ธ"
        int manager_employee_id FK "๊ด€๋ฆฌ์ž์ง์›๋ฒˆํ˜ธ"
        string department_name "๋ถ€์„œ๋ช…"
        int employee_count "๋ถ€์„œ๋‚ด์ง์›์ˆ˜"
        date manager_started_at "๊ด€๋ฆฌ์ž๊ทผ๋ฌด์‹œ์ž‘์ผ"
    }

    LOCATION["์ง€์—ญ"] {
        int location_id PK "์ง€์—ญID"
        int department_id FK "๋ถ€์„œ๋ฒˆํ˜ธ"
        string location_name "์ง€์—ญ๋ช…"
    }

    PROJECT["ํ”„๋กœ์ ํŠธ"] {
        int project_id PK "ํ”„๋กœ์ ํŠธ๋ฒˆํ˜ธ"
        int department_id FK "๋ถ€์„œ๋ฒˆํ˜ธ"
        int location_id FK "์ง€์—ญID"
        string project_name "ํ”„๋กœ์ ํŠธ๋ช…"
    }

    EMPLOYEE["์ง์›"] {
        int employee_id PK "์ง์›๋ฒˆํ˜ธ"
        int supervisor_employee_id FK "์ง์†์ƒ์‚ฌ์ง์›๋ฒˆํ˜ธ"
        int department_id FK "๋ถ€์„œ๋ฒˆํ˜ธ"
        string resident_number "์ฃผ๋ฏผ๋ฒˆํ˜ธ"
        string employee_name "์ง์›๋ช…"
        string address "์ฃผ์†Œ"
        int salary "๊ธ‰์—ฌ"
        string gender "์„ฑ๋ณ„"
        date birth_date "์ƒ๋…„์›”์ผ"
    }

    EMPLOYEE_PROJECT["์ง์›_ํ”„๋กœ์ ํŠธ"] {
        int employee_id PK, FK "์ง์›๋ฒˆํ˜ธ"
        int project_id PK, FK "ํ”„๋กœ์ ํŠธ๋ฒˆํ˜ธ"
        int work_hours "๊ทผ๋ฌด์‹œ๊ฐ„"
    }

    DEPENDENT["๋ถ€์–‘๊ฐ€์กฑ"] {
        string dependent_name PK "๋ถ€์–‘๊ฐ€์กฑ๋ช…"
        int employee_id PK, FK "์ง์›๋ฒˆํ˜ธ"
        string gender "์„ฑ๋ณ„"
        date birth_date "์ƒ๋…„์›”์ผ"
        string relationship "๊ด€๊ณ„"
    }

7.2 ์„ค๋ฌธ์ง€ ํ”„๋กœ์ ํŠธ ์˜ˆ์ œ

์„ค๋ฌธ์ง€ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์„ค๋ฌธ์ง€, ์„ค๋ฌธ์ง€ํ•ญ๋ชฉ, ์„ค๋ฌธ์ง€๋ฌธํ•ญ์„ ์—”ํ‹ฐํ‹ฐ๋กœ ๋„์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜๋‚˜์˜ ์„ค๋ฌธ์ง€๋Š” ์—ฌ๋Ÿฌ ํ•ญ๋ชฉ์„ ๊ฐ€์ง€๊ณ , ํ•˜๋‚˜์˜ ํ•ญ๋ชฉ์€ ์—ฌ๋Ÿฌ ๋ฌธํ•ญ์„ ๊ฐ€์ง„๋‹ค.

erDiagram
    direction LR
    SURVEY ||--o{ SURVEY_ITEM : "ํฌํ•จ"
    SURVEY_ITEM ||--|{ SURVEY_OPTION : "๊ตฌ์„ฑ"

    SURVEY["์„ค๋ฌธ์ง€"] {
        int survey_id PK "์„ค๋ฌธ์ง€๋ฒˆํ˜ธ"
        string title "์ œ๋ชฉ"
        date created_at "์ž‘์„ฑ์ผ์ž"
        date started_at "์„ค๋ฌธ์ง€์‹œ์ž‘์ผ"
        date ended_at "์„ค๋ฌธ์ง€์ข…๋ฃŒ์ผ"
        string is_closed "์„ค๋ฌธ์ง€์ž‘์„ฑ๋งˆ๊ฐ์—ฌ๋ถ€"
        string description "์„ค๋ช…"
    }

    SURVEY_ITEM["์„ค๋ฌธ์ง€ํ•ญ๋ชฉ"] {
        int question_id PK "๋ฌธ์ œ๋ฒˆํ˜ธ"
        string question "๋ฌธ์ œ"
        int survey_id FK "์„ค๋ฌธ์ง€๋ฒˆํ˜ธ"
    }

    SURVEY_OPTION["์„ค๋ฌธ์ง€๋ฌธํ•ญ"] {
        int survey_id PK, FK "์„ค๋ฌธ์ง€๋ฒˆํ˜ธ"
        int question_id FK "๋ฌธ์ œ๋ฒˆํ˜ธ"
        int option_id "๋ฌธํ•ญ๋ฒˆํ˜ธ"
        string option_content "๋ฌธํ•ญ๋‚ด์šฉ"
    }

8. ์˜ค๋Š˜์˜ ํšŒ๊ณ 

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์—์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ํ…Œ์ด๋ธ”์„ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์—…๋ฌด ๊ทœ์น™์„ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ์ •ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํŠนํžˆ M:N ๊ด€๊ณ„ ํ•ด์†Œ, ์‹๋ณ„ ๊ด€๊ณ„์™€ ๋น„์‹๋ณ„ ๊ด€๊ณ„ ๊ตฌ๋ถ„, ํŒŒ์ƒ ์†์„ฑ์˜ ์ €์žฅ ์—ฌ๋ถ€๋Š” ์‹ค์ œ ์„ค๊ณ„์—์„œ ์ž์ฃผ ๊ณ ๋ฏผํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด๋‹ค.

์ •๊ทœํ™”๋Š” ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ์›์น™์ด๊ณ , ๋ฐ˜์ •๊ทœํ™”๋Š” ์„ฑ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ ๋•Œ๋ฌธ์— ์„ ํƒํ•˜๋Š” ์˜ˆ์™ธ์ ์ธ ์„ค๊ณ„๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ˜์ •๊ทœํ™”๋ฅผ ์ ์šฉํ•  ๋•Œ๋Š” ์ค‘๋ณต ๋ฐ์ดํ„ฐ์˜ ์ •ํ•ฉ์„ฑ์„ ์–ด๋–ป๊ฒŒ ์œ ์ง€ํ• ์ง€๊นŒ์ง€ ํ•จ๊ป˜ ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ

์ตœ์šฐ์ง„ ํ”„๋กœํ•„

Woojin

๊ตฌ์กฐ์ ์œผ๋กœ ์‚ฌ๊ณ ํ•˜๊ณ , ๊ทผ๊ฑฐ ์žˆ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.