본문 바로가기

프로그래밍

(17)
[MySQL] Where In & SubQuery 는 최악! JOIN & MAX & GROUP BY 사용 최근에 구축 중인 사이트가 있는데, 방대한 양의 시세 정보 데이터를 적재하고 이를 검색서비스를 제공하는 사이트이다. 여러 다른서버들이 있어 다른서버의 시세도 한눈에 보게끔 해주고 싶었는데, 아무 생각 없이 where 에 in 으로 서브 쿼리를 넣어 주는걸로 작성을 해주었더니, 시간이 매우 오래 걸렸다. SELECT * FROM auction WHERE idx IN ( SELECT MAX(idx) FROM auction WHERE item_id = :item_id GROUP BY realm_id, auction_house_id, item_id) ORDER BY price_min DESC; 위 쿼리의 결과가 도출되는데 4초에서 6초가 소요되었다. 개선을 해볼수 있지 않을까 싶어 여러 검색을 해보았는데, wh..
docker 이미지 전체 삭제하기 쿠버네티스를 통해 배포를 하고 있는데, 로컬에서 빌드해서 배포하다보니 디바이스에 이미지가 계속 쌓이면서 공간을 잡아먹는다. (..) 아래 명령어를 가끔씩 쳐주면서 정리중. $ docker image prune
[ECLIPSE/JAVA] 이클립스 컴파일 에러, Java compiler level does not match the version of the installed Java project facet 설치된 자바 버전과 프로젝트의 컴파일러 버전이 맞지 않을때 나는 에러입니다. 물론 실행은 잘 되고 있을 확률이 높음... Error: Java compiler level does not match the version of the installed Java project facet 프로젝트에 마우스 오른쪽 > Properties > Project Facets 자바버전을 설치된 것과 같은 것으로 맞춰주면 해결됩니다.
“Cannot switch on a value of type String for source level below ..” error in Eclipse I faced the same issue when I tried to deploy using the Ant tool. The solution that worked for me was: Right click on project, and then click Properties Go to Java Build Path Go to JRE System Library Execution Environment was selected; I instead selected Alternate JRE and then jre7 (as shown below)
An error occured while filtering resources Maven Resource Filtering 사용 시에 An error occured while filtering resources 오류가 발생하는 경우가 있습니다. 이때, 프로젝트 메뉴에서 'Maven > Update Project...' 또는 Alt + F5 를 눌러서 업데이트를 수행하고 나면 에러가 사라집니다.
Springframework에서 MySQL 커네션을 잃어버리는 문제 해결 서론 Springframework에서 MySQL을 사용할 때 특정 시점이 지나면 자동으로 커넥션을 잃어버리는 문제가 있다. 이 문제는 Springframework에서 아무런 오랜시간 동안 데이터요청이 없으면 커넥션과 풀링을 해지하는 기능을 가지고 있기 때문인데 이 문제를 해결하기 위한 방법을 소개한다. Srping에서 MySQL 커넥션 문제 이번 프로젝트에서 Springframework + Hiberante + MySQL을 사용하여 프로젝트 개발을 진행하는 도중에 스케줄러가 돌면서 특정 시점이 되어서 아래와 같은 JDBCConnectionException 을 자꾸만 발생하였다. apache의 common-dbcp를 사용해서 dataSource를 하다가 tomcat-jdbc로 교체하여 JNDI(Java N..
STS로 프로젝트 생성 후, resources 폴더에 새로운 폴더를 생성할 때, 패키지로 보이는 문제 해결 방법 이클립스에서 STS를 설치하고, Spring 프로젝트를 생성하고나서 src/main/resources 폴더에 새로운 폴더를 추가하면, 당연히 폴더 아이콘으로 보여야하는데, 패키지로 보이는 경우가 있습니다. 아니! 나는 폴더를 생성했는데, 시방 무슨 패키지가 생성되었어?!?! 라고 생각하시면서, 내가 잘못했나? 다시 해볼까? 하시면서 몇번을 만들어도 똑같을 겁니다. 사실 이건 정상적인 상황으로 실제 프로젝트에는 문제가 없지만, 좀 찜찜하고 눈에 거슬리기도 합니다. 이럴때는 다음과 같이 설정하시면 됩니다. 1. 프로젝트 우클릭 -> Properties 2. Java Build Path -> Source 선택 3. 하단에 있는 /src/main/resources의 Excluded를 선택하고 Edit 4. Ex..
getClient IP public static String getClientIpAddr(HttpServletRequest request) { String ip = request.getHeader("X-Forwarded-For"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unkno..