- Published on
Jacvascript console 함수의 종류와 사용법
- Authors
- Name
- Cheesepaninim
- 📝 console
- 📝 console method 목록
- 📝 콘솔 창 초기화 - clear
- 📝 로그 레벨 - debug / info / warn / error
- 📝 카운트 체크 - count / countReset
- 📝 시간 체크 - time / timeLog / timeEnd
- 📝 콘솔 출력의 그룹핑 - group / groupCollapsed / groupEnd
- 📝 데이터의 그리드화 - table
- 📝 객체의 프로퍼티 확인 - dir
- 📝 호출 경로 추적하기 - trace
- 📝 마무리
console
기본적인 javascript 의 디버깅에서 어떤 값들을 눈에 보면서 확인하기 위해 console을 많이 사용할 것이다. 적어도 나는 사용 빈도가 굉장히 높다.
ajax 통신을 볼 때 개발자 도구의 Network 탭을 활요하거나 가끔 복잡한 코드에서 유지보수 할 때 각을 잡고 debugger를 이용하거나 개발자도구의 다른 기능들을 사용하기도 하지만 console 을 가장 자주 활용하는 것 같다.1
console method 목록
Javascript 에서 console 의 method 목록을 확인하는 방법은 아주 간단하다. <script>
에서 아래와 같이 console 자체를 console.log 로 출력해도 되고 개발자 도구를 열어서 console 을 입력해봐도 된다.
console.log(console)
•
•
다양한 method 가 존재하긴 하지만 나도 일부밖에 사용하지 않고 전부 알 필요까진 없는 것 같아서 내가 쓰는 것들 위주로 소개하려고 한다.
콘솔 창 초기화 - clear
단어 그대로 콘솔 창에 입력된 모든 것들을 초기화 시켜준다. 특정 시점부터의 디버깅이 필요한 경우 해당 시점의 맨 앞에서 실행시켜주면 콘솔 확인이 편리하다.
console.log(document.body)
console.clear()
const data = { a: 1, b: 5 }
console.log(data)
로그 레벨 - debug / info / warn / error
레벨로 구분된 로그 정도로 생각하면 될 것 같다. 기본적으로 직관적 스타일이 적용된 로그를 볼 수 있다. console sidebar 에서 각각의 레벨 별로 따로 확인도 가능하다.
console.debug('debug test')
console.info('info test')
console.warn('warn test')
console.error('error test')
•
•
카운트 체크 - count / countReset
어떤 이벤트 등의 실행 횟수를 체크하기 위해서 굳이 따로 변수를 만들어 공유하지 않고 console.count
를 사용해서 간단하게 체크할 수 있다. param 으로는 라벨을 입력받을 수 있는데 받지 않더라도 'default' 로 카운트가 체크된다.
라벨을 입력할 경우 해당 라벨에 대한 카운트가 올라가며, 입력하지 않을 때에도 동일하게 default 에 대한 카운트가 올라간다. 초기화는 console.countReset(?label)
으로 가능하다.
※ 참고로 라벨을 'default' 라고 입력하면 입력하지 않은 경우와 동일하게 취급된다.
console.count('myLabel') // myLabel: 1
console.count() // default: 1
console.count('myLabel') // myLabel: 2
console.count('myLabel2') // myLabel2: 1
console.count('default') // default: 2
console.countReset('myLabel')
console.countReset('myLabel2')
console.countReset()
시간 체크 - time / timeLog / timeEnd
시간 체크가 정확할지 모르겠어서 거의 사용하지는 않지만 가끔 참고용 정도로 사용할 때는 있다. count
와 마찬가지로 라벨을 받을 수 있고 받지 않으면 default 로 표시된다.
시간 체크를 시작하는 시점에 console.time()
을 사용하고 중간중간 시간을 체크하고 싶은 시점에서는 console.timeLog()
를 사용한다. console.timeEnd()
를 사용하면 타이머가 종료되며 이 때에도 역시 시간을 표시해준다.
console.time('myTimer')
console.timeLog('myTimer')
console.timeEnd('myTimer')
콘솔 출력의 그룹핑 - group / groupCollapsed / groupEnd
console.group()
은 console 의 method 들을 그룹화해주는 기능을 한다. 마찬가지로 라벨을 받아서 표시해줄 수 있다. console.groupCollapsed()
를 사용하면 처음부터 그룹이 닫혀진 상태로 보여져서 더 깔끔하게 볼 수 있다.
console.group('myGroup')
console.groupEnd('myGroup')
console.groupCollapsed('myCollapsedGroup')
console.groupEnd('myCollapsedGroup')
추가로 테스트를 해보면서 알게 되었는데 그룹 내에서 호출된 함수가 console 을 사용하는 경우 해당 내용도 그룹에 포함된다.
function taskA() {
console.log('execute taskA')
}
function taskB() {
console.log('execute taskB')
}
console.group('myTask')
taskA()
taskB()
console.groupEnd('myTask')
데이터의 그리드화 - table
정제된 형태로 데이터를 보고 싶을 때는 console.table
을 사용하면 깔끔하게 볼 수 있다. 구조가 복잡하진 않지만 value 확인이 불편한 경우 사용하면 편한 것 같다.
개인적으로는 1depth 형태의 Array 또는 Object 를 넣어서 볼 때가 있긴 하지만 단순하지 않은 구조를 표현할 땐 직관적이지 않은 느낌이다.
console.table({
test: 'a',
test2: [1, 3, 5],
test3: { name: 'test3' },
})
console.table([1, 3, 5, 'a', { test: { test2: 'test' } }])
•
•
객체의 프로퍼티 확인 - dir
javascript object 의 property 목록을 확인하고 싶을 때 console.dir
을 사용한다고 하는데, 아직까지는 html element 외에 특별히 사용해본 기억은 없다.
그래도 알아두면 좋을 것 같다고 생각한다.
console.log(document.body)
console.dir(document.body)
•
•
호출 경로 추적하기 - trace
console.trace
를 사용하면 console.trace method 가 호촐된 시점까지 어떻게 함수가 호출되었는지 역순으로 로그에 남는다. 복잡한 프로젝트에서 공통으로 사용되는 함수들에서 사용하면 편리하다.2
function a() {
b()
c()
}
function b() {
c()
}
function c() {
console.trace('trace from c')
}
마무리
console 의 여러가지 method 들을 알아보았는데, 기억해두면 사용하기 간단해서 편한 것 같다. 하지만 몰라도 그만이다. 그리고 실제 운영되는 사이트에서는 보통의 경우 console 을 찍지 않는게 좋으니 정리하는 습관을 들이는게 좋다.