JaeYeongSong
Xsop의 개발일기
JaeYeongSong
전체 방문자
오늘
어제
  • 분류 전체보기 (41)
    • 💻 Python (17)
      • Python 기초 강의 (6)
      • 비트코인 자동 매매 (7)
      • 크롤링 (3)
      • 알고리즘 (1)
    • ✨ JavaScript (9)
      • Basic (8)
      • Node.js (1)
    • ⭐ HTML (9)
    • 🌟 API (2)
    • 💡 일상 (3)

블로그 메뉴

  • 홈
  • 태그
  • 게시물

공지사항

인기 글

태그

  • 시장가
  • slack api
  • 웹 페이지 크롤링
  • JavaScript
  • 글쓰기
  • Web page Crawling
  • input
  • Python
  • 봇
  • API
  • Crawling
  • Web
  • 자산 조회
  • 크롤링
  • 비트코인 자동매매
  • 지정가
  • 태그
  • 웹 사이트
  • upbit
  • 웹
  • callback
  • 자료형
  • 동기
  • upbit api
  • 기초 문법
  • HTML
  • 비동기
  • 비트코인
  • 문자열
  • Slack

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
JaeYeongSong

Xsop의 개발일기

✨ JavaScript/Basic

[JavaScript] console 사용하기

2022. 1. 26. 17:01

개념정리

console : node의 디버깅 콘솔에 접근할 수 있는 메서드를 제공합니다.

  • console은 브라우저, Node.js 둘 다 사용 가능한 객체이다.
  • 하지만 여기선 Node.js의 console을 예로 들겠다.
이 console 모듈은 웹 브라우저에서 제공하는 JavaScript 콘솔 메커니즘과 유사한 간단한 디버깅 콘솔을 제공합니다.
- Node.js Documentation

💡 console 객체는 콘솔에 접근할 수 있게 하는 메서드다.

 


console 사용법

console 매서드에 사용법을 순서대로 알아보자.

Code - console.log

console.log('안녕하세요.');

const name = 'Xsop';
const age = 21;
const gender = 'men';
console.log(name, age, gender);

Console - console.log

안녕하세요.
Xsop 21 men


log는 평범한 로그를 콘솔에 표시한다.
console.log의 인자로 data를 넣어줄 수 있다. (Data type 상관없음)

console.log(data, data, ···) 처럼 여러 내용을 동시에 표시할 수 있다.
', ' (쉼표)를 사용해서 나타내면 내용이 자동으로 띄워 출력된다.

💡 console.log는 디버깅을 위해 자주 사용되는 매서드다.


Code - console.error

console.error('에러 메시지 표시');

console.error('console.error - 에러 메시지를 표시한다.');
console.log('console.log - 에러 메시지를 표시한다.');

Console - console.error

에러 메시지 표시
console.error - 에러 메시지를 표시한다.
console.log - 에러 메시지를 표시한다.


error은 에러를 콘솔에 표시한다.
Console 창을 보면 console.log와 별 차이 없다고 생각할 수 있다.
하지만 개발자 도구에서 보면 다르다.

Chrome

▲ Chrome - Console

Pm2

▲ Pm2 - Console

또한 개발자 도구에서 필터를 사용하여 log만 불러오거나 error만 불러올 때 사용하죠.

💡 console.error은 유지보수, 모니터링을 편하게 하기 위해 사용한다.


Code - console.time

console.time('전체 시간');

// console.time, console.timeEnd 매서드에 인자로 주는 레이블이 서로 같아야 한다
// X
console.time('시작 시간');
console.timeEnd('종료 시간');
// O
console.time('걸린 시간');
console.timeEnd('걸린 시간');

console.timeEnd('전체 시간');

Console - console.time

걸린 시간: 0.004ms
전체 시간: 5.557ms
(node:8832) Warning: No such label '종료 시간' for console.timeEnd()
(Use `node --trace-warnings ...` to show where the warning was created)


time, timeEnd은 time, timeEnd 사이의 시간을 측정한다. (= 코드가 실행될 때 걸린 시간)

time, timeEnd 메서드는 연결하고 싶은 구간을 인자로 주는 레이블을 넣어주면 된다.
서로 다른 인자를 주었다면 오류가 발생한다.

💡 console.time은 코드가 진행될 때 얼마 지났는지 쉽게 알 수 있다.


Code - console.table

console.table([{ name: 'Xsop', age: 21, gender: 'men' }]);
console.table([
    { name: 'Xsop', age: 21, gender: 'men' },
    { name: 'Lion', age: 22, gender: 'men' },
]);

Console - console.table

┌─────────┬────────┬─────┬────────┐
│ (index) │  name  │ age │ gender │
├─────────┼────────┼─────┼────────┤
│    0    │ 'Xsop' │ 21  │ 'men'  │
└─────────┴────────┴─────┴────────┘
┌─────────┬────────┬─────┬────────┐
│ (index) │  name  │ age │ gender │
├─────────┼────────┼─────┼────────┤
│    0    │ 'Xsop' │ 21  │ 'men'  │
│    1    │ 'Lion' │ 22  │ 'men'  │
└─────────┴────────┴─────┴────────┘


table은 배열의 요소로 객체 리터럴을 넣으면, 객체의 속성들이 Table 형식으로 표현된다.
key가 column(가로줄)이 되고, value가 row(세로줄)이 된다.

💡 console.table은 객체를 Table 형식으로 볼 수 있게 한다.


Code - console.dir

const obj = { outside: { inside: { key: 'value' } } };

console.dir(obj, { colors: false, depth: 2 });
console.dir(obj, { colors: true, depth: 1 });

Console - console.dir

{ outside: { inside: { key: 'value' } } }
{ outside: { inside: [Object] } }


dir은 객체를 콘솔에 표시할 때 사용한다.
첫 번째 인자로 표시할 객체를 넣고, 두 번째 인자로 옵션을 넣는다.

옵션

  • colors : (Boolean) 콘솔에 색이 추가되어 보기 편해지게 변함.
  • depth : (Number) 객체 안의 객체를 몇 단계까지 보여줄지 결정함. (기본값은 2)

▲ colors 옵션 - Console

옵션 중 colors를 true로 설정하면 위의 사진과 같이 색이 추가된다.

💡 console.dir은 객체를 출력한다. (+옵션)


Code - console.trace

console.trace('에러 위치 추적');

Console - console.trace

Trace: 에러 위치 추적
    at Object.<anonymous> (D:\Code\Node.js\Node.js\test.js:1:9)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47


에러가 어디서 발생했는지 추적할 수 있게 한다.

일반적으로 에러 발생 시 에러 위치를 알려주기 때문에 자주 사용하지는 않지만,
에러가 발생했을 때 위치가 나오지 않는다면 사용할 만하다.

💡 console.trace은 에러 발생 위치를 추적할 수 있다.


console 예제

Code

const string = 'abc';
const number = 1;
const boolean = true;
const obj = {
    outside: {
        inside: {
            key: 'value',
        },
    },
};
console.time('전체 시간');
console.log('평범한 로그입니다 쉼표로 구분해 여러 값을 찍을 수 있습니다');
console.log(string, number, boolean);
console.error('에러 메시지는 console.error에 담아주세요');

console.table([
    { name: '제로', birth: 1994 },
    { name: 'hero', birth: 1988 },
]);

console.dir(obj, { colors: false, depth: 2 });
console.dir(obj, { colors: true, depth: 1 });

console.time('시간 측정');
for (let i = 0; i < 100000; i++) {}
console.timeEnd('시간 측정');

function b() {
    console.trace('에러 위치 추적');
}
function a() {
    b();
}
a();

console.timeEnd('전체 시간');

Console

평범한 로그입니다 쉼표로 구분해 여러 값을 찍을 수 있습니다
abc 1 true
에러 메시지는 console.error에 담아주세요
┌─────────┬────────┬───────┐
│ (index) │  name  │ birth │
├─────────┼────────┼───────┤
│    0    │ '제로' │ 1994  │
│    1    │ 'hero' │ 1988  │
└─────────┴────────┴───────┘
{ outside: { inside: { key: 'value' } } }
{ outside: { inside: [Object] } }
시간 측정: 2.483ms
Trace: 에러 위치 추적
    at b (D:\Code\Python\BackJoon\test.js:29:13)
    at a (D:\Code\Python\BackJoon\test.js:32:5)
    ... 오류 메시지
전체 시간: 19.006ms

 

💡 console 객체에는 다양한 메서드를 포함함.


console 객체에는 이 보다 더 다양한 매서드들이 있지만,
자주 사용하는 것은 위와 같기 때문에 여기까지 하겠다.


저작자표시 (새창열림)
    '✨ JavaScript/Basic' 카테고리의 다른 글
    • [Javascript] 대화 상자 alert, confirm, prompt 사용하기
    • [JavaScript] 타이머 사용하기
    • [JavaScript] async, await (Promise를 간결하고 깔끔하게!)
    • [JavaScript] Promise(프로미스) Callback 지옥을 해결하는 방법!
    JaeYeongSong
    JaeYeongSong
    "I walk slowly, but I never walk backwards. - Abraham Lincoln" "나는 천천히 걷지만 결코 뒤로 걷지 않는다. - 에이브러햄 링컨" #코딩 #Python #JavaScript

    티스토리툴바