๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

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[..
ยท react
๋ฆฌ์•กํŠธ ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ 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๊ฐ€ ์ด์ „์˜ ๊ฐ’์œผ๋กœ ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๊ธฐ์— ์ฝœ๋ฐฑํ•จ์ˆ˜๋กœ ํ•ด์ค€๋‹ค๊ณ  ๋ฐฐ์› ๋‹ค.
ยท react
Recoil์„ ์ „์—ญ ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ฆฌ์•กํŠธ ์นœํ™”์ ์ธ ๋ฌธ๋ฒ•๊ณผ ๊ทธ ์‚ฌ์šฉ์ด ๊ฐ„ํŽธํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ CNU SW ์•„์นด๋ฐ๋ฏธ TA๋‹˜์—๊ฒŒ ์ถ”์ฒœ๋ฐ›์€ ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ๋ฆฌ๋•์Šค๋Š” ๊ทธ ์ดํ›„์— ์‚ฌ์šฉํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์šฐ์„ , recoil์˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…ํ•˜๊ณ ์ž ํ•œ๋‹ค. ์ด ๊ธ€์„ ์ฝ์œผ๋ฉด ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ recoil ์‚ฌ์šฉ๋ฐฉ๋ฒ•์„ ์•Œ๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. Recoil ์„ค์น˜ npm install recoil RecoilRoot import React from 'react'; import { RecoilRoot, } from 'recoil'; function App() { return ( ); } recoil์˜ ์ƒํƒœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋Š” ๋ถ€๋ชจํŠธ๋ฆฌ ์–ด๋”˜๊ฐ€์— ๋‚˜ํƒ€๋‚˜๋Š” RecoilRoot๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ํ•œ๋‹ค. ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ๋Š” ๋ฃจํŠธ ์ปดํฌ๋„Œ..
ยท react
- ์ƒํƒœ๊ด€๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „์—ญ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ๋ Œ๋”๋ง์„ ์ค„์ด๊ณ  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 = []; ์œ„์˜ ๊ฐ’๋“ค์€ ๋ Œ๋”๋ง์ด ๋˜์ง€ ์•Š๋Š”๋‹ค.
๊น€ํƒœ์ง„
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (11 Page)