TIL (Today I Learned)
2022.02.19
์ค๋ ์ฝ์ ๋ฒ์
์ถ์ฒ์ฌ ~ 1์ฅ. ๊นจ๋ํ ์ฝ๋
์ฑ ์์ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ
5S ๋ฒ์น(์ถ์ฒ์ฌ xxiv)
- ์ ๋ ฌ : ์ ์ ํ ๋ช ๋ช ๋ฒ ๋ฑ๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด ๋ฌด์์ด ์ด๋์ ์๋์ง ์์์ผ ํ๋ค.
- ์ฒด๊ณํ : ์ฝ๋๋ ๋๊ตฌ๋ ์์ํ๋ ์์น์ ์์ด์ผ ํ๋ค.
- ์ ๋ฆฌ : ์ฃผ์์ผ๋ก ์ฒ๋ฆฌํ ์ฝ๋๋ ํ๋ก์ ํธ์ ์๊ด ์๋ ์ฃผ์์ ์ง์ด๋ค.
- ํ์คํ : ๊ทธ๋ฃน ๋ด์์ ์ผ๊ด์ ์ธ ๊ตฌํ ์คํ์ผ๊ณผ ๊ธฐ๋ฒ์ ๋์ ํด์ผ ํ๋ค.
- ๊ท์จ : ๊ด๋ก๋ฅผ ๋ฐ๋ฅด๊ณ , ์๊ธฐ ์ฝ๋๋ฅผ ์์ฃผ ๋์๋ณด๊ณ ๊ธฐ๊บผ์ด ๋ณ๊ฒฝํ๋ค.
๊นจ๋ํ ์ฝ๋๋?
1) ๋ ผ๋ฆฌ๊ฐ ๊ฐ๋จํ ์ฝ๋(์ค๋ณต์ด ์๋ค)
2) ์์กด์ฑ์ด ์ต์์ด๋ฉฐ ๊ฐ ์์กด์ฑ์ ๋ช ํํ ์ ์ํ๋ ์ฝ๋ -> ์ ์ง๋ณด์๊ฐ ์ฌ์์ง๋ค
3) ์ค๋ฅ๋ฅผ ๋ช ๋ฐฑํ ์ ๋ต์ ์๊ฑฐํด ์ฒ ์ ํ ์ฒ๋ฆฌํ๋ ์ฝ๋
4) ํ ๊ฐ์ง๋ฅผ ์ ๋๋ก ํ๋ ์ฝ๋
5) ๋ชจ๋ ํ ์คํธ๋ฅผ ํต๊ณผ : ๋จ์ ํ ์คํธ์ ์ธ์ ํ ์คํธ ์ผ์ด์ค๊ฐ ์กด์ฌํ๋ ์ฝ๋
6) ์๋ฏธ์๋ ์ด๋ฆ์ผ๋ก ์์คํ ๋ด ๋ชจ๋ ์ค๊ณ ์์ด๋์ด๋ฅผ ํํ
7) ํด๋์ค, ๋ฉ์๋, ํจ์ ๋ฑ์ ์ต๋ํ ์ค์ธ๋ค.
๋ฌธ์ฅ
- ๋นจ๋ฆฌ ๊ฐ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์ธ์ ๋ ์ฝ๋๋ฅผ ์ต๋ํ ๊นจ๋ํ๊ฒ ์ ์งํ๋ ์ต๊ด์ด๋ค. (7p)
- ํ ์คํธ ์ผ์ด์ค๊ฐ ์์ผ๋ฉด ๊นจ๋ํ์ง ์๋ค. (12p)
- ์ ์ฝ๋๋ฅผ ์ง๋ฉด์ ์ฐ๋ฆฌ๋ ๋์์์ด ๊ธฐ์กด ์ฝ๋๋ฅผ ์ฝ๋๋ค. (18p)
์ค๋ ์ฝ์ ์๊ฐ
- ๋นจ๋ฆฌ ๊ฐ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์ธ์ ๋ ์ฝ๋๋ฅผ ์ต๋ํ ๊นจ๋ํ๊ฒ ์ ์งํ๋ ์ต๊ด์ด๋ค. (7p)
์ด ๋ฌธ์ฅ์ด ์ ๋ง ๊ณต๊ฐ๋๋ค. ์ฌ์ค ์กธ์ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ๊ณ์ ํ๋ ์๊ฐ์ด '์ฝ๋ ๋๋ฌด ๋๋ฝ๋ค. ์ด ๊ธฐ๋ฅ๋ง ๋๋๋ฉด ๋ฏ์ด๊ณ ์ณ์ผ์ง'์๋๋ฐ, ๋์ค์ ํ์ง ๋ง๊ณ ์ค๊ฐ์ค๊ฐ์ ์กฐ๊ธ์ฉ ๊ณ ์ณ๋๊ฐ๋ ์ต๊ด์ ๋ค์ฌ์ผ๊ฒ ๋ค. ์ฌ์ค ์ง๊ธ๋ ์ฝ๋ ๊ณ ์น๊ณ ์๋ค...
- ํ ์คํธ ์ผ์ด์ค๊ฐ ์์ผ๋ฉด ๊นจ๋ํ์ง ์๋ค. (12p)
์ฌ์ค ์กฐ๊ธ....์์ฃผ ๋ง์ด ์ฐ๋ฆฌ๋ ๋ฌธ์ฅ. ์ง๊ธ๊น์ง๋ ์คํ๋ง์ ์ ๋ฌธํ ์ง ์ผ๋ง ๋์ง ์์๋ค๋ ํ๊ณ๋ก ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ์ง ์์๋๋ฐ ์ฌ๊ธฐ์์ ์์ '๊นจ๋ํ์ง ์๋ค'๋ผ๊ณ ๋ชป๋ฐ์ผ๋๊น ์ฃ์ฑ ๊ฐ์ด ๋ ๋ค. ์์ผ๋ก ํ๋ ํ๋ก์ ํธ์๋ ๋ฌด์กฐ๊ฑด ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํด์ผ๊ฒ ๋ค.(์ฌ์ค ์ผ์ผํ postman์ผ๋ก ๋๋ฆฌ๋ ๊ฒ ํ๋ ์ด์ ๋ ์๋ค. swagger๋ ์ข์ง๋ง ์๋ ๊ทธ๋ ๊ฒ ๋ฏฟ์์ง์ค๋ฝ์ง ์๋ค)
- ์์กด์ฑ์ด ์ต์์ด๋ฉฐ ๊ฐ ์์กด์ฑ์ ๋ช ํํ ์ ์ํ๋ ์ฝ๋ -> ์ ์ง๋ณด์๊ฐ ์ฌ์์ง๋ค
๊ฐ์ ๋ค์ผ๋ฉด์ ์ ์ ํ๊ฒ ๋๋ ๊ฒ. ์ด๋ฒ์ RESTful API ๊ด๋ จ ๊ฐ์๋ฅผ ๋ค์๋๋ฐ 1๋ ์ ๊ฐ์๋ผ ๊ทธ๋ฐ์ง ํ๋ฐ๋ถ 50%์์ dependency ๋ฒ์ ์ค๋ฅ๊ฐ ๋์์์ด ๋ฐ์ํ๋ค. ๊ทธ๋ฐ๋ฐ ๊ฐ ์์กด์ฑ์ด ์ด๋ค ์ญํ ์ ํ๋์ง ๋์์์ง ์์ ์ผ์ผํ ์ฐพ์๋ณด๋๋ผ ํ๋ค์๋ ๊ธฐ์ต์ด ์์ํ๋ค. ์ด๋ฒ ์ฃผ ๋ด์ ์์กด์ฑ ๊ณต๋ถํ๊ณ ํ์ํ ์ ๋ค๋ง ๊ณจ๋ผ ์จ์ผ๊ฒ ๋ค.
๊ถ๊ธํ๊ฑฐ๋ ์ ์ดํด๋์ง ์๋ ๋ด์ฉ
- ๋ฅด๋ธ๋์ ๋ฒ์น(leblanc's law) : Later Equals Never
https://yiming.dev/clipping/2019/03/21/le-blanc's-law-a-k-a-later-equals-never/
LeBlanc's Law (a.k.a Later Equals Never) - Yiming Chen
LeBlanc's Law (a.k.a Later Equals Never) Suddenly a clever idea strikes you. Maybe it means adding some temporal/implicit dependencies. Maybe it means throwing in a magic string that will only work until January 3 next year. Maybe it means breaking the des
yiming.dev
๊ฐ์ฒด์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น
1) SRP(The Single Responsibility Principle) : ํด๋์ค์๋ ํ ๊ฐ์ง, ๋จ ํ ๊ฐ์ง ๋ณ๊ฒฝ ์ด์ ๋ง ์กด์ฌํด์ผ ํ๋ค.
-> ๋ณ๊ฒฝ ์ด์ ๊ฐ ๋ฌด์จ ๋ง์ธ์ง? ํด๋์ค๋ฅผ ์ ๋ณ๊ฒฝํ๋ ๊ฑด์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค.
2) OCP(The Open Closed Principle) : ํด๋์ค๋ ํ์ฅ์ ์ด๋ ค ์์ด์ผ ํ๋ฉฐ ๋ณ๊ฒฝ์ ๋ซํ ์์ด์ผ ํ๋ค.
3) LSP(The Liskov Substitution Principle) : ์์๋ฐ์ ํด๋์ค๋ ๊ธฐ์ด ํด๋์ค๋ฅผ ๋์ฒดํ ์ ์์ด์ผ ํ๋ค.
4) DIP(The Dependency Inversion Principle) : ์ถ์ํ์ ์์กดํด์ผ ํ๋ฉฐ, ๊ตฌ์ฒดํ์ ์์กดํ๋ฉด ์ ๋๋ค.
5) ISP(The Interface Segregation Principle) : ํด๋ผ์ด์ธํธ์ ๋ฐ์ ํ๊ฒ ์๊ฒ ์ชผ๊ฐ์ง ์ธํฐํ์ด์ค๋ฅผ ์ ์งํ๋ค.
'๐ ๊ฐ๋ฐ ์์ > Clean Code' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Clean Code] 6์ฅ ๊ฐ์ฒด์ ์๋ฃ๊ตฌ์กฐ (0) | 2022.03.02 |
---|---|
[Clean Code] 4์ฅ ์ฃผ์ (0) | 2022.02.26 |
[ํด๋ฆฐ ์ฝ๋] 3์ฅ ํจ์ (0) | 2022.02.23 |
[ํด๋ฆฐ ์ฝ๋] 2์ฅ ์๋ฏธ ์๋ ์ด๋ฆ (0) | 2022.02.21 |
[ํด๋ฆฐ์ฝ๋] ์ฑ ๊ตฌ๋งค ์ธ์ฆ (0) | 2022.02.18 |
๋๊ธ