๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ‘ฉ‍๐Ÿ’ป ๊ฐœ๋ฐœ ๊ณต๋ถ€

[React] Movie App ๋งŒ๋“ค๊ธฐ (๊ฐœ์ธ ํ”„๋กœ์ ํŠธ) - 2

728x90
John Ahn๋‹˜์˜ ์ธํ”„๋Ÿฐ ๊ฐ•์˜๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ฉด์„œ ์ง„ํ–‰์ค‘์ž…๋‹ˆ๋‹ค.
๊ฐœ์ธ ๊ณต๋ถ€ ์šฉ๋„๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ ์‹œ ์‚ญ์ œ

 

 

https://xxilliant.tistory.com/73

 

[React] Movie App ๋งŒ๋“ค๊ธฐ (๊ฐœ์ธ ํ”„๋กœ์ ํŠธ) - 1

John Ahn๋‹˜์˜ ์ธํ”„๋Ÿฐ ๊ฐ•์˜๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ฉด์„œ ์ง„ํ–‰์ค‘์ž…๋‹ˆ๋‹ค. ๊ฐœ์ธ ๊ณต๋ถ€ ์šฉ๋„๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ ์‹œ ์‚ญ์ œ 1. Mongodb ๋ชฝ๊ณ ๋””๋น„ ๊ฐ€์ž… ํ›„ ํด๋Ÿฌ์Šคํ„ฐ 0 ๋””๋น„ ์ƒ์„ฑ๊นŒ์ง€ ํ•ด๋†จ๋‹ค. ๋‚˜์ค‘์— ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ์œ„ํ•ด ๊ฐ€์ž…

xxilliant.tistory.com

 

1. ์ง„ํ–‰ ์‚ฌํ•ญ (ํ˜„ ํฌ์ŠคํŒ… ๊ธฐ์ค€)

 

์˜ํ™” grid card ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค๊ธฐ

 

๊ฐ•์˜ ์Šคํฌ๋ฆฐ์ƒท

 

2. ES7

es7 (simple extensions)

vs code์—์„œ ES7 ๋‹ค์šด๋ฐ›๊ณ  ๋‚˜์„œ

๋นˆ js ํŒŒ์ผ์—์„œ rfce ๋ผ๊ณ  ์น˜๊ณ  ์—”ํ„ฐ ๋ˆ„๋ฅด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ธฐ๋ณธ ํ•จ์ˆ˜ ํ‹€์ด ์งœ์ž”-ํ•˜๊ณ  ๋‚˜์˜จ๋‹ค

 

์จ˜

 

3. ๊ธฐ์–ตํ•  ๋‚ด์šฉ

 

1) ant design : Col ํ™œ์šฉ

grid

<Col span = {8} /> ์—์„œ span์€ ํ•ญ๋ชฉ ํ•˜๋‚˜๊ฐ€ 24๋ถ„ํ•  ์ค‘์— ์–ผ๋งˆ๋‚˜ ์ฐจ์ง€ํ•  ์ง€์— ๋Œ€ํ•œ ๋น„์œจ์ด๋‹ค.

 

lg={6} -> ํ™”๋ฉด ์ฐฝ ํฌ๊ธฐ๊ฐ€ large์ผ ๋•Œ ํ•˜๋‚˜๋‹น 6, ์ด 4๊ฐœ ํ•ญ๋ชฉ์ด ํ•œ์ค„์— ๋‚˜ํƒ€๋‚œ๋‹ค.
md={8} -> midium์ผ ๋•Œ ํ•˜๋‚˜๋‹น 8์„ ์ฐจ์ง€, ์ด 3๊ฐœ ํ•ญ๋ชฉ์ด ํ•œ์ค„์— ๋‚˜ํƒ€๋‚œ๋‹ค
xs={24} -> small์ผ ๋•Œ ํ•œ ์ค„์— ํ•˜๋‚˜๋งŒ ๋‚˜ํƒ€๋‚œ๋‹ค.

 

2) ant design : Row ํ™œ์šฉ

 

 

๊ทธ๋ฆฌ๊ณ  ์œ„์™€ ๊ฐ™์ด Row๋กœ๋Š” ํ•œ ํ–‰์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

ํ•ญ๋ชฉ ๊ฐ„์˜ ์—ฌ๋ฐฑ์„ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด gutter = {[์ขŒ์šฐ์—ฌ๋ฐฑ, ์ƒํ•˜์—ฌ๋ฐฑ]} ์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค

 

<Row gutter={[60, 16]}>

 

3. map

 

๊ทธ๋ฆฌ๊ณ  map(๋ฐ˜๋ณต๋ฌธ)์„ ์‚ฌ์šฉํ•ด์„œ ์˜ํ™” ์ •๋ณด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.

 

 

?

๋ญ์•ผ ์™œ์•ˆ๋ผ

 

์•Œ๊ณ ๋ณด๋‹ˆ setMovies() ๋ถ€๋ถ„์—์„œ ๋ฐฐ์—ด์„ ๋ณต์‚ฌํ•˜๋Š” ๊ฐฑ์‹ (?)์„ ํ•ด์ค˜์•ผํ•˜๋Š”๋ฐ

๊ทธ๋ƒฅ ([response.results]) ๋กœ ๋˜์–ด์žˆ์–ด์„œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์•ˆ ๋‚˜์˜ค๋Š” ๊ฑฐ์˜€์Œ

setMovies( [...response.results] ) ๋กœ ๊ณ ์ณ์ฃผ์—ˆ๋”๋‹ˆ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค!

 

ํ•ด๊ฒฐ

 

๊ทผ๋ฐ ์ด๊ฑฐ ๋ฒ„๊ทธ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ

setMovies( ...[response.results] ) ์ด๋ ‡๊ฒŒ ํ•ด๋„ ์ •์ƒ์ž‘๋™์ด ๋œ๋‹ค. ๋ญ๊ฐ€ ๋‹ค๋ฅธ๊ฑฐ์ง€

๋‚˜์ค‘์— ์Šจ๋ฐฐ๋ฆผํ•œํ…Œ ์—ฌ์ญค๋ด์•ผ๊ฒ ๋‹ค.

 

+

GPTํ•œํ…Œ ๋ฌผ์–ด๋ณด๋‹ˆ๊นŒ ์ƒˆ ๋ฐฐ์—ด ์ฐธ์กฐ๋ฅผ ์ƒ์„ฑํ•˜๋ƒ, ํ•˜์ง€ ์•Š๋Š๋ƒ์˜ ์ฐจ์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

React์—์„œ "setMovies([...response.results])" ๋ฐ "setMovies(...[response.results])"๋Š” useState ํ›„ํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ƒํƒœ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๊ตฌ๋ฌธ์ธ "setMovies([...response.results])"๋Š” ์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "response.results" ๋ฐฐ์—ด์—์„œ ์ƒˆ ๋ฐฐ์—ด์„ ๋งŒ๋“  ๋‹ค์Œ ํ•ด๋‹น ์ƒˆ ๋ฐฐ์—ด์„ "setMovies"์˜ ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ตฌ๋ฌธ์€ ๋ฐฐ์—ด์˜ ๋‚ด์šฉ์ด ์ด์ „ ์ƒํƒœ์™€ ๋™์ผํ•œ ๊ฒฝ์šฐ์—๋„ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒˆ ๋ฐฐ์—ด ์ฐธ์กฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐฐ์—ด ๋‚ด์šฉ์ด ์‹ค์ œ๋กœ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ฐ•์ œ๋กœ ๋‹ค์‹œ ๋ Œ๋”๋งํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. React๋Š” ์ฐธ์กฐ๋ฅผ ๋น„๊ตํ•˜๊ณ  ์„œ๋กœ ๋‹ค๋ฅธ์ง€ ํ™•์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ๊ตฌ๋ฌธ "setMovies(...[response.results])"๋Š” ์ „๊ฐœ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "response.results" ๋ฐฐ์—ด์—์„œ ์ƒˆ ๋ฐฐ์—ด์„ ๋งŒ๋“  ๋‹ค์Œ ํ•ด๋‹น ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ " setMovies"์˜ ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ตฌ๋ฌธ์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒˆ ๋ฐฐ์—ด ์ฐธ์กฐ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ "setMovies" ํ•จ์ˆ˜์— ๋ณ„๋„์˜ ์ธ์ˆ˜๋กœ ์ง์ ‘ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰๊ณผ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์—ฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ์— ์ƒˆ ๋ฐฐ์—ด ์ฐธ์กฐ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์œผ๋ ค๋Š” ๊ฒฝ์šฐ, ํŠนํžˆ ๋ฐฐ์—ด์ด ํฐ ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๊ตฌ๋ฌธ ๋ชจ๋‘ "movies" ๋ณ€์ˆ˜์˜ ์ƒํƒœ๋ฅผ "response.results" ๋ฐฐ์—ด๋กœ ์„ค์ •ํ•˜๋Š” ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค ์‚ฌ์ด์˜ ์ฐจ์ด์ ์€ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๊ณ  "setMovies" ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋ฉฐ ์„ฑ๋Šฅ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์€ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ์™€ ๋ณต์žก์„ฑ ๋ฐ ์ƒํƒœ ์—…๋ฐ์ดํŠธ ๋นˆ๋„์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

4. ๊ฒฐ๊ณผ๋ฌผ

 

์™€ ์„ฑ๊ณต!

 

๊ทธ๋Ÿฐ๋ฐ ์ฐฝ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋ฉด ์‚ฌ์ง„ ๋น„์œจ์ด ์—‰๋ง์ด ๋œ๋‹ค.

์‚ฌ์ง„ ๋น„์œจ ๊ณ ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‚˜์ค‘์— ์ฐพ์•„๋ด์•ผ๊ฒ ๋‹ค..

 

ํ•œ์ค„์— ํ•˜๋‚˜์”ฉ / ํ•œ์ค„์— 3๊ฐœ์”ฉ

 

 

728x90