๋ฐ์ํ ๐ฟ Project15 FE ํ๋ก์ ํธ ์ ์ ํํ๋ ๊ธฐ์ ์คํ๋ค - yarn, emotion, materail UI... ํ๋ก์ ํธ๋ฅผ ์์ํ๋ฉด, ์๋ง์ ์ ํ์ ๊ธฐ๋ก์ ๋์ด๊ฒ ๋๋ค. ๋ฐ๋ก.. ๊ธฐ์ ์คํ๋ค ์ฌ์ค ์ผ์ ์ ํฐ ๊ณ ๋ฏผ์์ด ๋ง์ด ์ฐ์ด๊ธฐ ๋๋ฌธ์ ์ ํํ ๊ฒ๋ค์ด ์์์ง๋ง, ์ด๋ฒ ํ๋ก์ ํธ๋ ๋์๊ฒ ๋งค์ฐ ํฌ๊ณ ์์คํ๊ธฐ์ ์ ํ์ง๋ค์ ๋น๊ตํด๋ณด๊ฒ ๋ค! 1. Package Manager - npm vs yarn npm (node package Manager) Node.js ๊ธฐ๋ณธ ํจํค์ง ๊ด๋ฆฌ์ yarn npm๊ณผ ํฌ๊ฒ ์ฐจ์ด๋ ์์ง๋ง , ๋ฒ์ ์ฐจ์ด๋ก ์ธํ ๋ฒ๊ทธ๋ฅผ ๋ฐฉ์งํ๊ณ ํจํค์ง๊ฐ ์ฝ๊ฐ ๋ ๊ฐ๋ฒผ์ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๋ค ์๋์ ์์ ์ฑ์ด ๋ฏธ์ธํ๊ฒ ์ข์ง๋ง performance ์ฐจ์ด๋ ํฌ์ง ์๋ค. ๋ณ๋ ฌ์ ํจํค์ง ์ค์น, ๋ฒ์ ์ฐจ์ด๋ก ์ธํ ๋ฒ๊ทธ ๋ฐฉ์ง ๊ฐ๋ฅ โ๏ธ ๋ ์ฌ์ด์ ํฐ ์๋ฏธ๊ฐ ์์ง๋ง ์ฅ์ ์ด ๋ ํ yarn์ ์ ์ธ ์ด์ ๊ฐ ์๊ธฐ์ yarn์ ํ 2. Frame Wo.. 2021. 12. 19. [โ๏ธ๋ธ๋์ปคํผLv1] TodoList ์์ฑ๊ธฐ ์ง๊ธ๊ป html์ ์ง์ Web ํ๋ฉด์ ๊ตฌ์ฑํ๋ค๋ฉด ์ด์ ๊ทธ๋ง~~ DOM ์ ์ง์ ๊ตฌํํ๋ ๋ฐฉ์์ ํ๊ณ - DOM์ ์ ๊ทผํ๊ณ ์ ๋ฐ์ดํธํ๋ ์์ ์ ๋ช ํํ ๊ธฐ์ค์ ์ด ์๊ธฐ ๋๋ฌธ์ UI ๊ฐ ๋ง์์ง์๋ก DOM ์ ๋ฐ์ดํธ ๊ตฌ๊ฐ ์ถ์ ์ด ์ด๋ ค์์ง๋ค. - DOM ์ ๋ฟ๋ ค์ค data๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์ผ์ผํ ์ฐพ์์ ์กฐ์ํด์ผ ํ๋ค. - ์ค๋ณต ์ฝ๋๊ฐ ๋ง์์ง๊ณ DOM ์ ๊ทผ์ด ๋ง์์ง๋ค. ๋ฐ๋ผ์ Data๋ฅผ ๊ด๋ฆฌํ๋ component์ Data๋ฅผ ๋ฟ๋ ค์ค component๋ฅผ ๋ถ๋ฆฌ์ํฌ ํ์๊ฐ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ธฐ์กด DOM์ ์ง์ ์ ๊ทผํ๋ ๋ฐฉ์์ ์ฝ๋๋ฅผ ๋ณด๋ค ์ปดํฌ๋ํธ ํํ๋ก ์ถ์ํํด๋ณด์! ๐ ์ปดํฌ๋ํธ ํํ๋ก ๋ณ๊ฒฝ ๊ธฐ์กด ์ฝ๋ TODOS ์ด 0 ๊ฐ ์ ์ฒด๋ณด๊ธฐ ํด์ผํ ์ผ ์๋ฃํ ์ผ ์์ ๊ฐ์ธ index.html ์ index.js ์คํฌ๋ฆฝํธ๋ง ์ ๊ฑธ์ด๋๊ณ .. 2021. 8. 3. [SidePJ] Issue-Cracker 4๋ถ - v0.1.0๐ช ๋ฐ๊ตด๋ฐ๊ตด ๊ตด๋ฌ๊ฐ๋ ์ด์ํฌ๋์ปค ๐ Component ๊ณต์ ์ ์ํ๊ด๋ฆฌ FrontState ์ BackEnd State๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌํด์ผ ํ ๊น? ์ฒ์์๋ ๋ด๋น์์ ๋ ์ด๋ธ๋ง์ผ์คํค ์ ์ด๋ป๊ฒ ๊ด๋ฆฌํด์ผ ํ ๊น ๊ณ ๋ฏผํ๋ค. 1) ๋๋ฌ์ ์ถ๊ฐํ ๋๋ง๋ค ์๋ฒ์ ์ ์ก 2) FrontState์์ ๊ด๋ฆฌํ๊ณ ์ด์ ์์ฑ์ ๋๋ฅผ ๋ ์ ์ก GitHub์์๋ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๋์ง ํ์ธํด๋ณด์๋๋ฐ ๋๋ฅด๋๋ง๋ค ์๋ฒ๋ก ์ ์ก์ด ๋๋๊ฑด๊ฐ? ํ์ง๋ง ๋ก์น์ ๋ง๋ก๋ ์ํด๋ก ์๋ฒ๊ฐ์ด ๋์ํ๋๊ฒ์ด์ง ์ค์ ๋ก ๊ทธ๋ด๋ฆฌ๊ฐ ์์ ๊ฒ์ด๋ผ ํ๋ค. ใ ใ ๊ฒฐ๊ณผ์ ์ผ๋ก 2๋ฒ์ ์ ํ ์ด์ ์์ฑํ๊ธฐ ์ ๊น์ง ์ ์ธ๊ฐ์ง ์ ๋ณด๋ ํ์ ์๊ธฐ ๋๋ฌธ์ FrontState๋ก ๊ด๋ฆฌํ๋ค ์ด์ ์์ฑ ์ ์ ์กํ๋๊ฒ์ด ๊ฒฝ์ ์ ์ด๋ผ ์๊ฐํ๋ค. ์ฒ์ SideBar๋ฅผ ๋ง๋ค ๋ IssueAdd ์์ ๋์ํ๊ฒ๋ง ๋ง๋ค๋ค ๋ณด๋ ์ํ๊ฐ์ ๋ค ๊ฐ์ง.. 2021. 7. 10. [SidePJ] ๊นํ๋ธ Issue Cracker 3๋ถ - Recoil ์ํ๊ด๋ฆฌ์ ์์ ๋๋์ด ๋ง์ง๋ง ์ฃผ๊ฐ ์๋ค. ์ด๋ฒ ๋ฏธ์ ์ ๋ง์ง๋ง ์ฃผ์ด์ , ์ฝ๋์ค์ฟผ๋์ ๋ง์ง๋ง ์ฃผ๋ค.. 6๊ฐ์๋์ ์ด์ฌํ ๋ฌ๋ ธ๋๋ฐ ๋์ด ๋ณด์ด๋ ๊ฒ ๊ฐ์ ๋๋ฌด ์์ฝ๋ค. (๋ฌผ๋ก ๋์ ์ค๋ ฅ์ ์์ง ๊ฐ๊ธธ์ด ๋ฉ๋ค) ๊ทธ๋๋ ํ์ดํ ํ๋ฉฐ ์ด๋ฒ์ฃผ ๋ฏธ์ ์ต์ ์ ๋คํด์ ๋ผ์ฟค๊ณผ ํจ๊ป ๋๋ด๋ณผ ๊ฒ~!!!!!! ์Zใ ~~~~๐ฅ ๐TypeScript์ Recoil์ ํ์ฉํ ๋ชจ๋ฌ ์ธ๋ถ์์ญ ํด๋ฆญ์ ๋ซํ ์ฒ๋ฆฌ ์ฌ์ค airbnb์์ ํ์ด์ ๊ฐ๋จํ ๋ ๊ฑฐ๋ผ ์๊ฐํ๋๋ฐ ์๊ฐ๋ณด๋ค ํ์ ์คํฌ๋ฆฝํธ์ ๊ธธ์ ํ๋ํ๋ค. โ ์ํ๋ ์ํฉ +์์ด์ฝ click : SideBarDrop ์ด๋ฆผ ๋ชจ๋ฌ ์ธ ์์ญ click : SideBarDrop ๋ซํ โ ์ค๋ฅ ์ํฉ Type '{ ref: RefObject; }' is not assignable to type 'IntrinsicAttr.. 2021. 7. 9. [SidePJ] ๊นํ๋ธ Issue Cracker 2๋ถ - Material UI ์ style-components์ ๋๊ฒฐ + ์ค๋ฅ ํด๊ฒฐ ํ๋ณตํ 2์ฃผ์ฐจ ์์ ๐ uuid ์ฌ์ฉํ๊ธฐ React์ ์ ์ผํ key ๊ฐ์ ์ ๊ณตํ๋ ํจํค์ง React์์์ ์ ์ผํ key prop ๊ฐ์ ๋ฆฌ์กํธ๊ฐ ๋ฆฌ์คํธ ์์ดํ ์ ๊ตฌ๋ถํ ์ ์๊ฒ ํ๋ค. ๊ทธ ์ ์๋ ๋ฐฐ์ด์ key๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ๋ฃ์๋๋ฐ, ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ 0,1,2,3.. ์ด๋ฏ๋ก ๊ณ ์ ํ ๊ฐ์ด ์๋๋ฏ๋ก React๊ฐ ๋ ๋๋ง์ ์๋ชปํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ณ ์ ํ ๊ฐ์ ๋ฃ์ด์ผ ํ๋ค. -> ๋ฐฐ์ด์ data ์ถ๊ฐ ์์ ์ ์ ์ฒด ๋ฐฐ์ด์ ๋ค ์์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ์ฝ๋์์ uuid ํจํค์ง๋ฅผ ์ฌ์ฉํด key๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์ผํ UUID๋ฅผ ๋ง๋ค์ ์๊ณ ์ด์ฒ๋ผ ์ ์ผํ ID๋ ์ถฉ๋ํ ์ผ๋ ค๊ฐ ๊ฑฐ์ ์์ต๋๋ค. uuid ๊ฐ์ ํจํค์ง๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ID๋ ์ ์ผํ๊ณ ์์ธก๊ฐ๋ฅํด์ง๊ณ , ์ฐ๋ฆฌ๋ ๊ฐ ์์ดํ ์ ๋ํด ์๋ก์ด ID๋ฅผ ์์ฑํ ๋ฐฉ๋ฒ์ ๊ณ ๋ฏผํ ํ์๋.. 2021. 6. 29. [SidePJ] ๊นํ๋ธ Issue Cracker 1๋ถ - ํ๋ก์ ํธ ์์ ๋ง์ง๋ง ํ๋ก์ ํธ๋ฅผ ์์ํ๋ค! ๋ฒ์จ๋ถํฐ ๋์ด ๋๋ฌด ์์ฝ์ง๋ง ๊ทธ๋๋ ์ด๋ฒ ํ๋ก์ ํธ๋ ๋๋๋ ์ด์ฌํ ํด๋ณด๊ณ ์ ํ๋ค. Issue Tracker Issue Cracker ๐ช ์์! ์ด๋ฒ ํ๋ก์ ํธ๋ Raccon , pyro, ๋ ธ์, Neo์ ํจ๊ปํ๋ 5์ธ ๋๊ฐ์กฑ!!!!!! ( ๋ค๊ฐ์ด ๋ฐฅ๋ ๋ชป๋จน์!@ ) ์ฐ๋ฆฌ์ ๋ชฉํ๋ ์ด๊ฒ! 1) ํ์ ์คํฌ๋ฆฝํธ์ ์นํด์ง๊ธฐ 2) Recoil ์ด๋๋ ์นํด์ง๊ธฐ 3) ์๋ฌ์ฒ๋ฆฌ์ ์ต์ ํ๊น์ง 4) CSS ๊ฐ๋ฐ์์ ๋ฒ์ด๋์!!!! ( ๊ณผ์ฐ ๋ ๊น ) ๋จ์ํ ๊นํ๋ธ ์ด์ ํฌ๋์ปค ์์ฑ์ ๋์ด์ ๋ฆฌ์ฝ์ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐํ๊ฒ ์ดํดํ๊ณ ์ง์ ๊ตฌํํด๋ณด๋ ์๊ฐ์ ๊ฐ์ง ์์ ์ด๋ค. ๊ทธ๋ฌ๊ธฐ ์ํด์๋ ์ฒซ์ฃผ๋ถํฐ ๋ฌ๋ ค์ผ ํ๋๋ฐ ๋ฉด์ ์ด ํ๋ ์์ด์ ๋ง์์ด ๊ธํ๊ธด ํ์ง๋ง ์ด์ฌํ ํด๋ด์ผ์ง! ๊ฒ์๊ธ์ ์ฐ๋ ์ค์ ํ์ ์๋ฌ์ธ ๊ฒฝ์ฐ๊ฐ .. 2021. 6. 29. [SidePJ] airdnd 3๋ถ - ํ๊ณ ์ ๋ง๋ฌด๋ฆฌ ์ฃผ๋ง๋์ ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์๊ฑธ ๊ณ ์น๋ฉฐ ์์์ผ ํ์ฃผ ์์ ! ๐ ์ฐ์ํด๋ฆญ ๋ฐฉ์งํ๊ธฐ ํ์ฌ airdnd์ ๋ฌ๋ ฅ ํ์ดํ๋ฅผ ๋๋ฅด๋ฉด ๋ค๋ฅธ ๋ฌ๋ก ๋์ด๊ฐ๋๋ฐ, ์ฌ๊ธฐ์ ์ฌ์ฉ์๊ฐ ์ฐ์์ผ๋ก ํด๋ฆญ์ ํ๊ฒ ๋๋ฉด ์ด๋ฒคํธ๊ฐ ๊ผฌ์ผ ์ ์์ด preventClick์ด๋ผ๋ ํจ์๋ก ๋ฐฉ์ง๋ฅผ ํด๋์๋ค. ๋ณ๊ฒฝ ์ const preventClick = () => { setTimeout(() => { setDisabled(false); }, 200); const handleClick = () => { if (disabled) return; setDisabled(true); preventClick(); ํด๋ฆญ์ ๋๋ฅด๋ฉด disabled๋ฅผ true๋ก ๋ฐ๊ฟ preventClick์ด ๋ค ๋์ํ๋ 2์ด๋์ ํด๋ฆญ์ด ๋ถ๊ฐํ๋ค๊ฐ 2์ด ํ์๋ disabled = false.. 2021. 6. 6. [Side PJ] airdnd 2๋ถ - ์ํ์ ๋ฐ๋ฅธ CSS ๋ณํ (์ํ์ง์ฅ State) ์ด๋ฒ์๋ ์ ์์ฐพ์์ค๋ ์ถ์๋ ์ํ๊ด๋ฆฌ์ ํผ๋์ด ๋ค์๊ธ ์ฐพ์์๋ค.๐ต ๐ ๋ ์ง data state๋ฅผ ์ด์ฉํ CSS ๋ณํ โ ์ํฉ ์ฒดํฌ์ธ๊ณผ ์ฒดํฌ์์ ๋๋ ์ง์ ๊ทธ ์ฌ์ด๋ฅผ CSS ๋ก ํ์ํ๊ธฐ ์บ๋ฆฐ๋๋ฅผ ๋ง๋ค๊ณ ํด๋ฆญ์ ๋๋ฅด๋ฉด ํด๋น dataset์ ๋ฐ์ ContextAPI๋ก ๊ด๋ฆฌํ๋ CheckIn, CheckOut ์ ๋ฐ์์์ผฐ๋ค. click ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ๊ทธ ๊ฐ๋ฅ์ฑ์ ์กฐ๊ฑด๋ฌธ์ผ๋ก ๋น๊ตํ์ฌ CheckIn, CheckOut ์ ๋ฐ์ํ๋ ๋ฐฉ์์ผ๋ก dataํ๋ฆ์ ์งฐ๋๋ฐ ์ฌ๊ธฐ์ ๋ฌธ์ ๋ ํด๋ฆญ๋ ๋ ์ง์ ์ํ๊ด๋ฆฌ๋ค. CheckIn, CheckOut data๋ ์ ์ญ๊ด๋ฆฌ๊ฐ ๋๊ณ ์๋๋ฐ clickedData๋ click์ด๋ฒคํธ (handleTdBtnClick )์์์๋ง ๊ด๋ฆฌ๋๊ณ ์๊ธฐ ๋๋ฌธ์ rendering์์ ํด๋น ๊ฐ์ ๊ฐ์ ธ์ฌ ์.. 2021. 6. 5. [SidePJ] React ๋ชจ๋ฌ ์์ญ ๋ฐ ํด๋ฆญ์ ๋ซ๊ธฐ ๐ ์ ์ฒด ๊ตฌ์กฐ PayModalWrapper ๊ฐ RoomPayModal์ ๊ฐ์ธ๊ณ ์๋ ์ํ ๋์ : ์์๋ฅผ ๋๋ฅด๋ฉด ๋ชจ๋ฌ์ฐฝ์ด ๋จ๊ณ ๋ชจ๋ฌ์ฐฝ ์ธ์ ์์ญ ํด๋ฆญ ์ ๋ชจ๋ฌ์ฐฝ์ด ๋ซํ๋ค. ๐ ์ฝ๋ handlePayModalOff ํจ์๋ก ๋ชจ๋ฌ ์ธ ์์ญ ํด๋ฆญ ์ ๋ซํ๋ ํด๋ฆญ์ด๋ฒคํธ๋ฅผ ์ ์ดํ ์์ return ๋ถ๋ถ return ( {isPayModalClicked && ( handlePayModalOff(e)} > )} ); handlePayModalOff const ReservationMain = () => { const [isPayModalClicked, setIsPayModalClicked] = useState(false); const handlePayModalOff = (e) => { const clicked = e.t.. 2021. 6. 3. ์ด์ 1 2 ๋ค์ ๋ฐ์ํ