[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 2์ฅ ๋ฐ์ดํฐ ์ ์ถ๋ ฅ ๊ตฌํ
- -
์ด๋ฒ์๋ 2022๋ ๋ ์ค๊ธฐ ์ํ ์ค๋นํ๋ฉด์ ๋ ธํธ์ ๋ฆฌ ํ์๋ ๋ด์ฉ๋ค์ ํฌ์คํ ํด๋ณด๊ฒ ์ต๋๋ค. ๋ด์ฉ์ด ๋ง์ด ๋ถ์กฑํ์๊ฒ ์ง๋ง ์ด๋๊น์ง ์ฐธ๊ณ ์ฉ์ผ๋ก๋ง ๋ด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ๐๐
์ฐธ๊ณ ๋ก, ์๊ฐ ๊ด๊ณ์ ์ ๋ถ ์ ๋ฆฌ๋์ด ์์ง๋ ์์ต๋๋ค. ์ถ๊ฐ๋ก ์ ๋ C๋ฑ๊ธ๊ณผ D๋ฑ๊ธ์ ํ์ต ๋ชฉํ์์ ์ ์ธํ์ต๋๋ค.
ํด๋น ๋ด์ฉ์ 2022๋ ๋ ์๋๊ณต ์ถํ์ฌ์ ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ ์ฑ ์ ๋ด์ฉ์ด ์กฐ๊ธ ํฌํจ๋์ด ์์ต๋๋ค.
๊ฐ๊ธ์ ์ฑ ์ ๊ตฌ๋งคํ์ ์ผ ํ๊ณ ์ถํ์ฌ๋ ์๋๊ณต ๋๋ ์์ ๋น๋ก ๊ณต๋ถํ์๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.
A๋ฑ๊ธ
๐ข ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค(Database)
- ์ ์: ๊ณต๋์ผ๋ก ์ฌ์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ์ค๋ณต์ ๋ฐฐ์ ํ์ฌ ํตํฉํ๊ณ , ์ ์ฅ์ฅ์น์ ์ ์ฅํ์ฌ ํญ์ ์ฌ์ฉํ ์ ์๋๋ก ์ด์ํ๋ ์ด์ ๋ฐ์ดํฐ
- ํตํฉ๋ ๋ฐ์ดํฐ(Integrated Data): ์๋ฃ์ ์ค๋ณต์ ๋ฐฐ์ ํ ๋ฐ์ดํฐ์ ๋ชจ์
- ์ ์ฅ๋ ๋ฐ์ดํฐ(Stored Data): ์ปดํจํฐ๊ฐ ์ ๊ทผํ ์ ์๋ ์ ์ฅ ๋งค์ฒด์ ์ ์ฅ๋ ์๋ฃ
- ์ด์ ๋ฐ์ดํฐ(Operational Data): ์กฐ์ง์ ๊ณ ์ ํ ์ ๋ฌด๋ฅผ ์ํํ๋ ๋ฐ ๋ฐ๋์ ํ์ํ ์๋ฃ
- ๊ณต์ฉ ๋ฐ์ดํฐ(Shared Data): ์ฌ๋ฌ ์์ฉ ์์คํ ๋ค์ด ๊ณต๋์ผ๋ก ์์ ํ๊ณ ์ ์งํ๋ ์๋ฃ
- DBMS(Database Management System; ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
)
- ์ฌ์ฉ์์ ์๊ตฌ์ ๋ฐ๋ผ ์ ๋ณด๋ฅผ ์์ฑํด์ฃผ๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํด์ฃผ๋ ์ํํธ์จ์ด
- DBMS์ ํ์ ๊ธฐ๋ฅ 3๊ฐ์ง
- ์ ์(Definition) ๊ธฐ๋ฅ
- ์กฐ์(Manipulation) ๊ธฐ๋ฅ
- ์ ์ด(Control) ๊ธฐ๋ฅ
- ๋ฐ์ดํฐ์ ๋
๋ฆฝ์ฑ
- ๋ ผ๋ฆฌ์ ๋ ๋ฆฝ์ฑ
- ๋ฌผ๋ฆฌ์ ๋ ๋ฆฝ์ฑ
- ์คํค๋ง(Schema)
- ์ ์: ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ์ ์ ์ฝ์กฐ๊ฑด์ ๊ดํ ์ ๋ฐ์ ์ธ ๋ช ์ธ๋ฅผ ๊ธฐ์ ํ ๊ฒ
- ์ธ๋ถ ์คํค๋ง
- ์ฌ์ฉ์๋ ์์ฉ ํ๋ก๊ทธ๋๋จธ๊ฐ ๊ฐ ๊ฐ์ธ์ ์ ์ฅ์์ ํ์๋ก ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ ๊ฒ
- ๊ฐ๋
์คํค๋ง
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฒด์ ์ธ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ
- ๋ชจ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด๋ ์ฌ์ฉ์๋ค์ด ํ์๋ก ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ข ํฉํ ์กฐ์ง ์ ์ฒด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก, ํ๋๋ง ์กด์ฌํจ
- ๋ด๋ถ ์คํค๋ง
- ๋ฌผ๋ฆฌ์ ์ ์ฅ์ฅ์น์ ์ ์ฅ์์ ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ
- ์ค์ ๋ก ์ ์ฅ๋ ๋ ์ฝ๋์ ํ์, ์ ์ฅ ๋ฐ์ดํฐ ํญ๋ชฉ์ ํํ ๋ฐฉ๋ฒ, ๋ด๋ถ ๋ ์ฝ๋์ ๋ฌผ๋ฆฌ์ ์์ ๋ฑ์ ๋ํ๋
๐ข ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ
- ์ค๊ณ ์ ๊ณ ๋ ค์ฌํญ
- ๋ฌด๊ฒฐ์ฑ: ์ ํด์ง ์ ์ฝ์กฐ๊ฑด์ ํญ์ ๋ง์กฑํด์ผ ํจ
- ์ผ๊ด์ฑ: ์๋ต์ด ์ฒ์๋ถํฐ ๋๊น์ง ๋ณํจ์์ด ์ผ์ ํด์ผ ํจ
- ํ๋ณต: ์ฅ์ ๊ฐ ๋ฐ์ํ์ ๋ ์ฅ์ ๋ฐ์ ์ง์ ์ ์ํ๋ก ๋ณต๊ตฌํ ์ ์์ด์ผ ํจ
- ๋ณด์: ๋ ธ์ถ ๋๋ ๋ณ๊ฒฝ์ด๋ ์์ค๋ก๋ถํฐ ๋ณดํธํ ์ ์์ด์ผ ํจ
- ํจ์จ์ฑ: ์๋ต์๊ฐ ๋จ์ถ, ์์คํ ์ ์์ฐ์ฑ, ์ ์ฅ๊ณต๊ฐ์ ์ต์ ํ ๋ฑ์ด ๊ฐ๋ฅํด์ผ ํจ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ฅ: ์ง์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ์ ์์ด์ผ ํจ
- ์ค๊ณ ์์
- ๊ฐ๋
์ ์ค๊ณ(์ ๋ณด ๋ชจ๋ธ๋ง, ๊ฐ๋
ํ)
- ํ์ค ์ธ๊ณ์ ๋ํ ์ธ์์ ์ถ์์ ๊ฐ๋ ์ผ๋ก ํํํ๋ ๊ณผ์
- ๊ฐ๋ ์คํค๋ง๋ฅผ ์ค๊ณ
- ๋
ผ๋ฆฌ์ ์ค๊ณ(๋ฐ์ดํฐ ๋ชจ๋ธ๋ง)
- ํ์ค ์ธ๊ณ์์ ๋ฐ์ํ๋ ์๋ฃ๋ฅผ ํน์ DBMS๊ฐ ์ง์ํ๋ ๋ ผ๋ฆฌ์ ์๋ฃ ๊ตฌ์กฐ๋ก ๋ณํ(mapping)์ํค๋ ๊ณผ์
- ํ๊ฐ ๋ฐ ์ ์
- ์ธํฐํ์ด์ค๋ฅผ ์ค๊ณ
- ๋ฌผ๋ฆฌ์ ์ค๊ณ(๋ฐ์ดํฐ ๊ตฌ์กฐํ)
- ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ก ํํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ก ๋ณํํ๋ ๊ณผ์
๐ข ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ฐ๋
- ๋ฐ์ดํฐ ๋ชจ๋ธ
- ํ์ค ์ธ๊ณ์ ์ ๋ณด๋ค์ ์ฒด๊ณ์ ์ผ๋ก ํํํ ๊ฐ๋ ์ ๋ชจํ
- ๋ฐ์ดํฐ ๋ชจ๋ธ ๊ตฌ์ฑ ์์: ๊ฐ์ฒด, ์์ฑ, ๊ด๊ณ
- ๊ฐ๋
์ ๋ฐ์ดํฐ ๋ชจ๋ธ
- ํ์ค ์ธ๊ณ์ ๋ํ ์ธ๊ฐ์ ์ดํด๋ฅผ ๋๊ธฐ ์ํด ํ์ค ์ธ๊ณ์ ๋ํ ์ธ์์ ์ถ์์ ๊ฐ๋ ์ผ๋ก ํํํ๋ ๊ณผ์
- E-R ๋ชจ๋ธ
- ๋
ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ
- ๊ฐ๋ ์ ๊ตฌ์กฐ๋ฅผ ์ปดํจํฐ ์ธ๊ณ์ ํ๊ฒฝ์ ๋ง๋๋ก ๋ณํํ๋ ๊ณผ์
- ๋จ์ํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด๋ผ๊ณ ํ๋ฉด ๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์๋ฏธ
- ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ
- ์ค์ ์ปดํจํฐ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๋ฐฉ๋ฒ
- ๋ฐ์ดํฐ ๋ชจ๋ธ์ ํ์ํ ์์
- ๊ตฌ์กฐ(Structure)
- ์ฐ์ฐ(Operation)
- ์ ์ฝ ์กฐ๊ฑด(Constraint)
๐ข E-R(๊ฐ์ฒด-๊ด๊ณ) ๋ชจ๋ธ
- ๊ฐ์ฒด์ ๊ฐ์ฒด ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ธฐ๋ณธ ์์๋ก ์ด์ฉํ์ฌ ๊ฐ๋ ์ ์ธ ๋ ผ๋ฆฌ ๋ฐ์ดํฐ๋ก ํํํ๊ธฐ ์ํ ๋ฐฉ๋ฒ
- 1976๋ ํผํฐ ์ฒธ(Peter Chen)์ ์ํด ์ ์
- ๊ฐ์ฒด, ๊ด๊ณ ์์ฑ์ผ๋ก ๋ฌ์ฌ
- E-R ๋ค์ด์ด๊ทธ๋จ
๐ข ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ / ๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- 2์ฐจ์์ ์ธ ํ(Table)๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ ์ํธ ๊ด๊ณ๋ฅผ ์ ์ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- 1970๋ IBM์ ๊ทผ๋ฌดํ๋ ์ฝ๋(E. F. Codd)์ ์ํด ์ฒ์ ์ ์
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฆด๋ ์ด์ ๊ตฌ์กฐ
- ํํ(Tuple)
- ๋ฆด์์ด์ ์ ๊ตฌ์ฑํ๋ ๊ฐ๊ฐ์ ํ
- ์นด๋๋๋ฆฌํฐ(Cardinality) ๋๋ ๊ธฐ์, ๋์์
- ์์ฑ(Attribute)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ์ฅ ์์ ๋ ผ๋ฆฌ์ ๋จ์
- ๋๊ทธ๋ฆฌ(Degree) ๋๋ ์ฐจ์
- ๋๋ฉ์ธ(Domain)
- ํ๋์ ์ ํธ๋ฆฌ๋ทฐํธ๊ฐ ์ทจํ ์ ์๋ ๊ฐ์ ํ์ ์ ์์(Atomic)๊ฐ๋ค์ ์งํฉ
- ๋ฆด๋ ์ด์
์ ํน์ง
- ๋๊ฐ์ ํํ์ด ํฌํจ๋ ์ ์์ผ๋ฏ๋ก ๋ฆด๋ ์ด์ ์ ํฌํจ๋ ํํ๋ค์ ๋ชจ๋ ์์ด
- ํํ ์ฌ์ด์๋ ์์๊ฐ ์์
- ๋ฆด๋ ์ด์ ์ ์๊ฐ์ ๋ฐ๋ผ ๋ณํจ
- ์์ฑ๋ค ๊ฐ์ ์์๋ ์ค์ํ์ง ์์
- ์๋ณ์ ์ํด ์์ฑ์ ๋ช ์นญ์ ์ ์ผํด์ผ ํ์ง๋ง, ์์ฑ์ ๊ตฌ์ฑํ๋ ๊ฐ์ ๋์ผํ ๊ฐ์ด ์์ ์ ์์
- ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ ์ด์ ์ชผ๊ฐค ์ ์๋ ์์๊ฐ๋ง์ ์ ์ฅ
- ๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ(Relational Data Model)
- 2์ฐจ์์ ์ธ ํ(Table)๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ ์ํธ ๊ด๊ณ๋ฅผ ์ ์ํ๋ DB๊ตฌ์กฐ
- ๋ํ์ ์ธ ์ธ์ด๋ SQL
๐ข ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฝ ์กฐ๊ฑด - ํค(Key)
- ํ๋ณดํค(Candidate Key)
- ์์ฑ๋ค ์ค์์ ํํ์ ์ ์ผํ๊ฒ ์๋ณํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์์ฑ๋ค์ ๋ถ๋ถ์งํฉ
- ๊ธฐ๋ณธํค๋ก ์ฌ์ฉํ ์ ์๋ ์์ฑ๋ค
- ์ ์ผ์ฑ(unique): ํ๋์ ํค ๊ฐ์ผ๋ก ํ๋์ ํํ๋ง์ ์ ์ผํ๊ฒ ์๋ณํ ์ ์์ด์ผ ํจ
- ์ต์์ฑ(Minimality): ํค๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ ํ๋๋ฅผ ์ ๊ฑฐํ๋ฉด ์ ์ผํ๊ฒ ์๋ณํ ์ ์๋๋ก ๊ผญ ํ์ํ ์ต์์ ์์ฑ์ผ๋ก ๊ตฌ์ฑ
- ๊ธฐ๋ณธํค(primary Key)
- ํ๋ณดํค ์ค์์ ํน๋ณํ ์ ์ ๋ ์ฃผํค(Main Key)
- ์ค๋ณต๋ ๊ฐ์ ๊ฐ์ง ์ ์์
- ํ ๋ฆด๋ ์ด์ ์์ ํน์ ํํ์ ์ ์ผํ๊ฒ ๊ตฌ๋ณํ ์ ์๋ ์์ฑ
- NULL๊ฐ์ ๊ฐ์ง ์ ์์
- ๋์ฒดํค(Atternate Key)
- ํ๋ณดํค๊ฐ ๋ ์ด์์ผ ๋ ๊ธฐ๋ณธํค๋ฅผ ์ ์ธํ ๋๋จธ์ง ํ๋ณดํค
- =๋ณด์กฐํค
- ์ํผํค(Super Key)
- ์์ฑ๋ค์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋ ํค
- ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑํ๋ ๋ชจ๋ ํํ์ ๋ํด ์ ์ผ์ฑ ๋ง์กฑ, ์ต์์ฑ์ ๋ถ๋ง์กฑ
- ์ธ๋ํค(Foreign Key)
- ๋ค๋ฅธ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค๋ฅผ ์ฐธ์กฐํ๋ ์์ฑ ๋๋ ์์ฑ๋ค์ ์งํฉ
๐ข ๊ด๊ณ๋์ ๋ฐ ๊ด๊ณํด์
- ๊ด๊ณ๋์
- ์ํ๋ ์ ๋ณด์ ๊ทธ ์ ๋ณด๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด์ ์ด๋ป๊ฒ ์ ๋ํ๋๊ฐ๋ฅผ ๊ธฐ์ ํ๋ ์ ์ฐจ์ ์ธ ์ธ์ด
- ์์ ๊ด๊ณ ์ฐ์ฐ์
- ์ผ๋ฐ ์งํฉ ์ฐ์ฐ์
- ๊ด๊ณํด์(Relational Calculus)
- ๊ด๊ณ ๋ฐ์ดํฐ์ ์ฐ์ฐ์ ํํํ๋ ๋ฐฉ๋ฒ
- ์ํ๋ ์ ๋ณด๊ฐ ๋ฌด์์ด๋ผ๋ ๊ฒ๋ง ์ ์ํ๋ ๋น์ ์ฐจ์ ํน์ฑ
๐ข ์ด์ / ํจ์์ ์ข ์
- ์ด์(Anomaly)
- ํ ์ด๋ธ์์ ๋ฐ์ดํฐ์ ์ค๋ณต์ด ๋ฐ์ํ๊ณ , ์ด ์ค๋ณต(Redundancy)์ผ๋ก ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ํ์
- ์ฝ์
์ด์(Insertion Anomaly)
- ์๋์๋ ์๊ด์์ด ์ํ์ง ์์ ๊ฐ๋ค๋ก ์ธํด ์ฝ์ ํ ์ ์๊ฒ ๋๋ ํ์
- ์ญ์ ์ด์(Deletion Anomaly)
- ์๋์๋ ์๊ด์๋ ๊ฐ๋ค๋ ํจ๊ป ์ญ์ ๋๋, ์ฆ ์ฐ์์ญ์ ๊ฐ ๋ฐ์ํ๋ ํ์
- ๊ฐฑ์ ์ด์(Update Anomaly)
- ์ ๋ณด์ ๋ถ์ผ์น์ฑ์ด ์๊ธฐ๋ ํ์
- ํจ์์ ์ข
์(Functional Dependency)
- Y๋ X์ ํจ์์ ์ข ์ ๋๋ X๊ฐ Y๋ฅผ ํจ์์ ์ผ๋ก ๊ฒฐ์ ํ๋ค๊ณ ํ๊ณ , X→ Y๋ก ํ๊ธฐ
- ๋ฐ์ดํฐ์ ์๋ฏธ๋ฅผ ํํํ๋ ๊ฒ
- ํ์ค ์ธ๊ณ๋ฅผ ํํํ๋ ์ ์ฝ ์กฐ๊ฑด์ด ๋๋ ๋์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํญ์ ์ ์ง๋์ด์ผ ํ ์กฐ๊ฑด
- X → Y์ผ ๋, X๋ฅผ ๊ฒฐ์ ์(Determinant), Y๋ฅผ ์ข ์์(Dependent)
๐ข ๋ฐ์ ๊ทํ(Denormalization)
- ๋ฐ์ ๊ทํ
- ์ ๊ทํ๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์๋์ ์ผ๋ก ํตํฉ, ์ค๋ณต, ๋ถ๋ฆฌํ์ฌ ์ ๊ทํ ์ฐ๋์น์ ์๋ฐฐํ๋ ํ์
- ์์คํ ์ ์ฑ๋ฅ์ด ํฅ์
- ๊ด๋ฆฌ ํจ์จ์ฑ์ ์ฆ๊ฐ
- ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ ๋ฐ ์ ํฉ์ฑ์ด ์ ํ๋ ์ ์์
- ๊ณผ๋ํ ๋ฐ์ ๊ทํ๋ ์คํ๋ ค ์ฑ๋ฅ์ ์ ํ
- ํ
์ด๋ธ ํตํฉ
- ๋ ๊ฐ์ ํ ์ด๋ธ์ด ์กฐ์ธ(Join)๋์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ๊ฒฝ์ฐ ์ฑ๋ฅ ํฅ์์ ์ํด ์์ ํ๋์ ํ ์ด๋ธ๋ก ๋ง๋ค์ด ์ฌ์ฉํ๋ ๊ฒ
- ํตํฉ ๊ณ ๋ ค ์ฌ์
- ๋ ๊ฐ์ ํ ์ด๋ธ์์ ๋ฐ์ํ๋ ํ๋ก์ธ์ค๊ฐ ๋์ผํ๊ฒ ์์ฃผ ์ฒ๋ฆฌ๋๋ ๊ฒฝ์ฐ
- ํญ์ ๋ ๊ฐ์ ํ ์ด๋ธ์ ์ด์ฉํ์ฌ ์กฐํ๋ฅผ ์ํํ๋ ๊ฒฝ์ฐ
- ํตํฉ์ ์ข
๋ฅ
- 1:1 ๊ด๊ณ ํ ์ด๋ธ ํตํฉ
- 1:N ๊ด๊ณ ํ ์ด๋ธ ํตํฉ
- ์ํผํ์ /์๋ธํ์ ํ ์ด๋ธ ํตํฉ
- ํ
์ด๋ธ ๋ถํ
- ์ํ ๋ถํ : ๋ ์ฝ๋ ๊ธฐ์ค์ผ๋ก ํ ์ด๋ธ ๋ถํ
- ์์ง ๋ถํ : ์์ฑ ๊ธฐ์ค์ผ๋ก ํ ์ด๋ธ ๋ถํ
- ์ค๋ณต ํ
์ด๋ธ ์ถ๊ฐ
- ์์ ์ ํจ์จ์ฑ์ ํฅ์์ํค๊ธฐ ์ํด ํ ์ด๋ธ์ ์ถ๊ฐ
- ์ง๊ณ ํ ์ด๋ธ์ ์ถ๊ฐ
- ์งํ ํ ์ด๋ธ์ ์ถ๊ฐ
- ํน์ ๋ถ๋ถ๋ง์ ํฌํจํ๋ ํ ์ด๋ธ์ ์ถ๊ฐ
- ์ค๋ณต ์์ฑ ์ถ๊ฐ
- ์ถ๊ฐํ๋ ๊ฒฝ์ฐ
- ์กฐ์ธ์ด ์์ฃผ ๋ฐ์ํ๋ ์์ฑ์ธ ๊ฒฝ์ฐ
- ์ ๊ทผ ๊ฒฝ๋ก๊ฐ ๋ณต์กํ ์์ฑ์ธ ๊ฒฝ์ฐ
- ์ก์ธ์ค์ ์กฐ๊ฑด์ผ๋ก ์์ฃผ ์ฌ์ฉ๋๋ ์์ฑ์ธ ๊ฒฝ์ฐ
- ๊ธฐ๋ณธํค์ ํํ๊ฐ ์ ์ ํ์ง ์๊ฑฐ๋ ์ฌ๋ฌ ๊ฐ์ ์์ฑ์ผ๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ
- ์ถ๊ฐํ๋ ๊ฒฝ์ฐ
๐ข ํธ๋์ญ์ ๋ถ์ / CRUD ๋ถ์
- ํธ๋์ญ์
(Transaction)
- ๋ ผ๋ฆฌ์ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ์์ ์ ๋จ์ ๋๋ ํ๊บผ๋ฒ์ ๋ชจ๋ ์ํ๋์ด์ผ ํ ์ผ๋ จ์ ์ฐ์ฐ๋ค์ ์๋ฏธ
- ํธ๋์ญ์
์ ํน์ฑ
- ์์์ฑ(Atomicity): All(Commit) or Nothing(Rollback)
- ์ผ๊ด์ฑ(Consistency): ์ธ์ ๋ ์ผ๊ด์ฑ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ๋ก ๋ณํ
- ๋ ๋ฆฝ์ฑ, ๊ฒฉ๋ฆฌ์ฑ, ์์ฐจ์ฑ(Isolation): ๋์์ ๋ณํ ์คํ๋๋ ๊ฒฝ์ฐ ์ด๋ ํ๋์ ํธ๋์ญ์ ์คํ ์ค์ ๋ค๋ฅธ ํธ๋์ญ์ ์ ์ฐ์ฐ์ด ๋ผ์ด๋ค ์ ์์
- ์์์ฑ, ์ง์์ฑ(Durability): ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ํธ๋์ญ์ ์ ๊ฒฐ๊ณผ๋ ์์คํ ์ด ๊ณ ์ฅ๋๋๋ผ๋ ์๊ตฌ์ ์ผ๋ก ๋ฐ์๋์ด์ผ ํจ
- CRUD ๋ถ์
- ํ๋ก์ธ์ค์ ํ ์ด๋ธ ๊ฐ์ CRUD ๋งคํธ๋ฆญ์ค๋ฅผ ๋ง๋ค์ด์ ํธ๋์ญ์ ์ ๋ถ์ํ๋ ๊ฒ
๐ข ๋ทฐ / ํด๋ฌ์คํฐ
- ๋ทฐ(View)
- ํ๋ ์ด์์ ๊ธฐ๋ณธ ํ ์ด๋ธ๋ก๋ถํฐ ์ ๋๋ ๊ฐ์ ํ ์ด๋ธ
- ์ฅ์
- ๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ ๋ฆฝ์ฑ ์ ๊ณต
- ๋์ผ ๋ฐ์ดํฐ์ ๋ํด ๋์์ ์ฌ๋ฌ ์ฌ์ฉ์์ ์์ดํ ์์ฉ์ด๋ ์๊ตฌ๋ฅผ ์ง์
- ์ฌ์ฉ์์ ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ๊ฐ๋จํ๊ฒ ํด์ค
- ์ ๊ทผ ์ ์ด๋ฅผ ํตํ ์๋ ๋ณด์ ์ ๊ณต
- ๋จ์
- ๋ ๋ฆฝ์ ์ธ ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ง ์ ์์
- ๋ทฐ์ ์ ์๋ฅผ ๋ณ๊ฒฝํ ์ ์์
- ๋ทฐ๋ก ๊ตฌ์ฑ๋ ๋ด์ฉ์ ๋ํ ์ฝ์ , ์ญ์ , ๊ฐฑ์ ์ฐ์ฐ์ ์ ์ฝ์ด ๋ฐ๋ฆ
- ํด๋ฌ์คํฐ(Cluster)
- ๋์ผํ ์ฑ๊ฒฉ์ ๋ฐ์ดํฐ๋ฅผ ๋์ผํ ๋ฐ์ดํฐ ๋ธ๋ก์ ์ ์ฅํ๋ ๋ฌผ๋ฆฌ์ ์ ์ฅ ๋ฐฉ๋ฒ
- ํด๋ฌ์คํฐ๋ง ๋ ํ ์ด๋ธ์ ๋ฐ์ดํฐ ์กฐํ ์๋๋ฅผ ํฅ์
- ์ ๋ ฅ, ์์ , ์ญ์ ์ ๋ํ ์์ ์ฑ๋ฅ์ ์ ํ์ํด
- ๋ฐ์ดํฐ์ ๋ถํฌ๋๊ฐ ๋์์๋ก ์ ๋ฆฌ
- ์ฒ๋ฆฌ ๋ฒ์๊ฐ ๋์ ๊ฒฝ์ฐ์๋ ๋จ์ผ ํ ์ด๋ธ ํด๋ฌ์คํฐ๋ง์ ์ฌ์ฉ
- ์กฐ์ธ์ด ๋ง์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ์๋ ๋ค์ค ํ ์ด๋ธ ํด๋ฌ์คํฐ๋ง์ ์ฌ์ฉ
๐ข ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณด์
- ์ํธํ(Encryption)
- ์ํธํ(Encryption) ๊ณผ์ : ์ํธํ๋์ง ์์ ํ๋ฌธ์ ์ํธ๋ฌธ์ผ๋ก ๋ฐ๊พธ๋ ๊ณผ์
- ๋ณตํธํ(Decryption) ๊ณผ์ : ์ํธ๋ฌธ์ ์๋์ ํ๋ฌธ์ผ๋ก ๋ฐ๊พธ๋ ๊ณผ์
- ์ํธํ ๊ธฐ๋ฒ
- ๊ฐ์ธํค ์ํธ ๋ฐฉ์(Private Key Encryption)
- ๊ณต๊ฐํค ์ํธ ๋ฐฉ์(Public Key Encryption)
- ์ ๊ทผํต์
- ์ ๊ทผํต์ ๊ธฐ์
- ์ ๊ทผํต์ 3์์
- ์ ๊ทผํต์ ์ ์ฑ
- ์ ๋ถ ๊ธฐ๋ฐ ์ ์ฑ
- ๊ท์น ๊ธฐ๋ฐ ์ ์ฑ
- ์ญํ ๊ธฐ๋ฐ ์ ์ฑ
- ์ ๊ทผํต์ ๋ฉ์ปค๋์ฆ
- ์ ๊ทผํต์ ๋ชฉ๋ก
- ๋ฅ๋ ฅ ๋ฆฌ์คํธ
- ๋ณด์ ๋ฑ๊ธ
- ํจ์ค์๋
- ์ํธํ
- ์ ๊ทผํต์ ๋ณด์๋ชจ๋ธ
- ๊ธฐ๋ฐ์ฑ ๋ชจ๋ธ: ๊ตฐ์ฌ์ ์ธ ๋ชฉ์ ์ผ๋ก ๊ฐ๋ฐ๋ ์ต์ด์ ์ํ์ ๋ชจ๋ธ
- ๋ฌด๊ฒฐ์ฑ ๋ชจ๋ธ: ๊ธฐ๋ฐ์ฑ ๋ชจ๋ธ์์ ๋ฐ์ํ๋ ๋ถ๋ฒ์ ์ธ ์ ๋ณด ๋ณ๊ฒฝ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฌด๊ฒฐ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฐ๋ ๋ชจ๋ธ
- ์ ๊ทผํต์ ๋ชจ๋ธ: ์ ๊ทผ ํต์ ๋งค์ปค๋์ฆ์ ๋ณด์ ๋ชจ๋ธ๋ก ๋ฐ์ ์ํจ ๊ฒ
- ์ ๊ทผํต์ ์ ์ฑ
๐ข ์คํ ๋ฆฌ์ง
- ๋์ฉ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์๋ฒ์ ์ ์ฅ์ฅ์น๋ฅผ ์ฐ๊ฒฐํ๋ ๊ธฐ์
- DAS(Direct Attached Storage)
- ์๋ฒ์ ์ ์ฅ์ฅ์น๋ฅผ ์ ์ฉ ์ผ์ด๋ธ๋ก ์ง์ ์ฐ๊ฒฐํ๋ ๋ฐฉ์
- ์ ์ฅ์ฅ์น๋ฅผ ์ง์ ์ฐ๊ฒฐ
- ์๋๊ฐ ๋น ๋ฅด๊ณ ์ค์น ๋ฐ ์ด์์ด ์ฌ์
- ์ด๊ธฐ ๊ตฌ์ถ ๋น์ฉ ๋ฐ ์ ์ง๋ณด์ ๋น์ฉ์ด ์ ๋ ด
- ํ์ฅ์ฑ๊ณผ ์ ์ฐ์ฑ์ด ๋จ์ด์ง
- NAS(Network Attached Storage)
- ์๋ฒ์ ์ ์ฅ์ฅ์น๋ฅผ ๋คํธ์ค๋ฅด๋ฅด ํตํด ์ฐ๊ฒฐํ๋ ๋ฐฉ์
- ์ฅ์์ ๊ตฌ์ ๋ฐ์ง ์๊ณ ์ ์ฅ์ฅ์น์ ์ฝ๊ฒ ์ ๊ทผ
- DAS์ ๋นํด ํ์ฅ์ฑ ๋ฐ ์ ์ฐ์ฑ์ด ์ฐ์
- SAN(Storage Area Network)
- ์๋ฒ์ ์ ์ฅ์ฅ์น๋ฅผ ์ฐ๊ฒฐํ๋ ์ ์ฉ ๋คํธ์ํฌ๋ฅผ ๋ณ๋๋ก ๊ตฌ์ฑํ๋ ๋ฐฉ์
- ํ์ด์ด ์ฑ๋(FC) ์ค์์น๋ฅผ ์ด์ฉํ์ฌ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑ
- ํ์ฅ์ฑ, ์ ์ฐ์ฑ, ๊ฐ์ฉ์ฑ์ด ๋ฐ์ด๋จ
- ์๋ฒ์ ์ ์ฅ์ฅ์น๋ฅผ ์ฐ๊ฒฐํ๋ ์ ์ฉ ๋คํธ์ํฌ๋ฅผ ๋ณ๋๋ก ๊ตฌ์ฑํ๋ ๋ฐฉ์
๐ข ์๋ฃ๊ตฌ์กฐ
- ์ ํ ๊ตฌ์กฐ
- ๋ฐฐ์ด(Array): ํฌ๊ธฐ์ ํ(Type)์ด ๋์ผํ ์๋ฃ๋ค์ด ์์๋๋ก ๋์ด๋ ์๋ฃ์ ์งํฉ
- ์ ํ ๋ฆฌ์คํธ(Linear List)
- ์ฐ์ ๋ฆฌ์คํธ(Contiguous List): ์ฐ์๋๋ ๊ธฐ์ต์ฅ์์ ์ ์ฅ๋๋ ์๋ฃ ๊ตฌ์กฐ
- ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Linked List): ์๋ฃ๋ค์ ์์์ ๊ธฐ์ต๊ณต๊ฐ์ ๊ธฐ์ต์ํค๋, ๋ ธ๋์ ํฌ์ธํฐ ๋ถ๋ถ์ ์ด์ฉํ์ฌ ์๋ก ์ฐ๊ฒฐ์ํจ ์๋ฃ ๊ตฌ์กฐ
- ์คํ(Stack)
- ๋ฆฌ์คํธ์ ํ์ชฝ ๋์ผ๋ก๋ง ์๋ฃ์ ์ฝ์ , ์ญ์ ์์ ์ด ์ด๋ฃจ์ด์ง๋ ์๋ฃ ๊ตฌ์กฐ
- ํ์ ์ ์ถ(LIFO; Last In First Out) ๋ฐฉ์์ผ๋ก ์๋ฃ๋ฅผ ์ฒ๋ฆฌ
- ์ค๋ฒํ๋ก(Overflow): ์ ์ฅํ ๊ธฐ์ต ๊ณต๊ฐ์ด ์๋ ์ํ์์ ๋ฐ์ดํฐ๊ฐ ์ฝ์ ๋๋ฉด ๋ฐ์
- ์ธ๋ํ๋ก(Underflow): ์ญ์ ํ ๋ฐ์ดํฐ๊ฐ ์๋ ์ํ์์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ฉด ๋ฐ์
- ํ(Queue)
- ๋ฆฌ์คํธ์ ํ์ชฝ์์๋ ์ฝ์ ์์ , ๋ค๋ฅธ ํ์ชฝ์์๋ ์ญ์ ์์ ์ด ์ด๋ฃจ์ด์ง๋ ์๋ฃ ๊ตฌ์กฐ
- ์ ์ ์ ์ถ(FIFO; First In First Out) ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ
- ๋ฐํฌ(Deque)
- ๋น์ ํ ๊ตฌ์กฐ
- ํธ๋ฆฌ(Tree): ๋ค์ toggle์์ ํ์ธ
- ๊ทธ๋ํ(Graph): ์ ์ (Vertex)์ ๊ฐ์ (Edge)์ ๋ ์งํฉ์ผ๋ก ์ด๋ฃจ์ด์ง๋ ์๋ฃ ๊ตฌ์กฐ
- ๋ฐฉํฅ/๋ฌด๋ฐฉํฅ ๊ทธ๋ํ์ ์ต๋ ๊ฐ์ ์
- ๋ฐฉํฅ ๊ทธ๋ํ์ ์ต๋ ๊ฐ์ ์: n(n-1)
- ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ์ ์ต๋ ๊ฐ์ ์: n(n-1) / 2
๐ข ํธ๋ฆฌ(Tree)
- ์ ์: ์ ์ (Node, ๋ ธ๋)๊ณผ ์ ๋ถ(branch, ๊ฐ์ง)์ ์ด์ฉํ์ฌ ์ฌ์ดํด์ ์ด๋ฃจ์ง ์๋๋ก ๊ตฌ์ฑํ ๊ทธ๋ํ์ ํน์ํ ํํ
- ํธ๋ฆฌ ๊ด๋ จ ์ฉ์ด
- ๋
ธ๋(Node): ํธ๋ฆฌ์ ๊ธฐ๋ณธ ์์๋ก์ ์๋ฃ ํญ๋ชฉ๊ณผ ๋ค๋ฅธ ํญ๋ชฉ์ ๋ํ ๊ฐ์ง(Branch)๋ฅผ ํฉ์น ๊ฒ
- ex) A B C D E F G H I J K L M
- ๊ทผ ๋
ธ๋(Root Node): ํธ๋ฆฌ์ ๋งจ ์์ ์๋ ๋
ธ๋
- ex) A
- ๋๊ทธ๋ฆฌ(Degree, ์ฐจ์): ๊ฐ ๋
ธ๋์์ ๋ป์ด๋์จ ๊ฐ์ง์ ์
- ex) A=3 B=2 C=1 D=3
- ๋จ๋ง ๋
ธ๋(Terminal Node) = ์ ๋
ธ๋(Leaf Node): ์์์ด ํ๋๋ ์๋ ๋
ธ๋, ์ฆ Degree๊ฐ 0์ธ ๋
ธ๋
- ex) K L F G M I J
- ๋น๋จ๋ง ๋
ธ๋(Non-Terminal Node): ์์์ด ํ๋๋ผ๋ ์๋ ๋
ธ๋, ์ฆ Degree๊ฐ 0์ด ์๋ ๋
ธ๋
- ex) A B C D E H
- ์กฐ์ ๋
ธ๋(Ancestors Node): ์์์ ๋
ธ๋์์ ๊ทผ ๋
ธ๋์ ์ด๋ฅด๋ ๊ฒฝ๋ก์์ ์๋ ๋
ธ๋๋ค
- ex) M์ ์กฐ์ ๋ ธ๋๋ H D A
- ์์ ๋
ธ๋(Son Node): ์ด๋ค ๋
ธ๋์ ์ฐ๊ฒฐ๋ ๋ค์ ๋ ๋ฒจ์ ๋
ธ๋๋ค
- ex) D์ ์์ ๋ ธ๋: H I J
- ๋ถ๋ชจ ๋
ธ๋(Parent Node): ์ด๋ค ๋
ธ๋์ ์ฐ๊ฒฐ๋ ์ด์ ๋ ๋ฒจ์ ๋
ธ๋๋ค
- ex) E F์ ๋ถ๋ชจ ๋ ธ๋๋ B
- ํ์ ๋
ธ๋(Brother Node, Sibling): ๋์ผํ ๋ถ๋ชจ๋ฅผ ๊ฐ๋ ๋
ธ๋๋ค
- ex) H์ ํ์ ๋ ธ๋๋ I J
- Level: ๊ทผ ๋
ธ๋์ Level์ 1๋ก ๊ฐ์ ํ ํ ์ด๋ค Level์ด L์ด๋ฉด ์์ ๋
ธ๋๋ L+1
- ex) H์ ๋ ๋ฒจ์ 3
- ๊น์ด(Depth, height): Tree์์ ๋
ธ๋๊ฐ ๊ฐ์ง ์ ์๋ ์ต๋์ ๋ ๋ฒจ
- ex) ์ ํธ๋ฆฌ์ ๊น์ด๋ 4
- ์ฒ(Forest): ์ฌ๋ฌ ๊ฐ์ ํธ๋ฆฌ๊ฐ ๋ชจ์ฌ ์๋ ๊ฒ
- ex) ์ ํธ๋ฆฌ์์ ๊ทผ ๋ ธ๋ A๋ฅผ ์ ๊ฑฐํ๋ฉด B, C, D๋ฅผ ๊ทผ ๋ ธ๋๋ก ํ๋ ์ธ ๊ฐ์ ํธ๋ฆฌ๊ฐ ์๋ ์ฒ์ด ์๊ธด๋ค.
- ํธ๋ฆฌ์ ๋๊ทธ๋ฆฌ: ๋
ธ๋๋ค์ ๋๊ทธ๋ฆฌ ์ค์์ ๊ฐ์ฅ ๋ง์ ์
- ex) ๋ ธ๋ A๋ D๊ฐ ์ธ ๊ฐ์ ๋๊ทธ๋ฆฌ๋ฅผ ๊ฐ์ง๋ฏ๋ก ์ ํธ๋ฆฌ์ ๋๊ทธ๋ฆฌ๋ 3์ด๋ค.
๐ข ์ด์ง ํธ๋ฆฌ
- ํธ๋ฆฌ์ ์ดํ๋ฒ
- Preorder ์ดํ: Root → Left → Right ์์ผ๋ก ์ดํ
- Inorder ์ดํ: Left → Root → Right ์์ผ๋ก ์ดํ
- Postorder ์ดํ: Left → Right → Root ์์ผ๋ก ์ดํ
- ์์์ ํ๊ธฐ๋ฒ
๐ข ์ ๋ ฌ(Sort)
- ์ฝ์
์ ๋ ฌ(Insertion Sort)
- ์ ๋ ฌ ์ ์ซ์ ๊ฐ์์ ์์ฐจ์ ์ผ๋ก ์ฐ์ธก์ ๋ฐ์ดํฐ๋ฅผ ์ข์ธก๊ณผ ๋น๊ตํด์ ์ฐ์ธก์ด ๋ ์๋ค๋ฉด ์์ผ๋ก ์ด๋ํ๊ณ ๋๋จธ์ง 4๊ฐ๋ ์ฐ์ธก์ผ๋ก ์ด๋
- ํ๊ท ๊ณผ ์ต์ ๋ชจ๋ ์ํ ์๊ฐ ๋ณต์ก๋๋ O(n$^2$)
- ์ ํ ์ ๋ ฌ(Selection Sort)
- Nํ์ ๋ง๋ค ํ๋ฒ์ฉ ๋น๊ตํ์ฌ ์งํ ํ ๋ค์ ๋ฐ๋ณต
- ํ๊ท ๊ณผ ์ต์ ๋ชจ๋ ์ํ ์๊ฐ ๋ณต์ก๋๋ O(n$^2$)
- ๋ฒ๋ธ ์ ๋ ฌ(Bubble Sort)
- N๋ฒ์งธ ์๋ฆฌ์ ์ซ์๋ฅผ ์ต๋๋ก ๋ณด๋ผ ์ ์์ ๋๊น์ง ๋ณด๋ด๊ณ Nํ์ ์ข ๋ฃ
- ํ๊ท ๊ณผ ์ต์ ๋ชจ๋ ์ํ ์๊ฐ ๋ณต์ก๋๋ O(n$^2$)
- ์ ์ ๋ ฌ(Shell Sort)
- ๋งค๊ฐ๋ณ์์ ๊ฐ์ผ๋ก ์๋ธํ์ผ์ ๊ตฌ์ฑํ๊ณ , ๊ฐ ์๋ธํ์ผ์ Insertion ์ ๋ ฌ ๋ฐฉ์์ผ๋ก ์์ ๋ฐฐ์ดํ๋ ์ ๋ ฌ ๋ฐฉ์
- ์ฝ์ ์ ๋ ฌ(Insertion Sort)์ ํ์ฅํ ๊ฐ๋
- ํต ์ ๋ ฌ(Quick Sort)
- ํค๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ ๊ฐ์ ์ผ์ชฝ, ํฐ ๊ฐ์ ์ค๋ฅธ์ชฝ ์๋ธ ํ์ผ์ ๋ถํด์ํค๋ ์ ๋ ฌ ๋ฐฉ์
- ํ๊ท ์ํ ์๊ฐ ๋ณต์ก๋๋ O(nlog$_2$n)์ด๊ณ , ์ต์ ์ ์ํ ์๊ฐ ๋ณต์ก๋๋ O(n$^2$)
- ํ ์ ๋ ฌ(Heap Sort)
- ์ ์ด์ง ํธ๋ฆฌ๋ฅผ ์ด์ฉํ ์ ๋ ฌ ๋ฐฉ์
- ํ๊ท ๊ณผ ์ต์ ๋ชจ๋ ์๊ฐ ๋ณต์ก๋๋ O(nlog$_2$n)
- 2-Way ํฉ๋ณ ์ ๋ ฌ(Merge Sort)
- ์ด๋ฏธ ์ ๋ ฌ๋์ด ์๋ ๋ ๊ฐ์ ํ์ผ์ ํ ๊ฐ์ ํ์ผ๋ก ํฉ๋ณํ๋ ์ ๋ ฌ ๋ฐฉ์
- ํ๊ท ๊ณผ ์ต์ ๋ชจ๋ ์๊ฐ ๋ณต์ก๋๋ O(nlog$_2$n)
- ๊ธฐ์ ์ ๋ ฌ(Radix Sort) = Bucket Sort
- Queue๋ฅผ ์ด์ฉํ์ฌ ์๋ฆฟ์(Digit)๋ณ๋ก ์ ๋ ฌํ๋ ๋ฐฉ์
B๋ฑ๊ธ
๐ข ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ตฌ์ฑ ์์
- ๊ฐ์ฒด(Entity)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํํํ๋ ค๋ ๊ฒ
- ๊ฐ๋ ์ด๋ ์ ๋ณด ๋จ์ ๊ฐ์ ํ์ค ์ธ๊ณ์ ๋์์ฒด
- ์์ฑ(Attribute)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ์ฅ ์์ ๋ ผ๋ฆฌ์ ๋จ์
- ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฑํ๋ ํญ๋ชฉ
- ๊ฐ์ฒด์ ํน์ฑ์ ๊ธฐ์
- ์์ฑ์ ์: ๋๊ทธ๋ฆฌ(Degree) ๋๋ ์ฐจ์
- ํน์ฑ์ ๋ฐ๋ฅธ ๋ถ๋ฅ
- ๊ธฐ๋ณธ ์์ฑ: ์์ฑ ์ค ๊ฐ์ฅ ๋ง๊ณ ์ผ๋ฐ์
- ์ค๊ณ ์์ฑ: ์ค๊ณ ๊ณผ์ ์์ ๋์ถํด๋ด๋ ์์ฑ
- ํ์ ์์ฑ
- ๋ค๋ฅธ ์์ฑ์ผ๋ก๋ถํฐ ๊ณ์ฐ์ด๋ ๋ณํ ๋ฑ์ ์ํฅ์ ๋ฐ์ ๋ฐ์
- ์ ์ ์๋ฅผ ์ ์ํ๋ ๊ฒ์ด ์ข์
- ๊ด๊ณ(Relationship)
- ๊ฐ์ฒด์ ๊ฐ์ฒด ์ฌ์ด์ ๋ ผ๋ฆฌ์ ์ธ ์ฐ๊ฒฐ
- ๊ด๊ณ์ ์ข
๋ฅ
- ์ข
์ ๊ด๊ณ(Dependent Relationship)
- ์ฃผ์ข ๊ด๊ณ๋ฅผ ํํ
- ์๋ณ ๊ด๊ณ, ๋น์๋ณ ๊ด๊ณ
- ์ค๋ณต ๊ด๊ณ(Redundant Relationship)
- ๋ ๊ฐ์ฒด ์ฌ์ด์ 2๋ฒ ์ด์์ ์ข ์ ๊ด๊ณ๊ฐ ๋ฐ์ํ๋ ๊ด๊ณ
- ์ฌ๊ท ๊ด๊ณ(Recursive Relationship)
- ๊ฐ์ฒด๊ฐ ์๊ธฐ ์์ ๊ณผ ๊ด๊ณ๋ฅผ ๊ฐ๋ ๊ฒ
- ์ํ ๊ด๊ณ ๋ผ๊ณ ๋ ํจ
- ๋ฐฐํ ๊ด๊ณ(Exclusive Relationship)
- ๊ฐ์ฒด์ ํน์ฑ์ ๋ถํ ํ๋ ๊ด๊ณ
- ๋ฐฐํ AND ๊ด๊ณ์ ๋ฐฐํ OR ๊ด๊ณ๋ก ๊ตฌ๋ถ
- ์ข
์ ๊ด๊ณ(Dependent Relationship)
๐ข ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฝ ์กฐ๊ฑด - ๋ฌด๊ฒฐ์ฑ(Integrity)
- ๋ฌด๊ฒฐ์ฑ(Integrity)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ ๊ฐ๊ณผ ํ์ค ์ธ๊ณ์ ์ค์ ๊ฐ์ด ์ผ์นํ๋ ์ ํ์ฑ์ ์๋ฏธ
- ๋ฌด๊ฒฐ์ฑ์ ์ข
๋ฅ
- ๊ฐ์ฒด ๋ฌด๊ฒฐ์ฑ
- ์ฐธ์ด ๋ฌด๊ฒฐ์ฑ
- ๋๋ฉ์ธ ๋ฌด๊ฒฐ์ฑ
- ์ฌ์ฉ์ ์ ์ ๋ฌด๊ฒฐ์ฑ
- NULL ๋ฌด๊ฒฐ์ฑ
- ๊ณ ์ ๋ฌด๊ฒฐ์ฑ
- ํค ๋ฌด๊ฒฐ์ฑ
- ๊ด๊ณ ๋ฌด๊ฒฐ์ฑ
- ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๊ฐํ
- ์ดํ๋ฆฌ์ผ์ด์ : ๋ฐ์ดํฐ ์์ฑ, ์์ , ์ญ์ ์ ๋ฌด๊ฒฐ์ฑ ์กฐ๊ฑด์ ๊ฒ์ฆํ๋ ์ฝ๋๋ฅผ ํ๋ก๊ทธ๋จ ๋ด์ ์ถ๊ฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋ฆฌ๊ฑฐ: ํธ๋ฆฌ๊ฑฐ ์ด๋ฒคํธ์ ๋ฌด๊ฒฐ์ฑ ์กฐ๊ฑด์ ์คํํ๋ ์ ์ฐจํ SQL์ ์ถ๊ฐ
- ์ ์ฝ์กฐ๊ฑด: ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฝ ์กฐ๊ฑด์ ์ค์ ํ์ฌ ๋ฌด๊ฒฐ์ฑ์ ์ ์ง
๐ข ์ ๊ทํ(Normalization)
- ํ ์ด๋ธ์ ์์ฑ๋ค์ด ์ํธ ์ข ์์ ์ธ ๊ด๊ณ๋ฅผ ๊ฐ๋ ํน์ฑ์ ์ด์ฉํ์ฌ ํ ์ด๋ธ์ ๋ฌด์์ค ๋ถํดํ๋ ๊ณผ์
- ์ ๊ทํ ๊ณผ์
- ์ 1 ์ ๊ทํ
- ๋ชจ๋ ์์ฑ์ ๋๋ฉ์ธ์ด ์์ ๊ฐ๋ง์ผ๋ก ๋์ด ์๋ ์ ๊ทํ
- ์ 2 ์ ๊ทํ
- ๊ธฐ๋ณธํค๊ฐ ์๋ ๋ชจ๋ ์์ฑ์ด ๊ธฐ๋ณธํค์ ๋ํ์ฌ ์์ ํจ์์ ์ข ์ ์ ๊ฑฐ
- ์ 3 ์ ๊ทํ
- ๊ธฐ๋ณธํค๊ฐ ์๋ ๋ชจ๋ ์์ฑ์ด ๊ธฐ๋ณธํค์ ๋ํด ์ดํ์ ํจ์์ ์ข ์ ์ ๊ฑฐ
- BCNF
- ๋ชจ๋ ๊ฒฐ์ ์๊ฐ ํ๋ณดํค์ธ ์ ๊ทํ
- ๊ฒฐ์ ์์ด๋ฉด์ ํ๋ณดํค๊ฐ ์๋ ๊ฒ ์ ๊ฑฐ
- ์ 4 ์ ๊ทํ
- ๋ค์ค ๊ฐ ์ข ์(MVD; Multi Valued Dependency)
- ๋ค์น ์ข ์ ์ ๊ฑฐ
- ์ 5 ์ ๊ทํ
- ๋ชจ๋ ์กฐ์ธ ์ข ์(JD; Join Dependency)
- ์กฐ์ธ ์ข ์์ฑ ์ด์ฉ
- ์ 1 ์ ๊ทํ
๐ข ์์คํ ์นดํ๋ก๊ทธ
- ์์คํ
์นดํ๋ก๊ทธ(System Catalog)
- ๋ค์ํ ๊ฐ์ฒด์ ๊ดํ ์ ๋ณด๋ฅผ ํฌํจํ๋ ์์คํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ฐ์ดํฐ ์ฌ์ (Data Dictionary)์ ์ ์ฅ
- ์นดํ๋ก๊ทธ=๋ฐ์ดํฐ ์ฌ์
- ๋ฉํ ๋ฐ์ดํฐ(Meta-Data)
- ์์คํ ์นดํ๋ก๊ทธ์ ์ ์ฅ๋ ์ ๋ณด๋ฅผ ์๋ฏธ
- ๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ(Data Directory)
- ๋ฐ์ดํฐ ์ฌ์ ์ ์๋ก๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ๋ฐ ํ์ํ ์ ๋ณด๋ฅผ ๊ด๋ฆฌ ์ ์งํ๋ ์์คํ
๐ข ์ธ๋ฑ์ค
- ์ธ๋ฑ์ค(Index)
- ๋ฐ์ดํฐ ๋ ์ฝ๋๋ฅผ ๋น ๋ฅด๊ฒ ์ ๊ทผํ๊ธฐ ์ํด <ํค ๊ฐ, ํฌ์ธํฐ> ์์ผ๋ก ๊ตฌ์ฑ๋๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ
- ์ธ๋ฑ์ค์ ์ข
๋ฅ
- ํธ๋ฆฌ ๊ธฐ๋ฐ ์ธ๋ฑ์ค
- ๋นํธ๋งต ์ธ๋ฑ์ค
- ํจ์ ๊ธฐ๋ฐ ์ธ๋ฑ์ค
- ๋นํธ๋งต ์กฐ์ธ ์ธ๋ฑ์ค
- ๋๋ฉ์ธ ์ธ๋ฑ์ค
- ํด๋ฌ์คํฐ๋/๋ํด๋ฌ์คํฐ๋ ์ธ๋ฑ์ค
- ํด๋ฌ์คํฐ๋ ์ธ๋ฑ์ค(Clustered Index)
- ์ธ๋ฑ์ค ํค์ ์์์ ๋ฐ๋ผ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋์ด ์ ์ฅ๋๋ ๋ฐฉ์
- ์ค์ ๋ฐ์ดํฐ๊ฐ ์์๋๋ก ์ ์ฅ๋์ด ์์ด ์ธ๋ฑ์ค๋ฅผ ๊ฒ์ํ์ง ์์๋ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์์
- ๋ํด๋ฌ์คํฐ๋ ์ธ๋ฑ์ค(Non-Clustered Index)
- ์ธ๋ฑ์ค์ ํค ๊ฐ๋ง ์ ๋ ฌ๋์ด ์๊ณ ์ค์ ๋ฐ์ดํฐ๋ ์ ๋ ฌ๋์ง ์๋ ๋ฐฉ์
- ๋ฐ์ดํฐ ์ฝ์ , ์ญ์ ๋ฐ์ ์ ์์๋ฅผ ์ ์งํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ ๋ ฌํด์ผ ํจ
- ํด๋ฌ์คํฐ๋ ์ธ๋ฑ์ค(Clustered Index)
๐ข ํํฐ์
- ํํฐ์
(Partition)
- ๋์ฉ๋์ ํ ์ด๋ธ์ด๋ ์ธ๋ฑ์ค๋ฅผ ์์ ๋ ผ๋ฆฌ์ ๋จ์์ธ ํํฐ์ ์ผ๋ก ๋๋๋ ๊ฒ
- ํํฐ์
์ ์ข
๋ฅ
- ๋ฒ์ ๋ถํ (Range Partitioning)
- ์ผ๋ณ, ์๋ณ, ๋ถ๊ธฐ๋ณ ๋ฑ ์ง์ ํ ์ด์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ถํ
- ํด์ ๋ถํ (Hash Partitioning)
- ํด์ํจ์๋ฅผ ์ ์ฉํ ๊ฒฐ๊ณผ ๊ฐ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๋ถํ
- ‘ํน์ ’ ์ด๋ผ๋ ํค์๋๊ฐ ํฌ์ธํธ
- ์กฐํฉ ๋ถํ (Composite Partitioning)
- ๋ฒ์ ๋ถํ ๋ก ๋ถํ ํ ๋ค์ ํด์ ํจ์๋ฅผ ์ ์ฉํ์ฌ ๋ค์ ๋ถํ ํ๋ ๋ฐฉ์
- ๋ฒ์ ๋ถํ (Range Partitioning)
๐ข ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ
- ๋ ผ๋ฆฌ์ ์ผ๋ก๋ ํ๋์ ์์คํ ์ ์ํ์ง๋ง ๋ฌผ๋ฆฌ์ ์ผ๋ก๋ ๋คํธ์ํฌ๋ฅผ ํตํด ์ฐ๊ฒฐ๋ ์ฌ๋ฌ ๊ฐ์ ์ฌ์ดํธ(Site)์ ๋ถ์ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชฉํ
- ์์น ํฌ๋ช
์ฑ(Location Transparency)
- ์ก์ธ์คํ๋ ค๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค์ ์์น๋ฅผ ์ ํ์ ์์ด ๋จ์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ ผ๋ฆฌ์ ์ธ ๋ช ์นญ๋ง์ผ๋ก ์ก์ธ์ค ํ ์ ์์
- ์ค๋ณต ํฌ๋ช
์ฑ(Replication Transparency)
- ๋์ผ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ๊ณณ์ ์ค๋ณต๋์ด ์๋๋ผ๋ ์ฌ์ฉ์๋ ๋ง์น ํ๋์ ๋ฐ์ดํฐ๋ง ์กด์ฌํ๋ ๊ฒ์ฒ๋ผ ์ฌ์ฉ
- ๋ณํ ํฌ๋ช
์ฑ(Concurrency Transparency)
- ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ด๋ จ๋ ๋ค์์ ํธ๋์ญ์ ๋ค์ด ๋์์ ์คํ๋๋๋ผ๋ ๊ทธ ํธ๋์ญ์ ์ ๊ฒฐ๊ณผ๋ ์ํฅ์ ๋ฐ์ง ์ํฅใ
- ์ฅ์ ํฌ๋ช
์ฑ(Failure Transparency)
- ํธ๋์ญ์ , DBMS, ๋คํธ์ํฌ, ์ปดํจํฐ ์ฅ์ ์๋ ๋ถ๊ตฌํ๊ณ ํธ๋์ญ์ ์ ์ ํํ๊ฒ ์ฒ๋ฆฌ
- ์์น ํฌ๋ช
์ฑ(Location Transparency)
- ๋ถ์ฐ ์ค๊ณ ๋ฐฉ๋ฒ
- ํ ์ด๋ธ ์์น ๋ถ์ฐ: ๊ฐ๊ธฐ ๋ค๋ฅธ ์๋ฒ์ ๋ถ์ฐ์์ผ ๋ฐฐ์นํ๋ ๋ฐฉ๋ฒ
- ๋ถํ (Fragmentation): ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ถํ ํ์ฌ ๋ถ์ฐ
- ์ํ ๋ถํ : ํ ๋จ์๋ก ๋ถํ
- ์์ง ๋ถํ : ์์ฑ ๋จ์๋ก ๋ถํ
- ํ ๋น(Allocation): ๋์ผํ ๋ถํ ์ ์ฌ๋ฌ๊ฐ์ ์๋ฒ์ ์์ฑํ๋ ๋ถ์ฐ ๋ฐฉ๋ฒ
๐ข ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด์คํ / ์๋ฒ ํด๋ฌ์คํฐ๋ง
- ๋์ผํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต์ ํ์ฌ ๊ด๋ฆฌํ๋ ๊ฒ
- ์ด์คํ ๋ถ๋ฅ
- Eager ๊ธฐ๋ฒ: ๋ณ๊ฒฝ ๋ด์ฉ์ด ๋ฐ์ํ๋ฉด ์ฆ์ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ์ ์ฉํ๋ ๊ธฐ๋ฒ
- Lazy ๊ธฐ๋ฒ: ํธ๋์ญ์ ์ ์ํ์ด ์ข ๋ฃ๋๋ฉด ๋ณ๊ฒฝ ์ฌ์ค์ ์๋ก์ด ํธ๋์ญ์ ์ ์์ฑํ์ฌ ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ฌ๋๋ ๊ธฐ๋ฒ
- ์ด์คํ ๊ตฌ์ฑ ๋ฐฉ๋ฒ
- ํ๋-๋๊ธฐ(Active-Standby) ๋ฐฉ๋ฒ
- ํ๋-ํ๋(Active-Active) ๋ฐฉ๋ฒ
- ํด๋ฌ์คํฐ๋ง(Clustering)
- ๋ ๋ ์ด์์ ์๋ฒ๋ฅผ ํ๋์ ์๋ฒ์ฒ๋ผ ์ด์ํ๋ ๊ธฐ์
- ์ข
๋ฅ
- ๊ณ ๊ฐ์ฉ์ฑ ํด๋ฌ์คํฐ๋ง: ์ผ๋ฐ์ ์ผ๋ก ์ธ๊ธ๋๋ ํด๋ฌ์คํฐ๋ง์ด ๊ณ ๊ฐ์ฉ์ฑ ํด๋ฌ์คํฐ๋ง
- ๋ฒ๋ ฌ ์ฒ๋ฆฌ ํด๋ฌ์คํฐ๋ง: ํ๋์ ์์ ์ ์ฌ๋ฌ ๊ฐ์ ์๋ฒ์์ ๋ถ์ฐํ์ฌ ์ฒ๋ฆฌํ๋ ๋ฐฉ์
- RTO / RPO
- RTO(Recovery Time Objective): ‘์์ ์๊ฐ’ ํค์๋ ํ์ธ
- RPO(Recovery Time Objective): ‘๊ธฐ์ค์ ’ ํค์๋ ํ์ธ
๋ง์น๋ฉฐ..
์๋๋ ์ ๋ง ๋ณด๋ ค๊ณ ๋ ธํธ ์ ๋ฆฌํ๋ ๋ด์ฉ์ด๋ผ์ ํ์ ํ ์ ์ด ๋ง๊ธฐ๋ ํ ๊ฑฐ๊ณ ์คํ๋ ์์ ์ ์์ต๋๋ค. ์ฐธ๊ณ ์ฉ์ผ๋ก๋ง ๋ด์ฃผ์ธ์ ๐
๋ง์ด ๋ถ์กฑํ ๋ด์ฉ์ด์ จ๊ฒ ์ง๋ง ๋์์ด ๋์ จ๋ค๋ฉด ๋๊ธ ํ ๋ฒ์ฉ ๋จ๊ฒจ์ฃผ์๋ฉด ๋ง์ด ๋ฟ๋ฏํ ๊ฒ ๊ฐ์ต๋๋ค. ๐๐
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 3์ฅ ํตํฉ ๊ตฌํ
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 4์ฅ ์๋ฒํ๋ก๊ทธ๋จ ๊ตฌํ
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 5์ฅ ์ธํฐํ์ด์ค ๊ตฌํ
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 6์ฅ ํ๋ฉด ์ค๊ณ
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 7์ฅ ์ ํ๋ฆฌ์ผ์ด์ ํ ์คํธ ๊ด๋ฆฌ
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 8์ฅ SQL ์์ฉ
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 9์ฅ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ณด์ ๊ตฌ์ถ
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 10์ฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ํ์ฉ
์๊ฐ ๊ด๊ณ์ ๋ ธํธ ์ ๋ฆฌ ๋์ ๋ฌธ์ ํ์ด๋ก ๋์ฒด... ๐ข๐ข
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 11์ฅ ์์ฉ SW ๊ธฐ์ด ์ธ์ด ํ์ฉ
์๊ฐ ๊ด๊ณ์ ๋ ธํธ ์ ๋ฆฌ ๋์ ๋ฌธ์ ํ์ด๋ก ๋์ฒด... ๐ข๐ข
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 12์ฅ ์ ํ์ํํธ์จ์ด ํจํค์ง
์๊ฐ ๊ด๊ณ์ ๋ ธํธ ์ ๋ฆฌ ๋์ ๋ฌธ์ ํ์ด๋ก ๋์ฒด... ๐ข๐ข
'์๊ฒฉ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 4์ฅ ์๋ฒํ๋ก๊ทธ๋จ ๊ตฌํ (0) | 2023.02.07 |
---|---|
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 3์ฅ ํตํฉ ๊ตฌํ (0) | 2023.02.07 |
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 1์ฅ ์๊ตฌ์ฌํญ ํ์ธ (0) | 2023.02.07 |
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] ์ ๋ฒ์ ์ฝ์ ํ ์์๋ฌธ์ (0) | 2023.02.07 |
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ํ๊ธฐ] ์ ๋ณด์์คํ ๊ตฌ์ถ๊ด๋ฆฌ (0) | 2023.02.07 |
๋น์ ์ด ์ข์ํ ๋งํ ์ฝํ ์ธ
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค. ๐