๐ ๋ฒ์ : Ep30. ๋ ๊ฑฐ์ ์์คํ ์ ๊ตํ - Ep34. ๋ฒ์ ํ๊ธฐ ๋ฐฉ๋ฒ
๐ ์ฑ ์์ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ์ ์จ๋ณด์ธ์.
- ๋ ๊ฑฐ์ ์์คํ
- ์ฝ๋ณผ(COBOL)์ด๋ผ๋ ์๋ ์ธ์ด๊ฐ ์๋๋ฐ ๋ง์น ์ง๊ธ์ ํ์ด์ฌ ๊ฐ์ ์กด์ฌ์๋ค.
- ์ธ์ด์ ์ปค๋ฎค๋ํฐ๊ฐ ์์ผ๋ฉด ์ง์์ฑ์ด ๋ฎ์์ง ์ ์๋ค.
- ์ง๊ธ ๋์๊ฐ๋ฉด ์ฅ๋ก์ด๋ผ๋ ๋ง์ธ๋๋ก ์ฝ๋๋ฅผ ์์ฑํ์ง ๋ง๊ณ , ์ฑ ์๊ฐ ์๊ฒ ๋ง๋ค์ด์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋์์๋ ๊ด๋ฆฌ๊ฐ ํ์ํ๋ค.
- SQL (Structured query Language)
- ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ด๋ค ์ง๋ฌธ or ๋ฌธ์๋ฅผ ํ๊ธฐ ์ํด ์ด๋ค ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ธ์ด, ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ๋ค๋ฃจ๋ ์ธ์ด
- ์ฌ๋ฌ ์ข ๋ฅ๊ฐ ์๋๋ฐ ์์ ์๊ฒ ํ์ํ ๊ฒ์ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ฉ๋์ ๋ง๊ฒ ์ฌ์ฉํ์.
- DBMS (Database Management System)
- ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
- DB๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๊ธฐ๋ง ํ๊ณ ์ง์ ๊ด๋ฆฌ/์ฒ๋ฆฌ ํ ์ ์๋ ๋ฅ๋ ฅ์ด ์๋ค. ๋ฐ๋ผ์ DBMS๊ฐ ํ์ํ๋ค.
- MySQL, PostSQL, SQLite, Oracle, MariaDB ๋ฑ์ด ์์
- DB์ SQL์ ์ํธ์์ฉ
- ๋ฐ์ดํฐ ๋ฒ ์ด์ค = ์์ ์ฒ๋ผ ์๊ฒผ๋ค.
- DB์ ํ ๋ฌด๋ฆฌ์ ๋ฐ์ดํฐ = ํ ์ด๋ธ ์ด๋ผ๊ณ ํํ
- ORM (Object Relational Mapping)
- ์ผ์ข ์ SQL ๋ฒ์ญ๊ธฐ, SQL ๋ฌธ๋ฒ์ ๋ชฐ๋ผ๋ ํ๋ก๊ทธ๋๋จธ์๊ฒ ์ต์ํ ์ธ์ด๋ก SQL์ ์ฌ์ฉํ ์ ์๊ฒ ํด ์ค๋ค.
- ํธ์์ฑ์ ๋์ฌ์ฃผ๊ธฐ๋ ํ์ง๋ง, ์ด๋ ค์ด ์ํฉ์ ๋ถ๋ชํ๋ฉด ๊ฒฐ๊ตญ SQL์ ์์์ผ ํ๋ค.
- SQL์ ๊ฐ๋ฐ์ ๊ผญ ํ์ํ data์ DB๋ฅผ ์ดํดํ ์ ์๊ฒ ๋ง๋ค์ด์ฃผ๋ ๋๊ตฌ์ด๋ฏ๋ก ๊ผญ ๊ณต๋ถํ์.
- NoSQL
- SQL์ ์ฌํฌ๋ฆฌ์ฒ๋ผ ํ๋ก๊ทธ๋จ๋ง๋ค ์กฐ๊ธ์ฉ ๋ค๋ฅด๋ค. NoSQL์ ์ธ์ด์ ํน์ง + ์ฌ์ฉํ๋ DB ์ฑ์ง๋ ์กฐ๊ธ์ฉ ๋ค๋ฅด๋ค.
- NoSQL์ ๋ํ์ DB
- ๋ํ๋จผํธ DB (Document DB) : ๋ํ์ ์ผ๋ก MongoDB๊ฐ ์์, ๋ฐ์ดํฐ๋ฅผ JSONํํ๋ก ์ ์ฅํ๋ค.
- ํค๊ฐ DB (key-value DB) : ์นด์ฐ๋๋ผ DB, ๋ค์ด๋๋ชจ๋ DB๊ฐ ๋ํ์ , ์ฝ๊ณ ์ฐ๋ ์๋๊ฐ ์์ฒญ ๋น ๋ฅด๋ค.
- ๊ทธ๋ํ DB (Graph DB) : ๋ ธ๋๋ก ๊ด๊ณ๋ฅผ ํํํด ์ค, ํ์ด์ค๋ถ์ด ๊ฐ๋ฐ
- Git & GitHub
- Git
- ํ์ผ ์ด๋ ฅ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ, ํ์ผ์ ํญ์ ์ง์ผ๋ณด๋ฉด์ ๋ณํ๋ฅผ ๊ด์ฐฐํ๋ค.
- ๊ฐ์ ํ์ผ์ด๋ผ๋ ๋ค๋ฅธ ๋ฒ์ ์ผ๋ก ๋ณด๊ดํ ์ ์๋ค. (๊ฐ์ ์๊ฐ์ ์ฌ๋ฌ ๋ฒ์ ์ผ๋ก ์กด์ฌํ๋ค๊ณ ์๊ฐ)
- ์ด ์ฅ์ ์ผ๋ก ๋๋ฃ์ ๊ฐ์ ํ์ผ์ ๋ค๋ฅธ ๋ฒ์ ์ผ๋ก ๋ง๋ค์ด์ ์์ ํ ํ ์ฐจ์ด์ ์ ๋น๊ตํ๋ฉด์ ๋ค์ ํ์ผ์ ํฉ์ณ์ ํ๋๋ก ๋ง๋ค ์ ์๋ค.
- GitHub
- ์ผ์ข
์ ํด๋ผ์ฐ๋. ํ์ผ, git์ผ๋ก ๊ด๋ฆฌํ ์ด๋ ฅ์ ์ ์ฅํ๊ณ ๊ณต์ ํ๋ ๊ณต๊ฐ์ด๋ค.
- ํด๋ผ์ฐ๋์์ ์ฐจ์ด์ ์ ํ์ผ์ ๊ด๋ฆฌํ ์ด๋ ฅ ๋ํ ๊ณต์ ๊ฐ๋ฅํ๋ค๋ ์ ์ด๋ค.
- ์ผ์ข
์ ํด๋ผ์ฐ๋. ํ์ผ, git์ผ๋ก ๊ด๋ฆฌํ ์ด๋ ฅ์ ์ ์ฅํ๊ณ ๊ณต์ ํ๋ ๊ณต๊ฐ์ด๋ค.
- Git
- ๋ฒ์ ํ๊ธฐ๋ฐฉ๋ฒ
- SemVer : ์ซ์ 3๊ฐ๋ก ํ์ํ๋ ๋ฐฉ์ (ex. 4.0.5)
โ๐ป ์ค๋ ์ฝ์ ์๊ฐ์? ๋ ์ค๋ฅด๋ ์๊ฐ์ ๊ฐ๋ณ๊ฒ ์ ์ด๋ณด์ธ์.
์ปค๋ฎค๋ํฐ์ ์ค์์ฑ์ ๋๊ผ๋ค. ๋ ๊ฑฐ์ ์์คํ ์ ์ฌ๋๋ค์ด ๋ง์ด ์ฌ์ฉํ์ง ์๊ณ ๋ถํธํด์ ์๊ธฐ๋ ๊ฒ์ด๋ผ๊ณ ๋ง ์๊ฐํ์๋๋ฐ ์ ๋ง๋ค์ด์ง ์ธ์ด๋ผ๋ ๊ด๋ฆฌ๊ฐ ์ํํด์ง๋ฉด ๋ ๊ฑฐ์ ์ฝ๋๋ก ๋ณํ ์ ์๋ค๋ ์ฌ์ค์ ๋ฐฐ์ ๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์ MySQL์ ๋ฐฐ์ ๋๋ฐ, ํ๋ก ํธ ์์ฃผ๋ก ๊ณต๋ถ๋ฅผ ํ๊ฒ ๋๋ฉด์ ์ด์ ๋ ์ธ๋ชจ๊ฐ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค. ๊ทธ๋ฐ๋ฐ ์์๋๋ฉด ์์ฃผ ๋์์ด ๋๋ค๊ณ ํ์ฌ ๋ฐฐ์ฐ๊ธธ ์ํ๋ค๊ณ ์๊ฐํ๋ค. ์ง๋ ์๊ฐ์๋ ๋ฐฐ์ ๋ฏ์ด ๊ฒฐ๊ตญ ๊ฐ๋ฐ์๋ผ๋ฉด ์ฝ๋๊ฐ ์ ๋ฐ์ ์ผ๋ก ๋์๊ฐ๋ ์ ์ฒด ์ํฉ์ ์๊ณ ์์ด์ผ ํ๋ฏ๋ก ๋ญ๋ ์์์ ๋์ ๊ฒ์ ์๋ค๋ ์๊ฐ์ด ๋ ๋ค. ๋๋ฌด ์์ด ๋ฐฉ๋ํด์ ๋ฌธ์ ์ด์ง๋ง...๐ข
๋ง์ง๋ง์ผ๋ก ๋ฒ์ ํ๊ธฐ ๋ฐฉ๋ฒ์ ๋ํด์ ์๊ฒ ๋์๋๋ฐ, ๊ฐ ์ซ์์ ๊ทธ๋ฐ ์๋ฏธ๊ฐ ์์๋ค๋ ๋ฐฐ์์ ๋คํ์ด๋ผ๋ ์๊ฐ์ด ๋ ๋ค. ์ ์ github์ ๋น๋ํ์ผ์ version์ ๋ถ์ฌ์ ๊ด๋ฆฌํ ์ ์ด ์๋๋ฐ, semVer ํ๊ธฐ๋ฒ์ ๋ฏธ๋ฆฌ ์์๋๋ผ๋ฉด ์ข ๋ ์ฒด๊ณ์ ์ธ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ ์ ์์์ ๊ฒ ๊ฐ๋ค. ๋ค์ ๋ฐฐํฌ ์์๋ ๊ผญ ์ ์ฉํด ๋ด์ผ๊ฒ ๋ค.
๐ ๊ถ๊ธํ ๋ด์ฉ์ด ์๊ฑฐ๋, ์ ์ดํด๋์ง ์๋ ๋ด์ฉ์ด ์๋ค๋ฉด ์ ์ด๋ณด์ธ์.
ORM์ด ๊ตฌ์ฒด์ ์ผ๋ก ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง ๊ถ๊ธํ๋ค. ์กฐ๊ธ ๋ ์์๋ด์ผ๊ฒ ๋ค.
๋๊ธ