SOLID๋? ํ๋ก๊ทธ๋๋จธ๊ฐ ์ ์ง๋ณด์์ ํ์ฅ์ด ์ฌ์ด ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ณ ์ ํ ๋ ์ ์ฉํ ์ ์๋ ์์น. ์์ค ์ฝ๋๊ฐ ์ฝ๊ธฐ ์ฝ๊ณ , ํ์ฅํ๊ธฐ ์ฌ์ธ ๋๊น์ง ๋ฆฌํฉํฐ๋งํ ๋ ์ ์ฉํ ์ ์๋ ์ง์นจ์ด๋ค. ์ด ์์น์ ์ ์์ผ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ ๋ต์ ์ผ๋ถ์ด๋ค. S(Single responsibilitty principle): ๋จ์ผ ์ฑ ์ ์์น ํ ํด๋์ค๋ ํ๋์ ์ฑ ์๋ง ๊ฐ์ ธ์ผ ํ๋ค. O(Open / closed principle): ๊ฐ๋ฐฉ - ํ์ ์์น ์ํํธ์จ์ด ์์๋ ํ์ฅ์๋ ์ด๋ ค ์์ผ๋ ๋ณ๊ฒฝ์๋ ๋ซํ ์์ด์ผ ํ๋ค. L(Liskov substitution principle): ๋ฆฌ์ค์ฝํ ์นํ ์์น ๊ฐ์ฒด๋ ํ๋ก๊ทธ๋จ์ ์ ํ์ฑ์ ๊นจ๋จ๋ฆฌ์ง ์์ผ๋ฉด์ ํ์ ํ์ ์ ์ธ์คํด์ค๋ก ๋ฐ๊ฟ ์ ์์ด์ผ ํ๋ค. I(Interface segregatio..
์ปดํ์ผ ์ธ์ด ์ปดํ์ผ ์ธ์ด๋ ์ปดํ์ผ๋ฌ๊ฐ ํ์ํ ์ธ์ด์ด๋ค. ์ฝ๋๋ฅผ ๋ฐ๋ก ์คํํ ์ ์๋๊ฒ ์๋, ์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ ์ ์ปดํ์ผ๋ฌ๊ฐ ์ปดํจํฐ๊ฐ ์์๋ค์ ์ ์๋๋ก ์คํํ์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ์ปดํ์ผ๋ง ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๋ค. ๋ฐ๋ผ์ ์ปดํ์ผ ์ธ์ด๋ ์คํํ๊ธฐ ์ ์ ์ปดํ์ผ๋ ์คํ ํ์ผ์ ๋ง๋ค๊ธฐ ์ํด ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๋จ์ ์ด ์์ง๋ง, ํ ๋ฒ ์คํ ํ์ผ์ ๋ง๋ค์ด ๋์ ํ์๋ ์คํ ์๋๊ฐ ๋น ๋ฅด๋ค๋ ์ฅ์ ์ด ์๋ค. ๋ํ, ์ปดํ์ผ๋ง ๊ณผ์ ์ ๊ฑฐ์น๋ฉด์ ๋ฐ์ดํฐ ํ์ ์ด ์ ์ ์ผ๋ก ๊ฒฐ์ ๋๋ค. ๋ํ์ ์ธ ์ปดํ์ผ ์ธ์ด๋ก๋ C, C++, Java๊ฐ ์๋ค. ์ธํฐํ๋ฆฌํฐ ์ธ์ด ์ธํฐํ๋ฆฌํฐ ์ธ์ด๋ ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ๋ ์ธ์ด์ด๋ค. ์ธํฐํ๋ฆฌํฐ๋ ์ผ๋จ ์คํ์ ํด๋๊ณ , ๋ฐํ์์ ํ ์ค ํ ์ค ๋ฒ์ญํด ์คํํ๋ค. ์คํ ์ ์ ์ปดํ์ผํ๋ ๊ณผ์ ์ด ์์ผ๋ฏ๋ก ์ด๋ฐ ์คํํ๋ ์๋๋ ๋น ..
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ๊ฐ์ฒด๋? ์์ ์ ์ํ๋ฅผ ๊ฐ์ง๋ฉฐ ์ญํ ์ ์ํํ๋ ๊ฐ์ฒด ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด๋? ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ด์ ๋ชฉ๋ก์ผ๋ก ๋ณด๋ ์๊ฐ์์ ๋ฒ์ด๋, ์ฌ๋ฌ ๊ฐ์ ๋ ๋ฆฝ๋ ๋จ์์ธ ๊ฐ์ฒด๋ค์ ๋ชจ์์ผ๋ก ํ์ ํ๊ณ ์ ํ๋ ๊ฒ์ด๋ค. ๊ฐ๊ฐ์ ๊ฐ์ฒด๋ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค. ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ก๊ทธ๋จ์ ์ ์ฐํ๊ณ ๋ณ๊ฒฝ์ด ์ฉ์ดํ๊ฒ ๋ง๋ค๊ธฐ ๋๋ฌธ์, ๋๊ท๋ชจ ๊ฐ๋ฐ์ ๋ง์ด ์ฌ์ฉ๋๋ค. ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ๊ตฌํ ๋ฐฉ๋ฒ 1. ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ณธ์ ์ธ ๋น๋ฉ ๋ธ๋ก์ผ๋ก 2. ๊ฐ ๊ฐ์ฒด๋ ์ด๋ค ํ์ (ํด๋์ค)์ ์ธ์คํด์ค 3. ํด๋์ค๋ ์์(inheritance)์ผ๋ก ์ฐ๊ด ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํน์ง 1. ์บก์ํ(Encapsulation) ๐ ์๋ก ๊ด๋ จ์๋ ๋ฐ์ดํฐ์ ํจ์๋ฅผ ๊ฐ์ฒด ์์ ํ๋๋ก ๋ฌถ๊ณ ์ธ๋ถ์์ ๋ณด์ผ ํ์๊ฐ ์๋ ๋ฐ์ดํฐ๋ฅผ ์..
์ ๊ทํ๋? ์ด์ ํ์์ด ๋ฐ์ํ์ง ์๋๋ก Relation์ ๊ด๋ จ์ด ์๋ ์ ํธ๋ฆฌ๋ทฐํธ๋ค๋ก๋ง ๊ตฌ์ฑํ๊ธฐ ์ํด Relation์ ๋ถํดํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ค๊ณํด๋๊ฐ๋ ๊ณผ์ ์ด๋ค. ์ฌ๊ธฐ์ ์ด์ ํ์์ด๋? ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋ชป ์ค๊ณํ๋ฉด ๋ถํ์ํ ๋ฐ์ดํฐ ์ค๋ณต์ด ๋ฐ์ํด Relation์ ๋ํ ๋ฐ์ดํฐ์ ์ฝ์ , ์์ , ์ญ์ ์ฐ์ฐ์ ์ํํ ๋ ๋ถ์์ฉ์ด ๋ฐ์ํ๋๋ฐ, ์ด๋ฌํ ๋ถ์์ฉ์ ์ด์ ํ์(Anomaly๋ผ๊ณ ํ๋ค. ์ด์ ํ์์ ์กฐ๊ธ ์์ธํ ์ดํด ๋ณด๋ฉด, ์ธ ๊ฐ์ง๋ก ๋ถ๋ฅํ ์ ์๋ค. ์ฒซ๋ฒ์งธ๋ ์ฝ์ ์ด์(Insertion Anomaly)์ผ๋ก, ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๊ธฐ ์ํด ๋ถํ์ํ ๋ฐ์ดํฐ๋ ํจ๊ป ์ฝ์ ํด์ผ ํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๋ ์๊ธฐ๋ ์ด์ ํ์์ด๋ค. ๋๋ฒ์งธ๋ ๊ฐฑ์ ์ด์(Update Anomaly)์ผ๋ก, ์ค๋ณต๋๋ ํํ๋ค ์ค์์ ์ผ๋ถ๋ง..
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ณต๋ถํ๋ค๋ณด๋ฉด, ANSI/SPARC architecture๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ 'The Three-Schema Architecture'๋ฅผ ๋ง์ฃผ์นฉ๋๋ค. ์๋นํ ๊ฐ๋ ์ ์ธ ์ํคํ ์ฒ๋ก ๋๊ปด์ง๊ธฐ ๋๋ฌธ์ ์ฒ์ ๋ดค์ ๋๋ ์ดํด๊ฐ ์ ๊ฐ์ง ์์ ์ ์์ต๋๋ค. ์ค๋ Three-Schema Architecture์ ๋ํด ํฐ ๊ทธ๋ฆผ์ ๋ณผ ์ ์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. Three-Schema Architecture๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด Three Level๋ก ๊ตฌ์ฑ๋์ด ์๋ ๊ฑธ ์ ์ ์๋๋ฐ, External Level, Conceptual Level, Internal Level ์ด ์ธ๊ฐ์ง Level๋ก ๊ตฌ๋ถํฉ๋๋ค. ๊ฐ์ฅ ๋จผ์ Internal Level์ ๋ณด๋ฉด, Internal Level์ ๋ด๋ถ ์คํค๋ง(internal sc..
- Total
- Today
- Yesterday
- BOJ
- leetcode
- ์ ๋ ฌ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์๋ฃ๊ตฌ์กฐ
- ๊ทธ๋ํ
- ์๋ฐ์คํฌ๋ฆฝํธ
- DOM
- Component
- ํ์ด์ฌ
- useState
- Context API
- state
- ๋ฆฌ์กํธ
- react
- DB
- github
- zustand
- Browser
- Python
- mdn
- git
- ํจ์
- JavaScript
- CSS
- error
- ์๊ณ ๋ฆฌ์ฆ
- React Query
- ๋ธ๋ผ์ฐ์
- ์๋ฌ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |