본문 바로가기

전체 글94

[SQL] ROWNUM = 2 쿼리를 짜다보면 ROWNUM 을 쓸 일이 종종 있다. ROWNUM = 1 의 경우 가장 상위 행을 가져오는 구문이지만, ROWNUM = 2 조건은 아무런 행을 가져오지 않는다. 보통 ROWNUM = 2 라는 조건을 사용하고 싶은 경우는, 특별한 기준으로 데이터를 정렬 후 2번째 순위에 있는 데이터를 뽑고 싶을 때 일 것이다. 일단 ROWNUM = 2 과 같은 조건을 사용하고 싶을 땐, 쿼리문을 한번 더 감싸서 바깥 쿼리문에서 조건을 걸어주면 된다. SELECT FROM ( SELECT ROWNUM AS RNUM , AAA FROM TBL ORDER BY AAA ) T WHERE T.RNUM = 2 다음과 같이 ROWNUM 을 사용하면 원하는 결과를 추출 가능하다. 그렇다면 왜 ROWNUM = 2 는 내가.. 2021. 1. 15.
[SQL] Order by 문 변형 2021. 01. 15 오늘 짜려는 쿼리 중 order by 를 사용하여야 하는 부분이 있었다. 학기 코드 컬럼이 있었는데 '1', 'S', '2', 'W' 와 같은 형식의 코드로 저장되는 컬럼이었다. S, W 는 각각 여름학기, 겨울학기로 1학기 다음이 S, 2학기 다음이 W 순서로 정렬이 되어야만 했다. 이처럼 문자와 숫자가 함께있는 경우엔 어떻게 Order by 를 사용해야 하는지 고민했다. Case when 문으로 각각의 코드를 다시 1,2,3,4 와 같은 코드형식으로 치환하여 한번 더 쿼리문을 감싸 정렬해야 하나, 고민하던 중, Order by 문에 Decode 를 쓰는 방법을 생각했다. ORDER BY DECODE(SHTM_CD, '1', '1', 'S', '2', '2', '3','W', '.. 2021. 1. 15.
[Spring] Interceptor [Interceptor] 현재 하고 있는 프로젝트에서 로그인 시 권한체크를 Interceptor로 구현해주고 있는 상황이다. 기존 시스템에 새로운 프로그램을 도입하였고, 새로운 프로그램에서 만든 Interceptor가 기존 시스템에 영향을 끼쳐 권한이 없어 화면이 동작하지 않는 등 문제가 생겼다. 문제는 해결되었으나, 이에 대해 조금 더 깊이 이해하고, 추후 또 발생할 수 있는 문제점을 방지할 수 있으려면 코드를 어떻게 고쳐야 할지에 대해 이해하고 싶어 이를 공부하고 글을 남겨놓기로 하였다. 인터셉트. 용어의 의미처럼 중간에 가로챈다는 의미이다. 컨트롤러에 들어오는 HttpRequest와 HttpResponse를 가로채는 역할을 하며, 인증용도로 활용하는 등(위의 사례처럼, 권한체크) 의 기능을 구현할 .. 2020. 8. 8.
[디자인패턴] 싱글톤 패턴 싱글톤 패턴 1. 싱글톤 패턴이란 - 어플리케이션 시작 시, 객체에 딱 한번만 메모리를 할당하고, 한 번 생성한 객체를 계속 사용하는 방식. - 한 번 인스턴스를 만들어 놓고, 그 인스턴스를 시스템 어디서든 접근가능하도록 만드는 방식. 2. 사례 - DBCP, 쓰레드풀, 캐시, 대화상자, 사용자설정, 레지스트리 설정, 로그기록 객체 등 - 모든 시스템이 한가지의 객체만을 사용해야 할 때 적합. ex) 조회 수 카운팅 3. 장점 - 불필요한 자원낭비를 막는다. * 객체 메모리를 딱 한 번 할당하기 때문에, 두번째 이용 시 부터는 객체의 로딩시간이 줄어든다. 4. 단점 - 결합도가 높아진다. * 하나의 클래스가 하는 일이 많아짐. 클래스의 경우 고유의 기능을 잘 처리하도록 적당히 쪼개져야 하는데(응집도), .. 2020. 7. 26.
[디자인패턴] 디자인패턴의 종류 2020.07.26 ~ 공부하는 패턴 하나씩 추가하기. 1. 싱글톤 패턴 2. 옵저버 패턴 2020. 7. 26.
백준2688_줄어들지않아 문제 어떤 숫자가 줄어들지 않는다는 것은 그 숫자의 각 자리 수보다 그 왼쪽 자리 수가 작거나 같을 때 이다. 예를 들어, 1234는 줄어들지 않는다. 줄어들지 않는 4자리 수를 예를 들어 보면 0011, 1111, 1112, 1122, 2223이 있다. 줄어들지 않는 4자리수는 총 715개가 있다. 이 문제에서는 숫자의 앞에 0(leading zero)이 있어도 된다. 0000, 0001, 0002는 올바른 줄어들지 않는 4자리수이다. n이 주어졌을 때, 줄어들지 않는 n자리 수의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T(1 2020. 2. 6.