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

[Lv1]  ๋ชจ์˜๊ณ ์‚ฌfunction solution(answers) { const user1 = [1, 2, 3, 4, 5]; const user2 = [2, 1, 2, 3, 2, 4, 2, 5]; const user3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]; const answer = [0, 0, 0]; const result=[]; for (let i = 0; i ๋‹จ์ˆœํ•˜๊ฒŒ, ์ •๋‹ต๋ฐฐ์—ด๊ณผ ๊ฐ user1,2,3์˜ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ index์˜ ์ •๋‹ต์ด ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ฉด์„œ ์ •๋‹ต๊ฐœ์ˆ˜๋ฅผ ์นด์šดํŠธํ•ด์ค€๋’ค, ๊ฐ€์žฅ ์ •๋‹ต์„ ๋งž์ถ˜ ์œ ์ €๋ฅผ ์ •๋‹ต๊ฐฏ์ˆ˜์™€ ๋น„๊ตํ•ด answer ๋ฐฐ์—ด์— pushํ•ด์ค€๋‹ค. ๐Ÿ›  Refactoringfunction solution(answers)..
SSR์™€ CSR์˜ SEO CSR (React.js) CSR(ClientSide Rendering)์˜ ๊ฒฝ์šฐ ์ดˆ๊ธฐ์— ๋นˆ html ๋ฌธ์„œ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ด‡์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ธฐ ์–ด๋ ต๊ธฐ๋•Œ๋ฌธ์— SEO์— ๋ถˆ๋ฆฌํ•˜๋‹ค.   SSR(Next.js)ํ•˜์ง€๋งŒ, SSR(ServerSide Rendering)์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ํŽ˜์ด์ง€๋ฅผ ์„œ๋ฒ„์—์„œ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•ด ๋ธŒ๋ผ์šฐ์ €์— ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์œผ๋กœ, ์ด๋ฏธ ์„œ๋ฒ„์ชฝ์—์„œ ๋งŒ๋“ค์–ด์ง„ ์™„์„ฑ๋œ html์„ ๊ฒ€์ƒ‰์—”์ง„๋“ค์ด ํฌ๋กค๋ง์ด ๊ฐ€๋Šฅํ•˜๊ธฐ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰์— ์œ ๋ฆฌํ•ด์ง„๋‹ค. SEO ์ง„๋‹จโœ… SSR์˜ ์žฅ์ ์ธ SEO ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ž‘์—…ํ•˜๊ธฐ ์ „, SEO checkup์„ ํ•ด๋ณด์•˜๋‹ค.https://pagespeed.web.dev/analysis/https-balanco-vercel-app/hxv2uh2yl9?form_factor..
[Lv1] ํฐ์ผ“๋ชฌfunction solution(nums) { const map=new Map(); //ํฐ์ผ“๋ชฌ ์ข…๋ฅ˜ ๊ตฌํ•˜๊ธฐ for(const num of nums){ map.set(num,map.get(num)+1||1) } const type=map.size return Math.min(type,Math.floor(nums.length/2));}์ตœ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ๊ฐ€์ ธ๊ฐ€๊ธธ ์›ํ•˜๊ณ , nums/2๋งŒํผ์˜ ํฐ์ผ“๋ชฌ์„ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํฐ์ผ“๋ชฌ ์ข…๋ฅ˜์˜ ์ˆ˜์™€ nums/2์ค‘ ์ตœ์†Œ๊ฐ’์„ ๋ฆฌํ„ดํ•ด์ฃผ๋ฉด ๋œ๋‹ค.   ๐Ÿ›  Refactorfunction solution(nums) { //ํฐ์ผ“๋ชฌ ์ข…๋ฅ˜ ๊ตฌํ•˜๊ธฐ const set=new Set(nums); c..
์ด์™€๊ฐ™์ด, ์ฑ„ํŒ…์„ ์ž…๋ ฅํ–ˆ์„๋•Œ ์ˆ˜๋™์œผ๋กœ ์Šคํฌ๋กค์„ ํ•ด์ค˜์•ผํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ์—ˆ๋‹ค. "use client";import { useEffect, useRef } from "react";function MessageList({ messageList }) { const scrollRef = useRef(null); useEffect(() => { if (scrollRef.current) { scrollRef.current.scrollTop = scrollRef.current.scrollHeight; } }, [messageList]); return ( {messageList.map((message) => { return ( ๋ฉ”์‹œ์ง€ ); ..
์ฑ„ํŒ… ์ž…๋ ฅ์ฐฝ์— ์ด๋ชจ์ง€ ์•„์ด์ฝ˜์„ ๋ˆ„๋ฅด๋ฉด, ์ด๋ชจํ‹ฐ์ฝ˜ ํ‚ค๋ณด๋“œ๊ฐ€ ๋‚˜์™€ ์ด๋ชจ์ง€๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค.  emoji-picker-react const [showPicker, setShowPicker] = useState(false); const [message, setMessage] = useState("");const onEmojiClick = (event, emojiObject) => { setMessage((prevMessage) => prevMessage + emojiObject.emoji); setShowPicker(false); }; return ( setMessage(e.target.value)} > ..
max-width๋กœ ๋ฐ˜์‘ํ˜• CSS//tailwind.config.tsmodule.exports = { theme: { screens: { 'sm-max': { 'max': '639px' }, // ๋ชจ๋ฐ”์ผ (์ตœ๋Œ€ 639px) 'md-max': { 'max': '767px' }, // ์ž‘์€ ํƒœ๋ธ”๋ฆฟ (์ตœ๋Œ€ 767px) 'lg-max': { 'max': '1023px' }, // ํฐ ํƒœ๋ธ”๋ฆฟ (์ตœ๋Œ€ 1023px) 'xl-max': { 'max': '1279px' }, // ๋ฐ์Šคํฌํƒ‘ (์ตœ๋Œ€ 1279px) '2xl-max': { 'max': '1535px' } // ํฐ ๋ฐ์Šคํฌํƒ‘ (์ตœ๋Œ€ 1535px) }, },๋ฐ์Šคํฌํƒ‘ first๋กœ ๊ฐœ..
๊ธฐ๋ณธ Layoutimport Footer from "@/components/Footer";import Header from "@/components/Header";function RootLayout({ children }: { children: React.ReactNode }) { return ( {children} );}export default RootLayout; Error๋‚˜ Loading ์ค‘์ผ๋•Œ, children์— ํ•ด๋‹นํ•˜๋Š” content๊ฐ€ ์—†์œผ๋ฉด, ์ €๋ ‡๊ฒŒ footer๊ฐ€ ๋ทฐํฌํŠธ ์ค‘๊ฐ„์œผ๋กœ ์˜ฌ๋ผ์™€๋ฒ„๋ฆฌ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.  Flex-grow ์‚ฌ์šฉimport Footer from "@/components/Footer";..
DebounceDebounce๋Š” ๊ณผ๋„ํ•œ ์š”์ฒญ์œผ๋กœ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฌธ์ œ๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋‹ค.input์ฐฝ์— ์—ฐ์†์ ์œผ๋กœ ๊ฐ’์„ ์ž…๋ ฅํ• ๋•Œ, ์ด๋ฒคํŠธ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•˜๊ณ  ๊ทธ๋•Œ๋งˆ๋‹ค ๋„คํŠธ์›Œํฌ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋Ÿฐ ๊ฒฝ์šฐ์— ์ง€์†์ ์ธ ์š”์ฒญ์œผ๋กœ ์ธํ•ด ๋„คํŠธ์›Œํฌ ์šฉ๋Ÿ‰๊ณผ ๋ฐฑ์—”๋“œ ๋“ฑ ๊ณผ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์„ฑ๋Šฅ๋ฉด์—์„œ ์ข‹์ง€ ๋ชปํ•˜๋‹ค.(์œ ๋ฃŒ API์„ ์‚ฌ์šฉํ• ๊ฒฝ์šฐ์—” ๋น„์šฉ๋ฉด์œผ๋กœ๋„ ๋ฌธ์ œ๊ฐ€๋ฐœ์ƒํ•œ๋‹ค..๐Ÿซ ) ๐Ÿ‘‰๐Ÿป Debounce๋ฅผ ์‚ฌ์šฉํ•ด, ์—ฐ์†์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ ์ค‘ ๋งˆ์ง€๋ง‰ ์ด๋ฒคํŠธ(๊ฒ€์ƒ‰ํ•  ํ‚ค์›Œ๋“œ) ๋งŒ์„ ๊ธฐ์ ์œผ๋กœ ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ๋ณด๋‚ด, ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ณผ ๊ฐ™์€ ๋นˆ๋ฒˆํ•œ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ• ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.  useDebounce : ์‚ฌ์šฉ์ž ์ •์˜ Hookimport { useState, useEffect } ..
Yuuuki
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (11 Page)