• [Spring]Interceptor를 이용하여 세션 및 권한 체크 하기

    1. Spring에서 Interceptor란? Interceptor는 Controller에 들어오는 요청(HttpRequest)과 응답(HttpResponse)를 가로채는 역할을 한다. 쉽게 말해 “eastglow.github.io/boardlist/10” 라는 URI를 사용자가 요청했을 때 그 요청과 받아주는 Controller가 반환하는 응답을 가로채는 녀석이다. 이와 비슷한 기능을 가진 Filter라는 것도 있는데 Interceptor와 다른 점은 실행되는 시점이다. Interceptor는 DispatcherServlet이 실행된 후(= Controller로 가기 전), Filter는 DispatcherServlet이 실행되기 전에...


  • [Lessons1]BinaryGap

    문제 https://app.codility.com/programmers/lessons/1-iterations/binary_gap/ 풀이 public class Solution { public int solution(int N) { // write your code in Java SE 8 boolean flag = false; int biggerNum = 0; int tempNum = 0; String binaryStr = Integer.toBinaryString(N); char[] binaryArray = binaryStr.toCharArray(); for(char ch : binaryArray){ if('1' == ch){ if(tempNum > 0){...


  • [1차]비밀지도

    문제 https://www.welcomekakao.com/learn/courses/30/lessons/17681 풀이 class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String[] answer = new String[n]; for(int i=0; i<n; ++i){ int tempNum = arr1[i]|arr2[i]; String tempBinary = Integer.toBinaryString(tempNum); int tempLength = tempBinary.length(); if(tempLength < n){ for(int j=0; j<n-tempLength; ++j){ tempBinary = "0"+tempBinary; } } answer[i] =...


  • [1차]다트 게임

    문제 https://www.welcomekakao.com/learn/courses/30/lessons/17682 풀이 class Solution { public int solution(String dartResult) { int answer = 0; int[] tempArray = new int[3]; int temp = 0; int cnt = 0; char[] charArray = dartResult.toCharArray(); for(char ch : charArray){ if(Character.isDigit(ch)){ //숫자 if(temp == 1 && ch == '0'){ temp = 10; tempArray[cnt-1] =...


  • [Oracle]서브쿼리와 IN 문으로 인한 성능 저하

    사건의 발단 얼마 전까지 한창 날 괴롭히던 문제가 하나 있었다. 유지보수를 맡고 있는 시스템이 하나 있는데 언제부턴가 자꾸 Java Application 단과 DB 사이의 커넥션이 날아가버리는 현상이 발생하는 것이었다. 몇 년 동안 잘 운영되던 시스템이었고 최근 몇 달은 특별히 작업한 부분도 없었다. 대충 로그를 살펴보니 아래와 같은 로그가 계속 보였다. java.sql.SQLRecoverableException:...