분류 전체보기 296

Windows Cursor 터미널 한글 깨짐, PowerShell 프로필로 해결하는 방법

Cursor 터미널과 Git에서 한글이 깨지는 건 대부분 Windows 코드페이지(CP949) 때문이다. PowerShell 프로필에 UTF-8 자동 전환 스크립트를 넣으면 터미널·Git 커밋까지 대부분 같이 해결된다. 절차1단계: PowerShell 프로필 만들기경로 (Windows PowerShell 5.1):C:\Users\\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 PowerShell 7+(pwsh)라면:C:\Users\\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 파일이 없으면 새로 만들고, 아래 내용을 넣는다.if ($Host.Name -eq 'ConsoleHost') {..

Windows 비밀번호를 잊었을 때 포맷 없이 복구하는 방법

회사 보안 프로그램이 주기적으로 비밀번호 변경을 요구해, 해당 프로그램 내에서 멍때리고 새로운 패스워드를 입력했다가..이후 로그인할때 기억하는 모든 패스워드를 쳐봐도 로그인이 되지 않았다..(ㅠㅠ) Windows 로그인 비밀번호를 분실했을 때, 포맷 없이 기존 데이터를 유지한 채 CMD 우회법으로 비밀번호를 강제 변경하는 방법이다. 핵심은 설치 USB 복구 환경에서 접근성 실행 파일(utilman.exe)을 cmd.exe로 교체해, 로그인 화면에서 시스템 권한 CMD를 실행하는 것이다. 배경다음 상황에서 사용한다.로그인 화면에서 비밀번호 입력이 막히고, Microsoft 계정 온라인 재설정도 보안 질문 분실 등으로 불가능한 경우데이터 유실 없이 해결해야 해서 포맷이 선택지가 될 수 없는 경우 원리는 ..

Window 2026.06.18

운영 미배포 작업을 보류 브랜치로 분리해 관리하는 방법

운영 배포 전 main에만 올린 작업을 취소해야 하는데, 이미 개발 환경 배포 브랜치에는 반영돼서 그쪽은 건드릴 수 없는 상황. 별도 보류 브랜치에 작업을 먼저 백업한 뒤, main에서는 git revert로 되돌리고, 운영 배포 시점에 보류 브랜치를 다시 합치는 방식으로 해결한다. 배경배포 흐름이 아래처럼 분리된 환경을 가정한다.feat/* → main → 개발 배포 브랜치 → 개발 환경 배포feat/* → main → 운영 배포 브랜치 → 운영 환경 배포작업을 main에 올리고 개발 배포 브랜치까지 merge해 개발 환경에는 이미 반영됐지만, 운영 배포 브랜치에는 아직 merge하지 않은 시점에 다음 배포 일정이 미뤄지는 경우가 있다. 이때 main은 다음 운영 배포 전까지 깨끗한 상태를 유지해야..

Git 2026.06.18

eGovFrame 채번 테이블 불일치로 메뉴 ID가 중복된 사례

eGovFrame 기반 시스템에서 메뉴 등록 후 웹페이지가 멈추거나 Duplicate Key 오류가 발생했다. 최종 원인은 채번 테이블의 NEXT_ID가 실제 데이터 최댓값보다 작았고, 대상 테이블에 PK 제약이 없어 중복 삽입이 즉시 막히지 않았던 것이다. 증상관리 화면에서 메뉴 등록·저장 시 오류가 발생하거나, 저장 후 메뉴 트리·특정 페이지가 로딩되지 않는다(먹통)애플리케이션 로그에 Duplicate entry / Unique constraint violation 류 메시지가 남는다DB에는 이미 동일 entityId(메뉴 ID) 를 가진 행이 2건 이상 존재할 수 있다처음에는 애플리케이션 버그·캐시 문제를 의심했으나, 채번 값과 실데이터 불일치 쪽으로 좁혀졌다 어떻게 좁혔나1) 오류 시점·경..

Framework 2026.06.16

싱글톤 Bean 공유 상태로 동시 Ajax 응답이 섞인 사례

화면에서 API1은 1건, API2는 3건이 내려와야 하는데, Network 탭에서 둘 다 3건으로 보이는 현상이 간헐적으로 발생했다. SQL·파라미터·배포를 의심했지만, 최종 원인은 Spring 싱글톤 Bean이 공유 응답 객체를 동시 요청이 덮어쓴 것이었다. 증상팝업(또는 특정 화면) 로드 시 Ajax 2개가 동시에 호출된다API1 응답은 1건이어야 정상인데, Network에서 3건으로 보이는 경우가 있다API2 응답도 3건이며, API1과 JSON 내용이 완전히 동일하다드롭다운 등 UI에 같은 라벨·다른 코드값이 여러 건 노출되고, 잘못된 값이 저장될 수 있다API1·SQL을 단독 호출하면 항상 1건 → DB·SQL·파라미터 문제는 아닌 것으로 보였다 어떻게 좁혔나1) SQL·파라미터 소거검증..

외부망에서만 API가 Empty Response로 끊긴 사례 해결

외부망에서만 API 임시저장이 응답 없이 끊겼다. 애플리케이션 로그는 없었고, 내부망에서는 같은 기능이 정상 동작했다. 증상POST 직후 HTTP 상태·본문 없음 (약 40ms, 타임아웃 아님)브라우저 Network Timing: Waiting(TTFB) 구간 없음 → 응답 첫 바이트조차 오기 전에 끊김 (아래 참고)브라우저: ERR_EMPTY_RESPONSE / curl: (52) Empty reply from server내부망에서는 동일 기능 정상, 외부망에서만 재현 처음에는 폼 null, 임시저장 불러오기, DB 오류를 의심했지만, curl로도 재현되고 body를 줄이면 400 JSON이 돌아와 앱·경로는 살아 있음이 확인됐다. API가 통째로 죽은 상황은 아니었다. 어떻게 좁혔나1) body..

[Troubleshooting] Maven "was cached in the local repository" — 폐쇄망 빌드 서버에서 캐시된 실패 처리

parent POM을 Nexus에 올렸는데도 빌드가 또 실패했다. 원인은 Maven이 이전에 실패한 해석 결과를 로컬 캐시에 저장해두고 계속 실패로 처리하고 있었기 때문이었다. 1. 증상parent POM을 Nexus에 올리고 다시 빌드를 돌렸는데 또 같은 에러가 떴다.[ERROR] Failed to execute goal on project my-project: Could not resolve dependencies ... Failure to find com.github.librepdf:openpdf-parent:pom:1.3.30.jaspersoft.2 in http://nexus.internal:8081/repository/maven-public/ was cached in the..

Java/Maven 2026.06.03

[Troubleshooting] Maven parent POM이 Nexus에 없어서 빌드 실패 — mvn dependency:list의 함정

폐쇄망 Nexus에 의존성을 올렸는데도 빌드가 실패했다. 원인은 mvn dependency:list가 parent POM을 출력하지 않는다는 점이었다. 이 함정과 해결 방법을 정리한다. 1. 증상로컬 .m2에서 의존성을 수집해 Nexus에 올리고 폐쇄망 TeamCity 빌드를 돌렸더니 아래 에러가 떴다.Could not resolve dependencies for project ... Could not find artifact com.github.librepdf:openpdf-parent:pom:1.3.30.jaspersoft.2 in nexus (http://nexus.internal:8081/repository/maven-public/)openpdf는 분명히 올렸는데 왜 openpdf-par..

Java/Maven 2026.06.03

[폐쇄망 CI/CD] Maven 의존성을 Nexus에 자동 업로드하기

외부 인터넷이 차단된 폐쇄망 환경에서 Maven 프로젝트의 CI/CD를 구축하면서 겪은 의존성 관리 문제와 해결 과정을 정리한다. 1. 배경회사 보안 규정상 외부 인터넷이 막힌 폐쇄망 서버에 Spring Boot 기반 사내 시스템을 배포해야 했다. TeamCity로 CI/CD 파이프라인을 구성했는데, 빌드 서버가 Maven Central에 접근할 수 없으니 의존성을 어디선가 가져와야 했다.해결 방향은 세 단계로 정리됐다.내부망에 Nexus Repository Manager 구축개발자 PC의 로컬 .m2 캐시에서 필요한 의존성만 추려서 Nexus에 업로드CI/CD 빌드 서버는 Nexus만 바라보도록 settings.xml 설정 2. 환경 정보항목값Nexus URL내부망 Nexus 서버 주소업로드 레포ho..

Java/Maven 2026.06.03

[Troubleshooting] Spring Boot 2.3 + JEUS 로그 라이브러리 충돌 해결

Spring Boot 2.3 기반 프로젝트를 JEUS에 배포하는 과정에서 로그 라이브러리 충돌 문제가 발생했다.특이한 점은 로컬에서 src 폴더를 직접 구동할 때는 아무 문제가 없었다는 것이다. 빌드된 target 폴더를 실행하거나 JEUS에 배포할 때만 문제가 생겼다. 1. 문제 상황로컬 Smart Tomcat에서 소스(src) 폴더를 직접 지정해 실행하면 정상 동작했다.그런데 빌드 결과물인 target 폴더를 실행 대상으로 잡거나 운영 서버(JEUS)에 배포하면 Multiple SLF4J bindings 에러와 함께 기동이 실패했다. SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/.../logb..

Java/Maven 2026.05.05
반응형