์ฝ”๋”ฉ ๋ฉ”๋ชจ

https://fonts.google.com/?subset=korean&noto.script=Kore Browse Fonts - Google Fonts Making the web more beautiful, fast, and open through great typography fonts.google.com ๊ตฌ๊ธ€ํฐํŠธ ๊ท€์—ฌ์šด ๊ฑฐ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์ฐพ์•„๋ด„ ์›ํ•˜๋Š” ํฐํŠธ get ๋ฒ„ํŠผ ๋ˆ„๋ฅด๊ณ  global.css (ํ˜น์€ ์ „์—ญ css) ์— @import ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค @import url("https://fonts.googleapis.com/css2?family=Jura:wght@300..700&display=swap"); tailwind.config.ts import type { Config } from "tailwindc..
๊ธฐ๋ณธ ํ…Œ๋‘๋ฆฌ๋Š” ๊ฒ€์ •์ƒ‰์ด๊ณ , ์ฃผ๋ณ€์ƒ‰์ƒ์ด๋ž‘ ๋งž์ถฐ์„œ ๋ณด์ด๊ฒŒ ํ•˜๊ณ  ์‹ถ์€๋ฐ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ๋ ์ง€ ์ฐพ์•„๋ณธ ๊น€์— ๋ฉ”๋ชจ focus:ring-2 focus:ring-inset focus:ring-#์—ฌ๊ธฐ์—์ƒ‰์ƒ focus:outline-none ์ด๊ฑฐ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋จ focus ์‹œ์— ring ์ถ”๊ฐ€ํ•˜๊ณ , ์•ˆ ์ชฝ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ทธ๋ ‡๊ฒŒ ๊นŒ์ง€๋งŒ ํ•˜๋ฉด outline ๊ฒ€์ •์ƒ‰์ด ๊ทธ๋Œ€๋กœ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— none ์ฒ˜๋ฆฌ
ํ‰์†Œ์—๋Š” ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ›„ git lab์— ์ง์ ‘๋“ค์–ด๊ฐ€์„œ create merge~์–ด์ฉŒ๊ณ  ๋œจ๋ฉด ๊ทธ๊ฑฐ ๋ˆŒ๋Ÿฌ์„œ merge์ž‘์—…ํ–ˆ์—ˆ๋Š”๋ฐ, (git merge ๋ช…๋ น์–ด๊ฐ€ ์กฐ๊ธˆ ๋ณต์žก์‹œ๋ ต๊ฒŒ ๋А๊ปด์ง€๊ณ , ํ˜น์‹œ๋ผ๋„ mergeํ•˜๋‹ค ์ถฉ๋Œ๋‚ ๊นŒ๋ด ใ… ใ… )_ ํ•˜์ง€๋งŒ ์ถฉ๋Œ๋‚˜๋ฉฐ ๋ฐฐ์šฐ๋Š” git..... (์ด๋ผ์“ฐ๊ณ  ๋งจ๋‚  ๋”ฐ๋กœ ๋ฐฑ์—…ํ•ด๋†“์Œใ…‹) ๋ช…๋ น์–ด๋กœ ํ•ด๋ณด๋Š” ์Šต๊ด€์„ ๋“ค์ด๊ธฐ๋กœ ํ•จ dev๋ผ๋Š” ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ›„ main์— ๋จธ์ง€๋ฅผ ํ•˜๋ ค๋ฉด, 1. ์ผ๋‹จ main๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•œ๋‹ค. git checkout main 2. dev์— ์˜ฌ๋ผ์™€์žˆ๋Š” ์†Œ์Šค๋ฅผ merge ํ•œ๋‹ค. git merge dev 3. ์ด์ œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์›๊ฒฉ์ €์žฅ์†Œ๋กœ pushํ•œ๋‹ค. git push origin main ๋งŒ์ผ push ํ•˜๋‹ค๊ฐ€ error: failed to push some refs to..
dev์—์„œ ์ž‘์—…์„ํ•˜๊ณ  main์— ๋ณ‘ํ•ฉํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผํ•˜๋Š”๋ฐ, ์ฒดํฌ๋ฅผ ์•ˆํ•˜๊ณ  ์ž๊พธ main์—์„œ ์ˆ˜์ •์ž‘์—…์„ ํ•œ๋‹ค ใ… ^^ ๊ทธ๋ž˜์„œ ๊ทธ๋™์•ˆ์€ ๊ทธ๋ƒฅ ๋˜‘๊ฐ™์ด dev์—์„œ๋„ ์ž‘์—…ํ•˜๊ณ  ์ปค๋ฐ‹ํ•ด์คฌ๋Š”๋ฐ, ์ด๋ฒˆ์—” ๋‚ด์—ญ์ด ์ข€ ๋งŽ์•„์„œ,, ์ผ๋‹จ ๊ธฐ๋กํ•ด๋†“์œผ๋ ค๊ณ  ํ•จ ๊ฒ๋‚ด์ง€๋ง๊ณ  ๊ทธ๋ƒฅ git checkout dev git merge main ํ•ด์ฃผ๋ฉด main์— ์žˆ๋Š” ์†Œ์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ค๊ณ , ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋œฌ๋‹ค. (์—ฌ๊ธฐ์„œ ์ถฉ๋Œ์ด ์žˆ์œผ๋ฉด ์ถฉ๋Œ ์ˆ˜์ •๊นŒ์ง€ ํ•ด์คŒ) ์ด์ œ ์ด ์ˆ˜์ •๋‚ด์—ญ์ด ์Œ“์—ฌ์„œ git status๋ฅผ ํ•ด์ฃผ๋ฉด commit๋‚ด์—ญ์ด ์žˆ๋‹ค๊ณ  ๋‚˜์˜ด ์ด์ œ ํŽธํ•œ๊ฑธ๋กœ push ํ•ด์ฃผ๋ฉด ๋จ! ์ € ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด ๋˜์ง€๋งŒ ๋‚˜๋Š” ์š”์ฆ˜์—” ๋ช…๋ น์–ด๋กœ๋งŒ git์“ฐ๋Š” ๊ฑฐ ์Šต๊ด€๋“ค์ด๋ ค๊ณ  git push origin dev ํ•ด์ฃผ์—ˆ๋‹ค
๋กœ๊ทธ์ธ ์‹œ ํ—ค๋”์— ๋‹ด๊ธด Access-token์„ ๋ฐ›์•„์™€์•ผ ํ•˜๋Š”๋ฐ headers ๊ฐ€ ๋ถˆ๋Ÿฌ์™€์ง€์ง€ ์•Š๋Š” ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ฒผ๋‹ค. const loginHandler = useCallback(async () => { try { const response: any = await fetch(Account.POST_SNS_LOGIN, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ code: authCode, snsCode: "1110501", phoneNumber: phone, name: name, }), }); const data = await response.json(); console.log(data); /..
์ด ์˜ค๋ฅ˜๋Š” ์ฃผ๋กœ Git์ด ๋‘ ๋ธŒ๋žœ์น˜์˜ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ์„œ๋กœ ๊ด€๋ จ์ด ์—†๋‹ค๊ณ  ํŒ๋‹จํ•  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค. ๋‚ด๊ฐ€ ์ด ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋‚œ ๊ฑด ๋กœ์ปฌ์— git ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค๊ณ  ์ปค๋ฐ‹ํ•˜๊ณ , github ์— ์ƒˆ๋กœ์šด ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค๋•Œ README ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ปค๋ฐ‹์ด๋ ฅ์ด ์ƒ๊ฒผ๋˜ ์ƒํ™ฉ์ด๋‹ค. ์ด ์ƒํƒœ์—์„œ ๋กœ์ปฌ์— ์žˆ๋Š” ๊ฒƒ์„ ํ‘ธ์‹œํ•  ๊ฒฝ์šฐ, ๋กœ์ปฌ ์ €์žฅ์†Œ์—๋Š” github์˜ ์ปค๋ฐ‹์ด๋ ฅ์ด ์—†์œผ๋ฏ€๋กœ ์ƒ๊ธฐ๋Š” ์—๋Ÿฌ๋ผ๊ณ . git pull --allow-unrelated-histories ~ ~ git pull --allow-unrelated-histories origin main ์„ ํ•ด์ฃผ์–ด ์ž˜ ํ•ด๊ฒฐ๋˜์—ˆ์Œ. https://stackoverflow.com/questions/37937984/git-refusing-to-merge-unrelated-histories-..
๐Ÿšจ ์—๋Ÿฌ ์ƒํ™ฉ ๋กœ์ปฌ์—์„œ next ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ–ˆ๋Š”๋ฐ, ์ด๋ฅผ repository๋งŒ ์ƒ์„ฑํ•ด๋†“์€ git ๊ณผ ์—ฐ๋™ํ•˜๋Š” ๊ณผ์ •์—์„œ ์ƒ๊ธด ์˜ค๋ฅ˜ โœจ ์›์ธ ๋กœ์ปฌ์˜ git๊ณผ ๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ์˜ git ์ •๋ณด๊ฐ€ ๋™๊ธฐํ™” ๋˜์ง€ ์•Š์•„์„œ, ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ง„ ๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ ๋ธŒ๋žœ์น˜๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๊ธฐ์— ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ฒ˜์Œ์— master๋กœ ๋˜์–ด์žˆ๋Š” ์ƒํƒœ์—์„œ, gitlab ์—๋Š” main์ด ์žˆ์—ˆ๋Š”๋ฐ ๊ทธ ๋‘ ๊ฐœ๊ฐ€ ์„œ๋กœ ๋™๊ธฐํ™”๊ฐ€ ์•ˆ๋˜์–ด์žˆ์œผ๋‹ˆ ์„œ๋กœ ์ฐพ์งˆ ๋ชปํ•˜๊ณ  ์žˆ์—ˆ๋˜ ๊ฒƒ. ๐Ÿ’ก ํ•ด๊ฒฐ git remote update git checkout main ์ƒˆ๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค๋ฉด main์ž๋ฆฌ์— ์ƒ์„ฑํ•œ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์„ ๋„ฃ์–ด์„œ ์ด๋™ํ•˜๋ฉด ๋จ ๋ณดํ†ต pull ๋ฐ›๊ธฐ ์ „ git remote update ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด ์ตœ์‹  ์ด๋ ฅ ์ •๋ณด๋ฅผ ํ™•์ธํ•œ ํ›„, git pu..
์‚ฐ๋„˜์–ด ์‚ฐ์ด๋‹ค... ๊ฐ„๋งŒ์— ๋งฅ๋ถ์„ ํ‚ค๋ฉด ์ฃ™์ผ ์˜ค๋ฅ˜ ์ˆ˜์ •๋งŒ ํ•˜๋Š” ๊ฑฐ ๊ฐ™์€ ๊ธฐ๋ถ„.. vue js ๋กœ ์ž‘์—…ํ•˜๋ ค๋Š”๋ฐ ํŒŒ์ผ ์ €์žฅ์ด ์•ˆ๋˜๊ณ  ์ž๊พธ permission ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค.. Retry as Sudo ๋กœ ํ•ด๋„ ๋น„๋ฒˆ์ž…๋ ฅํ•˜๊ณ  ๋˜‘๊ฐ™์€ ์ฐฝ ๊ณ„์† ๋œฐ ๋ฟ.. Error: EACCES: permission denied, rmdir ํ•ด๊ฒฐ๋ฐฉ๋ฒ• sudo chown -R [username] . [username]์€ echo $USER ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์„œ ๋‚˜์˜ค๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์ฒ˜์Œ์— ์ € . ์„ ๋ชป๋ด์„œ usage: chown [-fhnvx] [-R [-H | -L | -P]] owner[:group] file ... chown [-fhnvx] [-R [-H | -L | -P]] :group file ... ์ด ์นœ๊ตฌ๋“ค๋งŒ ๊ณ„์†..
ํšŒ์‚ฌ ๋‹ค๋‹ˆ๋ฉด์„œ ํšŒ์‚ฌ ์ปดํ“จํ„ฐ ์“ฐ๊ณ , ์ง‘์—์„œ๋Š” ๋ฐ์Šคํฌํƒ‘์œผ๋กœ ํ•˜๊ณ  ํ•˜๋‹ค๋ณด๋‹ˆ ๋‚ด ๋งฅ๋ถ์„ ์“ธ ์ผ์ด ๋งŽ์ด ์—†์–ด์กŒ๋Š”๋ฐ ๊ฐ„๋งŒ์— ๋งฅ๋ถ์œผ๋กœ ์ธ๊ฐ•์„ ๋“ค์œผ๋ ค ํ•˜๋‹ค๊ฐ€ vue.js ์„ค์น˜๊ณผ์ •์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์„œ ๊ณ„์† ์• ๋จน์—ˆ๋‹ค. ๋‚ด๊ฐ€ ์ž…๋ ฅํ•œ ๋ช…๋ น์–ด๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. npm install -g @vue/cli ๊ทธ๋ฆฌ๊ณ  ๋‚˜์˜จ ์˜ค๋ฅ˜. zsh: command not found: npm ๋ฐ์Šคํฌํƒ‘์—์„œ๋Š” ์ž˜๋งŒ๋˜๋˜๊ฒŒ.. ๊ทธ๋ฆฌ๊ณ  ๋งฅ๋ถ์œผ๋กœ ํ•œ ์ฝ”๋”ฉ์ด ์–ผ๋งŒ๋ฐ npm๋„ node๋„ ์•ˆ๋‚˜์˜ค์ง€? ๊ทธ๋ ‡๋‹ค๊ณ  ํ•ด์„œ yarn global add @vue/cli ์ด ๋˜๋Š” ๊ฒƒ๋„ ์•„๋‹ˆ์—ˆ๋‹ค. npm install๋„ ๋˜์ง€ ์•Š์•˜์Œ node ๋„ npm ๋„ ์•„๋ฌด๊ฒƒ๋„ ๋˜์งˆ ์•Š์•˜๋‹ค. node๋„์—†๋‹ค๊ณ  ํ•˜๋‹ˆ ํ™ˆํŽ˜์ด์ง€์—์„œ node ๋ฅผ ๋‹ค์šด ๋ฐ›์•˜๋”๋‹ˆ ์ด์   ๋‹ค๋ฅธ ์˜ค๋ฅ˜๋ฅผ ๋„์› ๋‹ค npm ERR! cod..
map ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฃผ์–ด์ง„ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ง€๋Š” ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ const numbers = [1, 2, 3, 4]; const doubled = numbers.map(num => num * 2); console.log(doubled); // ์ถœ๋ ฅ: [2, 4, 6, 8] forEach ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฃผ์–ด์ง„ ํ•จ์ˆ˜๋ฅผ ํ•œ ๋ฒˆ์”ฉ ์‹คํ–‰. ๋ฐ˜ํ™˜ ๊ฐ’์ด ์—†์Œ(undefined). const numbers = [1, 2, 3, 4]; numbers.forEach((num, index) => { console.log(`Element at index ${index}: ${num}`); }); filter ์ฃผ์–ด์ง„ ํ•จ์ˆ˜์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ const n..
select ๊ฐ’์„ value์— ๋„ฃ๊ธฐ๋งŒ ํ–ˆ์ง€ ํ•ด๋‹น value์—์„œ ๊บผ๋‚ด์˜จ ๊ฒƒ์ด ๊ธฐ์–ต์ด ์ž˜ ์•ˆ๋‚˜ ๋ฉ”๋ชจํ•ด๋†“๋Š”๋‹ค. import { useState } from "react"; export default function App() { const initialFruitList = [ { id: 1, name: "์‚ฌ๊ณผ", color: "RED" }, { id: 2, name: "๋ฐ”๋‚˜๋‚˜", color: "YELLOW" }, { id: 3, name: "์ฒด๋ฆฌ", color: "RED" }, { id: 4, name: "๋ณต์ˆญ์•„", color: "PINK" }, { id: 5, name: "ํฌ๋„", color: "PURPLE" }, ]; const [fruitList, setFruitList] = useState(initia..
One of your dependencies, babel-preset-react-app, is importing the "@babel/plugin-proposal-private-property-in-object" package without declaring it in its dependencies. This is currently working because "@babel/plugin-proposal-private-property-in-object" is already in your node_modules folder for unrelated reasons, but it may break at any time. babel-preset-react-app is part of the create-react-..
Dong _ hwa
'์ฝ”๋”ฉ ๋ฉ”๋ชจ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก