[JS] console.log ์ฝ์ ๋ก๊ทธ ๋ ์ ์ฌ์ฉํ๊ธฐ
console.log
๋ ๋ธ๋ผ์ฐ์ ์์ ์ ๊ณตํ๋ console API์ค ํ๋. console ๊ฐ์ฒด์๋ log ์ธ์๋ ๋ค์ํ ๋ฉ์๋๋ค์ด ์กด์ฌํ๋ค.
log ๋ ๋ฒจ ์ข ๋ฅ
์ ๋ง ํ์ํ ์ ๋ณด๊ฐ ์๋๋ฉด log์ info๋ ์ ํ ๋ฐฐํฌ ๋จ๊ณ์์ ์ถ๋ ฅ๋์ง ์๋๋ก ํ๋ค. ๋ฐฐํฌํ ๋ log๋ info๋ ์ถ๋ ฅํ์ง ์๋๋ก ํ๊ฑฐ๋ ๋คํธ์ํฌ ์์ฒญ์ด ๋ฐ์ํ์ง ์๋๋ก ํ๋ ๋ฑ์ ์ค์ ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ค์๋ ๋ ๋ฒจ์ ๋ง๋ console ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ํ๋ค.
console.log
const dog = { type: "๐ถ", name: "์ธ์ธ", owner: { name: "John" } };
console.log("logging", dog);
๊ฐ์ฅ ์์ฃผ ์ฌ์ฉํ๋ console ๋ฉ์๋๋ก ๊ฐ๋ฐ ๋์ค ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค. ,
์ฝค๋ง๋ก ๊ตฌ๋ถํด์ ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ ์๋ ์๋ค.
๐๏ธ console.log
๋ ์ฐธ์กฐ๋ฅผ ๋ก๊น
ํ๋ค. ๊ฐ์ฒด ๋ด์ฉ์ ๋ณ๊ฒฝ์ฌํญ์ด ์๋ค๋ฉด ๋ก๊น
์์๋ ์ค์๊ฐ์ผ๋ก ์
๋ฐ์ดํธ ๋๋ค.
๐๏ธ ์์๋ฌธ์ %c
์ CSS ์์ฑ์ ์ด์ฉํด ์ถ๋ ฅ ๋ด์ฉ์ ์์ด๋ ํฌ๊ธฐ ๋ฑ์ ๋ณ๊ฒฝํ ์๋ ์๋ค.
console.log("%c์์ ๋ณ๊ฒฝ", "color: yellow; font-size: large;")
console.info
ํน์ ํ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๊ณ ์ถ์ ๋.
console.warn
๊ฒฝ๊ณ ์์ค์ ์๋ฌ๋ฅผ ์ถ๋ ฅํ ๋. ๋ ธ๋์์ผ๋ก ์ถ๋ ฅ๋จ.
console.error
์ฌ๊ฐํ ์์ค์ ์๋ฌ๋ฅผ ์ถ๋ ฅํ ๋(์์ํ์ง ๋ชปํ ์๋ฌ๋ ์์คํ ์๋ฌ ๋ฑ). ๋นจ๊ฐ์์ผ๋ก ์ถ๋ ฅ๋จ.
ํน์ ์กฐ๊ฑด์ผ ๋๋ง ์ฝ์ ์ถ๋ ฅํ๊ธฐ — console.assert
console.assert(expression, msg)
console.assert(expression, obj)
console.assert
๋ฉ์๋๋ ํ๋ผ๋ฏธํฐ์ ๋ช
์ํ ์กฐ๊ฑด์ด falsy์ผ ๋๋ง ์ฝ์์ ์ค๋ฅ ๋ฉ์ธ์ง๋ฅผ ์ถ๋ ฅํ๋ค. truthy ์ผ ๋๋ ์๋ฌด๊ฒ๋ ์ถ๋ ฅํ์ง ์๋๋ค. ์ด๋ฅผ ํ์ฉํด ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ ๋๋ง ์ฝ์์ ์ถ๋ ฅํ๋๋ก ํ ์ ์๋ค.
console.assert(2 === 3, "not same!"); // false์ด๋ฏ๋ก ์ฝ์ ์ถ๋ ฅ
console.assert(2 === 2, "same!"); // true์ด๋ฏ๋ก ์ฝ์ ์ถ๋ ฅ ์ํจ
๋๋ฒ์งธ ์ธ์์ ๋ฌธ์์ด์ด ์๋ ๊ฐ์ฒด๋ฅผ ๋๊ธธ ์๋ ์๋ค.
const errorMsg = "the # is not even";
for (let number = 2; number <= 5; number += 1) {
console.assert(number % 2 === 0, { number: number, errorMsg: errorMsg });
}
// ์ด์ค์
์ ์คํจํจ: {number: 3, errorMsg: 'the # is not even'}
// ์ด์ค์
์ ์คํจํจ: {number: 5, errorMsg: 'the # is not even'}
๊ฐ์ฒด๋ฅผ ์ถ๋ ฅํ ๋ ์ ์ฉํ ๋ฉ์๋
console.table
console.table(data [, columns])
๊ฐ์ฒด ํน์ ๋ฐฐ์ด์ ํ ์ด๋ธ ํ์์ผ๋ก ์ถ๋ ฅํ ๋ ์ฌ์ฉํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ ํ(row)์ ๋ชจ๋ ์์๋ฅผ ๋์ดํ์ง๋ง ๋๋ฒ์งธ ์ธ์๋ฅผ ํตํด ํน์ ์ด(column)๋ง ํ์ํ ์๋ ์๋ค.
const names = ["Tyrone", "Janet", "Maria"];
console.table(names);
const tyrone = { firstName: "Tyrone", lastName: "Jones" };
console.table(tyrone);
const tyrone = { firstName: "Tyrone", lastName: "Jones" };
const janet = { firstName: "Janet", lastName: "Smith" };
const maria = { firstName: "Maria", lastName: "Cruz" };
console.table([tyrone, janet, maria]);
const tyrone = { firstName: "Tyrone", lastName: "Jones" };
const janet = { firstName: "Janet", lastName: "Smith" };
const maria = { firstName: "Maria", lastName: "Cruz" };
console.table([tyrone, janet, maria], "firstName");
console.dir
console.dir(object)
DOM ์์์ ๋ฉ์๋๋ฅผ ํ์ธํ ๋ ์ฌ์ฉํ๋ฉด ์ ์ฉํ๋ค. console.log
๋ก DOM ์์๋ฅผ ๋ก๊น
ํด๋ณด๋ฉด ํ๊ทธ๋ง ๋ณด์ด์ง๋ง console.dir
์ ์ฌ์ฉํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด ํ์(ํ์ฅ ๊ฐ๋ฅํ ํธ๋ฆฌ ๊ตฌ์กฐ)์ผ๋ก ํํํด์ค๋ค.
๊ทธ ์ธ์ console.log
์ ๋น์ทํ์ง๋ง ๋๋ฒ์งธ ์ธ์์ colors
depth
์ต์
์ ๋๊ธธ ์ ์๋ ํน์ง์ด ์๋ค.
const dog = { type: "๐ถ", name: "์ธ์ธ", owner: { name: "John" } };
console.dir(dog, { colors: true, depth: 1 });
colors
: ์ฝ์ ์ถ๋ ฅ ๋ด์ฉ์ ์์ ํํ ์ฌ๋ถ. ๊ฐboolean
depth
: ์ผ๋ง๋งํผ์ ๊น์ด๊น์ง ๊ฐ์ฒด๋ฅผ ํํํ ์ง ์ค์ . ๊ฐnumber
/ ๊ธฐ๋ณธ๊ฐ2
์ฝ๋ ์ํ์๊ฐ ์ธก์ — console.time
๐ก ์๋ฐ์คํฌ๋ฆฝํธ ์คํ ์๊ฐ ์ธก์ ์ ์ํ ํ์ค ๋ฉ์๋๋ `performance.now()` ์ด๋ค(์ฐธ๊ณ ๊ธ). `console.time()`์ ํ์ค์ด ์๋๋ค. `performance.now()`๋ 1/1000 ๋ฐ๋ฆฌ์ด ๋จ์๋ก ์ธก์ ํ ์ ์์ด์ ์ ํ๋๊ฐ ๋ ์ฐ์ํ๋ค. `performance.now()`๋ ์น ํ์ด์ง ํน์ ์๋ฐ์คํฌ๋ฆฝํธ ํ๊ฒฝ์ ์์ํ๊ฑฐ๋ ๋ก๋ํ ์์ ์ ๊ธฐ์ค์ผ๋ก ํ ์๋์ ์ธ ์๊ฐ(ํ์์คํฌํ)์ ๋ฐ๋ฆฌ์ธ์ปจ๋ ๋จ์๋ก ๋ฐํํ๋ค. ์ฆ, ํ์ด์ง ์๋ก๊ณ ์นจ์ด๋ ์ด๊ธฐํํ ๋๋ง๋ค `performance.now()` ๊ฐ์ 0์ผ๋ก ์ด๊ธฐํ๋์ด ๊ฒฝ๊ณผ ์๊ฐ์ ์ธก์ ํ๋ค.
console.time([label])
console.timeEnd([label])
console.timeLog([label][, ...data])
์ฝ๋ ์ํ ์๊ฐ์ ์ธก์ ํ๊ณ ์ถ์๋ console.time()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค. time()
๋ถํฐ timeEnd()
๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ์ ์ฝ์์ ์ถ๋ ฅํ๋ค. ์ด๋ time()
๊ณผ timeEnd()
๋ฉ์๋ ํ๋ผ๋ฏธํฐ์ label ์ด๋ฆ์ด ๊ฐ์์ผ ํ๋ค.
console.time("totalExecutionTime"); // Time started
for (let i = 0; i < 10; i += 1) {}
console.timeEnd("totalExecutionTime"); // Printing total execution time
console.timeLog()
๋ฅผ ์ด์ฉํด for loop ๋ฑ์์ ๊ฐ ๋ฐ๋ณต์ ์คํ ์๊ฐ์ ํ์ํ ์๋ ์๋ค.
console.time("totalExecutionTime"); // Time started
console.time("executionTime"); // Time started
for (let i = 0; i < 10; i += 1) {
console.timeLog("executionTime", i); // Printing execution time for each
}
console.timeLog("totalExecutionTime"); // Printing total execution time
ํธ์ถ ํ์ ๋ก๊น — console.count
console.count([label])
console.countReset([label])
์ธ์์ ์ ๋ฌํ ๋ ์ด๋ธ์ด ๋ช ๋ฒ ํธ์ถ๋์๋์ง ํ์ธํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค. console.countReset
๋ฅผ ์ฌ์ฉํด์ ํธ์ถ ํ์๋ฅผ ์ด๊ธฐํํ ์ ์๋ค.
function a() {
console.count("a ํจ์ ์คํ");
}
a();
a();
console.countReset("a ํจ์ ์คํ"); // ํธ์ถ ํ์ ์ด๊ธฐํ
a();
๊ฐ ์์ฒด๋ฅผ ๋ ์ด๋ธ๋ก ์ฌ์ฉํด์, ํด๋น ๊ฐ์ ์นด์ดํฐํ ์๋ ์๋ค.
console.count(NaN); // NaN: 1
console.count(NaN + 3); // NaN: 2
let age = 30;
console.count(age / 2); // 15: 1
ํจ์ ํธ์ถ ์์น๋ฅผ ํ์ธํ๊ณ ์ถ์ ๋ — console.trace
๐ก ์คํ ํธ๋ ์ด์ค ๊ด๋ จ ๋ ์์ธํ ๋ด์ฉ์ ๋ ธํธ ๋งํฌ ์ฐธ๊ณ
console.trace([data])
console.trace
๋ ์ฝ๋๊ฐ ์คํ๋๋ ์๊ฐ์ stack trace๋ฅผ ์ถ๋ ฅํ๋ค. stack trace๋ ํน์ ์์ ๋ถํฐ~ํน์ ์์ ๊น์ง ๊ฑฐ์ณ์จ ํจ์๋ค์ ์์ ์๋ ์งํฉ์ด๋ค. ํ๋ก์ธ์ค๊ฐ OS๋ก๋ถํฐ ๋ฉ๋ชจ๋ฆฌ์ ํน์ ์์ญ์ ํ ๋น ๋ฐ์ผ๋ฉด, ์ด (๋ฉ๋ชจ๋ฆฌ)์์ญ์ ๋ค์ (ํ
์คํธ)์ฝ๋ / ๋ฐ์ดํฐ / Heap / Stack 4๊ฐ์ง ์์ญ์ผ๋ก ๋๋๋ค. Stack ์์ญ์ ํจ์๋ฅผ ํธ์ถํ ๋ ์ปค์ง๋ฉฐ ํจ์์ ์ง์ญ ๋ณ์ / ํ๋ผ๋ฏธํฐ ๋ฑ์ด ๋ด๊ธด๋ค. stack trace๊ฐ ์ถ๋ ฅํ๋ ๊ฒ์ด ๋ฐ๋ก ์ด Stack์์ญ.
function f1() {
f2();
}
function f2() {
f3();
}
function f3() {
console.trace();
console.log("hi: :)");
}
f1();
์ ์ฝ๋๋ฅผ ์คํํ์ฌ ์ฝ์์ ์ถ๋ ฅํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค. โf3
ํจ์๋ 6๋ฒ์งธ ์ค์ ์๋ f2
ํจ์์์ ํธ์ถํ๊ณ , โf2
ํจ์๋ 2๋ฒ์งธ ์ค์ ์๋ f1
ํจ์์์ ํธ์ถํ๊ณ , โf1
ํจ์๋ 14๋ฒ์งธ ์ค์์ ํธ์ถํ ๊ฒ์ ์ฐจ๋ก๋๋ก ํ์ธํ ์ ์๋ค.
์ฝ์ ๊ทธ๋ฃนํ — console.groups
console.group([label])
console.groupCollapsed([label])
console.groupEnd([label])
console.group()
์ ์ฌ์ฉํด ์ ๊ณ ํผ์น ์ ์๋ ์ธ๋ผ์ธ ๊ทธ๋ฃน์ ๋ง๋ค ์ ์๋ค. console.group()
์ผ๋ก ๊ทธ๋ฃน์ ์์ํ๊ณ console.groupEnd()
๋ก ๊ทธ๋ฃน์ ์ข
๋ฃํ๋ค. ์ฌ๋ฌ ๊ทธ๋ฃน์ ์ค์ฒฉํด์ ๋ง๋ค ์๋ ์๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํผ์นจ ์ํ์ ๊ทธ๋ฃน์ ์์ฑํ๋ค. console.groupCollapsed()
๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ ์ํ์ ๊ทธ๋ฃน์ ๋ง๋ค ์ ์๋ค.
console.group("URL Info");
console.log("Protocol", window.location.protocol);
console.log("Host", window.origin);
console.log("Path", window.location.pathname);
console.groupCollapsed("Meta Info"); // ์ค์ฒฉ ๊ทธ๋ฃน ์์
console.log("Date Fetched", new Date().getTime());
console.log("OS", navigator["platform"]);
console.log("Browser", navigator["appCodeName"]);
console.log("Language", navigator["language"]);
console.groupEnd(); // ์ค์ฒฉ ๊ทธ๋ฃน ์ข
๋ฃ
console.groupEnd();
๋๋ฒ๊ทธ ์ฝ์ — console.debug
console.debug(object [, object, ...])
console.debug()
๋ console.log()
์ ๋์ผํ์ง๋ง ๋น๋ ์์คํ
์์ ์ ๊ฑฐ๋๊ณ , ํ๋ก๋์
๋ชจ๋์์ ๋นํ์ฑํ๋๋ค. console.debug()
์ถ๋ ฅ ๋ด์ฉ์ ํ์ธํ๋ ค๋ฉด ํฌ๋กฌ ์ฝ์ ์ถ๋ ฅ ์ค์ ์์ ์์ธ(Verbose) ์ต์
์ด ์ฒดํฌ๋์ด ์์ด์ผ ํ๋ค.
์ฝ์์ ์คํ์ผ ์ ํ๊ธฐ
์ฝ์ ์ถ๋ ฅ ๊ฒฐ๊ณผ์๋ CSS ์คํ์ผ์ ์ถ๊ฐํ ์ ์๋ค. ์ถ๊ฐํ๊ณ ์ถ์ ๊ณณ์ %c
์์๋ฌธ์๋ฅผ ์ถ๊ฐํ๊ณ , ๋๋ฒ์งธ ํ๋ผ๋ฏธํฐ์ ์ํ๋ ์คํ์ผ์ ์ ์ํ๋ฉด ๋๋ค. ์ฌ๋ฌ ์คํ์ผ์ ์ ์ฉํ ๋ %c
์์ ๋ฌธ์๋ฅผ ์ถ๊ฐํ ๋งํผ ์คํ์ผ์ด ์ ์๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์์๋๋ก ์ถ๊ฐํ๋ฉด ๋๋ค.
console.log(
"%cHello %cWorld",
"color: red;", // %cHello์ ๋ํ ์คํ์ผ
"color: yellow; background: black;", // %cWorld์ ๋ํ ์คํ์ผ
);
์คํ์ผ์ด ์ ์๋ ๋ณ์๋ฅผ ๋ฐ๋ก ์ง์ ํด์ ์ฌ์ฉํ ์๋ ์๋ค.
// ์คํ์ผ ๋ณ์ ์ง์
const helloStyle = ["color: red"];
const worldStyle = ["color: yellow", "background: black"].join(";");
console.log("%cHello %cWorld", helloStyle, worldStyle);
์ฝ๋ ์ถ์ฒ : https://github.com/Lissy93/dashy/blob/master/src/utils/CoolConsole.js
/* eslint no-console: ["error", { allow: ["log", "info", "warn"] }] */
/* Prints the app name and version, helpful for debugging */
export const welcomeMsg = () => {
const v = process.env.VUE_APP_VERSION
? `V${process.env.VUE_APP_VERSION}`
: "";
console.log(
`\n%cDashy ${v} ๐`,
"color:#0dd8d8; background:#0b1021; font-size:1.5rem; padding:0.15rem 0.25rem; margin: 1rem auto; font-family: Rockwell; border: 2px solid #0dd8d8; border-radius: 4px;font-weight: bold; text-shadow: 1px 1px 1px #00af87bf;",
);
};
/* Prints warning message, usually when there is a configuration error */
export const warningMsg = (message, stack) => {
console.info(
`\n%cโ ๏ธ Warning โ ๏ธ%c \n${message} \n\n%cThis is likely not an issue with Dashy, but rather your configuration. If you think it is a bug, please open a ticket on GitHub: https://git.io/JukXk`,
"color:#ceb73f; background: #ceb73f33; font-size:1.5rem; padding:0.15rem; margin: 1rem auto; font-family: Rockwell, Tahoma, 'Trebuchet MS', Helvetica; border: 2px solid #ceb73f; border-radius: 4px; font-weight: bold; text-shadow: 1px 1px 1px #000000bf;",
"font-weight: bold; font-size: 1rem;color: #ceb73f;",
"color: #ceb73f; font-size: 0.75rem; font-family: Tahoma, 'Trebuchet MS', Helvetica;",
);
if (stack) {
console.warn(`%cStack Trace%c\n${stack}`, "font-weight: bold;", "");
}
};
/* Prints status message */
export const statusMsg = (title, msg) => {
console.log(
`%c${title || ""}\n%c${msg}`,
"font-weight: bold; color: #0dd8d8; text-decoration: underline;",
"color: #ceb73f;",
);
};
/* Prints status message, with a stack trace */
export const statusErrorMsg = (title, msg, errorLog) => {
console.log(
`%c${title || ""}\n%c${msg} \n%c${errorLog || ""}`,
"font-weight: bold; color: #0dd8d8; text-decoration: underline;",
"color: #ff025a",
"color: #ff025a80;",
);
};
๋ก๊ทธ ๋ฌธ์์ด ํฌ๋งท
C์ธ์ด ์คํ์ผ printf๋ฅผ ์ฌ์ฉํด์ ๋ฌธ์์ด ํฌ๋งท์ ์ง์ ์ง์ ํ ์ ์๋ค. ์ฐธ๊ณ ๋ก ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ์ฌ์ฉํด๋ ๋์ผํ ์์ ์ ์ํํ ์ ์๋ค. ์งง์ ๋ฌธ์์ด์ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ๊ฐ๋ ์ฑ์ด ๋ ์ข๋ค.
์ง์ ์ | ์ค๋ช |
%s | ๋ฌธ์์ด ๋๋ ๋ฌธ์์ด๋ก ๋ณํ๋๋ ๋ค๋ฅธ ๋ชจ๋ ํ์ |
%d ํน์ %i | ์ ์ (integer) |
%f | ์ค์ (Real numbers) |
%o(์๋ฌธ์ o) | ์ต์ ์ ํฌ๋งท ์ฌ์ฉ |
%O (๋๋ฌธ์ O) | ๊ธฐ๋ณธ ํฌ๋งท ์ฌ์ฉ |
%c | ์ปค์คํ ํฌ๋งท (์คํ์ผ ์ง์ ) |
console.log(
"Hello %s, welcome to the year %d!",
"world", // %s(๋ฌธ์์ด)์ ์ง์ ๋จ
new Date().getFullYear(), // %d(์ ์)์ ์ง์ ๋จ
);
// Hello world, welcome to the year 2022!
๋ ํผ๋ฐ์ค
- (JavaScript) ์ ๋ฌธ์๊ฐ ๊ฒช๊ธฐ ์ฌ์ด console.log ์ค์
- node์์ ์คํ ํธ๋ ์ด์ค ๊ฐ์ ธ์ค๊ธฐ
- ์ฝ์ ๋ก๊ทธ ์ ๋๋ก ์ฐ๊ณ ์์๊น? ๐ค
- Console API reference - Chrome Developers
- Developer essentials: JavaScript console methods | MDN Blog
- (๋ฒ์ญ) console.log()์ ํจ๊ปํ๋ ์ฌ๋ฏธ ๐ฟ
๊ธ ์์ ์ฌํญ์ ๋ ธ์ ํ์ด์ง์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋ฐ์๋ฉ๋๋ค. ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์
'๐ช Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ์ต์ ๋ ์ฒด์ด๋ (0) | 2024.04.25 |
---|---|
[Git] ๋ณ๊ฒฝํ ์ํ ์์ ์ ์ฅ ํ ๋ธ๋์น ์ด๋ ๋ฐฉ๋ฒ โ Git Stash (0) | 2024.04.25 |
[React] ๋ฆฌ์กํธ์์ SVG ์ฌ์ฉ๋ฒ (0) | 2024.04.25 |
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด ์ค๋ณต ์์ ์ ๊ฑฐ ๋ฐฉ๋ฒ ๋ชจ์ (0) | 2024.04.25 |
[HTML/CSS] CSS ํ์ ์ ๋๋ฉ์ด์ ๋ง๋ค๊ธฐ (0) | 2024.04.25 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ์ต์ ๋ ์ฒด์ด๋
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ์ต์ ๋ ์ฒด์ด๋
2024.04.25 -
[Git] ๋ณ๊ฒฝํ ์ํ ์์ ์ ์ฅ ํ ๋ธ๋์น ์ด๋ ๋ฐฉ๋ฒ — Git Stash
[Git] ๋ณ๊ฒฝํ ์ํ ์์ ์ ์ฅ ํ ๋ธ๋์น ์ด๋ ๋ฐฉ๋ฒ — Git Stash
2024.04.25 -
[React] ๋ฆฌ์กํธ์์ SVG ์ฌ์ฉ๋ฒ
[React] ๋ฆฌ์กํธ์์ SVG ์ฌ์ฉ๋ฒ
2024.04.25 -
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด ์ค๋ณต ์์ ์ ๊ฑฐ ๋ฐฉ๋ฒ ๋ชจ์
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด ์ค๋ณต ์์ ์ ๊ฑฐ ๋ฐฉ๋ฒ ๋ชจ์
2024.04.25