๐ ํจ์๋ก ์ ๋ฌํด์ฃผ๋ ์ธ์๊ฐ 3๊ฐ ์ด์์ผ ๋, ๊ฐ์ฒด๋ก ๋ฌถ์ด์ ์ ๋ฌํ๊ธฐ
ํจ์๋ก ๋๊ฒจ์ฃผ๋ ์ธ์๊ฐ 3๊ฐ ์ด์์ด๋ฉด, ๊ฐ์ฒด ํ๋๋ก ๋ฌถ์ด ๊ฐ๋ ์ฑ์ด ์ข์์ง๊ฒ๋ ํ์. ๋ค์ ๋งํฌ๋ JS ํด๋ฆฐ ์ฝ๋ ์ง์นจ์๋ฅผ ํ๊ตญ๋ง๋ก ๋ฒ์ญํ ๊นํ๋ธ๋งํฌ์ด๋ค. ์ด๋ป๊ฒ ์ฝ๋๋ฅผ ์ง์ผํ ์ง ๊ฐ์ด ์ค์ง ์๋๋ค๋ฉด ๋ค์ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์. Robert C. Martin's - Clean Code ํ๊ธ ๋ฒ์ญํ ํจ์(Functions)
์๋ฅผ ๋ค์ด, defaultScore
๊ฐ์ฒด์ str
, dex
, int
, luck
์ ๋ฅ๋ ฅ์น๊ฐ ๋ค์ด์๋๋ฐ ๋ฒํผ์ ํด๋ฆญ ํ ๋๋ง๋ค ๋ฅ๋ ฅ์น๋ฅผ ์ฌ๋ผ๊ฐ๊ฒ ์ค์ ํ๋ ค๊ณ ํ๋ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ ์ ์๋ค. ์ฌ๊ธฐ์ ์ค์ํ ์ ์ quizScore
์์ ์ธ์๋ฅผ ํ๋ํ๋ ๋ฐ๋ก ๋ผ์ด์ ๋ฐ๋๊ฒ ์๋๋ผ ์ ์ฒด๋ฅผ ๋ฌถ์ด์ ๋ณด๋ธ๋ค๋ ์ ์ด๋ค. ์ดํ์ ํจ์ ์์์ ๋ณ์๋ฅผ ๋ฐ๋ก ์ค์ ํ๋ ๊ณผ์ ์ด๋ค.
// src/pages/score/Constant.js
const defaultScore = {
stats: {
str: 0,
dex: 0,
int: 0,
luck: 0,
},
};
// src/components/App.js
const App = () => {
const [score, setScore] = useState(defaultScore);
const quizScore = (defaultScore) => {
const str = defaultScore.stats.str;
const dex = defaultScore.stats.dex;
const int = defaultScore.stats.int;
const luck = defaultScore.stats.luck;
setScore = (score) => ({
...score,
stat: {
strScore: score.stats.str + str,
dexScore: score.stat.dex + dex,
intScore: score.stat.int + int,
luckScore: score.stat.luck + luck,
},
});
};
};
๋๊ธ