https://www.codetree.ai/missions/5/problems/l-r-and-b?utm_source=clipboard&utm_medium=text ์ฝ๋ํธ๋ฆฌ | ์ฝ๋ฉํ
์คํธ ์ค๋น๋ฅผ ์ํ ์๊ณ ๋ฆฌ์ฆ ์ ์ ๊ตญ๊ฐ๋ํ๊ฐ ๋ง๋ ์ฝ๋ฉ ๊ณต๋ถ์ ๊ฐ์ด๋๋ถ ์ฝ๋ฉ ์์ด๋ณด๋ถํฐ ๊ฟ์ ์ง์ฅ ์ฝํ
ํฉ๊ฒฉ๊น์ง, ๊ตญ๊ฐ๋ํ๊ฐ ์์ ํ ์ปค๋ฆฌํ๋ผ์ผ๋ก ์ค๋นํด๋ณด์ธ์. www.codetree.ai arr = [list(input()) for _ in range(10)] bx,by = 0,0 lx,ly = 0,0 rx,ry = 0,0 for i in range(10): for j in range(10): if arr[i][j] == 'B': bx,by =j,i elif arr[i][j] == 'L': lx,ly = j,i elif arr[..
๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
๋ฆฌ์กํธ ๊ฐ๋ฐ์ ํ ๋ CSS๋ฅผ ์ ์ฉํ๊ธฐ ์ํด์๋ ๋ฐ๋ก cssํ์ผ์ ๋ง๋ค์ด์ js, jsx ํ์ผ์ importํ๊ฑฐ๋ ์ธ๋ผ์ธ์ผ๋ก ์ง์ ํด์คฌ์ด์ผ ํ์ต๋๋ค. ์ ์์ ๊ฒฝ์ฐ๋ ํ์ผ์ ๊ฐ์๊ฐ ๋์ด๋๊ณ ํด๋์ค ๋ค์์ ์ผ์ผ์ด ๋ถ์ฌ์ค์ผ ๋๋ค๋ ๋ถํธํจ์ด ์๊ณ ํ์์ ๊ฒฝ์ฐ๋ jsx๋ฐฉ์์ผ๋ก css์คํ์ผ์ ์ง์ ํด์ค์ผ ํ๋ค๋ ๋ถํธํจ์ด ๋ฐ๋ฅด์ฃ . ์ด๊ฒ๋ค์ ํด๊ฒฐํด์ฃผ๊ณ ์กฐ๊ธ๋ ๋ฆฌ์กํธ ์ค๋ฝ๊ฒ ์คํ์ผ์ ์ ์ฉํ ์ ์์ผ๋ฉฐ ์ฌ๋ฌ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํด์ฃผ๋ styled-components๋ฅผ ์๊ฐํฉ๋๋ค. styled-components ์ค์น npm install styled-components js ํ์ผ์ import import styled from "styled-components"; styled-components ์ฌ์ฉ๋ฒ const Box = ..

์ด๋๋ ์ฝ๋ฉ์ ํ๋ค๊ฐ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๋ฅผ ๋ง์ฃผํ๊ฒ ๋์๋ค. ์ ์ค๋ฅ์ ์์ธ์ ๊ฐ์ด undefined๊ฐ ๋๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ๋์์๋ค. console.log๋ก input์ value๊ฐ ์ฐธ์กฐํ๋ state๋ค์ ์ถ๋ ฅํ๋ค. undefined๊ฐ ๋ ๊ฑธ ์ ์ ์๋ค. ์์ธ์ ์ฐธ์กฐํ(title,rating,content๋ฅผ ๊ฐ์ง๋ ๊ฐ์ฒด)์ธ data์์ setData()๋ฅผ ์์ ๊ฐ์ด ์์ฑํด์ ์๊ธฐ๋ ๋ฌธ์ ์ด๋ค. ์์ ๊ฐ์ด ๋ฐ๊ฟ์ฃผ์ด ํด๊ฒฐ์ ํ์๋ค. ์ฐธ๊ณ ๋ก ์๊ฐ์ด ํด์ฃผ์ด๋ ๋๋ค. data๊ฐ ์ด์ ์ ๊ฐ์ผ๋ก ์๋ก์ด ๊ฐ์ ๋ง๋๋ ๊ฒ์ด๊ธฐ์ ์ฝ๋ฐฑํจ์๋ก ํด์ค๋ค๊ณ ๋ฐฐ์ ๋ค.
Recoil์ ์ ์ญ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ฆฌ์กํธ ์นํ์ ์ธ ๋ฌธ๋ฒ๊ณผ ๊ทธ ์ฌ์ฉ์ด ๊ฐํธํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก CNU SW ์์นด๋ฐ๋ฏธ TA๋์๊ฒ ์ถ์ฒ๋ฐ์ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๋ฆฌ๋์ค๋ ๊ทธ ์ดํ์ ์ฌ์ฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฐ์ , recoil์ ์ฌ์ฉ๋ฐฉ๋ฒ์ ๋ํด ํฌ์คํ
ํ๊ณ ์ ํ๋ค. ์ด ๊ธ์ ์ฝ์ผ๋ฉด ์์ฃผ ๊ธฐ๋ณธ์ ์ธ recoil ์ฌ์ฉ๋ฐฉ๋ฒ์ ์๊ฒ ๋ ๊ฒ์ด๋ค. Recoil ์ค์น npm install recoil RecoilRoot import React from 'react'; import { RecoilRoot, } from 'recoil'; function App() { return ( ); } recoil์ ์ํ๋ฅผ ์ฌ์ฉํ๋ ์ปดํฌ๋ํธ๋ ๋ถ๋ชจํธ๋ฆฌ ์ด๋๊ฐ์ ๋ํ๋๋ RecoilRoot๊ฐ ํ์ํ๋ค๊ณ ํ๋ค. ๊ณต์ ํํ์ด์ง์์๋ ๋ฃจํธ ์ปดํฌ๋..
- ์ํ๊ด๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ญ์ ์ผ๋ก ๊ด๋ฆฌํ์ฌ ๋ถํ์ํ ๋ ๋๋ง์ ์ค์ด๊ณ props drilling์ ํผํ ์ ์๋ค. - ์ํ๋ค์ด ๋ณต์กํ๊ฒ ์ฝํ์๋ค ์ํธ์์กด์ฑ์ด ๋์UI๊ฐ ์ด๋ป๊ฒ ๋ณํ๋์ง ์๊ธฐ ์ด๋ ต๋ค. ํ๋ก์ ํธ๊ฐ ์ปค์ง๊ณ state๊ฐ ์์ญ~์๋ฐฑ๊ฐ๊ฐ ๋๋ค๋ฉด ์ํ๊ด๋ฆฌ๊ฐ ๋น์ฐํ ํ์ํ ๊ฒ์ด๋ค. 1. context api ๊ฐ๋จํ ํ๋ก์ ํธ์์๋ props drilling์ ํผํ ์ ์๋ ์ข์ ๋์์ด ๋ ์ ์๋ค. useReducer๋ฅผ ๊ฐ์ด์ฐ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. useReducer๋ state๋ฅผ ํ ๊ณณ์์ ๊ด๋ฆฌํ ์ ์๊ฒ ํ๋ค. 2. redux ๋ณด์ผ๋ฌ ํ๋ ์ดํธ๊ฐ ๋ณต์กํ๋ค๊ณ ํ๋๋ฐ redux toolkit์ผ๋ก ์ฐ๋ฉด ๋ ์ฝ๊ณ ๊ฑฐ๊ธฐ์ ํ์
์คํฌ๋ฆฝํธ๋ก ์ฐ๋ฉด ํฐ ํ๋ก์ ํธ ์ค์ผ์ผ๋งํ๊ธฐ๋ ํธํ๋ค๊ณ ํ๋ค. "์ ๊ฐ ๊ฒฝํํ๊ฑธ๋ก๋ ์ผํ๋ชฐ ์ฅ๋ฐ๊ตฌ๋..
์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ํ ๋ฒ์ ํ๋์ ํ์คํฌ๋ง ์คํํ ์ ์๋ ์ฑ๊ธ ์ค๋ ๋ ๋ฐฉ์์ผ๋ก ๋์ํ์ง๋ง ๋๊ธฐ์ฒ๋ฆฌ๋ก ์ธํ ๋ธ๋กํน์ด ๋ฐ์ํ์ง ์๋๋ค. ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋น๋๊ธฐ๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ ์ ํต์ ์ผ๋ก ์ฝ๋ฐฑํจ์๋ฅผ ์ด์ฉํ๋๋ฐ ์ฝ๋ฐฑํจ์๊ฐ ๋ง์์ง์ ๋ฐ๋ผ ์ฝ๋ฐฑ ์ง์ฅ์ด ์๊ธธ ์ ์๋ค๊ณ ํ๋ค. ์ฝ๋ฐฑ์ง์ฅ์ ๊ฐ๋
์ฑ์ ๋์๊ฒ ํ๊ณ ๋น๋๊ธฐ ์ฒ๋ฆฌ ์ค ๋ฐ์ํ ์๋ฌ์ ์์ธ ์ฒ๋ฆฌ๊ฐ ๊ณค๋ํ๊ณ ์ฌ๋ฌ ๊ฐ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํ ๋ฒ์ ์ฒ๋ฆฌํ๋ ๋ฐ๋ ํ๊ณ๊ฐ ์๋ค๊ณ ํ๋ค. -> ํ๋ก๋ฏธ์ค ์ฑํฐ์์ ๋ ์์ธํ ์๋ ค์ค๋ค๋ ๋ฐ ๊ธฐ์ตํด ๋์ด์ผ ๊ฒ ๋ค.
1. ๋ฆฌ์กํธ์ ์ฌ์ฉ์ด์ ์ ๋ํด์๋ ๋ชจ๋ฅธ๋ค๊ณ ํ์
จ๋ค. 2. ๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๊ฐ ๋จ์ง ์ทจ์
์์ฅ์ ํ์ด๊ฐ ์ปค์๋ผ๊ณ ํ์
จ๋ค. 3. recoil ์ฌ์ฉํ๋ค๊ฐ redux ์ฌ์ฉํ๋ฉด ์ข์ ๊ฑฐ๋ผ๊ณ ํ์
จ๋ค. 4. Top down ๋ฐฉ์์ผ๋ก ๊ณต๋ถ๋ฅผ ์ฃผ๋ก ํ์
จ๋ค๊ณ ํ๋ค. -> ๋์๊ฒ ์ ์ผ ๋์์ด ๋ ์กฐ์ธ ๋ด๊ฐ ์ดํ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๋ฉด ์ด๋ ต๊ณ ์ด๋ฐ ์์ผ๋ก ํด๋ ๋๋๊ฑด์ง ์๋ฌธ์ด ์๊ธด๋ค๊ณ ๋งํ์ ๋
ธ๋ง๋์ฝ๋๋ฅผ ์ถ์ฒํด์ฃผ์
จ๊ณ ๋
ธ๋ง๋ ์ฝ๋์ ๊ฐ์๋ฅผ ์๊ฐ ํ ๋ฐ๋ผ ๋ง๋ค๋ค๋ณด๋ฉด ์ฌ๋ฌ ์๋ฌ๋ ๋ง๋ ๊ฒ์ด๊ณ ๊ทธ๋ฌ๋ค๋ณด๋ฉด ์์ฐ์ค๋ ์ค๋ ฅ์ด ๋ ๊ฒ์ด๋ผ๊ณ ํ์
จ๋ค. ๋งค์ฐ ๊ณ ๋ง์ ๋ค. ์์ผ๋ก๋ ๋ธ๋ก๊ทธ ํฌ์คํ
์ ๋ง์ด ํ ๊ฒ์ธ๋ฐ ์๋ฅผ๋ค์ด ๋ด์ผ axios๋ฅผ ๋ฐฐ์ ๋ค๊ณ ํ๋ฉด axios ์ฌ์ฉ๋ฒ์ ๋ํด ๊ฐ๋ตํ๊ฒ ํฌ์คํ
์ ํ ๊ฒ์ด๋ค. ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๋ฉด์ ์๊ธด ๊ฟํ์ด๋ ์๋ฌ๋ค..
๋ฆฌ์กํธ์์๋ if๋ฌธ์ ์ฌ์ฉํ๋ ๋์ ๋
ผ๋ฆฌ ์ฐ์ฐ์์ ์ผํญ ์ฐ์ฐ์๋ฅผ ์ด์ฉํ๋ค. AND ์ฐ์ฐ์ {show && ๋ณด์ธ๋ค } ์์ ๊ฒฝ์ฐ show๊ฐ true์ผ ๋๋ง pํ๊ทธ๊ฐ ๋ณด์ธ๋ค. {show || ๋ณด์ธ๋ค } show๊ฐ false์ผ๋๋ง ๋ ๋๋ง ํ๋ค. ์ผํญ์ฐ์ฐ์ {toggle ? โ
: โ} const nullValue = null; const undefinedValue = undefined; const trueValue = true; const falseValue = false; const emptyString = ''; const emptyArray = []; ์์ ๊ฐ๋ค์ ๋ ๋๋ง์ด ๋์ง ์๋๋ค.