πŸ’Ώ 관계 데이터 λͺ¨λΈ

νŒ”λ¦¬λ™Β·2021λ…„ 8μ›” 9일
1
post-thumbnail

😎 관계 데이터 λͺ¨λΈμ˜ κ°œλ…

λ¦΄λ ˆμ΄μ…˜: ν…Œμ΄λΈ”
νˆ¬ν”Œ: row

λ¦΄λ ˆμ΄μ…˜μ˜ νŠΉμ„±

  • 관계 데이터 λͺ¨λΈμ˜ λ¦΄λ ˆμ΄μ…˜μ—λŠ” λ„€ 가지 μ€‘μš”ν•œ νŠΉμ„±μ΄ μžˆλ‹€. 기본적으둜 이 λ„€ 가지 νŠΉμ„±μ„ λ§Œμ‘±ν•΄μ•Ό ν…Œμ΄λΈ”μ΄ λ¦΄λ ˆμ΄μ…˜μœΌλ‘œ 인정받을 수 μžˆλ‹€.

νˆ¬ν”Œ(row)의 μœ μΌμ„±: ν•˜λ‚˜μ˜ λ¦΄λ ˆμ΄μ…˜(ν…Œμ΄λΈ”)μ—λŠ” λ™μΌν•œ νˆ¬ν”Œμ΄ μ‘΄μž¬ν•  수 μ—†λ‹€.

  • ν•˜λ‚˜μ˜ λ¦΄λ ˆμ΄μ…˜μ— 독같은 νˆ¬ν”Œμ΄ 있으면 μ•ˆ 되고, λͺ¨λ“  νˆ¬ν”Œμ—λŠ” λ‹€λ₯Έ νˆ¬ν”Œκ³Ό κ΅¬λ³„λ˜λŠ” μœ μΌν•œ νŠΉμ„±μ΄ μžˆμ–΄μ•Ό ν•œλ‹€.

  • 관계 데이터 λͺ¨λΈμ˜ λ¦΄λ ˆμ΄μ…˜μ—μ„œλŠ” ν•˜λ‚˜ λ„λŠ” μ—¬λŸ¬ 개의 속성을 미리 선정해두고 이 속성 값을 νˆ¬ν”Œλ§ˆλ‹€ λ‹€λ₯΄κ²Œ μ§€μ •ν•˜μ—¬ νˆ¬ν”Œμ˜μœ μΌμ„±μ„ νŒλ‹¨ν•œλ‹€.

  • 이처럼 νˆ¬ν”Œμ„ μœ μΌν•˜κ²Œ κ΅¬λ³„ν•˜κΈ° μœ„ν•΄ μ„ μ •λ˜λŠ” 속성을 ν‚€(key)라고 λΆ€λ₯Έλ‹€.

νˆ¬ν”Œμ˜ λ¬΄μˆœμ„œ: ν•˜λ‚˜μ˜ λ¦΄λ ˆμ΄μ…˜μ—μ„œ νˆ¬ν”Œ μ‚¬μ΄μ˜ μˆœμ„œλŠ” λ¬΄μ˜λ―Έν•˜λ‹€.

  • νˆ¬ν”Œ μˆœμ„œκ°€ λ°”κ·„λ‹€κ³  λ‹€λ₯Έ λ¦΄λ ˆμ΄μ…˜μ΄ 될 수 μ—†κ³ , μˆœμ„œμ™€ 상관없이 νˆ¬ν”Œ λ‚΄μš©μ΄ κ°™μœΌλ©΄ λ™μΌν•œ λ¦΄λ ˆμ΄μ…˜μ΄λ‹€. λ°μ΄ν„°λ² μ΄μŠ€λŠ” μœ„μΉ˜κ°€ μ•„λ‹Œ 'λ‚΄μš©'으둜 κ²€μƒ‰λ˜λ―€λ‘œ νˆ¬ν”Œμ˜ μˆœμ„œλŠ” μ€‘μš”ν•˜μ§€ μ•Šλ‹€.

μ†μ„±μ˜ λ¬΄μˆœμ„œ: ν•˜λ‚˜μ˜ λ¦΄λ ˆμ΄μ…˜μ—μ„œ μ†μ„±μ˜ μˆœμ„œλŠ” λ¬΄μ˜λ―Έν•˜λ‹€.

  • μ†μ„±μ˜ μˆœμ„œκ°€ λ°”λ€Œμ–΄λ„ λ‹€λ₯Έ λ¦΄λ ˆμ΄μ…˜μ΄ 될 수 μ—†κ³ , μˆœμ„œμ™€ 상관없이 같은 μ†μ„±λ“€λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆμ–΄μ•Ό λ™μΌν•œ λ¦΄λ ˆμ΄μ…˜μ΄λ‹€.
  • 속성 값은 λ¦΄λ ˆμ΄μ…˜μ—μ„œ μœ„μΉ˜κ°€ μ•„λ‹Œ μ†μ„±μ˜ μ΄λ¦„μœΌ,둜 μ ‘κ·Όν•˜λ―€λ‘œ ν•˜λ‚˜μ˜ λ¦΄λ ˆμ΄μ…˜μ—λŠ” 이름이 같은 속성이 μ‘΄μž¬ν•  수 μ—†κ³ , 이름도 μ†μ„±μ˜ μ˜λ―Έκ°€ λͺ…ν™•ν•˜κ²Œ λ“€μ–΄λ‚˜λŠ” 것이 μ’‹λ‹€.

μ†μ„±μ˜ μ›μžμ„±:속성 κ°’μœΌλ‘œ μ›μž κ°’λ§Œ μ‚¬μš©ν•  수 μžˆλ‹€.

  • λͺ¨λ“  속성값은 λ”λŠ” λΆ„ν•΄ν•  수 μ—†λŠ” ν•˜λ‚˜μ˜ κ°’, 즉 μ›μž κ°’λ§Œ κ°€μ§ˆ 수 μžˆλ‹€. λ‹€μ‹œ 말해 ν•˜λ‚˜μ˜ 속성은 μ—¬λŸ¬κ°œμ˜ κ°’, 즉 닀쀑 값을 κ°€μ§ˆ 수 μ—†λ‹€.
  • ν˜„μ‹€μ—μ„œλŠ” 직업이 λ‘˜ 이상인 μ‚¬λžŒμ΄ μ‘΄μž¬ν•  수 μžˆμ§€λ§Œ, 관계 데이터 λͺ¨λΈμ€ 이런 λ³΅μž‘ν•œ κ°œλ…μ„ λ°°μ œν•˜κ³  λ¦΄λ ˆμ΄μ…˜μ„ λ‹¨μˆœν•œ ꡬ쑰둜 μ •μ˜ν•˜κ³ μž ν•˜λŠ” νŠΉμ§•μ΄ μžˆμ–΄ 닀쀑 값을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

ν‚€μ˜ μ’…λ₯˜

  • νˆ¬ν”Œ(row)을 μœ μΌν•˜κ²Œ κ΅¬λ³„ν•˜κΈ° μœ„ν•΄ λͺ¨λ“  속성을 μ΄μš©ν•˜λŠ” 것보닀 일뢀 μ†μ„±λ§Œ μ΄μš©ν•˜λŠ” 것이 νš¨μœ¨μ„±μ„ 높일 수 μžˆλ‹€.

  • κ΅¬λ³„ν•΄μ£ΌλŠ” 역할은 속성 λ˜λŠ” μ†μ„±λ“€μ˜ 집합인 ν‚€κ°€ λ‹΄λ‹Ήν•œλ‹€.

  • ν‚€(key)λŠ” 관계 데이터 λͺ¨λΈμ—μ„œ μ€‘μš”ν•œ μ œμ•½μ‘°κ±΄μ„ μ •μ˜ν•œλ‹€.

  • 관계 데이터 λͺ¨λΈμ—μ„œλŠ” ν‚€λ₯Ό 5κ°€μ§€λ‘œ λΆ„λ₯˜ν•  수 μžˆλ‹€.

    • κΈ°λ³Έν‚€(primary key)
    • λŒ€μ²΄ν‚€ (alternate key)
    • μ™Έλž˜ν‚€ (foreign key)
    • μŠˆνΌν‚€ (super key)
    • 후보킀 (candinate key)

μŠˆνΌν‚€ (super key)

  • μŠˆνΌν‚€λŠ” μœ μΌμ„±μ˜ νŠΉμ„±μ„ λ§Œμ‘±ν•˜λŠ” 속성 λ˜λŠ” μ†μ„±λ“€μ˜ '집합'이닀. μœ μΌμ„±(uniqueness)은 ν‚€κ°€ κ°–μΆ”μ–΄μ•Ό ν•˜λŠ” κΈ°λ³Έ νŠΉμ„±μœΌλ‘œ, ν•˜λ‚˜μ˜ λ¦΄λ ˆμ΄μ…˜μ—μ„œ ν‚€λ‘œ μ§€μ •λœ 속성 값은 νˆ¬ν”Œλ§ˆλ‹€ 달라야 ν•œλ‹€λŠ” μ˜λ―Έλ‹€. 즉 ν‚€ 값이 같은 νˆ¬ν”Œμ€ μ‘΄μž¬ν•  수 μ—†λ‹€.

후보킀(candinate key)

  • ν›„λ³΄ν‚€λŠ” μœ μΌμ„±κ³Ό μ΅œμ†Œμ„±μ„ λ§Œμ‘±ν•˜λŠ” 속성 λ˜λŠ” μ†μ„±λ“€μ˜ 집합이닀. μ΅œμ†Œμ„±μ€ κΌ­ ν•„μš”ν•œ μ΅œμ†Œν•œμ˜ μ†μ„±λ“€λ‘œλ§Œ ν‚€λ₯Ό κ΅¬μ„±ν•˜λŠ” νŠΉμ„±μ΄λ‹€. κ·ΈλŸ¬λ―€λ‘œ ν•˜λ‚˜μ˜ μ†μ„±μœΌλ‘œ κ΅¬μ„±λœ ν‚€λŠ” λ‹Ήμ—°νžˆ μ΅œμ†Œμ„±μ„ λ§Œμ‘±ν•œλ‹€.

  • ν›„λ³΄ν‚€λŠ” νˆ¬ν”Œμ„ μœ μΌν•˜κ²Œ κ΅¬λ³„ν•˜κΈ° μœ„ν•΄ κΌ­ ν•„μš”ν•œ μ΅œμ†Œν•œμ˜ μ†μ„±λ“€λ‘œλ§Œ μ΄λ£¨μ–΄μ§€λ―€λ‘œ μŠˆνΌν‚€ μ€‘μ—μ„œ μ΅œμ†Œμ„±μ„ λ§Œμ‘±ν•˜λŠ” 것이 후보킀가 λœλ‹€.

  • 후보킀가 되기 μœ„ν•΄ λ§Œμ‘±ν•΄μ•Όν•˜λŠ” μœ μΌμ„±κ³Ό μ΅œμ†Œμ„±μ˜ νŠΉμ„±μ€ μƒˆλ‘œμš΄ νˆ¬ν”Œμ΄ μ‚½μž…λ˜κ±°λ‚˜ κΈ°μ‘΄ νˆ¬ν”Œμ˜ 속성값이 λ°”λ€Œμ–΄λ„ μœ μ§€λ˜μ–΄μ•Όν•œλ‹€.

  • 그리고 후보킀λ₯Ό μ„ μ •ν•  λ•ŒλŠ” ν˜„μž¬μ˜ λ¦΄λ ˆμ΄μ…˜ λ‚΄μ—¬γ…›γ…‡, 즉 λ¦΄λ ˆμ΄μ…˜ μΈμŠ€ν„΄μŠ€λ§Œ 보고 μœ μΌμ„±κ³Ό μ΅œμ†Œμ„±μ„νŒλ‹¨ν•΄μ„œλŠ” μ•ˆλœλ‹€.

κΈ°λ³Έν‚€(primary key)

  • λ¦΄λ ˆμ΄μ…˜μ—μ„œ νˆ¬ν”Œμ„ κ΅¬λ³„ν—ˆκΈ° μœ„ν•΄ μ—¬λŸ¬ 개의 후보킀λ₯Ό λͺ¨λ‘ μ‚¬μš©ν•  ν•„μš”λŠ” μ—†λ‹€. 데이터 베이슀 μ„€κ³„μžλ‚˜ κ΄€λ¦¬μžλŠ” μ—¬λŸ¬ 후보킀 μ€‘μ—μ„œ 기본적으둜 μ‚¬μš©ν•  ν‚€λ₯Ό λ°˜λ“œμ‹œ μ„ νƒν•΄μ•Όν•˜λŠ”λ° 이것이 κΈ°λ³Έν‚€(primary key)λ‹€. λ§Œμ•½ 후보킀가 1개만 μ‘΄μž¬ν•˜λ©΄ κ°•μ—°νžˆ ν•΄λ‹Ή 후보킀λ₯Ό κΈ°λ³Έν‚€λ‘œ 선택해야 ν•˜κ² μ§€λ§Œ μ—¬λŸ¬ 개일 κ²½μš°μ—λŠ” λ°μ΄ν„°λ² μ΄μŠ€ μ‚¬μš© ν™˜κ²½μ„ κ³ λ €ν•˜μ—¬ μ ν•©ν•œ 것을 κΈ°λ³Έν‚€λ‘œ μ„ νƒν•˜λ©΄ λœλ‹€.

κΈ°λ³Έν‚€μ˜ κΈ°μ€€

  • 널 값을 κ°€μ§ˆ 수 μžˆλŠ” 속성이 ν¬ν•¨λœ ν›„λ³΄ν‚€λŠ” κΈ°λ³Έν‚€λ‘œ λΆ€μ ν•©ν•˜λ‹€.
    • κΈ°λ³Έν‚€κ°€ 널 값인 νˆ¬ν”Œμ€ λ‹€λ₯Έ νˆ¬ν”Œλ“€κ³Ό κ΅¬λ³„ν•˜μ—¬ μ ‘κ·Όν•˜κΈ° μ–΄λ €μš°λ―€λ‘œ 이런 κ°€λŠ₯성이 μžˆλŠ” ν‚€λŠ” κΈ°λ³Έν‚€λ‘œ μ„ νƒν•˜μ§€ μ•ŠλŠ” 것이 μ’‹λ‹€.
  • 값이 자주 변경될 수 μžˆλŠ” 속성이 ν¬ν•¨λœ ν›„λ³΄ν‚€λŠ” κΈ°λ³Έν‚€λ‘œ λΆ€μ ν•©ν•˜λ‹€.
    • 값이 μžμ£Όλ³€κ²½λ˜λŠ” μ†μ„±μœΌλ‘œ κ΅¬μ„±λœ 후보킀λ₯Ό κΈ°λ³Έν‚€λ‘œ μ„ νƒν•˜λ©΄ 속성 값이 λ°”λ€” λ•Œλ§ˆλ‹€ κΈ°λ³Έν‚€ κ°’μœΌλ‘œ μ ν•©ν•œμ§€ μ—¬λΆ€λ₯Ό νŒλ‹¨ν•΄μ•Ό ν•˜λ―€λ‘œ λ²ˆκ±°λ‘­λ‹€.
      κ·ΈλŸ¬λ―€λ‘œ 값이 자주 λ³€κ²½λ˜μ§€ μ•ŠλŠ” μ†μ„±μœΌλ‘œ κ΅¬μ„±λœ 후보킀λ₯Ό κΈ°λ³Έν‚€λ‘œ μ„ νƒν•˜λŠ” 것이 μ’‹λ‹€.

λ‹¨μˆœν•œ 후보킀λ₯Ό κΈ°λ³Έν‚€λ‘œ μ„ νƒν•œλ‹€.

  • λ‹¨μˆœν•œ ν›„λ³΄ν‚€λŠ” μžλ¦Ώμˆ˜κ°€ 적은 μ •μˆ˜λ‚˜ λ¬Έμžμ—΄μ˜ μ†μ„±μœΌλ‘œ κ΅¬μ„±λ˜κ±°λ‚˜, κ΅¬μ„±ν•˜λŠ” μ†μ„±μ˜ κ°œμˆ˜κ°€ 적은 후보킀닀.

λŒ€μ²΄ν‚€(alternate key)

  • λŒ€μ²΄ν‚€(alternate key)λŠ” κΈ°λ³Έν‚€λ‘œ μ„ νƒλ˜μ§€ λͺ»ν•œ 후보미듀이닀.
  • λŒ€μ²΄ν‚€λŠ” κΈ°λ³Έν‚€λ₯Ό λŒ€μ‹ ν•  수 μžˆμ§€λ§Œ κΈ°λ³Έν‚€κ°€ λ˜μ§€ λͺ»ν•˜κ³  νƒˆλ½ν•œ μ΄μœ κ°€ μžˆλ‹€.

μ™Έλž˜ν‚€(foreign key)

  • μ™Έλž˜ν‚€λŠ” μ–΄λ–€ ν…Œμ΄λΈ”μ— μ†Œμ†λœ 속성 λ˜λ‚œ 속성 집합이 λ‹€λ₯Έ ν…Œμ΄λΈ”μ˜ κΈ°λ³Έν‚€κ°€ λ˜λŠ” ν‚€λ‹€. λ‹€μ‹œ 말해 λ‹€λ₯Έ λ¦΄λ ˆμ΄μ…˜μ˜ κΈ°λ³Έν‚€λ₯Ό κ·ΈλŒ€λ‘œ μ°Έμ‘°ν•˜λŠ” μ†μ„±μ˜ 집합이 μ™Έλž˜ν‚€λ‹€.
  • μ™Έλž˜ν‚€λŠ” ν…Œμ΄λΈ”λ“€ μ‚¬μ΄μ˜ 관계λ₯Ό μ˜¬λ°”λ₯΄κ²Œ ν‘œν˜„ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•˜λ‹€

관계 데이터 λͺ¨λΈμ˜ μ œμ•½

  • 관계 데이터 λͺ¨λΈμ—μ„œ μ •μ˜ν•˜κ³  μžˆλŠ” κΈ°λ³Έ μ œμ•½ 사항은 킀와 κ΄€λ ¨ν•œ 무결성 μ œμ•½μ‘°κ±΄(integrity)이닀. 무결성은 데이터에 결함이 μ—†λŠ” μƒνƒœ, 즉 데이터가 μ •ν™•ν•˜κ³  μœ νš¨ν•˜κ²Œ μœ μ§€λœ μƒνƒœλ₯Ό λ§ν•œλ‹€.

  • 무결성 μ œμ•½μ‘°κ±΄μ˜ μ£Όμš”λͺ©μ μ€ λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯된 λ°μ΄ν„°μ˜ 무결성을 보μž₯ν•˜κ³ , λ°μ΄ν„°λ² μ΄μŠ€μ˜ μƒνƒœλ₯Ό μΌκ΄€λ˜κ²Œ μœ μ§€ν•˜λŠ” 것이닀. κ·Έλž˜μ„œ 이λ₯Ό μœ„ν•΄ ν•„μš”ν•œ μ„ΈλΆ€κ·œμΉ™λ„ μ •μ˜ν•˜κ³  μžˆλ‹€.

  • λ°μ΄ν„°λ² μ΄μŠ€κ°€ μ‚½μž… μ‚­μ„Έ μˆ˜μ • μ—°μ‚°μœΌλ‘œ μƒνƒœκ°€ λ³€ν•˜λ”λΌλ„ 무결성 μ œμ•½μ‘°κ±΄μ€ λ°˜λ“œμ‹œ μ§€μΌœμ•Όν•œλ‹€.

  • κ΄€κ²Œ 데이터 λͺ¨λΈμ΄ 기본으둜 ν¬ν•¨ν•˜κ³  μžˆλŠ” 무결성 μ œμ•½μ‘°κ±΄μ—λŠ” 개체 무결성 μ œμ•½μ‘°κ±΄κ³Ό μ°Έμ‘° 무결성 μ œμ•½μ‘°κ±΄μ΄ μžˆλ‹€. λ°μ΄ν„°λ² μ΄μŠ€μ˜ μƒνƒœλ₯Ό μΌκ΄€μ„±μžˆκ²Œ μœ μ§€ν•˜κΈ° μœ„ν•΄μ„œλŠ” 두 가지λ₯Ό λͺ¨λ‘ λ§Œμ‘±μ‹œμΌœμ•Ό ν•œλ‹€.

개체 무결성 μ œμ•½μ‘°κ±΄

  • 개체 무결성 μ œμ•½μ‘°κ±΄μ€ κΈ°λ³Έν‚€λ₯Ό κ΅¬μ„±ν•˜λŠ” λͺ¨λ“  속성은 널 값을 가지면 μ•ˆ λœλ‹€λŠ” κ·œμΉ™μ΄λ‹€. 관계 데이터 λͺ¨λΈμ—μ„œλŠ” λ¦΄λ ˆμ΄μ…˜μ— ν¬ν•¨λ˜μ–΄ μžˆλŠ” νˆ¬ν”Œλ“€μ„ μœ μΌν•˜κ²Œ ꡬ별해주고 각 νˆ¬ν”Œμ— μ‰½κ²Œ μ ‘κ·Όν•  수 μžˆλ„λ‘ λ¦΄λ ˆμ΄μ…˜λ§ˆλ‹€ κΈ°λ³Έν‚€λ₯Ό μ •μ˜ν•œλ‹€.

  • 그런데 κΈ°λ³Έν‚€λ₯Ό κ΅¬μ„±ν•˜λŠ” 속성 μ „μ²΄λ‚˜ 일뢀가 널 값이 되면 νˆ¬ν”Œμ˜ μœ μΌμ„±μ„ νŒλ‹¨ν•  수 μ—†μ–΄ κΈ°λ³Έν‚€μ˜ 본래 λͺ©μ μ„ μƒμ‹€ν•˜κ²Œ λœλ‹€.

  • 개체 무결성 μ œμ•½μ‘°κ±΄μ„ λ§Œμ‘±μ‹œν‚€λ €λ©΄ νˆ¬ν”Œμ΄ μ‚½μž…λ˜λŠ” μ—°μ‚°κ΄€ κΈ°μ‘΄ νˆ¬ν”Œμ˜ κΈ°λ³Έν‚€ 속성 값이 λ³€κ²½λ˜λŠ” 연산이 λ°œμƒν•  λ•Œ 기본킀에 널 값이 ν¬ν•¨λ˜λŠ” μƒν™©μ—μ„œλŠ” μ—°μ‚°μ˜ μˆ˜ν–‰μ„ κ±°λΆ€ν•˜λ©΄ λœλ‹€.

μ°Έμ‘° λ¬΄κ²°μ„±μ˜ μ œμ•½μ‘°κ±΄(referenital intergrity constraint)

  • 개체 무결성 μ œμ•½μ‘°κ±΄μ΄ 기본킀에 λŒ€ν•œ κ·œμΉ™μœΌλ‘œ 각 λ¦΄λ ˆμ΄μ…˜λ§ˆλ‹€ μ μš©λœλ‹€λ©΄, μ°Έμ‘° 무결성 μ œμ•½μ‘°κ±΄μ€ μ™Έλž˜ν‚€μ— λŒ€ν•œ κ·œμΉ™μœΌλ‘œ μ—°κ΄€λœ λ¦΄λ ˆμ΄μ…˜λ“€μ— μ μš©λœλ‹€.

  • μ°Έμ‘° 무결성 μ œμ•½μ‘°κ±΄μ΄λž€ μ™Έλž˜ν‚€λŠ” μ°Έμ‘°ν•  수 μ—†λŠ” 값을 κ°€μ§ˆ 수 μ—†λ‹€λŠ” κ·œμΉ™μ΄λ‹€.

  • μ™Έλž˜ν‚€λŠ” λ‹€λ₯Έ λ¦΄λ ˆμ΄μ…˜μ˜ κΈ°λ³Έν‚€λ₯Ό μ°Έμ‘°ν•˜λŠ” 속성이고 λ¦΄λ ˆμ΄μ…˜ κ°„μ˜ κ΄€κ²Œλ₯Ό ν‘œν˜„ν•˜λŠ” 역할을 ν•œλ‹€. 그런데 μ™Έλž˜ν‚€κ°€ μžμ‹ μ΄ μ°Έμ‘°ν•˜λŠ” λ¦΄λ ˆμ΄μ…˜μ˜ 기본킀와 상관이 μ•–λŠ” 값을 κ°–κ²Œ 되면 두 λ¦΄λ ˆμ΄μ…˜μ„ μ—°κ΄€μ‹œν‚¬ 수 μ—†μœΌλ―€λ‘œ μ™Έλž˜ν‚€ 본래의 μ˜λ―Έκ°€ 없어진닀.

  • μ™Έλž˜ν‚€λŠ” μžμ‹ μ΄ μ°Έμ‘°ν•˜λŠ” λ¦΄λ ˆμ΄μ…˜μ— κΈ°λ³Έν‚€ κ°’μœΌλ‘œ μ‘΄μž¬ν•˜λŠ” κ°’, 즉 μ°Έμ‘° κ°€λŠ₯ν•œ κ°’λ§Œ κ°€μ Έμ•Ό ν•œλ‹€.

profile
λ°°μ›€μ˜ 기둝

0개의 λŒ“κΈ€