1 ๋ถ„ ์†Œ์š”

useEffect()

React์—์„œ ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ›…์ด๋‹ค.

์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง๋œ ์ดํ›„์— ์–ด๋–ค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

` ex) ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ(fetch), DOM ์—…๋ฐ์ดํŠธ, ๊ตฌ๋„ ์„ค์ • ๋ฐ ํ•ด์ œ ๋“ฑ`

ํŠน์ง•

  • ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋งˆ์šดํŠธ๋  ๋•Œ

    ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ฒ˜์Œ ๋ Œ๋”๋ง๋œ ํ›„์— ํ˜ธ์ถœ๋œ๋‹ค.

  • ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์—…๋ฐ์ดํŠธ๋  ๋•Œ

    ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‹ค์‹œ ๋ Œ๋”๋ง๋  ๋•Œ, ํŠน์ • ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ํ˜ธ์ถœ๋œ๋‹ค.

  • ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์–ธ๋งˆ์šดํŠธ๋  ๋•Œ

    ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ™”๋ฉด์—์„œ ์ œ๊ฑฐ๋˜๊ธฐ ์ „์— ์ •๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ˜•ํƒœ

import {useEffect} from 'react';

useEffect(() => {
    //์‹คํ–‰ํ•  ์ฝ”๋“œ
    return () => {
        //์ •๋ฆฌ ์ž‘์—…
    };
},[/*์˜์กด์„ฑ ๋ฐฐ์—ด*/]);

์˜์กด์„ฑ ๋ฐฐ์—ด์•ˆ์— ํฌํ•จ๋œ ๊ฐ’์ด ๋ณ€๊ฒฝ ๋  ๋•Œ๋งˆ๋‹ค useEffect๊ฐ€ ๋‹ค์‹œ ์‹คํ–‰๋œ๋‹ค. ๋นˆ ๋ฐฐ์—ด์„ ๋„ฃ์œผ๋ฉด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ฒ˜์Œ ๋งˆ์šดํŠธ ๋  ๋•Œ ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰๋œ๋‹ค.

import React, {useState, useEffect} from 'react';


funtion Timer(){
        const [count, setCount] = useState(0);   
    useEffect(() => {
        const interval = setInterval(() => {
            setCount((prevCount) => prevCount+1);
        }, 1000);
        
        return () => clearInterval(interval);
        
    }, []);
    return <div>ํƒ€์ด๋จธ: {count}</div>
}
export defult Timer;

CSS

Flexbox

flexbox๋ž€ ๋ฌด์—‡์ผ๊นŒ??

ํ”Œ๋ ‰์Šค ๋ฐ•์Šค๋Š” ์œ ๋™์ ์œผ๋กœ ๊ฐ ์š”์†Œ๋“คใ…‡๋ฅด ๋ฐฐ์น˜ํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด์„œ, ๊ฐ ์‚ฌ์šฉ์ž๋“ค๋งˆ๋‹ค ํ™”๋ฉด ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅธ ์ „์ž๊ธฐ๊ธฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋ณด๊ฒŒ ๋ ํ…๋ฐ ๊ฐ ํ™”๋ฉด์— ๋งž๋Š” ๋ฐฐ์น˜๋ฅผ ์ผ์ผ์ด ๊ณ„์‚ฐํ•  ํ•„์š”์—†์ด Flexbox๋ฅผ ์ด์šฉํ•ด์„œ ์†์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

Flexbox๋ฅผ ์ด์š”ํ•˜๋ฉด ์›น์‚ฌ์ดํŠธ์˜ ์š”์†Œ๋“ค์„ ์ˆ˜ํ‰์ ์œผ๋กœ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ์œ„์—์„œ ์•„๋ž˜๋กœ ์Œ“์ด๋Š” ํ˜•ํƒœ์ธ๋ฐ ์ˆ˜ํ‰๋ฐฐ์น˜๊ฐ€ ๋œ๋‹ค.

flexbox๋ฅผ ์ ์šฉํ•˜๊ณ  ์‹ถ์€ ์š”์†Œ์—๋‹ค๊ฐ€ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋ถ€๋ชจ ์š”์†Œ์— ์ถ”๊ฐ€ํ•ด์•ผํ•œ๋‹ค.

image-20240828192944408

flex-direction์„ ์ด์šฉํ•ด์„œ ๋ฉ”์ธ ์ถ•์„ ์„ธ๋กœ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ƒ๊ฐํ•ด๋ด์•ผํ•˜๋Š” ๊ฒƒ

  • DOM์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?
  • JavaScript๋กœ DOM์„ ์กฐ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์–ด๋–ค ๊ฒƒ์ด ์žˆ๋‚˜์š”?
  • Semantic tag์—๋Š” ์–ด๋–ค ๊ฒƒ์ด ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?
  • Flexbox Layout์€ ๋ฌด์—‡์ด๋ฉฐ, ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋‚˜์š”?

์—…๋ฐ์ดํŠธ:

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ