- ํฌ๊ทธ๋ฆฌํธ
- Clean Code
- react ga4
- github
- ๊ตฌ๊ธ์ ๋๋ฆฌํฑ์ค
- Day js
- nomad coders
- UX
- ๊ตฌ๊ธ ์ ๋๋ฆฌํฑ์ค
- Day.js
- React
- devbookclub
- ํด๋ฆฐ์ฝ๋
- ๋ ธ๋ง๋์ฝ๋
- data management
- law of ux
- ๊นํ ํด๋ก ์๋ฌ
- ์กด ์ผ๋ธ๋ก ์คํค
- react ga
- uxui
- ๋ ธ๊ฐ๋ถ
- github clone
- cleancode
- Data Driven UX
- ๊ฐ๋ฐ์๋ถํด๋ฝ
- NomadCoders
- FOUR GRIT
- react scripts
- Google Analytics
- Jon Yablonski
TURI BLOG
[Nomad Coders Challenge] Clean Code - Assignment #13 ๋ณธ๋ฌธ

๐ It is part of a book club challenge on a programming learning website called Nomad Coders. The challenge is to demonstrate what I have learned after reading Clean Code by Robert C. Martin.
๐ It will consist of the following sections over three weeks: the range of reading, the top quotes from the book, my review, and remaining questions.
๐ป I plan to read Clean Code in JavaScript and Python, referring to the GitHub repositories shared by Nomad Coders with the challengers.
Assignment #13
- ๐ Chapter 10. Classes (Jeff Langr)
- โ๏ธ TIL
- Top quotes from the book
- Case study in Python
- Remaining questions
๐ Top quotes from the book
- ํด๋์ค๋ ์์์ผ ํ๋ค.
- ํด๋์ค๋ฅผ ์ค๊ณํ ๋๋, ํจ์์ ๋ง์ฐฌ๊ฐ์ง๋ก '์๊ฒ' - ํด๋์ค๊ฐ ๋งก์ ์ฑ ์์ด ์ ๊ฒ
- ํด๋์ค ์ค๋ช - if, and, or, but ์ฌ์ฉ ์์ด, 25๋จ์ด ๋ด์ธ๋ก ๊ฐ๋ฅํด์ผ ํ๋ค.
- Single Responsibility Principle(๋จ์ผ ์ฑ
์ ์์น, SRP): ํด๋์ค๋ ๋ชจ๋์ ๋ณ๊ฒฝํ ์ด์ ๊ฐ ๋จ ํ๋๋ฟ์ด์ด์ผ ํ๋ค.
- Robert C. Martin writes: A class should have only one reason to change.
- ์์ ํด๋์ค๊ฐ ๋ง์ ์์คํ ์ด๋ ํฐ ํด๋์ค๊ฐ ๋ช ๊ฐ๋ฟ์ธ ์์คํ ์ด๋ ๋์๊ฐ๋ ๋ถํ์ ๊ทธ ์๊ฐ ๋น์ทํ๋ค. ์ด๋ ์์คํ ์ด๋ ์ตํ ๋ด์ฉ์ ๊ทธ ์์ด ๋น์ทํ๋ค. "๋๊ตฌ ์์๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๊ณ ์ถ์๊ฐ? ์์ ์๋์ ๋ง์ด ๋๊ณ ๊ธฐ๋ฅ๊ณผ ์ด๋ฆ์ด ๋ช ํํ ์ปดํฌ๋ํธ๋ฅผ ๋๋ ๋ฃ๊ณ ์ถ์๊ฐ? ์๋๋ฉด ํฐ ์๋ ๋ช ๊ฐ๋ฅผ ๋๊ณ ๋ชจ๋๋ฅผ ๋์ ธ ๋ฃ๊ณ ์ถ์๊ฐ?"
- Cohension(์์ง๋): ํด๋์ค๋ ์ธ์คํด์ค ๋ณ์ ์๊ฐ ์์์ผ ํ๋ค. ๋ฉ์๋ ๋ณ์๊ฐ ๋ง์ ์๋ก ๋ฉ์๋์ ํด๋์ค์ ์์ง๋๊ฐ ๋๋ค. ์์ง๋๊ฐ ๋์ ํด๋์ค๋ ๋ฐ๋์งํ์ง ์๋ค. ๊ทธ๋ ์ง๋ง ์์ง๋๊ฐ ๋์ ํด๋์ค๋ฅผ ์ ํธํ๋ค. ํด๋์ค์ ์ํ ๋ฉ์๋์ ๋ณ์๊ฐ ์๋ก ์์กดํ๋ฉฐ ๋ ผ๋ฆฌ์ ์ธ ๋จ์๋ก ๋ฌถ์ด๊ธฐ ๋๋ฌธ. 'ํจ์๋ฅผ ์๊ฒ, ๋งค๊ฐ๋ณ์ ๋ชฉ๋ก์ ์งง๊ฒ' -> ์ธ์คํด์ค ๋ณ์๊ฐ ๋ง์์ง๋ค. -> ์๋ก์ด ํด๋์ค๋ก ์ชผ๊ฐ์ผ ํ๋ค๋ ์ ํธ๋ค.
- OCP(Open-Closed Principle) - ๊ฐ์ฒด ์งํฅ ์ค๊ณ์์ ํต์ฌ ์์น ์ค ํ๋. ํด๋์ค๋ ํ์ฅ์ ๊ฐ๋ฐฉ์ ์ด๊ณ ์์ ์ ํ์์ ์ด์ด์ผ ํ๋ค๋ ์์น
- โIncorporate new features by extending the system, not by making modifications (to it)โ, Uncle Bob.
- ๊นจ๋ํ ์์คํ
์ ํด๋์ค๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ ๋ฆฌํด ๋ณ๊ฒฝ์ ์๋ฐํ๋ ์ํ์ ๋ฎ์ถ๋ค.
์ ์ฝ๋๋, ์๋ก์ด SQL๋ฌธ์ ์ง์ํํ๊ฑฐ๋ ๊ธฐ๋ณธ SQL๋ฌธ ํ๋๋ฅผ ์์ ํ ๋ sql ํด๋์ค๋ฅผ ๊ณ ์ณ์ผ ํ๋ฏ๋ก, ๋ณ๊ฒฝํ ์ด์ ๊ฐ ๋ ๊ฐ์ง -> SRP( Single Responsibility Principle, ๋จ์ผ์ฑ ์์์น)์ ์๋ฐํ๋ค. - ๊ณต๊ฐ ์ธํฐํ์ด์ค๋ฅผ -> sql ํด๋์ค์์ ํ์ํ๋ ํด๋์ค๋ก ๋ณ๊ฒฝ
- ๋น๊ณต๊ฐ ๋ฉ์๋ -> ํด๋น ํ์ ํด๋์ค๋ก ์ด๋- ๋ชจ๋ ํ์ ํด๋์ค์ ๊ณตํต๋๋ ๋น๊ณต๊ฐ ๋ฉ์๋ -> ์ ํธ๋ฆฌํฐ ํด๋์ค๋ก ์ด๋ - ํจ์ ํ๋๋ฅผ ์์ ํ๋๋ผ๋, ๋ค๋ฅธ ํจ์๊ฐ ๋ง๊ฐ์ง ์ํ์ด ์ฌ๋ผ์ง. ํด๋์ค๊ฐ ์๋ก ๋ถ๋ฆฌ๋์๊ธฐ ๋๋ฌธ.
- Dependency Inversion Principle(DIP): ํด๋์ค๊ฐ ์์ธํ ๊ตฌํ์ด ์๋๋ผ ์ถ์ํ์ ์์กดํด์ผ ํ๋ค
- ์ถ์ํ๋ก - ์ค์ ๋ก ์ฃผ๊ฐ๋ฅผ ์ป์ด์ค๋ ์ถ์ฒ, ์ป์ด์ค๋ ๋ฐฉ์ ๋ฑ์ ๊ตฌ์ฒด์ ์ธ ์ฌ์ค์ ์จ๊ธด๋ค.
- ์ต์ ๊ฒฐํฉ๋: ๊ฐ ์์คํ ์์๊ฐ ๋ค๋ฅธ ์์๋ก๋ถํฐ, ๋ณ๊ฒฝ์ผ๋ก๋ถํฐ ์ ๊ฒฉ๋ฆฌ๋์ด ์๋ค๋ ์๋ฏธ. ์ ๊ฒฉ๋ฆฌ๋ ์๋ก ์์๋ฅผ ์ดํดํ๊ธฐ ์ฝ๋ค.
๐ต Case study in Python based on @zedr 's Clean Code Python GitHub repository
- Single Responsibility Principle (SRP)


๐ Remaining questions
- OCP(Open-Closed Principle) - ๊ฐ์ฒด ์งํฅ ์ค๊ณ์์ ํต์ฌ ์์น ์ค ํ๋. ํด๋์ค๋ ํ์ฅ์ ๊ฐ๋ฐฉ์ ์ด๊ณ ์์ ์ ํ์์ ์ด์ด์ผ ํ๋ค๋ ์์น
'Nomad Coders' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Nomad Coders Challenge] Clean Code - Assignment #14 (1) | 2024.12.17 |
---|---|
[Nomad Coders Challenge] Clean Code - Assignment #11 (0) | 2024.12.15 |
[Nomad Coders Challenge] Clean Code - Assignment #10 (3) | 2024.12.10 |
[Nomad Coders Challenge] Clean Code - Assignment #08 (4) | 2024.12.08 |
[Nomad Coders Challenge] Clean Code - Assignment #07 (0) | 2024.12.07 |