๐Ÿ’ธ ๊ณ ์†Œ๋“์ž์˜ ์ž๋ถ€์‹ฌ ์ฆ๋ช…์„œ ๋งŒ๋“ค๊ธฐ

Junho Yeoยท2021๋…„ 7์›” 18์ผ
29
post-thumbnail

๐Ÿ“ฐ ๋‰ด์Šค๋ฅผ ๋ณด๋˜ ๋‚˜

์–ผ๋งˆ ์ „์— ์ด๋Ÿฐ ๋‰ด์Šค๋ฅผ ๋ณด๊ณ , ์–ธ์  ๊ฐ€ ์ž๋ถ€์‹ฌ(?)์„ ๊ฐ€์งˆ ์ž๊ฒฉ์„ ์ฆ๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌด์–ธ๊ฐ€๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒŒ ์•„๋‹๊นŒ ํ•˜๋Š” ์ƒ์ƒ์„ ํ•ด๋ดค์–ด์š”.

๋งˆ์นจ ์ง€์ธ์ด ๋ฐฑ์‹ ์„ ๋งž๊ณ  ๋‚˜์„œ ์•ฑ์œผ๋กœ ์˜ˆ๋ฐฉ์ ‘์ข… ์ฆ๋ช…์„œ๋ฅผ ๋ฐ›์•˜๋‹ค๊ณ  ํ•œ ๊ฒŒ ๋– ์˜ฌ๋ผ์„œ, ์ด๊ฒƒ๋„ ์ฆ๋ช…์„œ ์•ฑ/์›น์˜ ํ˜•ํƒœ๋กœ ํŒจ๋Ÿฌ๋””ํ•ด์„œ ๋งŒ๋“ค๋ฉด ์žฌ๋ฏธ์žˆ์„ ๊ฒƒ ๊ฐ™์•˜์ฃ !

๐Ÿ”จ ์ฆ๋ช…์„œ ๋งŒ๋“ค๊ธฐ

โœ๏ธ ์Šฅ์‚ญ์Šฅ์‚ญ ๋””์ž์ธ

๋‹ค ๋งŒ๋“ค๊ณ  ๋‚˜์„œ ๋ณด๋‹ˆ ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋‚ธ ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์ฒ˜์Œ์—๋Š” ์ตœ๋Œ€ํ•œ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฆ๋ช…์„œ? ๊ทธ๋ƒฅ ์ด๋ฏธ์ง€๋กœ ๋Œ€์ถฉ ๊ทธ๋ ค์„œ ๋„ฃ๊ณ  ํŽ˜์ด์ง€ ์ค‘์•™ ์ •๋ ฌ๋งŒ ์‹œ์ผœ์„œ ๋ณด์—ฌ์ฃผ์ž! ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ €๋Š” ๋ฐฑ์‹ ์„ ๋ชป ๋งž๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—...! ์ธํ„ฐ๋„ท์—์„œ ๊ตด๋Ÿฌ๋‹ค๋‹ˆ๋Š” ์˜ˆ๋ฐฉ์ ‘์ข… ์ฆ๋ช…์„œ์˜ ์Šคํฌ๋ฆฐ์ƒท(์œ„์— ์ฒจ๋ถ€ํ•œ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ํ…Œ์ŠคํŠธ์šฉ ์•ฑ์˜ ์Šคํฌ๋ฆฐ์ƒท์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค)์„ ๊ตฌํ•ด ์˜†์— ๋‘๊ณ  ๋น„์Šทํ•œ ๋Š๋‚Œ์œผ๋กœ ํ•˜๋‚˜ ๊ทธ๋ ค๋ดค์Šต๋‹ˆ๋‹ค... ๐Ÿ˜š

โญ๏ธ ์ด๋ฏธ์ง€ ํ‘œ์‹œํ•˜๊ธฐ

์ด๋ฏธ์ง€๋ฅผ ํ‘œ์‹œํ•˜๊ณ , ํ™”๋ฉด ์ค‘์•™์— ์ •๋ ฌ์‹œ์ผœ ๋ดค์–ด์š”. ํ…… ๋น„์–ด ์žˆ์–ด์„œ ๋งŽ์ด ์™ธ๋กœ์›Œ ๋ณด์ด๋„ค์š”.

width: 300px;
border-radius: 8px;
box-shadow: 0px 16px 36px rgba(0, 0, 0, 0.05);

@media (max-width: 400px) {
  width: 285px;
}
  • ๋ชจ์„œ๋ฆฌ๋ฅผ ๋‘ฅ๊ธ€๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ž…์ฒด๊ฐ์„ ์œ„ํ•ด ์•ฝ๊ฐ„์˜ ๊ทธ๋ฆผ์ž๋ฅผ ๋„ฃ์–ด ๋ดค์–ด์š”.
  • ๋„“์ด๋ฅผ ์„ค์ •ํ•ด ์คฌ์–ด์š”. ์กฐ๊ทธ๋งŒ ๋ชจ๋ฐ”์ผ ํ™”๋ฉด์—์„œ๋„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ณด์ผ ์ˆ˜ ์žˆ๋„๋ก ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋กœ ์ฒ˜๋ฆฌ๋„ ํ•ด์ค๋‹ˆ๋‹ค.

๐ŸŽ‰ ์ด๋ชจ์ง€ ํญ์ฃฝ ํ„ฐ๋œจ๋ฆฌ๊ธฐ

์ €๋Š” ์ฆ๋ช…์„œ ํ™”๋ฉด์— ๋“ค์–ด๊ฐ€์ž๋งˆ์ž ์ด๋ชจ์ง€๊ฐ€ ์Ÿ์•„์ ธ ๋‚ด๋ฆฌ๊ธธ ์›ํ–ˆ์–ด์š”!
์–ด๋–ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ๋‚˜ ํ•˜๊ณ  ๊นƒํ—ˆ๋ธŒ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ชจ๋“ˆ์„ ๋น„๊ตํ•ด ๋ดค์—ˆ๋Š”๋ฐ์š”.
js-confetti๊ฐ€ ๊ฐ€์žฅ ๊น”๋”ํ•œ ๊ฒƒ ๊ฐ™์•˜์–ด์š”. ์ฒ˜์Œ์—๋Š” react-rewards๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐ, ์ด ๋ชจ๋“ˆ์€ ์˜คํ”„๋‹ ํญ์ฃฝ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ์‚ฌ์šฉ์ž์˜ ์ธํ„ฐ๋ ‰์…˜์— ๋”ฐ๋ฅธ ๋ณด์ƒ์ด๋‚˜ ์ฒ˜๋ฒŒ์„ ๋‚ด๋ฆฌ๋Š” ์—ญํ• (์‹ค์ œ๋กœ ๋ฉ”์†Œ๋“œ ์ด๋ฆ„์ด rewardMe, punishMe๋„ค์š” ใ„ทใ„ท)์ด ๋” ์ ์ ˆํ•ด ๋ณด์˜€์ฃ . ์‚ฌ์‹ค ์Šคํฌ๋กค ๋ฒ„๊ทธ๊ฐ€ ํ•˜๋‚˜ ์žˆ์—ˆ๋Š”๋ฐ ๊ณ ์น˜๊ธฐ ์–ด๋ ค์›Œ์„œ ํŒจ์Šคํ–ˆ์Šต๋‹ˆ๋‹ค.

export const Card: React.FC<CardProps> = () => {
  useEffect(() => {
    const confetti = new JSConfetti();
    confetti.addConfetti({
      emojis: ['๐Ÿ‡ฐ๐Ÿ‡ท', '๐Ÿ’ธ', '๐Ÿ’ต', '๐Ÿ’–'],
      emojiSize: 256,
      confettiNumber: 30,
      confettiRadius: 6,
    });
  }, []);

  return (
    <CardContainer>
      <CardImage src="/images/card.svg" />
    </CardContainer>
  );
};

์ด๋ ‡๊ฒŒ ์ฒ˜์Œ ํ•œ ๋ฒˆ๋งŒ JSConfetti ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๋ฉด, Canvas ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ํ˜„์žฌ document์— ์ถ”๊ฐ€ํ•˜๋ฉด์„œ ๋ชจ๋“ˆ์ด ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค. ๊ทธ ๋’ค๋กœ addConfetti ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ํญ์ฃฝ์ด ํ„ฐ์ง€์ฃ !

์•— ๊ทธ๋Ÿฐ๋ฐ ์ €๋Š” Next.js๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ์š”. ์ €๋ ‡๊ฒŒ ์ฝ”๋“œ๋ฅผ ์งœ๋‹ˆ ์„œ๋ฒ„์‚ฌ์ด๋“œ์—์„œ ๋ Œ๋”๋ง๋  ๋•Œ new JSConfetti()๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ReferenceError: document is not defined ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์–ด์š”.

useEffect(() => {
  if (typeof document === 'undefined') {
    return
  }
  
  // client only
  const confetti = new JSConfetti();
  confetti.addConfetti({
    emojis: ['๐Ÿ‡ฐ๐Ÿ‡ท', '๐Ÿ’ธ', '๐Ÿ’ต', '๐Ÿ’–'],
    emojiSize: 256,
    confettiNumber: 30,
    confettiRadius: 6,
  });
}, []);

Node ํ™˜๊ฒฝ์—์„œ๋Š” document global์ด ์„ ์–ธ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๊ธฐ๋Š” ๊ฒƒ์ด์ฃ ! ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ์—์„œ๋งŒ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์œ„ ์ฝ”๋“œ์ฒ˜๋Ÿผ typeof document๋กœ ๋ถ„๊ธฐํ•  ์ˆ˜ ์žˆ๊ฒ ๋„ค์š”.

์˜ˆ์œ ๋ฐฐ๊ฒฝ๋„ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค. ์ด์ œ ๋“œ๋””์–ด ์ข€ ์ฆ๋ช…์„œ ๊ฐ™์€ ๋Š๋‚Œ์ด ๋‚ฉ๋‹ˆ๋‹ค!

const Container = styled.div`
  width: 100%;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-image: url('/images/gradient.webp');
  background-size: cover;
`;

๐Ÿ–จ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค ๋ˆ ์ฐ๊ธฐ

๊ทธ๋Ÿฐ๋ฐ ์•„์ง ๋ญ”๊ฐ€ ์ฐ๋ ํ•œ ๋Š๋‚Œ์ด ๋“ค์–ด์„œ, ๋ญ˜ ํ•˜๋ฉด ์ข‹์„๊นŒ ์ƒ๊ฐํ–ˆ์—ˆ๋Š”๋ฐ์š”.
์ธ์ฆ์„œ๋ฅผ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค 25๋งŒ์›(์žฌ๋‚œ์ง€์›๊ธˆ ์•ก์ˆ˜)์”ฉ ์นด์šดํŠธ๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋Š”(๋ˆ์ด ์ฐํžˆ๋Š”?) ๊ฒŒ ๋ณด์ด๋ฉด ์–ด๋–จ๊นŒ ํ•ด์„œ ๊ทธ๋ƒฅ ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋ณ„ ๋œป์ด ์žˆ๋Š” ๋™์ž‘์€ ์•„๋‹ˆ์ง€๋งŒ ๋ณด์‹œ๋Š” ๋ถ„๋“ค๊ป˜์„œ ์ฒ˜์Œ 3์ดˆ ๋™์•ˆ์ด๋ผ๋„ ๊ทธ๋ƒฅ ์žฌ๋ฏธ์žˆ์–ด์„œ ๋ช‡ ๋ฒˆ ๋ˆ„๋ฅผ ๊ฒƒ ๊ฐ™์•˜์–ด์š”.

โš“๏ธ ์ปค์Šคํ…€ ํ›… useCount ๊ตฌํ˜„

ํด๋ฆญ์€ ๋ˆ„๊ตฐ๊ฐ€์˜ ๋…ธ๋ ฅ์ด์ฃ ! ์‚ฌ์ดํŠธ๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋Š” ๋ฐ”๋žŒ์— ์ƒํƒœ๊ฐ€ ๋ชจ๋‘ ๋‚ ์•„๊ฐ€๋ฉด ๋„ˆ๋ฌด ์Šฌํ”„๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ์—๋Š” ๊ทธ ๊ฐ’์„ localStorage์— ์ €์žฅํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

export const useCount = (): [number, () => void] => {
  const [count, setCount] = useState<number>(() => {
    if (typeof localStorage === 'undefined') {
      return 0;
    }

    const storedNumber = parseInt(localStorage.getItem('@count'));
    return storedNumber || 0;
  });

  const updateCount = useCallback(() => {
    const nextCount = count + 1;
    localStorage.setItem('@count', nextCount.toString());
    setCount(nextCount);
  }, [count]);

  return [count, updateCount];
};

localStorage๋Š” ๋ฌธ์ž์—ด ํ‚ค์™€ ๋ฌธ์ž์—ด ๊ฐ’์„ ๋งคํ•‘ํ•ด ์ฃผ๊ธฐ ๋•Œ๋ฌธ์—, ํ˜„์žฌ count ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๋•Œ๋งˆ๋‹ค ๊ทธ ๊ฐ’์„ String์œผ๋กœ ๋ฐ”๊ฟ” ์ €์žฅํ•˜๋„๋ก ํ–ˆ์–ด์š”. ์ฒ˜์Œ์— ์ €์žฅ๋œ ์ƒํƒœ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ๊ฐ€์ ธ์˜ฌ ๋•Œ๋Š” ๊ทธ ๊ฐ’์—์„œ ํŒŒ์‹ฑํ•˜๊ณ ์š”!

๐Ÿ“– ํด๋ฆญ ์ˆ˜์— ๋”ฐ๋ผ ์ฐ์€ ๋ˆ ํ‘œ์‹œํ•˜๊ธฐ

๋งŒ๋“  ํ›…์€ ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”!

const [clicks, updateClicks] = useCount();
const message = useMemo(() => {
  if (!clicks) {
    return '์ธ์ฆ์„œ๋ฅผ ๋ˆŒ๋Ÿฌ ๋ˆ์„ ์ฐ์–ด ๋ณด์„ธ์š”.';
  }
  return `${convert(',$.3s', STIMULUS * clicks)}์„ ์ฐ์–ด๋‚ด์…จ๋„ค์š”.`;
}, [clicks]);

...

<Card onClick={updateClicks} />

์—ฌ๊ธฐ์„œ convert ํ•จ์ˆ˜๋Š” uck์ด๋ผ๋Š” ๋ชจ๋“ˆ์˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ˆซ์ž๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ•œ๊ธ€๋กœ ์ฝ์–ด์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

  • ,$.3s ๋ฌธ์ž์—ด์€ convert ํ•จ์ˆ˜์˜ ์กฐ๊ฑด์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(์œ„ ๋งํฌ README ์ฐธ๊ณ ).
    • ,: ์ฒœ ์ž๋ฆฌ๋งˆ๋‹ค ์ฝค๋งˆ(,)๋ฅผ ํ‘œ์‹œํ•  ๊ฒƒ
    • $: ์™„์„ฑ๋œ ํ•œ๊ธ€ ๋ฌธ์ž์—ด์— ์› ๋‹จ์œ„๋ฅผ ๋ถ™์ผ ๊ฒƒ
    • .3: precision ์ˆ˜ ์„ค์ •(์—ฌ๊ธฐ์„  ํฌ๊ฒŒ ์ค‘์š”ํ•˜์ง€ ์•Š์•„์„œ ํŒจ์Šคํ•˜๊ณ  ์˜ˆ์ œ ๊ทธ๋Œ€๋กœ ๋ถ™์˜€๋˜ ๊ฒƒ ๊ฐ™์•„์š”)
    • s: ๋‹จ์œ„๋งˆ๋‹ค ๊ณต๋ฐฑ ํ•œ ์นธ ์ถ”๊ฐ€(space์˜ s๋ฅผ ์˜๋„ํ•˜์‹  ๋“ฏ)
  • 2๋…„ ์ •๋„ ์ง€๋‚œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ธฐ๋Š” ํ•˜์ง€๋งŒ, ์‚ฌ์šฉํ•˜๋ฉด์„œ ๊ตณ์ด ๋”ฐ๋กœ ๋…์ž ํฌ๋งท์„ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์žˆ์—ˆ์„๊นŒ ํ•˜๋Š” ์•„์‰ฌ์›€์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค(์ด๊ฒƒ ๋ง๊ณ ๋Š” ๊ฐ€์žฅ ๊น”๋”ํ•˜๊ธฐ๋„ ํ–ˆ๊ณ  ์ข‹์•˜์–ด์š”). ๋ฌผ๋ก  ์ฝ”๋“œ๊ฐ€ ์งง์•„์ง€๊ธด ํ–ˆ์ง€๋งŒ uck์„ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ์ด ํ•œ๋ˆˆ์— ์•Œ๊ธฐ๋Š” ์ข€ ์–ด๋ ต์ง€ ์•Š๋‚˜ ์‹ถ๋„ค์š”. ์•„๋ž˜์ฒ˜๋Ÿผ ๊ทธ๋ƒฅ ์˜ต์…˜์„ ๋‹ค๋ฃจ๋Š” Object๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค๋ฉด ํ›จ์”ฌ ์ž˜ ์ฝํžˆ๊ธฐ๋„ ํ•˜๊ณ  TypeScript ๋ชจ๋“ˆ์˜ ์žฅ์ ์„ ๋”์šฑ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์„ ๊ฒƒ ๊ฐ™์•„์š”.
convert(value, {
  suffix: '์›',
  precision: 3,
  addComma: true,
  addSpace: true,
})

โœ… ์™„์„ฑ

ํด๋ฆญํ•  ๋•Œ๋„ ์ด๋ชจ์ง€ ํญ์ฃฝ์„ ํ„ฐ๋œจ๋ฆฌ๊ฒŒ ํ•˜๊ณ , ์•ฝ๊ฐ„์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜๊ณผ ์Šคํƒ€์ผ์„ ๋”ํ•˜์ž ์•„๋ž˜ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฌผ์ด ๋‚˜์™”์–ด์š”!

์ž๋ถ€์‹ฌ์€ ์Šค์Šค๋กœ ๊ฐ€์ง€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๐Ÿ™‡
์„œ๋น„์Šค๋Š” https://pride-stimulus.vercel.app ์—์„œ,
์ฝ”๋“œ๋Š” https://github.com/junhoyeo/pride-stimulus ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

profile
๊นƒํ—™.๊ตฌ๊ฒฝ,๋ถ€ํƒ.

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

comment-user-thumbnail
2021๋…„ 7์›” 19์ผ

์˜ค.... ์ €๋„ ๊ณ ์†Œ๋“์ž ๋˜์„œ ๊ณ ์†Œ๋“์ž์˜ ์ž๋ถ€์‹ฌ์ข€ ๊ฐ€์ ธ๋ณด๊ณ  ์‹ถ์–ด์š” ใ…‹ใ…‹ใ…‹ใ…‹

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 7์›” 19์ผ

์žฌ์น˜์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ์ด์‹œ๋ฉด์„œ ์•„ํ‹ฐ์ŠคํŠธ์ด์‹œ๋„ค์š”
์žฌ๋ฏธ์žˆ๊ฒŒ ์ญ‰ ๋ดค์Šต๋‹ˆ๋‹ค :)

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 7์›” 20์ผ

ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ ์™„์ „ ์žฌ๋ฐŒ์–ด์š”

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 7์›” 20์ผ

์˜ค... ์•ฑ ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค์–ด๋ณด๊ณ ์‹ถ์€๋ฐ ๊ดœ์ฐฎ์„๊นŒ์š”? ใ…Žใ…Ž

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 7์›” 22์ผ

๊ณ„์† ๋ˆŒ๋Ÿฌ์„œ 1์ฒœ๋งŒ์›๊นŒ์ง€ ์˜ฌ๋ ธ์–ด์š”!
๋ˆ์€ ๊ฐœ๋ฐœ์ž๋‹˜์ด ์ฃผ์‹œ๋Š” ๊ฑฐ์ฃ ?
์ œ ๊ณ„์ขŒ๋Š” ์‹ ํ•œ 110-446..

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 7์›” 23์ผ

ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 7์›” 26์ผ

์ „ํ˜€ ์†Œ๋“์ด ์ค„์–ด๋“ค์ง€ ์•Š์•˜์–ด์š”! ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 7์›” 26์ผ

ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 7์›” 26์ผ

ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 7์›” 28์ผ

์ˆœ์ˆ˜ ํด๋ฆญ์œผ๋กœ 2์–ต ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
ํ˜„์‹ค์—์„œ๋„ ๋‹จ์ˆœํ•œ ์†๊ฐ€๋ฝ ๋…ธ๋™ ๋ช‡ ๋ฒˆ์œผ๋กœ ๋ˆ์ด ๋น ๋ฐฉํ•˜๊ณ  ๋‚˜์™”์œผ๋ฉด ์ข‹๊ฒ ๋„ค์š”.

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2022๋…„ 10์›” 21์ผ

์•„๋‹ˆ ์™œ ๊ณ ํ€„์ธ๊ฑฐ์ง€??ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ