본문 바로가기

trouble shooting

(6)
Java에서 발생하는 Broken Pipe Signal Java 애플리케이션에서 "Broken pipe" 오류는 주로 네트워크 통신 문제와 관련이 있습니다. 이 오류는 다음과 같은 다양한 상황에서 발생할 수 있습니다. 1. Java 오류: java.io.IOException: Broken pipe 의 원인1) 자주 발생하는 입출력 호출사용자가 잦은 새로고침 또는 종료, 연속 클릭 등의 행동을 할 때 발생합니다. 이로 인해 소켓이 끊어지게 되어 오류가 발생합니다.- 예시사용자가 웹 페이지에서 버튼을 반복적으로 클릭하거나 페이지를 새로고침하는 경우.// 서버 소켓 예제try (ServerSocket serverSocket = new ServerSocket(8080)) { while (true) { try (Socket clientSocket =..
오라클 ORA-01476: divisor is equal to zero 에러 ORA-01476: divisor is equal to zero 에러에러 개요Oracle 데이터베이스에서 ORA-01476: divisor is equal to zero 에러는 SQL 문장이 실행될 때 나눗셈 연산의 분모가 0이 되는 경우 발생합니다. 이는 수학적으로 정의되지 않은 연산이기 때문에 데이터베이스가 에러를 반환하는 것입니다.에러 발생 원인 이 에러는 주로 다음과 같은 상황에서 발생할 수 있습니다:하드코딩된 값:SQL 쿼리에서 하드코딩된 값이 0인 경우 나눗셈 연산을 수행하면 에러가 발생합니다.SELECT column1 / 0 FROM table;동적 값:테이블의 컬럼 값이 동적으로 0이 되는 경우에도 에러가 발생할 수 있습니다.SELECT column1 / column2 FROM table ..
대용량 XML 데이터를 MyBatis로 삽입 시 GC Overhead Limit Exceeded 에러 해결 방법 대용량 XML 데이터를 MyBatis로 삽입 시 GC Overhead Limit Exceeded 에러 해결 방법최근 프로젝트에서 대용량 XML 파일을 MyBatis를 통해 데이터베이스에 삽입하는 작업을 수행하던 중 GC Overhead Limit Exceeded 에러를 경험했습니다. 이는 Java 애플리케이션에서 가비지 컬렉터가 너무 많은 시간을 소비하고 있다는 경고입니다. 이번 포스트에서는 이 문제를 해결하기 위한 몇 가지 방법을 공유하려 합니다.문제 원인이 에러는 주로 메모리 부족이나 비효율적인 메모리 관리로 인해 발생합니다. 특히 대용량 데이터를 처리할 때 빈번하게 발생할 수 있습니다.해결 방법1. 배치 처리 (Batch Processing)MyBatis는 배치 처리 기능을 지원합니다. 많은 수의 ..
jquery val() 함수로 input 이벤트가 실행안 될때. 이벤트 지정후 $().on('input', fucntion(){ //로직 }); val() 함수를 호출해도 이벤트 실행이 안된다. $().val('내용...'); 아래 코드 적용해주니 해결되었다. (function($){ var originalVal = $.fn.val; $.fn.val = function(value){ var res = originalVal.apply(this, arguments); if(this.is("input:text") && arguments.length >= 1){ this.trigger("input"); } return res; } })(jQuery);
종종 발생되는 Already closed 에러 상황 아래와 같은 예외가 가끔 떨어지고 다시 접속하면 잘 된다. java.sql.SQLException: Already closed. at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:114) at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:191) at org.springframework.jdbc.datasource.DataSourceUtils.doCloseConnection(DataSourceUtils.java:343) at org.springframework.jdbc.datasourc..
왜 System.out.println()을 사용하면 안 되는가? 개발 과정에서 디버깅을 위해 System.out.println()을 사용하는 것은 흔한 일입니다. 하지만, 실제 프로덕션 코드에서는 여러 가지 이유로 인해 System.out.println()을 사용하는 것이 좋지 않습니다. 아래는 그 이유와 함께 대안 방법에 대한 설명입니다. 1. 로그가 휘발된다System.out.println()은 표준 출력으로 데이터를 출력합니다. 이는 터미널이나 콘솔에만 출력될 뿐, 파일로 저장되지 않습니다. 따라서 로그는 프로그램이 종료되거나 콘솔이 닫히면 사라지게 됩니다. 문제점: 로그는 에러가 발생한 상황을 기록하고, 문제를 진단하고, 재현하고, 고치기 위해 사용됩니다. 하지만 표준 출력으로 한 번 출력된 로그는 어디에도 저장되지 않으면 로그의 역할을 할 수 없습니다.대안:..