<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on DevTrace — 글로벌 개발 에러 트러블슈팅</title><link>https://tokkabi.com/posts/</link><description>Recent content in Posts on DevTrace — 글로벌 개발 에러 트러블슈팅</description><generator>Hugo -- 0.125.0</generator><language>ko</language><lastBuildDate>Mon, 24 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tokkabi.com/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>npm 전역 설치 시 EACCES 권한 오류 — sudo 없이 안전하게 해결하는 방법</title><link>https://tokkabi.com/posts/how-to-fix-npm-throwing-error-without-sudo/</link><pubDate>Mon, 24 Aug 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/how-to-fix-npm-throwing-error-without-sudo/</guid><description>npm 전역 설치/검색 시 발생하는 EACCES: open &amp;#39;.../.npm/...&amp;#39; 권한 오류를 sudo 없이 해결하는 방법을 정리합니다. npm 전역 경로를 사용자 홈 디렉토리로 옮기는 안전한 해결책과 원인별 분기 방법을 단계별로 제시합니다.</description></item><item><title>Node.js/Windows ENOENT stat AppData\Roaming\npm 오류 — npm 폴더 생성으로 해결하기</title><link>https://tokkabi.com/posts/nodejs-windows-error-enoent-stat-appdata-roaming-npm/</link><pubDate>Sat, 22 Aug 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/nodejs-windows-error-enoent-stat-appdata-roaming-npm/</guid><description>Windows에서 npm install 실행 시 &amp;#39;ENOENT, stat C:\Users\사용자\AppData\Roaming\npm&amp;#39; 오류가 발생하는 증상, 원인 후보 점검 체크리스트, npm 전역 폴더 수동 생성 해결 방법을 단계별로 정리한다.</description></item><item><title>React 'Minified exception occurred' 에러 — NODE_ENV=development로 전체 에러 메시지 확인하기</title><link>https://tokkabi.com/posts/react-minified-exception-occurred/</link><pubDate>Thu, 20 Aug 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/react-minified-exception-occurred/</guid><description>React에서 &amp;#39;Uncaught Error: Minified exception occurred&amp;#39; 에러가 발생할 때, NODE_ENV=development로 빌드하면 원래 에러 메시지를 확인할 수 있습니다. browserify, webpack, vite 등 번들러별 전체 에러 메시지 확인 방법과 함께 원인 후보별 디버깅 체크리스트를 정리합니다.</description></item><item><title>Angular 'expression has changed after it was checked' 예외 — 현재 시간에 의존하는 속성과 변경 감지의 정확한 원인</title><link>https://tokkabi.com/posts/angular-expression-has-changed-after-it-was-checked/</link><pubDate>Wed, 19 Aug 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/angular-expression-has-changed-after-it-was-checked/</guid><description>Angular 개발 모드에서 컴포넌트 속성이 현재 datetime에 의존할 때 &amp;#39;expression has changed after it was checked&amp;#39; 예외가 발생하는 이유와 ChangeDetectorRef.detectChanges() 해결책을 단계별로 설명합니다.</description></item><item><title>Node.js CryptoJS AES 암호화를 Go에서 복호화할 때 panic이 나는 이유 — 문자열 키는 passphrase로 처리된다</title><link>https://tokkabi.com/posts/decrypt-aes-node-to-golang-evp-bytestokey/</link><pubDate>Wed, 19 Aug 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/decrypt-aes-node-to-golang-evp-bytestokey/</guid><description>Node.js(CryptoJS)로 AES 암호화한 데이터를 Go에서 복호화할 때 panic/깨진 값이 나오는 원인을 설명합니다. 문자열 키를 CryptoJS가 passphrase로 해석해 EVP_BytesToKey로 키와 IV를 유도하는 동작 차이를 파고들고, salt를 추출해 AES-CTR로 복호화하는 Go 코드와 안전한 대안을 소개합니다.</description></item><item><title>Node.js MongoDB 드라이버 'requires at least 2 (MongoDB2.6)' wire version 오류 — 드라이버·서버 버전 호환성 문제 해결</title><link>https://tokkabi.com/posts/nodejs-mongodb-driver-requires-at-least-2-wire-version/</link><pubDate>Tue, 18 Aug 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/nodejs-mongodb-driver-requires-at-least-2-wire-version/</guid><description>MongoError: Server at localhost:27017 reports wire version 0, but this version of Node.js Driver requires at least 2 (MongoDB 2.6) 오류의 원인과 해결 방법을 설명합니다. mongodb npm 드라이버 버전과 MongoDB 서버 버전(wire protocol) 간 호환성을 맞추는 방법을 다룹니다.</description></item><item><title>Express에서 'Can't set headers after they are sent' 오류 해결하기</title><link>https://tokkabi.com/posts/error-cant-set-headers-after-they-are-sent/</link><pubDate>Mon, 17 Aug 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/error-cant-set-headers-after-they-are-sent/</guid><description>Node.js/Express에서 &amp;#39;Can&amp;#39;t set headers after they are sent to the client&amp;#39;가 발생하는 원인은 응답이 시작된 뒤 헤더를 설정하거나 중복 응답을 보내기 때문입니다. 콜백 중복 호출·redirect 후 에러 발생 등 원인을 파악하고 res.header를 본문 전에만 호출하는 해결책을 제시합니다.</description></item><item><title>Node.js uncaughtException 처리 방법 — 처리되지 않은 예외로 프로세스가 종료되는 문제</title><link>https://tokkabi.com/posts/nodejs-handling-uncaught-exceptions/</link><pubDate>Sun, 16 Aug 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/nodejs-handling-uncaught-exceptions/</guid><description>Node.js에서 처리되지 않은 예외(Uncaught Exception)가 발생하면 프로세스 전체가 종료됩니다. process.on(&amp;#39;uncaughtException&amp;#39;) 사용법과 async-safe한 에러 처리 전략(return Error, err-first callback, event emit)을 통해 이 문제를 해결하는 방법을 다룹니다.</description></item><item><title>Node.js: node-sass/node-gyp 빌드 시 'Python not found' 오류 해결하기</title><link>https://tokkabi.com/posts/nodejs-python-not-found-exception-due-to-node-sass-and-node-gyp/</link><pubDate>Sat, 15 Aug 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/nodejs-python-not-found-exception-due-to-node-sass-and-node-gyp/</guid><description>Jenkins에서 node-sass와 node-gyp가 &amp;#39;Python not found&amp;#39; 오류로 빌드가 실패하는 문제를 다룹니다. 원인은 node-gyp가 Python 2를 요구하기 때문이며, node-sass 버전 업데이트 또는 Node.js 버전 업그레이드로 해결합니다.</description></item><item><title>PhoneGap/Cordova Android 앱을 강제로 크래시 시키는 방법 — JS 예외가 잡히지 않는 이유</title><link>https://tokkabi.com/posts/how-to-make-my-phonegap-android-app-crash/</link><pubDate>Fri, 14 Aug 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/how-to-make-my-phonegap-android-app-crash/</guid><description>PhoneGap/Cordova Android 앱에서 자바스크립트 unhandled exception이 발생해도 앱이 크래시하지 않는 이유를 설명하고, CordovaActivity.java의 onCreateOptionsMenu에서 RuntimeException을 던지는 방법과 네이티브 플러그인에서 예외를 던지는 방법을 단계별로 소개합니다. 크래시 리포터 플러그인 테스트에 유용합니다.</description></item><item><title>Angular RxJS에서 http.request() 예외 올바르게 잡기 — 'catch is not a function' 오류 해결</title><link>https://tokkabi.com/posts/angular-rxjs-catch-exception-from-http-request/</link><pubDate>Wed, 12 Aug 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/angular-rxjs-catch-exception-from-http-request/</guid><description>Angular 2에서 Http 요청에 .catch() 연산자를 사용할 때 &amp;#39;catch is not a function&amp;#39; 또는 &amp;#39;Observable.throw is not a function&amp;#39; 오류가 발생하는 원인과 해결책을 설명합니다. RxJS 버전 5의 패치 방식 연산자 임포트가 핵심이며, &amp;#39;rxjs/add/operator/catch&amp;#39;와 &amp;#39;rxjs/add/observable/throw&amp;#39;를 명시적으로 추가하는 방법을 다룹니다.</description></item><item><title>Node.js 17+ 에서 'error:0308010C:digital envelope routines::unsupported' 오류 해결 (OpenSSL 3.0 호환 문제)</title><link>https://tokkabi.com/posts/node-17-error0308010c-digital-envelope-routines-unsupported/</link><pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/node-17-error0308010c-digital-envelope-routines-unsupported/</guid><description>Node.js 17 이상에서 OpenSSL 3.0.0으로 인해 webpack 4가 해시 함수를 처리하지 못할 때 발생하는 error:0308010C:digital envelope routines::unsupported 오류를 4가지 방법으로 해결하는 방법을 설명합니다.</description></item><item><title>TypeScript 'not assignable to parameter of type never' 오류 완벽 해결 — 빈 배열 타입 추론과 never[]</title><link>https://tokkabi.com/posts/typescript-not-assignable-to-parameter-of-type-never/</link><pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/typescript-not-assignable-to-parameter-of-type-never/</guid><description>TypeScript에서 빈 배열의 요소를 push 하려다 &amp;#39;not assignable to parameter of type never&amp;#39; 오류가 발생하는 이유와, 명시적 배열 타입 지정으로 해결하는 방법을 5단계로 설명합니다.</description></item><item><title>npm 패키지 설치 시 'Unable to resolve dependency tree' ERESOLVE 오류 해결</title><link>https://tokkabi.com/posts/unable-to-resolve-dependency-tree-error-when-installing-npm/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/unable-to-resolve-dependency-tree-error-when-installing-npm/</guid><description>npm 패키지 설치 중 ERESOLVE 오류로 의존성 트리를 해석하지 못하는 문제를 다룹니다. Angular 버전 간 peer dependency 충돌이 원인이며, --legacy-peer-deps나 --force 옵션 또는 Node.js 버전 다운그레이드로 해결할 수 있습니다.</description></item><item><title>Angular 2 *ngFor 오류: Can't bind to 'ngFor' since it isn't a known native property 해결</title><link>https://tokkabi.com/posts/exception-cant-bind-to-ngfor-since-it-isnt-a-known-native-property/</link><pubDate>Tue, 04 Aug 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/exception-cant-bind-to-ngfor-since-it-isnt-a-known-native-property/</guid><description>Angular 2에서 *ngFor 디렉티브를 사용할 때 &amp;#39;Can&amp;#39;t bind to &amp;#39;ngFor&amp;#39; since it isn&amp;#39;t a known native property&amp;#39; 오류가 발생하는 원인과 해결 방법을 다룹니다. 주로 *ngFor 내부에서 변수 선언 시 &amp;#39;let&amp;#39; 키워드를 누락했기 때문에 발생하며, &amp;#39;#&amp;#39; 대신 &amp;#39;let&amp;#39;을 사용해야 합니다.</description></item><item><title>Node.js heap out of memory 크래시 원인과 해결 (--max-old-space-size)</title><link>https://tokkabi.com/posts/nodejs-heap-out-of-memory/</link><pubDate>Sun, 02 Aug 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/nodejs-heap-out-of-memory/</guid><description>Node.js에서 대용량 데이터를 처리할 때 &amp;#39;heap out of memory&amp;#39; 크래시가 발생하는 문제를 다룬다. V8 엔진의 기본 메모리 한도(약 1.7GB)를 초과하면 발생하며, --max-old-space-size 옵션으로 구(old space) 메모리 한도를 늘려 해결한다. 파일 인덱싱, 대량 배열 처리 등에서 자주 나타난다.</description></item><item><title>Python 크래시 로그 남기기 — 원격 서버에서 stderr 리다이렉션</title><link>https://tokkabi.com/posts/how-to-log-a-python-crash/</link><pubDate>Fri, 31 Jul 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/how-to-log-a-python-crash/</guid><description>원격 라즈베리 파이에서 실행 중인 Python 스크립트가 몇 시간 뒤 크래시될 때 오류 메시지를 파일로 남기는 방법을 다룹니다. 셸 리다이렉션(&amp;gt;&amp;gt; file 2&amp;gt;&amp;amp;1), logging.exception, sys.exc_info() 기반 크래시 로그 작성까지 단계별로 정리합니다.</description></item><item><title>JavaScript에서 undefined 확인하는 방법 — typeof vs in 연산자</title><link>https://tokkabi.com/posts/how-can-i-check-for-undefined-in-javascript/</link><pubDate>Wed, 29 Jul 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/how-can-i-check-for-undefined-in-javascript/</guid><description>JavaScript에서 변수가 undefined인지 확인하는 방법을 typeof, in 연산자, 직접 비교로 나눠 설명합니다. 선언되지 않은 변수는 직접 접근 시 ReferenceError를 일으키므로 typeof가 안전합니다. 상황별 올바른 선택 기준을 코드 예제와 함께 정리합니다.</description></item><item><title>Angular 컴포넌트에 서비스를 주입할 때 'Can't resolve all parameters for component' 오류 해결하기</title><link>https://tokkabi.com/posts/angular-service-injection-cant-resolve-parameters/</link><pubDate>Mon, 27 Jul 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/angular-service-injection-cant-resolve-parameters/</guid><description>Angular 컴포넌트에 서비스를 주입할 때 &amp;#39;EXCEPTION: Can&amp;#39;t resolve all parameters for component&amp;#39; 오류가 발생하는 원인과 해결 방법을 다룹니다. 배럴(barrel) 파일의 재수출로 인한 순환 의존성이 주범이며, 서비스를 선언된 파일에서 직접 임포트하거나 배럴 export 순서를 조정해 해결합니다.</description></item><item><title>Python concurrent.futures Executor.map: 하나의 작업이 예외를 던지면 나머지 결과가 사라지는 문제</title><link>https://tokkabi.com/posts/concurrentfutures-executormap-cancels-other-futures-when-one/</link><pubDate>Sat, 25 Jul 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/concurrentfutures-executormap-cancels-other-futures-when-one/</guid><description>Python의 concurrent.futures.Executor.map은 병렬 작업 중 하나가 예외를 던지면 결과 반복자가 종료되어 나머지 작업의 결과를 얻을 수 없습니다. 내장 map과 다른 동작입니다. 근본 원인과 회피 방법, 공식 수정(3.16)까지 정리합니다.</description></item><item><title>JSON.parse 예외 안전하게 처리하기 — try-catch로 404/무효 JSON 오류 잡기</title><link>https://tokkabi.com/posts/proper-way-to-catch-exception-from-jsonparse/</link><pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/proper-way-to-catch-exception-from-jsonparse/</guid><description>JSON.parse는 유효하지 않은 JSON 문자열(예: 404 응답 본문)을 파싱할 때 예외를 던집니다. try-catch 블록으로 파싱 예외를 안전하게 잡고, 성공 시에만 파싱 결과를 사용하는 방법을 5단계로 설명합니다.</description></item><item><title>브라우저에서만 발생하는 CORS 오류 'No Access-Control-Allow-Origin Header' — Postman은 왜 정상일까?</title><link>https://tokkabi.com/posts/javascript-cors-access-control-allow-origin-error/</link><pubDate>Tue, 21 Jul 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/javascript-cors-access-control-allow-origin-error/</guid><description>JavaScript로 교차 출처 요청을 할 때 브라우저에서만 발생하는 &amp;#39;No Access-Control-Allow-Origin header&amp;#39; 오류가 왜 Postman에서는 발생하지 않는지, Same-Origin Policy와 브라우저/API 클라이언트의 차이로 설명합니다.</description></item><item><title>Jest에서 예외 타입 테스트하는 방법 — toThrow로 TypeError/message 검증</title><link>https://tokkabi.com/posts/how-to-test-the-type-of-a-thrown-exception-in-jest/</link><pubDate>Sun, 19 Jul 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/how-to-test-the-type-of-a-thrown-exception-in-jest/</guid><description>Jest에서 함수가 던지는 예외의 타입(TypeError, ReferenceError 등)을 테스트하는 방법을 다룹니다. expect에 함수를 전달하고 toThrow로 예외 타입과 메시지를 검증하는 방법, AVA의 t.throws 문법에서 Jest로 마이그레이션하는 방법을 코드 블록과 비교표로 설명합니다.</description></item><item><title>자바스크립트에서 예외를 직접 throw할 때 스택 트레이스를 얻는 방법 (console.trace / Error.stack)</title><link>https://tokkabi.com/posts/how-can-i-get-a-javascript-stack-trace-when-i-throw-an-exception/</link><pubDate>Fri, 17 Jul 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/how-can-i-get-a-javascript-stack-trace-when-i-throw-an-exception/</guid><description>자바스크립트에서 throw로 예외를 직접 던질 때 함수 이름·URL·호출 체인이 담긴 스택 트레이스를 얻는 방법. console.trace()와 new Error().stack 속성을 실제 코드와 함께 정리했습니다.</description></item><item><title>프로그램 종료 없이 전체 Python 예외 traceback 출력하기 — print_exc()의 함정과 print_exception() 활용</title><link>https://tokkabi.com/posts/catch-and-print-full-python-exception-traceback-without-halt/</link><pubDate>Wed, 15 Jul 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/catch-and-print-full-python-exception-traceback-without-halt/</guid><description>Python에서 try/except 블록을 사용하면서도 프로그램을 종료하지 않고 전체 예외 트레이스백(traceback)을 출력하는 방법을 다룹니다. traceback.print_exc() 사용 시 발생할 수 있는 함정과 sys.exc_info() 캐싱, print_exception()을 통한 원본 트레이스백 출력, 순환 참조(circular reference) 방지까지 실용적으로 설명합니다.</description></item><item><title>Python에서 프로그램 종료 없이 전체 예외 트레이스백(traceback) 출력하는 방법</title><link>https://tokkabi.com/posts/python-exception-traceback-print-without-exit/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/python-exception-traceback-print-without-exit/</guid><description>Python의 try/except 블록 안에서 프로그램을 종료하지 않고도 전체 예외 트레이스백을 출력하는 방법을 다룹니다. traceback.print_exc()가 예외 체인에서 마지막 예외만 출력하는 함정과, sys.exc_info()를 캐시해 원본 예외를 보존하는 해결책을 설명합니다.</description></item><item><title>pytest에서 예외 발생을 올바르게 검증하는 방법 (pytest.raises)</title><link>https://tokkabi.com/posts/pytest-exception-assert-raises/</link><pubDate>Sat, 11 Jul 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/pytest-exception-assert-raises/</guid><description>pytest에서 예외 발생을 검증하는 올바른 방법은 pytest.raises를 사용하는 것입니다. try/except와 pytest.fail을 사용하면 traceback이 제대로 출력되지 않아 디버깅이 어렵습니다. pytest.raises 컨텍스트 매니저를 활용하면 예외 발생 여부와 예외 정보를 깔끔하게 확인할 수 있습니다.</description></item><item><title>Python에서 traceback 없이 프로그램 깔끔하게 종료하기 — sys.exit()와 예외 처리</title><link>https://tokkabi.com/posts/how-to-exit-from-python-without-traceback/</link><pubDate>Thu, 09 Jul 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/how-to-exit-from-python-without-traceback/</guid><description>Python 프로그램 종료 시 traceback 덤프가 화면에 출력되는 문제를 해결하는 방법을 다룹니다. KeyboardInterrupt와 Exception을 try/except로 잡고 traceback.print_exc() 후 sys.exit(0)을 호출하는 패턴을 소개합니다.</description></item><item><title>fatal error: Python.h: No such file or directory 해결</title><link>https://tokkabi.com/posts/fatal-error-pythonh-no-such-file-or-directory/</link><pubDate>Tue, 07 Jul 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/fatal-error-pythonh-no-such-file-or-directory/</guid><description>Python C 확장 모듈을 컴파일할 때 발생하는 &amp;#39;Python.h: No such file or directory&amp;#39; 오류는 Python 개발 헤더 파일이 설치되지 않았거나 컴파일러가 해당 경로를 찾지 못해 발생합니다. python-dev 패키지 설치와 gcc -I 옵션 지정으로 해결하는 방법을 단계별로 설명합니다.</description></item><item><title>파이썬에서 예외(Exception)를 출력하는 방법 정리</title><link>https://tokkabi.com/posts/how-do-i-print-an-exception-in-python/</link><pubDate>Sun, 05 Jul 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/how-do-i-print-an-exception-in-python/</guid><description>파이썬에서 예외를 출력하는 방법을 정리했습니다. except 블록 안에서 예외 객체를 print(e)로 출력하는 방법, traceback 모듈을 활용한 스택 트레이스 출력, logging으로 예외를 남기는 방법을 코드와 함께 다룹니다.</description></item><item><title>Python 2 UnicodeEncodeError: 'ascii' codec can't encode character — str() 대신 encode() 사용하기</title><link>https://tokkabi.com/posts/python2-ascii-unicodeencodeerror-str-vs-encode/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/python2-ascii-unicodeencodeerror-str-vs-encode/</guid><description>Python 2에서 BeautifulSoup으로 웹 페이지를 파싱하다 &amp;#39;ascii&amp;#39; codec can&amp;#39;t encode character 에러가 발생하는 문제를 다룹니다. 원인은 유니코드 문자열을 str()로 ASCII에 강제 인코딩하려 하기 때문이며, .encode(&amp;#39;utf-8&amp;#39;)로 명시적 인코딩하거나 전체를 유니코드로 처리하면 해결됩니다.</description></item><item><title>DevTrace 블로그 시작 — 글로벌 개발 에러 트러블슈팅</title><link>https://tokkabi.com/posts/hello-devtrace/</link><pubDate>Wed, 01 Jul 2026 00:00:00 +0000</pubDate><guid>https://tokkabi.com/posts/hello-devtrace/</guid><description>DevTrace 블로그의 첫 포스트입니다. 글로벌 개발 에러와 오픈소스 트러블슈팅을 근본 원인부터 추적합니다.</description></item></channel></rss>