[๐Ÿ’ป ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  FE 44๊ธฐ] โœจ๋ฐ˜๋”ง๋ถˆ์ด๋ฐ˜โœจ React Twittler Intro ์˜์‚ฌ์ฝ”๋“œ์ž‘์„ฑ

JiEunยท2023๋…„ 3์›” 22์ผ
0
post-thumbnail

โœ”๏ธ ์‹œ์ž‘

์ฝ”๋“œ์Šคํ…Œ์ด์ธ ์— ์„น์…˜2 ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ˜๋”ง๋ถˆ์ด๋ฐ˜์ด ์žˆ๋‹ค.
์ข…ํ•ฉํ€ด์ฆˆ๋‚˜ ๊ณผ์ œ ๋“ฑ์„ ํ‰๊ท  ๋ณด๋‹ค ๋‚ฎ์„ ๊ฒฝ์šฐ ์„ ์ •๋˜๋Š”๋ฐ..

์ข…ํ•ฉํ€ด์ฆˆ ๋ฌธ์ œ๋ฅผ ์ž˜๋ชป ์ฝ์–ด ํ’€์–ด์„œ ์ด๋ฒˆ ๋ฐ˜๋”ง๋ถˆ์ด๋ฐ˜์— ์„ ์ • ๋๋‹ค.

๊ณผ์ œ๋Š” ์˜ค๋Š˜ ์ง„ํ–‰ํ•œ React Twittler Intro ๋ ˆํผ๋Ÿฐ์Šค ์˜์‚ฌ์ฝ”๋“œ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค.


๐Ÿ“React Twittler Intro

์˜ค๋Š˜ ํ•™์Šตํ•œ ๋‚ด์šฉ

  • JSX ๋ฌธ์ ‘์˜ ๊ทœ์น™์— ๋Œ€ํ•ด ์ดํ•ด
  • ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋… ์ดํ•ด
  • Creact-React-App์„ ํ†ตํ•œ ๋ฆฌ์•กํŠธ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•
import { dummyTweets } from './static/dummyData';

{/* TODO : dummyTweet๋กœ ์ „๋‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐฏ์ˆ˜๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. */}
/*
* dummyTweets๋Š” ๋ฐฐ์—ด์•ˆ์˜ ๊ฐ์ฒด๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.
* ๋ฐ์ดํ„ฐ์˜ ๊ฐฏ์ˆ˜๋ฅผ ๋ณด์—ฌ์ค˜์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— arr.length๋ฅผ ์ด์šฉํ•ด ํ‘œ๊ธฐํ•œ๋‹ค.
*/
<p className='total__st'>total: {dummyTweets.length}</p>


{/* TODO : ์œ ์ ธ ์ด๋ฆ„์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. */ }
{/* TODO : ์ด๋ฆ„์ด "parkhacker"์ธ ๊ฒฝ์šฐ, ์ด๋ฆ„ ๋ฐฐ๊ฒฝ์ƒ‰์„ rgb(235, 229, 249)์œผ๋กœ ๋ฐ”๊ฟ”์•ผ ํ•ฉ๋‹ˆ๋‹ค. */}
/*
* dummyTweets === tweet (๋™์ผํ•จ)
* ์‚ผํ•ญ ์—ฐ์‚ฐ์ž (์กฐ๊ฑด ? ์ฐธ : ๊ฑฐ์ง“)์„ ์ด์šฉํ•ด ํ’€์–ด์ค€๋‹ค.
* tweet.username์— "parkhacker"์ด ์žˆ๋Š”์ง€ ์ฐพ๋Š”๋‹ค. (tweet.username === 'parkhacker')
* ์žˆ์„ ๊ฒฝ์šฐ tweet__username--purpleํด๋ž˜์Šค ์ถ”๊ฐ€ํ•˜๊ธฐ
*/

const isParkHacker = tweet.username === 'parkhacker';
	const tweeUserName = isParkHacker 
		? 'tweet__username tweet__username--purple'
		: 'tweet__username'

<span className={tweeUserName}>{tweet.username}</span>

์ž˜ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„

  • { } ์•ˆ์— ํƒœ๊ทธ๋ฅผ ๋„ฃ์„ ์ˆ˜๋„ ์žˆ๊ณ  ๋ณ€์ˆ˜๋งŒ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ํ—ท๊ฐˆ๋ ธ๋‹ค.

์–ด๋ ค์› ๋˜ ๋ถ€๋ถ„

  • ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ถˆ๋Ÿฌ์™€์•ผํ•˜๋Š” ๋ถ€๋ถ„์—์„œ dummyTweets ๋ฐ์ดํ„ฐ๋ฅผ ๋ดค์„ ๋•Œ ์œ ์‹ฌํžˆ ์•ˆ ๋ณด๊ณ  ๊ฐ์ฒด๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฑธ๋กœ ์ƒ๊ฐํ•ด ๊ฐ์ฒด์˜ length ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜๋˜๊ฑฐ ๊ฐ™๋‹ค. (๋ญ๋“ ์ง€ ๋ ๊นŒ์ง€ ๋ณด๊ธฐ๋กœ...)

๋Š๋‚€์ 

  • ๊ณผ์ œ ์ง„ํ–‰ ํ•  ๋•Œ ์ดˆ๋ฐ˜์— ํ—ค๋งธ์ง€๋งŒ ํ•œ ๋ฒˆ ์ดˆ์ ์ด ์žกํžˆ๋‹ˆ ๋‹ค์Œ ๋ถ€ํ„ฐ๋Š” ๋ฌธ์ œ๊ฐ€ ์ˆ ์ˆ  ์ž˜ ํ’€๋ ธ๋˜ ๊ฑฐ ๊ฐ™๋‹ค.
  • ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ๋• < ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ /> ์œผ๋กœ <img>, <br> ์ฒ˜๋Ÿผ ๋‹ซ๋Š” ํƒœ๊ทธ๊ฐ€ ์—†๋Š” ๊ฑฐ ์ฒ˜๋Ÿผ ๋์— ๋‹ซ์„ ์ˆ˜๋„ ์žˆ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์•„๋Š” <์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„></์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„> ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.
const App = () => {
  return (
    <์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ />
	<์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„></์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„> 
  );
};
  • npm run start๋ฅผ ํ†ตํ•ด ๋‚ด์šฉ ์ˆ˜์ • ์ฆ‰์‹œ ์ƒˆ๋กœ๊ณ ์นจ ๋˜๋Š” ๋ถ€๋ถ„์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.
npm run start
  • React๋Š” Javascript์™€ ๋‹ฌ๋ฆฌ ์žฌ์‚ฌ์šฉ์ด ๋†’๊ณ  ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€์— HTML + Javascript๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ์šฉ์ดํ•˜๋‹ค.

โœ๏ธ ๋งˆ์น˜๋ฉฐ

์ด๋ฒˆ ๋ฐ˜๋”ง๋ถˆ์ด๋ฐ˜์— ์„ ์ • ๋˜๋ฉด์„œ ๋‚ด๊ฐ€ ๋…ธ์ณค๋˜ ๋ถ€๋ถ„์ด๋‚˜
์˜ค๋‹ต๋…ธํŠธ ์ฒ˜๋Ÿผ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ฒดํฌํ•˜๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋œ๊ฑฐ ๊ฐ™๋‹ค.

๊ทธ๋ž˜๋„ ๋˜๋„๋ก์ด๋ฉด ๋ฐ˜๋”ง๋ถˆ์ธ๋ฐ˜์— ์„ ์ •๋˜์ง€ ์•Š๋„๋ก
๋ฌธ์ œ ๋‚ด์šฉ์„ ๊ผผ๊ผผํžˆ ๋ณด๋ ค๊ณ  ๋…ธ๋ ฅํ•ด์•ผ๊ฒ ๋‹ค.

profile
๐Ÿ’ป ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๋ชฉํ‘œ๋กœ ์„ฑ์žฅ ์ค‘! (์•Œ์•„๋ดค๋˜ ๋‚ด์šฉ ๋“ฑ์„ ์ •๋ฆฌํ•˜๊ธฐ)

0๊ฐœ์˜ ๋Œ“๊ธ€