์ ์ฒด ๊ธ
์ฝ๋์จ(CodeSoom) ๋ฆฌ์ํธ 11๊ธฐ 5์ฃผ์ฐจ ํ๊ณ
ํ์ตํ ๊ฒ๋น๋๊ธฐ ์ฒ๋ฆฌ๋๊ธฐ ์ฒ๋ฆฌ vs ๋น๋๊ธฐ ์ฒ๋ฆฌ์ฝ๋ฐฑ ํจ์์ฝ๋ฐฑ ์ง์ฅ Promise, async/awaitPromise ๊ฐ์ฒด๋์ฝ๋ฐฑ ์ง์ฅ์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒPromise์ 3๊ฐ์ง ์ํPromise ์ฐ๊ฒฐ, ์๋ฌ ์ฒ๋ฆฌ ๋ฐฉ๋ฒasync/await ๋ฌธ๋ฒ์ด๋ ๐ ๋ฌด์์ ๊ณต๋ถํ๋์ง๋ ์๋ ๊นํ๋ธ ์ฃผ์์ ํจ์ฌ ๋ ์์ธํ ๊ธฐ๋กํด๋์์ต๋๋ค.๋งํฌ ๋ฐ๋ก๊ฐ๊ธฐ ๐ ๐ป CodeSoom ๋ฆฌ์ํธ 11๊ธฐ - ํ์ต ๋ด์ฉ ์ ๋ฆฌ ๋ฐ ํ๊ณ ํ๊ณ ๋ฐ ๋๋์ ์์งํ ๊ณ ๋ฐฑ์ ํ์๋ฉด.. ์ด๋ฒ ์ฃผ๋ ํ๊ณ ๋ฅผ ํ ๊ฒ์ด ๋ณ๋ก ์๋ค.์๋ํ๋ฉด ์ด๋ฒ ์ฃผ๋ ์ฝ๋์จ ๊ต์ก์ ์๊ฐ์ ๊ฑฐ์ ํฌ์ํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ด๋ค.๊ทธ๋์ ์ด๋ฒ ํ๊ณ ๋ ๋ด๊ฐ ์คํจํ ์ด์ , ์ค์ค๋ก์ ๋ํ ๋ฐ์ฑ์ด ์ฃผ๋ฅผ ์ด๋ฃฐ ๊ฒ ๊ฐ๋ค. ์ด๋ฒ ์ฃผ ์ฝ๋์จ ๊ณต๋ถ๋ฅผ ๋ณ๋ก ํ์ง ๋ชปํ ์ด์ ๋ฅผ ์๊ฐํด๋ณด๋, ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์์ง๋ง,..
์ฝ๋์จ(CodeSoom) ๋ฆฌ์ํธ 11๊ธฐ 4์ฃผ์ฐจ ํ๊ณ
ํ์ตํ ๊ฒํ ์คํธ ์ฝ๋ ์ถ๊ฐ ์ค์ตToDo์ฑ (์ง๋ ์ฃผ ๊ณผ์ ) ํ ์คํธ ์ฝ๋ ์ฒ์๋ถํฐ ํผ์ ํ์ผ๋ก ๋ค์ ์์ฑํด๋ณด๊ธฐBDD ์คํ์ผ (describe - context- it) ์ค์ต Flux ์ํคํ ์ฒFlux Architecture ๊ฐ๋ (๋จ๋ฐฉํฅ์ผ๋ก ๋ฐ์ดํฐ ํ๋ฆ์ ๊ด๋ฆฌํ๋ ํจํด)[Action] -> [Dispatcher] -> [Store] -> [View][View] -> [Action] -> [Dispatcher] ReduxRedux ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋? (์ํ ๊ด๋ฆฌ)Redux์ 3๊ฐ์ง ์์นRedux์ ๋์ ํ๋ฆacton, dispatch,reducer, store, subscribe, getState, render ๊ฐ๊ฐ์ ์ญํ Presentational Components, Container ComponentsProvi..
์ฝ๋์จ(CodeSoom) ๋ฆฌ์ํธ 11๊ธฐ 3์ฃผ์ฐจ ํ๊ณ
ํ์ตํ ๊ฒ2์ฃผ์ฐจ ๋ณต์ต (์ฝ๋ ์ดํด ์์ฃผ)์ปดํฌ๋ํธ ์์ฑ ๋ฐ ๋ถ๋ฆฌ ์ฐ์ตSpecial Props Warning ๋ฌธ์ ์ ๋ํ ๊ณ ์ฐฐ์ง๋ ์ฃผ 2๋ฒ์งธ ๊ณผ์ (๊ฐ๋จํ Todo App ๋ง๋ค๊ธฐ) ์ฝ๋ ์ดํดํ๊ธฐ๊ฐ์ฒด ๋งค๊ฐ๋ณ์ ๊ตฌ์กฐ ๋ถํด ํ ๋น ๋ฐฉ๋ฒ, ...state ๊ตฌ๋ฌธ ํ์ต TDD ๊ด๋ จ ๊ฐ๋ ํ์ตJest์ RTL (React Testing Library)์ ์ญํ ๋จ์ ํ ์คํธ์ TDD๋ ๋ฌด์์ธ๊ฐTDD์ ๋ฃฐ๊ณผ TDD ์ฌ์ดํดJest ๋จ์ธ๋ฌธ (Assertion) ๊ณผ ๊ตฌ์กฐ (expect ๋งค์๋ + Matcher)Matcher์ ์ข ๋ฅ์ Jest DOMํ ์คํธ์ ์ ํ (์ ๋ ํ ์คํธ, ๊ธฐ๋ฅ ํ ์คํธ, ํตํฉ ํ ์คํธ, E2E ํ ์คํธ)์ ๋ ํ ์คํธ์ ๊ธฐ๋ฅ ํ ์คํธ์ ์ฅ๋จ์ ํ ์คํธ ์ฝ๋ ์์ฑ ์คํ์ผ - BDD ํ ์คํธ ์ฝ๋ ์์ฑ ์ค์ตํ ์คํธ ์ฝ๋ ๋ฌธ๋ฒ ๊ณต๋ถ์ปดํฌ..
์ฝ๋์จ(CodeSoom) ๋ฆฌ์ํธ 11๊ธฐ 2์ฃผ์ฐจ ํ๊ณ
ํ์ตํ ๊ฒ1์ฃผ์ฐจ ๋ณต์ต (์ฝ๋ ์ดํด ์์ฃผ)createElement ํจ์๋ฅผ ์ง์ ๊ตฌํํ๋ ๊ณผ์ ๋ถํฐ ๋ณต์ต1์ฃผ์ฐจ ๊ณผ์ ๋ณต์ต (๋ค์ ๊ตฌํํด๋ณด๊ธฐ)๋ ผ๋ฆฌ์ฐ์ฐ์ || ์ด JavaScript์์ ๋์ํ๋ ๋ฐฉ๋ฒ์ค์ฒฉ if / else๋ฌธ์ ํผํ๊ธฐ ์ํ Guard Clause ํ์ต React ํ์ตReact ํ๋ ์์ํฌ๊ฐ ํ์ํ ๋ฐฐ๊ฒฝReact์ ํต์ฌ ๊ฐ๋ ReactDOM๊ณผ ๊ฐ์ DOM์ปดํฌ๋ํธ์ ๊ฐ๋ ์ปดํฌ๋ํธ ํฉ์ฑ, ์ปดํฌ๋ํธ ๋ถ๋ฆฌ (๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ)๋ฆฌ์กํธ Hook, useState์ปดํฌ๋ํธ์ 'key' ์์ฑ Etc. webpack์ ์๋ฒ๋ฅผ ๋์ธ ์ ๊ฒฝ๋ก ์ค์ ์ ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ (index.js=>index.jsx) ๐ ๋ฌด์์ ๊ณต๋ถํ๋์ง๋ ์๋ ๊นํ๋ธ ์ฃผ์์ ํจ์ฌ ๋ ์์ธํ ๊ธฐ๋กํด๋์์ต๋๋ค.๋งํฌ ๋ฐ๋ก๊ฐ๊ธฐ ๐ ๐ป CodeSoom ๋ฆฌ์ํธ 11๊ธฐ..
์ฝ๋์จ(CodeSoom) ๋ฆฌ์ํธ 11๊ธฐ 1์ฃผ์ฐจ ํ๊ณ
ํ์ตํ ๊ฒ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ถNode.JS, NPM ์ค์น ๋ฐ ์ฌ์ฉ ๋ชฉ์ ํ์ตNPM ๋ช ๋ น์ด์ ์ต์ํด์ง๊ธฐESLint, Webpack, Babel ์ค์น ๋ฐ ์๋๋ฒ๊ณผ ๊ฐ๊ฐ์ ์ฌ์ฉ ๋ชฉ์ ํ์ต JavaScript๋ฅผ ํ์ฉํ Web ๊ฐ๋ฐ์๋ฐ์คํฌ๋ฆฝํธ '๊ฐ์ฒด'์ ๋ํด ํ์ต๊ตฌ์กฐ๋ถํด ํ ๋น, ์์ฃผ ์ฐ์ด๋ ๋ฐฐ์ด ํจ์ (map, filter, forEach), ์ ๊ฐ์ฐ์ฐ์ ์ฌ์ฉ๋ฒ ํ์ต + ์ต์ํด์ง๊ธฐDOM๊ณผ DOM Tree์ ์ดํดJSX์ ์ดํด ๊น ์ดํดํ๊ณ PR ๋ณด๋ด๊ธฐ๊น์ ๊ฐ๋ ๋ฐ ์ฉ์ด ํ์ต (์ปค๋ฐ, ๋ธ๋์น, ์ ์ฅ์ ๋ฑ)๊น์ ๋ค์ํ ๋ช ๋ น์ด ํ์ต + ์ฌ์ฉ ์ฐ์ตPull Request ํ๋ จ ๐ ๋ฌด์์ ๊ณต๋ถํ๋์ง๋ ์๋ ๊นํ๋ธ ์ฃผ์์ ํจ์ฌ ๋ ์์ธํ ๊ธฐ๋กํด๋์์ต๋๋ค.๋งํฌ ๋ฐ๋ก๊ฐ๊ธฐ ๐ ๐ป CodeSoom ๋ฆฌ์ํธ 11๊ธฐ - ํ์ต ๋ด์ฉ ์ ๋ฆฌ ๋ฐ ํ๊ณ ..
[Python] Call by Assignment ์ดํดํ๊ธฐ
Python์ ํจ์์ ์ธ์๋ฅผ ์ ๋ฌํ ๋ Call by Assignment ๋ฐฉ์์ผ๋ก ์ ๋ฌ๋๋ค. ์ด ๋ง์ ๋ฌด์จ ์๋ฏธ์ผ๊น? mutable VS immutable ์ฐ์ mutable๊ณผ immutable์ ๊ฐ๋ ๋ถํฐ ์ง๊ณ ๋์ด๊ฐ๋ฉด, python์์ ๋ชจ๋ ๊ฒ์ด ๊ฐ์ฒด์ด๋ฉฐ ์ด 2๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋ค. immutable ๊ฐ์ฒด : ๊ฐ์ด ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ์ฒด int, float, str, tuple ๋ฑ mutable ๊ฐ์ฒด : ๊ฐ์ด ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ์ฒด (๋จ, ์์ ์ id๊ฐ์ ์ผ์ ํ๊ฒ ์ ์ง) list, dictonary, set ๋ฑ Python์์์ Call By Value VS Call By Reference immutable ๊ฐ์ฒด๊ฐ ํจ์์ ์ธ์๋ก ์ ๋ฌ๋๋ฉด ๋ง์น ๊ฐ์ด ๋ณต์ฌ๋์ด ์ ๋ฌ๋๋ Call By Value์ฒ๋ผ ๋์ํ๋ค. (์๋ณธ๊ฐ ..
๋๋ ์ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ๋ก ํ์๊น?
(์ด ํฌ์คํธ๋ velog ํ๋ซํผ์ ํฌ์คํ ํ๋ ๊ฒ์๊ธ์ ๊ทธ๋๋ก ๊ฐ์ ธ์จ ๊ฒ์ ๋๋ค.) ๋๊ตฌ๋ ๊ณต๋ถ๋ฅผ ํ๋ค ๋ณด๋ฉด, ์ ์๋๋ ๋ ์ด ๋ถ๋ช ์์ ๊ฒ์ด๋ค.๋์๊ฒ ์ค๋์ด ๊ทธ๋ ๋ค.๊ทธ๋ผ๊ณผ ๋์์, ์ง๊ธ ๋ด๊ฐ ์ค์ค๋ก ์ฌ์ ์ผ๋ก ๋ง์ด ์กฐ๊ธํดํ๊ณ ์๋ค๋ ๊ฒ์ ๋๊ผ๋ค.์ ๊ทธ๋ด๊น. ์กฐ๊ธ ๊ณ ๋ฏผํด๋ณด๋ ๋ต์ ๊ธ๋ฐฉ ๋์๋ค. ์์ผ๋ก ๋ช ๋ ๋ค, ์ทจ์ ์ ์ ์ ๋ฐ์ด๋ค ์๊ธฐ์ ๋๋ ๊ณผ์ฐ ๊ธฐ์ ์ด ์ํ๋ ์ธ์ฌ์ ๋ชจ์ต์ด ๋ ์ ์์๊น?๊ทธ๋ฌ๊ธฐ ์ํด ์ง๊ธ ๋๋ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ๊ณต๋ถํ๊ณ ์๋ ๊ฑด๊ฐ?ํน์ ์๋ชป๋ ์ ํ์ผ๋ก ์๊ฐ์ ํ๋นํ๊ณ ์๋ ๊ฑด ์๋๊น?์ด๋ฐ ๊ฑฑ์ ๋ค์ด ๋๋ ๋ชจ๋ฅด๋ ์ฌ์ด์ ๋ด ์ค์ค๋ก๋ฅผ ์ฅ์ฃ๊ณ ์์๋ ๊ฒ์ด๋ค. ๋๋ ์ข์ ๊ฐ๋ฐ์๊ฐ ๋๊ณ ์ถ๋ค.๋๋ ์ค๋ ฅ ์๊ณ , ์ํต๋ ์ํด ๋จ๋ค์๊ฒ ์ธ์ ๋ฐ๋ ๊ฐ๋ฐ์๊ฐ ๋๊ณ ์ถ๋ค.๊ทธ๋ฆฌ๊ณ ๋๋ณด๋ค ๋ ๋์ ์ฌ๋๋ค๊ณผ ํจ๊ป..
[Python] ํ์ด์ฌ ์ ๋ ฅ ํจ์ input ์ฌ์ฉ๋ฒ ์ ๋ฆฌ
๊ธฐ๋ณธ ์ ๋ ฅ ๋ฐฉ๋ฒ python์์ input()ํจ์๋ฅผ ํตํด ํ ์ค ๋จ์๋ก ๋ฌธ์์ด์ ์ ๋ ฅ ๋ฐ์ ์ ์๋ค. a = input() print(f"a = {a}") โผ ์ ๋ ฅ ๋ฐ ์ถ๋ ฅ ๊ฒฐ๊ณผ >> Hello World a = Hello World >> 4 a = 4 (์ด๋ 4๋ ๋ฌธ์์ด "4"์ด๋ค.) ๋ฌธ์์ด์ด ์๋ ๋ค๋ฅธ ์๋ฃํ์ผ๋ก ์ ๋ ฅ ๋ฐ๊ธฐ input()ํจ์๋ก ์ ๋ ฅ๋ฐ์ ๋, ์ ๋ ฅ๊ฐ์ ์๋ฃํ์ด ์ ์๋ ์ค์์ฌ๋ ๋ฌธ์์ด๋ก ์ธ์๋๋ค. b = input() print(b + 1) โผ ์ ๋ ฅ ๋ฐ ์ถ๋ ฅ ๊ฒฐ๊ณผ >> 4 ----> 4 print(b + 1) TypeError: can only concatenate str (not "int") to str ๋ฌธ์์ด์ ์ซ์๋ฅผ ๋ํ ์ ์์ผ๋ฏ๋ก ์๋ฌ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด๋ค. ์ซ์๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด..
[Python] ํ์ด์ฌ ์ถ๋ ฅ ํจ์ print ์ฌ์ฉ๋ฒ ์ ๋ฆฌ
๊ธฐ๋ณธ ์ถ๋ ฅ ๋ฐฉ๋ฒ print ํจ์ ํตํด ํ ๋ฌธ์ฅ ์ถ๋ ฅํ๊ธฐ python3์์ ๋ฌธ์ฅ์ ์ถ๋ ฅํ๊ธฐ ์ํด print()ํจ์๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ ๊ดํธ ๋ด์ ํฐ ๋ฐ์ดํ๋ ์์ ๋ฐ์ดํ ๋ ์ค ์๋ฌด๊ฑฐ๋ ์ฌ์ฉํด๋ ๋๋ค. python์์ ์์ ๋ฐ์ดํ๋ก ๋ฌถ์ด๋ ๋ฌธ์๊ฐ ์๋ ๋ฌธ์์ด๋ก ์ธ์ํ๋ค. (python์์ ๋ฌธ์ ๊ฐ๋ ์ด ์๋ค.) print("Hello World") print('Hello World') โผ ์ถ๋ ฅ ๊ฒฐ๊ณผ Hello World Hello World ํน์ ๋ฌธ์๋ฅผ ํฌํจ์์ผ ์ถ๋ ฅํ๊ธฐ ๋ฌธ์์ด ๋ด์ ์๋ ํน์ ๋ฌธ์ ์์ \๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด, ์ด๋ฅผ ๊ธฐํธ๊ฐ ์๋ ๋ฌธ์๋ก ์ธ์ํ๋ค. (์์ฃผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ฏ๋ก ๊ธฐ์ตํ์) print("Let\'s do it") - " , ' ๋ฅผ ํฌํจ์ํฌ ๋, """ ๋๋ ''' ๋ก ์ ์ฒด ๋ฌธ์ฅ์ ๊ฐ์ธ๋ ๋ฐฉ๋ฒ..
FE ์ทจ์ค์์ ์ํ ํฌ์คํธ/์๋ฃ ๋ชจ์
์ผ๋ง ์ velog์ ์ฌ๋ฆฐ ํฌ์คํธ์ธ๋ฐ ์๊ฐ๋ณด๋ค ๋ฐ์์ด ๋จ๊ฑฐ์ ํฐ์คํ ๋ฆฌ์๋ ๊ณต์ ํฉ๋๋ค. ์์ผ๋ก velog ํฌ์คํธ๊ณผ ๊นํ๋ธ ๋ ํฌ์งํ ๋ฆฌ์ ๊ณ์ํด์ ์ ์๋ฃ๋ค์ ์ ๋ฐ์ดํธ ํ ์์ ์ด์ง๋ง, ์ด ๊ธ์ ์ ๋ฐ์ดํธ ๋ด์ฉ์ ๋ฐ์ํ๊ธฐ ์ด๋ ค์ธ ๊ฒ ๊ฐ์, ๋์ velog ๊ฒ์๊ธ๊ณผ ๊นํ๋ธ ๋ ํฌ์งํ ๋ฆฌ์ ๋งํฌ๋ฅผ ๋จ๊น๋๋ค.๐ velog ๊ฒ์๊ธ ๋ฐ๋ก๊ฐ๊ธฐ๐ GitHub ๋ ํฌ์งํ ๋ฆฌ ๋ฐ๋ก๊ฐ๊ธฐ ์๊ฐ ๐ฌํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ก ์ทจ์ ์ ์ค๋นํ๋ ๋ชจ๋ ๋ถ๋ค์๊ฒ ๋์์ด ๋ ๋งํ๊ธฐ์ ๋ธ๋ก๊ทธ ํฌ์คํธ ๋ฐ ์ฌ๋ฌ ์๋ฃ๋ค์ ๋ชจ์ ์ ๋ฆฌํ์ต๋๋ค. ๐ ๊ทธ ๋์ ์ ์๊ฒ ์ ์ตํ๋ ์ฌ๋ฌ ํฌ์คํธ ๋ฐ ์๋ฃ๋ค์ ๋ค์ ๋ณผ ๋ชฉ์ ์ผ๋ก ์ ๊นํ๋ธ ๋ ํฌ์งํ ๋ฆฌ์ ์ ์ฅํด ๋์๋๋ฐ, ๋ค๋ฅธ ๋ถ๋ค์๊ฒ๋ ๊ณต์ ํ๋ฉด ์ข์ ๊ฒ ๊ฐ์์ ์ด๋ ๊ฒ ์ ๋ฆฌํ์ฌ ์ฌ๋ฆฝ๋๋ค.์ ๊ฐ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ฅผ ์ค๋นํ๊ณ ์์ด..