2022-03-11 SELECT 쿼리 조회 시 NULL을 리턴하는 경우 어디서 예외처리를 하던 db 에서나 애플리케이션 단에서나 오류가 발생하게 된다. 이와 같은 SELECT 쿼리 조회시 발생할 수 있는 NULL처리를 간단히 하는 함수중 COALESCE에 대하여 알아보자. - 정의 COALESCE(x, y) = (CASE WHEN x IS NOT NULL THEN x ELSE y END) 공식문서에는 위와 같은 형식으로 간단히 그 의미를 표현하고 있다. 이를 해석하면 해당 함수의 매개 값 중 앞에 있는 값(X)이 NULL이 아니면 앞에 값(X)을 아닐 경우 다음 매개변수(Y)를 체크하여, 그 값을 리턴한다. 이해가 어려울 수 있으니 아래의 예시를 보자. - 예시 -- 1을 리턴한다. SELECT COAL..
2022-03-07 현재 MySQL 스키마에 등록된 프로시저 리스트를 한 번에 확인하는 명령어를 알아보자. - 명령어 -- DB 상관없이 모든 프로시저 출력 show procedure status; -- 특정 DB 만 출력하기 sys에 자기의 DB 명을 입력하면된다. show procedure status where Db = 'sys'; show procedure status where Db = 'DB이름'; 아래와 같은 명령어를 사용하면 되며, 특정 Db만 확인하고자 할 때는 아래와 Db 값에 조건을 달아주면 손쉽게 현재의 프로시저 리스트를 확인할 수 있다. 메인 이미지 출처 : Photo by Peter Herrmann on Unsplash
2022-03-04 DB에 lock 걸리거나 잘못된 select 문으로 대량의 데이터를 불러올 경우 해당 쿼리문을 종료해야 되는 경우가 종종 있다. 이러한 경우에 어떻게 해결하는지 알아보자. - 해결방법 MySQL WrokBrench 든 어디든 해당 DB에 쿼리문을 작성하면 된다. 우선적으로 현재 실행중인 프로세스 정보를 확인한다. show processlist; 위의 명령어를 통해 프로세스 정보를 테이블 형태로 확인할 수 있으며, 자신의 종료하고자 하는 프로세스의 아이디 정보를 기억하자. 여러 컬럼 중 컬럼명 Id라고 나올 것이다. -- Id 값을 숫자 이다. kill 뒤에 자신의 종료하고자 하는 -- Id 즉 숫자로 넣어주면된다. kill 12345 이후 위와 같이 자신의 종료하고자 하는 프로세스의 ..
2022-02-28 페이징 처리에서 많이 사용되는 ROWNUM을 MySQL에서 사용하는 방법을 알아보도록 하자. - 사용법 mysql에서의 ROWNUM은 반드시 초기화해주는 과정이 필요하다. 이는 SELECT 절 호출 이전에 FROM이나 WHERE 절에서 초기화해주는데 상황에 맞게 사용해 주면 된다. - from에서 사용 select @rownum := @rownum + 1 rownumber, t.* from test t, (select @rownum := 0) rownum - where 에서 사용 select @rownum := @rownum + 1 rownumber, t.* from test t where(@rownum := 0) = 0; - 역순사용 역순 사용은 이미 호출된 ROWNUM을 서브 쿼리..
2022-02-18 작업 중 java.lang.OutOfMemoryError: Java heap space 오류가 뜨는 경우가 있다. 이는 힙 영역에서의 더 이상의 공간이 없어 발생하는 문제점으로써 현재의 힙 메모리 영역을 증가시켜야 한다. 오늘은 SpringBoot에서의 힙 메모리 공간을 늘리는 방법을 알아보자. -방법 SpringBoot는 내장 톰캣을 다루기 때문에 Server에서의 tomcat의 heap 메모리가 아닌 각 프로젝트별 heap 메모리를 수정하는 것이 권장된다. 아래를 보자. 이클립스 상단에 메뉴중 Run > Debug Configurations라는 메뉴가 보일 것이다. 해당 항목을 클릭하면 아래와 같은 팝업창이 나타난다. 팝업창 좌측 목차에 Spring Boot App이라는 항목이 존..
2022-02-15 - 방법 방법은 StringBuilder에서 제공하는 두 가지 메소드를 사용하는 것이다. 첫 번째 메소드는 lastIndexOf(String str) 이다. 이는 파라미터로 넘겨준 마지막 문자열의 인덱스를 리턴하게 된다. 아래의 예제를 보면 쉽게 이해될 것이다. StringBuilder result = new StringBuilder(""); result.append("(test1234),"); //쉼표의 위치는 10번째 이다. System.out.println("result.lastIndexOf" + result.lastIndexOf(",")); // 10을 리턴 다음 메소드는 deleteCharAt(int index)이다. 이는 지정된 인덱스에 존재하는 문자열을 제거하게 된다. l..