IT/Javascript
JS 디버깅 도구 console.log()
Cyber_
2025. 4. 5. 18:37
console.log()
console.log() 는 JavaScript에서 데이터를 콘솔에 출력할 수 있는 함수입니다. 디버깅, 상태 확인, 실험 등 다양한 상황에서 사용되며, 단순한 출력 이상의 강력한 기능들을 내포하고 있습니다.
console.log()의 동작 원리
브라우저 환경에서
- console은 브라우저가 내장한 객체로, 개발자 도구(DevTools) 콘솔에 접근할 수 있도록 함.
- 실제 구현은 브라우저마다 다르미잔 보통 C++로 작성된 콘솔 API를 JS에서 감싼 형태
Node.js 환경에서
- console.log()는 내부적으로 stdout(표준 출력 스트림)을 사용
다양한 출력 방식
여러값 출력
let name = "Tom", age = 30;
console.log("이름:", name, "나이:", age);
출력은 ',' 기준 공백으로 구분됨
문자열 포맷 사용
console.log("Hello %s, you are %d years old.", "Tom", 30);
// Hello Tom, you are 30 years old.
- %s: 문자열
- %d or % %i: 정수
- %f: 부동소수
- %o: 객체
- %c: css 스타일 적용
스타일 출력(%c 사용)
console.log("%c주의사항!", "color: red; fond-weight: bold;");
객체 배열 출력
const user = { name: "Alice", age: 28 };
console.log(user);
// 배열 출력
console.log(["apple", "banana", "cherry"]);
- 개발자 도구에서는 객체/배열이 트리 구조로 펼쳐 보이기 때문에, 구조 파악에 유용함
- console.dir()을 사용하면 객체 구조만 집중적으로 볼 수 있음
타이머와 카운터
console.time("timer1");
for (let i = 0; i < 1000000; i++) {}
console.timeEnd("timer1");
console.count("click");
console.count("click");
- console.time(label): 시간 측정 시작
- console.timeEnd(label): 시간 측정 종료 및 출력
- console.count(label): 호출 푓수 출력(디버깅 반복 검사에 유용)
콘솔 크룹화
console.group("유저 정보");
console.log("이름: Alice");
console.log("나이: 30");
console.groupEnd();
- 복잡한 출력 내용을 트리구조로 정리해서 확인 가능
console의 다른 메서드
- console.warn(): 경고 메시지 출력(노란색)
- console.error(): 오류 메시지 출력(빨간색)
- console.table(): 배열/객체를 테이블 형식으로 출력
- console.assert(): 조건이 false일 때만 출력
- console.clear(): 콘솔 내용 지우기
console.warn("이건 경고입니다"); console.error("이건 에러입니다"); console.table([{ name: "Tom", age: 28 }, { name: "Jane", age: 32 }]); console.assert(1 === 2, "1과 2는 같지 않다!");
언제 console.log()를 사용하는가?
- 디버깅: 함수가 호출되었는지 확인
- 값 추적: 변수 값 변화 감지
- 조건 확인: if/else 경로 추적
- API 응답 확인: fetch 또는 axios 결과 확인
프로덕션(배포)에서는 어떻게 해야 할까?
개발용 console.log()는 배포 시 제거하거나 조건 부 출력이 권장됨
if(process.env.NODE_ENV === "development"){
console.log("개발 모드에서만 보이는 로그");
}
또는 로깅 라이브러리(winston, log4js) 사용 권장