본문 바로가기
빌드노트 검색

빌드노트

빌드·배포

빌드·배포 카테고리의 글입니다.

글 검색

글 목록

총 47개의 글

  1. Maven 빌드는 성공했는데 편집기 JS는 404였다

    홈은 열리는데 편집기는 멈췄다. Maven 빌드 앞에서 빠진 Node 단계가 원인이었다. 두 빌드의 차이와 실제 JAR에서 파일을 확인하는 방법.

  2. type: module을 켠 뒤 설정 파일의 require가 실패한다

    type을 module로 바꾸면 기존 .js 설정도 ESM으로 해석될 수 있다. 같은 CommonJS 설정의 js/cjs/mjs 실행과 export 값을 비교하고, 가까운 package.json 경계를 확인해 설정만 CommonJS로 남길지 ESM 문법으로 옮길지 판단한다.

  3. CommonJS에서 exports에 객체를 넣었는데 require 결과는 빈 객체다

    CommonJS에서 exports에 새 객체를 대입하면 지역 별칭만 바뀐다. 세 내보내기 방식의 키와 함수 호출을 비교하고, module.exports를 바꾼 뒤에도 남는 예전 exports 참조를 확인해 수정할 대상을 고른다.

  4. Maven exclusion을 넣었는데 같은 라이브러리가 남는다

    Maven exclusion은 선언한 dependency를 거치는 경로에 적용된다. 같은 라이브러리를 두 경로로 가져오는 합성 프로젝트에서 한쪽 제외와 양쪽 제외를 비교하고, 남은 경로의 기능 요구를 보고 수정할 위치를 정한다.

  5. Node에서 JSON import가 type 속성을 요구할 때

    JSON 경로와 ESM 설정이 맞아도 import의 type 속성이 없으면 실패한다. Node v22.23.2에서 속성 없음·정확한 json·잘못된 타입의 종료 코드와 실제 값을 비교하고, with 구문과 default export 계약을 확인한다.

  6. 테스트는 컴파일됐는데 mvn test에서 빠지는 이유

    Maven 테스트 컴파일 성공은 Surefire의 실행 대상 포함을 보장하지 않는다. 기본 클래스명 패턴에서 빠진 테스트를 -Dtest로 확인하고, includes 교체 시 기존 패턴을 유지하는 방법과 테스트 0개 실패 옵션의 한계를 실제 실행으로 비교한다.

  7. Maven 빌드는 성공했는데 Java 17에서 실행되지 않는 이유

    Maven 빌드 JDK와 산출물의 대상 버전은 별개다. JDK 21·17에서 클래스 major와 실행 결과를 비교하고, source/target=17로는 놓친 Java 21 API 호출이 release=17에서 차단되는 이유를 설명한다.

  8. Maven 의존성 트리에 2.0이 있는데 1.0이 실행되는 이유

    Maven은 일반적인 버전 충돌에서 더 가까운 경로를 선택한다. 합성 JAR로 깊이·선언 순서와 실제 로딩 버전을 비교하고, dependencyManagement와 직접 의존성 선언의 선택 기준을 설명한다.

  9. 루트에서 npm run -w를 실행했는데 파일을 못 찾는 이유

    npm run -w로 실행한 스크립트의 cwd는 선택한 패키지 루트다. 호출 폴더를 바꾼 실제 출력과 파일 읽기를 비교하고, 패키지 입력·호출자 입력·스크립트 자원에 맞는 경로 기준을 고른다.

  10. engines에 Node 버전을 적었는데 npm install이 성공한다

    engines의 Node 버전이 맞지 않아도 기본 npm install은 경고만 남기고 성공할 수 있다. 같은 로컬 패키지에서 기본·엄격 설치의 종료 코드와 파일을 비교하고, 설치 정책과 실행 시 버전 검사를 구분한다.

  11. -cp를 줬는데 java -jar가 라이브러리 클래스를 못 찾는 이유

    라이브러리 JAR이 있어도 java -jar는 명령행의 -cp를 쓰지 않는다. 같은 두 JAR의 실패·성공을 비교하고, 메인 클래스 직접 실행과 manifest Class-Path 중 무엇을 선택할지 확인한다. 상대 경로의 JAR 기준도 다른 작업 폴더에서 검증했다.

  12. Maven filtering이 런타임용 ${...}까지 바꿀 때

    Maven filtering이 런타임용 ${...}를 같은 이름의 빌드 property로 바꾸는 조건을 비교한다. 원본과 target 리소스를 읽고, 파일 분리와 escapeString 설정 중 선택하는 방법을 설명한다. 역슬래시만 붙인 경우와 설정까지 맞춘 경우의 차이도 실제 출력으로 확인했다.