๐ ์์ธ ์ง์/์์๋๋ฉด ์ข์7 ํ ์คํธ ๋๋ธ Mock vs. Stub vs. Spy ์ฐจ์ด ์์๋ณด๊ธฐ ๐ ํ ์คํธ ๋๋ธ ์ผ๋จ ์์ฝํ์๋ฉด Mock, Stub, Spy ๊ฐ๊ฐ์ ํ ์คํธ์ ๋ชฉ์ ๊ณผ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ฌ์ฉํ๊ณ , ์ข ์ข ํจ๊ป ์ฌ์ฉ๋๊ธฐ๋ ํ๋ค. ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ค ๋ณด๋ฉด ์ ์ธ ๊ฐ์ง ๊ฐ๋ ์ ๋ง์ฃผํ๊ฒ ๋๋๋ฐ ์ง๊ณ ๋์ด๊ฐ ๋ณด์. Mock, Stub, Spy๋ ์ํํธ์จ์ด ํ ์คํธ์์ ์์ฃผ ์ฌ์ฉ๋๋ ์ฉ์ด๋ก, ๋ชจ๋ ํ ์คํธ ๋๋ธ(test double)์ ์ผ์ข ์ด๋ค. ํ ์คํธ ๋๋ธ์ด๋, xUnit Test Patterns์ ์ ์์ธ ์ ๋ผ๋ ๋ฉ์ค์๋ก์ค(Gerard Meszaros)๊ฐ ๋ง๋ ์ฉ์ด๋ก ํ ์คํธ๋ฅผ ์งํํ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ ์ด๋ฅผ ๋์ ํด ํ ์คํธ๋ฅผ ์งํํ ์ ์๋๋ก ๋ง๋ค์ด์ฃผ๋ ๊ฐ์ฒด๋ฅผ ๋งํ๋ค. (์ฐธ๊ณ : Test Double์ ์์๋ณด์) ๊ฐ๊ฐ์ ํ ์คํธ ์ค์ ์ธ๋ถ ์์คํ ์ด๋ ๋ณต์กํ ์ปดํฌ๋ํธ๋ฅผ ๋์ฒดํ๋ ๋ฐ์ ์ฌ์ฉ๋์ง๋ง, ๊ทธ ๋ชฉ.. 2023. 11. 27. ์๋ฐ์คํฌ๋ฆฝํธ ์์ ๋ถ๋ ๋จ์ด๊ฐ ๊ถ๊ธํด - '๋ชจ๋' ํธ ๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฒ์ ๊ณต๋ถํ๋ ์ฌ๋๋ค์ด๋ผ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ ์์ ๋ถ๋ ์์์ด์ธ '๋ชจ๋'์ด ๋ฌด์์ธ์ง ๊ถ๊ธํ ๊ฒ์ด๋ค. ๊ฐ๋ฐ์๋ค์ ๋๋ฌด๋๋ ์์ฐ์ค๋ฝ๊ฒ ์ฌ์ฉํ๋ '๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ' ๋ผ๋ ๋จ์ด๋ฅผ ๋ ์์ธํ ์์๋ณด์. ์ผ๋ฐ์ ์ธ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์๋ฏธ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋, ECMAScript6(2015) ์ดํ์ ๋ฐฉ๋ฒ๋ก ์ ๊ตฌํํ ์๋ฐ์คํฌ๋ฆฝํธ๋ค. ํ๋ง๋๋ก ์ ์ํ์๋ฉด, ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ์์์ '๋ชจ๋'์ ํ์ฌ์ ๊ฐ๋ฐ ํ์ค๊ณผ ๊ดํ์ ๋ฐ๋ฅด๋ฉฐ, ์ต์ ๋ธ๋ผ์ฐ์ ์ ์น ๊ฐ๋ฐ ๋๊ตฌ์์ ์ง์๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฒ์ ๋ฐ ๊ธฐ์ ์ ๊ฐ๋ฆฌํจ๋ค. ์ด๋ ECMAScript 6 (ES6) ์ดํ์ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ๋ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ ํฌํจํ๋ค. ํ์๊ฐ ์ด์ ์ ์์ฑํ ๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด, ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ทธ๊ฐ ์ญ์ฌ์์ ES6๋ฅผ ๋นผ๋๊ณ ์ด์ผ๊ธฐํ ์ ์์ ์ ๋.. 2023. 9. 15. ๋งํฌ๋ค์ด์ผ๋ก ํ ๊ธ ๊ธฐ๋ฅ์ ์ธ ์ ์์๊น? 1. ๊ฒฐ๋ก ์ผ๋จ ์ธ ์๋ ์๋ค. ๊ฐํน README ๋ฑ ๋งํฌ๋ค์ด์ ํ์ฉํด ๋ฌธ์๋ฅผ ์์ฑํ๋ค ๋ณด๋ฉด, ๋ ํต์ฌ์ ์ธ ๋ด์ฉ์ด๋ ์ด๋ฏธ์ง๋ค์ ์ ์ด๋๊ณ ์ถ์ ๋๊ฐ ์๋ค. ๋ง์น ๋ ธ์ ์ ํ ๊ธ๊ธฐ๋ฅ์ฒ๋ผ ์ ์๋ค ํ๋ค ํ๋ ๊ธฐ๋ฅ ๋ง์ด๋ค. ์๋ฐํ ๋งํ์๋ฉด, ๋งํฌ๋ค์ด์์๋ ํ ๊ธ ๊ธฐ๋ฅ์ ์ง์ํ์ง ์์ผ๋ html์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉํ ์ ์๋ค. 2. ์ฌ์ฉ ๋ฐฉ๋ฒ ์๋์ ๊ฐ์ด ์ ๋ ฅํ๋ฉด ๋๋ค. ํ๊ทธ ์ฌ์ด์๋ ํ ๊ธ ์ผ๊ฐํ ์์ ํ ์คํธ๋ฅผ ๋ํ๋ผ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ค. ๋๋ถ์ด, html ์ฌ์ด์ markdown์ ์ธ์ํ๊ธฐ ์ํ ์ฝ๋๋ก ๋ผ๋ ๊ฒ์ ๊ผญ ๋ฃ์ด ์ฃผ์ด์ผ ํ๋ค๊ณ ํ๋ค. ํ ๊ธ ์ ๊ธฐ/ํผ์น๊ธฐ ํ ์คํธ , ์ด๋ฏธ์ง ๋ฑ๋ฑ ์ ๋ ฅ ๊ทธ๋ผ ์๋์ ๊ฐ์ด ๋ํ๋๋ค. โถ ํ ๊ธ ์ ๊ธฐ/ํผ์น๊ธฐ 3. ์๋ฌธ์ ์ ๊ผญ ๋ฃ์ด์ฃผ์ด์ผ ํ ๊น? ์คํ์ ํด๋ณด์๋ค. 1. ๋ฃ์ ๋ฒ์ : ํ ๊ธ์ด I.. 2023. 6. 30. ํด๋ผ์ด์ธํธ ๋ฐฐํฌ๋ ์ ๊ธฐํ๊ณ ์ฌ๋ฐ์ด ๊ทธ๋ฆฌ๊ณ ๊ธด์ฅ๋ผ ... ๐ ๏ธ Todo ๋ง๋ค์ด ๋ ์น์ Github Actions์ Amazon S3๋ฅผ ํ์ฉํด ๋น๋ ๋ฐ ๋ฐฐํฌํ์ฌ, ์ฌ์ฉ์๋ค์ด ์ฌ์ฉํ ์ ์๊ฒ ํ๊ธฐ ์ด๋ฒ ํด๋ผ์ด์ธํธ ๋ฐฐํฌ์ 3๋จ๊ณ 1. Source : Github ๋ธ๋์น์ ์ฝ๋๊ฐ commit ๋๋ฉด 2. Build : Github Actions์ YAML ํ์ผ์ ์ ํ ๋ช ๋ น์ด๋ฅผ ํ ๋๋ก Webpack์ ์ด์ฉํด build ํ๊ธฐ 3. Deploy : Github Actions์ YAML ํ์ผ์ ์ ํ ๋ช ๋ น์ด๋ฅผ ํ ๋๋ก S3๋ก build ๊ฒฐ๊ณผ๋ฅผ upload ํ๊ธฐ ๐ง YAML ํ์ผ์ ์ฝ๋ ์ ๊ธฐ 1. ํด๋น repository์ ๋ธ๋์น ์ด๋ฆ์ ์ ์ด์ค๋ค. ํ์ฌ ๋ธ๋์น ๋ช ์ ํ์ธํ๋ ค๋ฉด git branch๋ผ๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅ ํ ํ์ธ, q๋ฅผ ๋๋ฌ ์ข ๋ฃํ๋ฉด ๋๋ค. name: client on:.. 2023. 6. 5. ์์๋๋ฉด ์ธ๋ฐ์๋ package.json๊ณผ package-lock.json์ ์ฐจ์ด Node.js ํ๋ก์ ํธ๋ฅผ ์์ํ ๋, ํฐ๋ฏธ๋์ 'npm install'์ ์ ๋ ฅํ๋ฉด ์๋ ์ฌ์ง๊ณผ ๊ฐ์ด ์ฌ๋ฌ ํ์ผ๋ค์ด ๊ธฐ๋ณธ์ผ๋ก ์ค์น๋๋ค. ๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ package.json์ ๋ฌด์์ด๊ณ , ๊ฑฐ๊ธฐ๋ค package-lock.json์ ๋ฌด์์ผ๊น? ํ๋ก์ ํธ ์์์ ์์ ์ผ๋จ ๊ตฌ์กฐ๋ถํฐ ์๊ณ ์์ํด ๋ณด์. 1. package.json # package.json ์์ { "name": "codingElla", "version": "0.1.0", "private": true, "dependencies": { "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", "re.. 2023. 4. 30. ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ ์ UI/UX๋ฅผ ์์์ผ ํฉ๋๊น? ์๋ ๋ด์ฉ์ ์ฐ์ํํ ํฌ: [10๋ถ ํ ์ฝํก] ์๋์ แแ ณแ แ ฉแซแแ ณแแ ฆแซแแ ณ แแ ขแแ กแฏแแ กแแ ฆแแ ฆ UXแ แ กแซ ์์์ ์ฐธ๊ณ ํ์ฌ ๋ช๋ช ์์ ํ๋ฉด์ ๋ง๋ถ์์ต๋๋ค. ์ ์ตํ ๋ด์ฉ ๋ฐํํด์ฃผ์ ์๋ ๋๊ป ๊ฐ์ฌ๋ฅผ ํํ๋ฉฐ, ์์์ ํตํด ํ์ตํ ๋ด์ฉ์ ์๋์ ์ ๋ฆฌํด ๋ณด์์ต๋๋ค. 0. ์ด ๊ธ์ ์ฐ๊ฒ ๋ ๊ณ๊ธฐ๊ฐ๋ฐ์๋ ์ฝ๋ฉ์ ์ํด์ผ ํ๋ ๊ฑฐ ์๋๊ฐ?๊ธฐํ์ ๊ธฐํ์๊ฐ, ๋์์ธ์ ๋์์ด๋๊ฐ ํด์ผ์ง ์ด๋ฒ์ฃผ ๋ถํธ์บ ํ ์์ ์์๋ UI์ UX์ ๋ํด ๋ค๋ฃจ์๊ณ , ํผ๊ทธ๋ง๋ฅผ ํ์ฉํด ์น์ฌ์ดํธ๋ฅผ ํด๋ก ํด ๋ณด์๋ค. ์ฌ์ค ์ ์๋ ์ด๋ ์ ๋ ์์์ผ ํ๋ ์ด์ ๋ฅผ ์ค์ค๋ก ๋ฉ๋ํ์ง๋ง, ํ์๋ ์์ง๋ ์ ๋ฉ๋์ด ๋์ง ์์๋ค. '๊ฐ๋ฉ์ด๋ ๊ฐ๋ฐ๋ง ํด๋ ๊ณต๋ถํ ๊ฑฐ๋ฆฌ๊ฐ ๋์ณ ํ๋ฃจํ๋ฃจ ์ฐ์ ์์ ๋์ ๊ณต๋ถ๋ง ์ณ๋ด๊ธฐ์๋ ๋ฐ์๋ฐ ์ฌ ๋์์ธ'์ด๋ผ๋ ์๊ฐ์ด ๋ค์ด ์ค์ต ์ค ํํ๊ฐ ์.. 2023. 4. 16. Library vs. Framework ์ฐจ์ด์ ์ ํ์คํ๊ฒ ์ ๋ฆฌํ๊ธฐ 0. ๋ค์ด๊ฐ๊ธฐ์ ์์ ๋๊ตฐ๊ฐ ๋์๊ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ ๊ฐ์ ์ฐจ์ด๋ฅผ ๋ฌผ์ด๋ณธ๋ค๋ฉด ํ ๋ง๋๋ก ์ ๋ฆฌํ ์ ์์๊น? ๋ต์ ์๋์๋ค. ๊ฐ๋ฐ์ ๊ณต๋ถํ๋ค ๋ณด๋ฉด ์ด ์ธ ๊ฐ์ง๋ฅผ ์์ฐจ์ ์ผ๋ก ๋ฐฐ์ฐ์ง๋ง ๊ฒฐ๋ก ์ ์ผ๋ก ๊ฐ๊ฐ์ด ๋ฌด์์ธ์ง, ์ฐจ์ด๋ ๋ ๋ฌด์์ธ์ง ๋ชจ๋ฅธ๋ค๋ฉด ํ์คํ๊ฒ ์ง๊ณ ๋์ด๊ฐ๋ณด์. 1. ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Library) ๋? Library๋ ๋จ์ด ๊ทธ๋๋ก ๋์๊ด์ด๋ค. ์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ์ํด ํ์ํ ๊ธฐ๋ฅ(ํจ์)๋ค์ ๋ชจ์ ๋์ ์ํํธ์จ์ด๋ค. ๋น์ ํ์๋ฉด, ์๋์ฐจ๊ฐ ๊ตด๋ฌ๊ฐ ๋ ( = ํ๋ก๊ทธ๋จ์ด ์ ์๋์ด ๋์๊ฐ ๋) ํ์ํ ๋ฐํด, ํค๋๋ผ์ดํธ, ์์ด๋ฐฑ ๋ฑ์ด๋ผ๊ณ ํ ์ ์๋ค. ์ฌ์ฌ์ฉ์ด ํ์ํ ๊ธฐ๋ฅ์ผ๋ก ๋ฐ๋ณต์ ์ธ ์ฝ๋ ์์ฑ์ ์์ ๊ธฐ ์ํด ์ธ์ ๋ ์ง ํ์ํ ๊ณณ์์ ํธ์ถํ์ฌ ์ฌ์ฉํ ์ ์๋๋ก Class๋ Function์ผ๋ก ๋ง๋ค์ด์ง ๊ฒ์ด๋ค. ๊ฐ.. 2023. 4. 2. ์ด์ 1 ๋ค์