Language/JavaScript

๐Ÿ“š console.log๋Š” ์ด์ œ ๊ทธ๋งŒ โ— - ๋‹ค์–‘ํ•œ ์ฝ˜์†” API ๋ชจ์Œ

์ธํŒŒ_ 2023. 4. 3. 10:26

javascript-console-api

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Console API

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ฝ”๋“œ์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด console.log() ํ•จ์ˆ˜๋ฅผ ์ •๋ง ๋งŽ์ด ์จ์™”์„ ๊ฒƒ์ด๋‹ค. ์ด๋•Œ console.log() ํ•จ์ˆ˜๋Š” console ์ด๋ผ๋Š” ๊ฐ์ฒด ์•ˆ์˜ log() ๋ผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋ถˆ๋Ÿฌ๋‹ค๊ฐ€ ์“ด ๊ฒƒ์ด๋‹ค. ์ฆ‰, console ๊ฐ์ฒด ๋‚ด์—๋Š” log ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์ฝ˜์†” ๊ด€๋ จ ๋ฉ”์„œ๋“œ๋“ค์ด ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ์ด ์ฝ˜์†” ๋ฉ”์„œ๋“œ๋“ค์€ log ๋ณด๋‹ค ํ›จ์”ฌ๋” ๊ฐ•๋ ฅํ•˜๊ณ  ๋‹ค์ฑ„๋กœ์šด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๋‹ค๋งŒ ์ต์ˆ™์น˜ ์•Š์•„์„œ ์ง€๊ธˆ๊นŒ์ง€ log ๋งŒ ์ฃผ๊ถ์žฅ์ฐฝ ์จ์™”๋˜ ๊ฒƒ์ด๋‹ค. ์ง€๊ธˆ ๋ถ€ํ„ฐ ๊ฐ•๋ ฅํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ˜์†” API ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

console.log("์ฝ˜์†” ๋กœ๊ทธ") 
console.info("์ฝ˜์†” ์ •๋ณด") 
console.debug("์ฝ˜์†” ๋””๋ฒ„๊ทธ") 
console.warn("์ฝ˜์†” ๊ฒฝ๊ณ ") 
console.error("์ฝ˜์†” ์˜ค๋ฅ˜")
console.table("์ฝ˜์†” ํ…Œ์ด๋ธ”")
console.group("์ฝ˜์†” ๊ทธ๋ฃน")
console.time("์ฝ˜์†” ํƒ€์ด๋จธ")
console.count("์ฝ˜์†” ์นด์šด๋“œ")

console.log

๊ธฐ๋ณธ์ ์œผ๋กœ ์ธ์ž๋กœ ์ „๋‹ฌ๋œ ๊ฐ’๋“ค์„ ํ™”๋ฉด์œผ๋กœ ์ถœ๋ ฅํ•ด์ค€๋‹ค. ์ด๋•Œ ์ฝค๋งˆ(,)๋ฅผ ํ†ตํ•ด ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ธ์ž๋ฅผ ์ง‘์–ด ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค. ์ฝค๋งˆ๋ฅผ ํ†ตํ•ด ์ถœ๋ ฅ๊ฐ’์„ ์ด์„ ๊ฒฝ์šฐ ๋ณ„๋‹ค๋ฅธ ๊ฐœํ–‰ ๋ฌธ์ž ์—†์ด ์ž๋™์œผ๋กœ ๋„์–ด์“ฐ๊ธฐ ํ•ด์ค€๋‹ค.

const a = 1;
const b = 'hello';
const c = true;

console.log(a); // ํ•˜๋‚˜๋งŒ ๋กœ๊ทธ
console.log(a, b, c); // ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋™์‹œ์— ๋กœ๊ทธ

๋ฌธ์ž์—ด ํฌ๋งทํŒ…

C์–ธ์–ด๋‚˜ Java๋ฅผ ๋จผ์ € ํ•ด๋ณธ ๋ถ„์ด๋ผ๋ฉด ์•„๋งˆ printf() ๋ผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ž˜ ์•Œ ๊ฒƒ์ด๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ์ฒซ๋ฒˆ์งธ ๋ฌธ์ž์—ด ๋‚ด์˜ %d ์™€ %s ๊ฐ™์€ ์น˜ํ™˜์ž๋ฅผ ์ฝค๋งˆ ๋’ค์— ์ž…๋ ฅํ•œ ์ธ์ž๋กœ ๋งค์นญํ•˜์—ฌ ๋ณ€ํ™˜์‹œํ‚จ๋‹ค.

System.out.printf("Hello my name is %s", "์ธํŒŒ");
์น˜ํ™˜ ๋ฌธ์ž์—ด ์„ค๋ช…
%o ๋˜๋Š” %O JavaScript ๊ฐ์ฒด๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด ์ด๋ฆ„์„ ํด๋ฆญํ•˜๋ฉด ๊ฒ€์‚ฌ๊ธฐ์— ๋” ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
%d ๋˜๋Š” %i ์ •์ˆ˜๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์„œ์‹๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด console.log("Foo %.2d", "1.1")์€ ์ •์ˆ˜๋ถ€๋ฅผ 0์ด ์•ž์„œ๋Š” ๋‘ ์ž๋ฆฌ๋กœ ํ‘œํ˜„ํ•˜๋ฏ€๋กœ Foo 01 ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
%s ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
%f ๋ถ€๋™์†Œ์ˆ˜์  ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์„œ์‹๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด console.log("Foo %.2f", "1.1")์€ ์†Œ์ˆ˜๋ถ€๋ฅผ ๋‘ ์ž๋ฆฌ๋กœ ํ‘œํ˜„ํ•˜๋ฏ€๋กœ Foo 1.10 ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋งŒ ์š”์ฆ˜์—๋Š” ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด ๋ฌธ๋ฒ•์œผ๋กœ console.log(`${a}๋Š” ์ˆซ์ž ${b}๋Š” ๋ฌธ์ž์—ด`) ์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜๋Š” ํŽธ์ด๋‹ค.

const a = 1;
const b = 'hello';

// ๋ฌธ์ž์—ด ํฌ๋งคํŒ…
console.log('%d๋Š” ์ˆซ์ž %s๋Š” ๋ฌธ์ž์—ด', a, b); 

// ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด
console.log('${a}๋Š” ์ˆซ์ž ${b}๋Š” ๋ฌธ์ž์—ด');

์ถœ๋ ฅ ์Šคํƒ€์ผ๋ง

html ์š”์†Œ๋ฅผ ์Šคํƒ€์ผ๋ง ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด css ๋ฅผ ๊ฐ€๋ฏธํ•˜๋“ฏ์ด ์ด์™€ ๋น„์Šทํ•˜๊ฒŒ ์ฝ˜์†” ์ถœ๋ ฅ๋ฌผ ์ž์ฒด์— css๋ฅผ ์ ์šฉํ•  ์ˆ˜ ๊ฐ€ ์žˆ๋‹ค.

์œ„์—์„œ ๋ณธ ๋ฌธ์ž์—ด ํฌ๋งคํŒ… ๋ฌธ๋ฒ•์œผ๋กœ ์Šคํƒ€์ผ๋ง์„ ๋œปํ•˜๋Š” ๊ธฐํ˜ธ๋Š” %c ๋ฅผ ์ด์šฉํ•ด, ์ฝค๋งˆ ๋‹ค์Œ์œผ๋กœ css ๋ฌธ๋ฒ•์„ ์ธ๋ผ์ธ์œผ๋กœ ๊ทธ๋Œ€๋กœ ์ ์–ด ์ฃผ๋ฉด ๋œ๋‹ค.

console.log("This is %cMy stylish message", "color: yellow; font-style: italic; background-color: blue; padding: 2px");

console.log

console.log("%cText color is green and increased font size", "color: green; font-size: 2rem;")

console.log

 

๋‹ค์ค‘ ์ถœ๋ ฅ ์Šคํƒ€์ผ

%c ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋ฌธ์ž๋งˆ๋‹ค ์Šคํƒ€์ผ๋ง์„ ์ ์šฉํ•  ์ˆ˜ ๊ฐ€ ์žˆ๋‹ค.

console.log("Multiple styles: %cred %corange", "color: red", "color: orange", "Additional unformatted message");

console.log

 

์ถœ๋ ฅ ์Šคํƒ€์ผ ๋ชจ๋“ˆํ™”

๋งŒ์ผ ์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์ด ๊ฐ€๋…์„ฑ ์ธก๋ฉด์— ์ข‹์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐฐ์—ด๋กœ css ๋ฅผ ์ง€์ •ํ•˜๋Š” ์‹์œผ๋กœ๋„ ์‘์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  1. ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๊ณ  ๊ฐ ๋ฐฐ์—ด ์ธ์ž์— ๋ฌธ์ž์—ด๋กœ css ๋ฌธ๋ฒ•์„ ๊ธฐ์žฌํ•œ๋‹ค.
  2. ๊ทธ๋ฆฌ๊ณ  ์ด๋“ค์„ String.join ์‹œ์ผœ ๋ฐฐ์—ด์„ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ์น˜ํ™˜ํ•˜์‹œํ‚จ๋‹ค.
  3. ์ด๋•Œ ์ธ์ž๋งˆ๋‹ค ๋์— ; ๊ธฐํ˜ธ๋ฅผ ์ฒจ๊ฐ€ํ•ด์ค€๋‹ค. ์ธ๋ผ์ธ์œผ๋กœ css ์†์„ฑ์ด ์—ฌ๋Ÿฌ๊ฐœ ์žˆ์„ ๊ฒฝ์šฐ ; ๋กœ ๊ตฌ๋ถ„ํ•ด ์ฃผ์–ด์•ผ ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  4. ๊ทธ๋Ÿฌ๋ฉด ๊ฒฐ๊ณผ๋กœ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋œ css ๋ฌธ๋ฒ•์ด ๋ฐ˜ํ™˜๋˜๊ฒŒ ๋˜๋Š” ์‹์ด๋‹ค.
let styles = [
    'background: linear-gradient(#D33106, #571402)', 
    'border: 1px solid #3E0E02',
    'color: white',
    'display: block',
    'text-shadow: 0 1px 0 rgba(0, 0, 0, 0.3)',
    'box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset, 0 5px 3px -5px rgba(0, 0, 0, 0.5), 0 -13px 5px -10px rgba(255, 255, 255, 0.4) inset',
    'line-height: 40px',
    'text-align: center',
    'font-weight: bold'
].join(';'); // ๊ฐ ๋ฐฐ์—ด ์ธ์ž๋“ค์„ join ์‹œ์ผœ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ์น˜ํ™˜ํ•˜๊ณ  ์ธ์ž๋งˆ๋‹ค ๋์— ; ๊ธฐํ˜ธ๋ฅผ ์ฒจ๊ฐ€ํ•ด์ค€๋‹ค

console.log('%c a spicy log message ?', styles);

์ถœ๋ ฅ ์Šคํƒ€์ผ ๋ชจ๋“ˆํ™”


๊ฐ์ฒด ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ

๋งŒ์ผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ชจ๋‘ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์ง€๊ธˆ๊นŒ์ง€ ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•ด์™”์„ ๊ฒƒ์ด๋‹ค.

const name = 'fatfish'
const age = 24
const job = 'Front end development engineer'
const hobbies = 'read, write article'

console.log(name, age, job, hobbies)

๋‹ค๋งŒ ์ด๋ ‡๊ฒŒ ๋ฌด์ง€์„ฑ์œผ๋กœ ๋‚˜์—ดํ•  ๊ฒฝ์šฐ, ์ถœ๋ ฅํ•  ์ธ์ž๊ฐ€ ๋งŽ์•„์งˆ ์ˆ˜๋ก ๋ช‡๋ฒˆ์งธ์˜ ๊ฐ’์ด ์–ด๋–ค ์ธ์ž๊ฐ’์ธ์ง€ ํ˜ผ๋™์Šค๋Ÿฌ์šธ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์ด๋•Œ๋Š” ๊ตฌ์กฐ ๋ถ„ํ•ด ๋ฌธ๋ฒ•์œผ๋กœ ๊ทธ๋Œ€๋กœ ์ฝ˜์†” ๋กœ๊ทธ ์ธ์ž์— ๋„ฃ์–ด์ฃผ๋ฉด ์ฝ˜์†” ํ™”๋ฉด์— ๊ฐ์ฒด ํ˜•์‹์œผ๋กœ ํฌ๋งคํŒ…ํ•˜์—ฌ ์ถœ๋ ฅํ•ด์ฃผ๊ฒŒ ๋œ๋‹ค.

console.log({ name, age, job, hobbies })

console.log


์ฝ˜์†” ๋กœ๊ทธ์˜ ํ•จ์ • & ์ฃผ์˜์ 

๋ธŒ๋ผ์šฐ์ €์˜ console.log ๋ฅผ ์‚ฌ์šฉํ• ๋•Œ ์ฃผ์˜ํ•ด์•ผํ•  ์ ์ด ์žˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ๋‹ค์Œ ์˜ˆ์ œ๊ฐ€ ์ฝ˜์†”์— ์–ด๋–ป๊ฒŒ ํ‘œ์‹œ๋ ์ง€ ์˜ˆ์ƒํ•ด๋ณด์ž.

var obj = {};

console.log(obj);

obj.a = 1;

์ฝ˜์†”์ด ์ถœ๋ ฅ๋˜๋Š” ๋ผ์ธ์€ ์•„์ง obj ์— ๊ฐ’์„ ๋„ฃ๊ธฐ ์ „์ด๋‹ˆ ๋‹น์—ฐํžˆ ๊ฒฐ๊ณผ๊ฐ’์ด {} ๋นˆ๊ฐ’์ด ์ถœ๋ ฅ์ด ๋  ๊ฒƒ์ด๋‹ค.

console.log

๊ทธ๋Ÿฐ๋ฐ ์•„๋ž˜ ํ™”์‚ดํ‘œ๋ฅผ ๋ˆŒ๋Ÿฌ๋ณด๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ’์ด a: 1 ์ด ๋“ค์–ด๊ฐ€ ์žˆ์Œ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ๊ฒฐ๊ณผ๊ฐ’์ด ๋ฌด์–ธ๊ฐ€ ์ด์ƒํ•˜๊ฒŒ ์งฌ๋ฝ•์ด ๋˜์–ด๋ฒ„๋ฆฐ ๊ฒƒ์ด๋‹ค.

console.log

์ด๋Ÿฌํ•œ ํ˜„์ƒ์ด ์ผ์–ด๋‚˜๋Š” ์ด์œ ๋Š”, console.log๋Š” ์ฐธ์กฐ๋ฅผ ๋กœ๊น…ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด์™€ ๊ฐ™์ด ๋‚ด์šฉ๋ฌผ์ด ๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค์€ ๋‚ด์šฉ์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ”๋€Œ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ฐ์ฒด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐฐ์—ด๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค.

var arr = [];

console.log(arr, arr.length);

// ๋ณต์žกํ•œ ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •

setTimeout(function() { // ๋น„๋™๊ธฐ ๊ฐ€์ •
  arr.push(5);
}, 0);

console.log

๋น„๋™๊ธฐ๋ฅผ ํ†ตํ•ด ๋ฐฐ์—ด๊ฐ’ push๋ฅผ ํ›„์ฒ˜๋ฆฌ ํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์žฅ ์ฝ˜์†” ๊ฒฐ๊ณผ๊ฐ’์€ ๋นˆ๋ฐฐ์—ด์— ๋ฐฐ์—ด length๋Š” 0์ด์ง€๋งŒ, ํ™”์‚ดํ‘œ๋ฅผ ๋ˆŒ๋Ÿฌ ์•ˆ์˜ ๋‚ด์šฉ์„ ์‚ดํŽด๋ณด๋ฉด ์ฒซ๋ฒˆ์งธ ์ธ๋ฑ์Šค ๊ฐ’์ด ๋“ค์–ด๊ฐ€ ์žˆ๊ณ  length ์—ญ์‹œ 1๋กœ ์ฐํ˜€์ ธ ์žˆ๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

console.log


์ด๋ฐ–์˜ ์ฝ˜์†” ์ž๋งค๋“ค

์ง์ ‘ ์Šคํƒ€์ผ๋ง ํ•ด์ฃผ๋Š” ๊ฒƒ๋„ ์ข‹์ง€๋งŒ ์•„๋ž˜ ๋ฏธ๋ฆฌ ์ œ๊ณตํ•˜๋Š” ์ฝ˜์†” API ๋“ค๋„ ์ด์šฉํ•˜๋ฉด ์œ ์šฉํ•˜๋‹ค.

  • console.log : ์•„์ด์ฝ˜์ด ์—†๋Š” ๊ฒ€์€์ƒ‰ ํ…์ŠคํŠธ
  • console.info : ์ง„ํ•œ ํ…์ŠคํŠธ
  • console.debug : ํŒŒ๋ž€์ƒ‰ ํ…์ŠคํŠธ
  • console.warn : ์•„์ด์ฝ˜์ด ์žˆ๋Š” ๋…ธ๋ž€์ƒ‰ ํ…์ŠคํŠธ
  • console.error : ์•„์ด์ฝ˜์ด ์žˆ๋Š” ๋นจ๊ฐ„์ƒ‰ ํ…์ŠคํŠธ
๋‹จ, ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฅ˜๋งˆ๋‹ค ์ถœ๋ ฅ๋˜๋Š” ์Šคํƒ€์ผ์€ ์•ฝ๊ฐ„ ๋‹ค๋ฅด๋‹ค๋Š” ์ ์€ ์œ ์˜ํ•˜์ž
var playerOne = 120;
var playerTwo = 130;
var playerThree = 140;
var playerFour = 150;
var playerFive = 160;

console.log("Console.log" + " " +  playerOne);
console.debug("Console.debug" + " " +playerTwo);
console.info("Console.info" + " " + playerFour);
console.warn("Console.warn" + " " + playerThree);
console.error("Console.error" + " " + playerFive);

console.warn
ํฌ๋กฌ ์ฝ˜์†” ์ถœ๋ ฅ ํ™”๋ฉด

์ด๋•Œ console.error ์™€ console.warn ์€ ๋‹จ์ˆœํ•œ ๊ฐ’ ์ถœ๋ ฅ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ฝ”๋“œ ๋ผ์ธ ์Šคํƒ์„ ํ‘œ์‹œํ•œ๋‹ค๋Š” ์ ์—์„œ ๊ธฐ๋Šฅ์ƒ ์ฐจ์ด๋ฅผ ๋ณด์ธ๋‹ค.

๋ณดํ†ต catch ๋ฌธ๊ณผ ๊ฐ™์ด ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€๋ฅผ ์ฝ˜์†” ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ์—๋Ÿฌ ๋‚ด์šฉ์„ ์Šต๊ด€์ ์œผ๋กœ console.log ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ๋Š”๋ฐ, ๊ทธ๋ฆ‡๋œ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ์ง€๋งŒ ์ด๋ณด๋‹ค console.error ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ํ˜„๋ช…ํ•˜๋‹ค. ์™œ๋ƒํ•˜๋ฉด console.warn๊ณผ ๊ฐ™์ด ๋ถ‰์€์ƒ‰ ๋ฐฐ๊ฒฝ์— ๊ธฐํ˜ธ ์ถœ๋ ฅ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ˆ„์ ๋œ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์Šคํƒ์„ ์ฝ˜์†” ํ™”๋ฉด์— ํ‘œ์‹œํ•ด ์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

const a = () => {
  console.error("error");
}
const b = () => {
  a()
}
const c = () => {
  b()
}

c()

console.error


console.assert

assert๋Š” error์™€ ๊ฐ™์ด ๋™์ž‘ํ•˜์ง€๋งŒ ์ฒซ๋ฒˆ์งธ ์ธ์ˆ˜๊ฐ€ false์ธ ๊ฒฝ์šฐ์—๋งŒ ๋ฉ”์‹œ์ง€ ๋ฐ ์Šคํƒ ์ถ”์ ์„ ์ฝ˜์†”์— ๊ธฐ๋กํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๊ฐ€ true์ด๋ฉด ์•„๋ฌด ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๊ทธ๋ƒฅ if๋ฌธ ๊ณผ console.error ๋ฌธ์„ ์ข€๋” ์ฝ”๋“œ ํ•œ ์ค„๋กœ ์‹ฌํ”Œํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด๋ฉด ๋œ๋‹ค.

let name = "inpa";
let msg = 2;

console.assert(typeof msg === 'number', { name, msg: msg }); // ์ถœ๋ ฅ ์•ˆํ•จ

msg = "2";

console.assert(typeof msg === 'number', { name, msg: msg }); // ์ถœ๋ ฅ

console.assert


console.group

๋งŒ์ผ ์ฝ˜์†” ํ™”๋ฉด์— ์ถœ๋ ฅํ•  ๊ฐ’๋“ค์ด ๋งŽ์„๋•Œ, ์ด๋“ค์„ ๊ทธ๋ฃนํ™” ํ•˜์—ฌ ๋ฌด์—‡์— ๋Œ€ํ•œ ์ถœ๋ ฅ๊ฐ’์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ๋ฉ”์„œ๋“œ์ด๋‹ค. console.group ์€ ์ค‘์ฒฉํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

console.group("์‡ผํ•‘๋ชฐ ๋กœ๊ทธ");
console.log("๋กœ๊ทธ์ธ ๋๋Š”์ง€ ์šฐ์„  ํ™•์ธ");

console.group("ํšŒ์› ๊ด€๋ จ ์ž‘์—…");
console.log("์•„์ด๋”” ํ™•์ธ");
console.log("๋น„๋ฒˆ ํ™•์ธ");
console.groupEnd();

console.group("์ƒํ’ˆ ๊ด€๋ จ ์ž‘์—…");
console.log("๊ฐ€๊ฒฉ ๋ณ€๋™์ด ์žˆ๋Š”๊ฐ€?");
console.log("์žฌ๊ณ ๋Š” ๋‚จ์•„์žˆ๋Š”๊ฐ€?");
console.groupEnd();

console.log("๋งˆ๋ฌด๋ฆฌ ์ž‘์—…");
console.groupEnd();

console.group
console.group

console.group ์•ˆ์— ๊ทธ๋ฃนํ•  ๋‚ด์šฉ์„ ์ž‘์„ฑํ•˜๊ณ  ๋์— console.groupEnd ๋กœ ๊ทธ๋ฃน์„ ๋ฌถ์–ด ํ•˜๋‚˜์˜ ์ง‘ํ•ฉ์„ ํ˜•์„ฑํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

 

๊ทธ๋ฃน ์—ด๊ธฐ / ๋‹ซ๊ธฐ

๋งŒ์ผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ทธ๋ฃน์ด ๋‹ซํ˜€์ ธ ์žˆ๊ฒŒ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด console.groupCollpased ๋ฅผ ์‚ฌ์šฉ ํ•˜๋ฉด ๋œ๋‹ค.

console.group("์‡ผํ•‘๋ชฐ ๋กœ๊ทธ"); // ๊ทธ๋ฃน ์—ด๊ธฐ
console.log("๋กœ๊ทธ์ธ ๋๋Š”์ง€ ์šฐ์„  ํ™•์ธ");

console.groupCollapsed("ํšŒ์› ๊ด€๋ จ ์ž‘์—…"); // ๊ทธ๋ฃน ๋‹ซ๊ธฐ
console.log("์•„์ด๋”” ํ™•์ธ");
console.log("๋น„๋ฒˆ ํ™•์ธ");
console.groupEnd();

console.groupCollapsed("์ƒํ’ˆ ๊ด€๋ จ ์ž‘์—…"); // ๊ทธ๋ฃน ๋‹ซ๊ธฐ
console.log("๊ฐ€๊ฒฉ ๋ณ€๋™์ด ์žˆ๋Š”๊ฐ€?");
console.log("์žฌ๊ณ ๋Š” ๋‚จ์•„์žˆ๋Š”๊ฐ€?");
console.groupEnd();

console.log("๋งˆ๋ฌด๋ฆฌ ์ž‘์—…");
console.groupEnd();

console.group


console.time

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ฝ”๋“œ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ํ™•์ธํ• ๋•Œ ์œ ์šฉํ•œ ์ฝ˜์†” ๋ฉ”์„œ๋“œ ์ด๋‹ค.

๋ณดํ†ต์€ Date.now() ๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ์‹œ๊ฐ„์„ ms ์„ธ์ปจ๋“œ๋กœ ๊ตฌํ•˜๊ณ  ์ฝ”๋“œ ์ˆ˜ํ–‰์ด ๋๋‚œ ์‹œ๊ฐ„์„ ๊ตฌํ•ด ์ด์˜ ์ฐจ์ด๊ฐ’์œผ๋กœ ๊ตฌํ• ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ด๋Ÿฐ ๋ฒˆ๊ฑฐ๋กœ์šด ๋ฐฉ๋ฒ•๋ณด๋‹ค ์ฝ˜์†” API๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํ•˜๊ณ  ์ •ํ™•ํžˆ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

// time๊ณผ timeEnd์— ๊ฐ™์€ ํƒ€์ด๋จธ ์ด๋ฆ„์„ ์ฃผ์–ด์•ผ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.
let count = 0

console.time('time1')

for (let i = 0; i < 1000000000; i++) {
  count++
}

console.timeEnd('time1') // time1: 1382.543212890625 ms
console.time('time2')

for (let i = 0; i < 1000000000; i++) {
  count++
}

console.timeEnd('time2') // time2: 6366.410888671875 ms

console.time


console.table

๋งŒ์ผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ˜๋ณต๋˜๊ณ  ๊ทœ์น™์ ์ธ key์™€ value๊ฐ€ ์žˆ๋Š” ๊ฐ์ฒด๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๋ฐฐ์—ด์ผ ๊ฒฝ์šฐ, ๋งˆ์น˜ ์—‘์…€๊ณผ ๊ฐ™์ด ํ…Œ์ด๋ธ” ํ˜•์‹์œผ๋กœ ๊ฐ€๋…์„ฑ ์ข‹๊ฒŒ ์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ตœ์‹  ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ๋ชจ๋‘ ์ง€์›๋˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ์ฝ˜์†”์„ ์ด์šฉํ•ด ๋ฐฐ์—ด ๋ฐ์ดํ„ฐ ๋‚ด์šฉ์„ ํŒŒ์•…ํ•  ๋•Œ ํŽธ๋ฆฌํ•˜๋‹ค.

const foods = [
  {
    name: '๐Ÿ”',
    price: 30.89,
    group: 1,
  },
  {
    name: '๐Ÿจ',
    price: 20.71,
    group: 1,
  },
  {
    name: '๐Ÿฟ',
    price: 10.31,
    group: 2,
  },
  {
    name: '๐Ÿต',
    price: 5.98,
    group: 2,
  },
]

console.table(foods)

console.table

 

๋ฐฐ์—ด ๊ฐ์ฒด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค์ฐจ์› ๋ฐฐ์—ด ์—ญ์‹œ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

const dolls = [ ['๋ผ์ด์–ธ', 5], ['์–ดํ”ผ์น˜', 3], ['์ฝ˜', 2], ['๋ฌด์ง€', 3], ['ํ”„๋กœ๋„', 3] ];
console.table(dolls)

console.table


console.dir

๊ฐ์ฒด๋ฅผ ๋กœ๊น… ํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์ด ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๊ดœ์ฐฎ๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด DOM์˜ body ๋ถ€๋ถ„์„ console.log ๋กœ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•ด๋ณด๋ฉด html ํƒœ๊ทธ๊ฐ€ ์ถœ๋ ฅ๋˜์ง€๋งŒ,

console.log(document.body)

console.dir

console.dir๋กœ ์ถœ๋ ฅํ•˜๋ฉด DOM ๊ฐ์ฒด(Object)๋กœ ์ฝ˜์†”์— ์ถœ๋ ฅ๋จ์„ ํ™•์ธ ํ•  ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

console.dir(document.body)

console.dir


console.trace

ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜ ์Šคํƒ์„ ์ž๋™์œผ๋กœ ์ถ”์ ํ•ด์ค€๋‹ค. ํ•จ์ˆ˜๊ฐ€ ์—ฌ๊ธฐ ์ €๊ธฐ ๋ชจ๋“ˆ ํŒŒ์ผ์—์„œ ํ˜ธ์ถœ๋  ๊ฒฝ์šฐ ์ด๋ฅผ ์ถ”์ ํ• ๋•Œ ์œ ๋ฆฌํ•˜๋‹ค.

function foo() {
  function bar() {
    console.trace(); // ์Šคํƒ ์ถ”์ 
  }
  bar();
}

foo();

console.trace


console.count

ํŠน์ • ํ˜ธ์ถœ๋œ ๊ฐ’์ด ๋ช‡ ๋ฒˆ ํ˜ธ์ถœ ๋˜์—ˆ๋‚˜ ํšŸ์ˆ˜๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

console.count('์นด์šดํ„ฐ1'); // ์นด์šดํ„ฐ1: 1
console.count('์นด์šดํ„ฐ1'); // ์นด์šดํ„ฐ1: 2

console.count('์นด์šดํ„ฐ2'); // ์นด์šดํ„ฐ2: 1
console.count('์นด์šดํ„ฐ2'); // ์นด์šดํ„ฐ2: 2

console.count('์นด์šดํ„ฐ1'); // ์นด์šดํ„ฐ1: 3

console.clear

์ฝ˜์†” ํ™”๋ฉด์ด ์ง€์ €๋ถ„ํ•  ๊ฒฝ์šฐ clear ํ•ด ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์ง์ ‘ ์น˜๊ธฐ ๊ท€์ฐฎ์œผ๋ฉด ์•„๋ž˜ ์‚ฌ์ง„์˜ ์™ผ์ชฝ ์ƒ๋‹จ์˜ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ์ž๋™์œผ๋กœ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ฒญ์†Œ์‹œํ‚จ๋‹ค.

console.clear()

console.clear


# ์ฐธ๊ณ ์ž๋ฃŒ

https://javascript.plainenglish.io/its-2022-please-don-t-just-use-console-log-anymore-217638337c7d

https://www.zerocho.com/category/JavaScript/post/5b2b45cf1350f9001b662ba6