예를 들어, 넷플릭스 서비스를 신청한 고객이 있다. no user_id service_name start_date end_date 0001 janes netflix 2021-03-27 23:59:59.000 2022-06-27 23:59:59.000 그 고객이 서비스가 끝나는 날로부터 며칠이 남았는지 remaining 컬럼을 추가로 알고 싶다. (오늘은 2021년 4월 27일) SELECT *, DATEDIFF(DAY, GETDATE(), end_date) AS remaining FROM SERVICE_TABLE WHERE no = 0001 no user_id service_name start_date end_date remaining 0001 janes netflix 2021-03-27 23:59:59..
예를 들어, 넷플릭스 서비스를 신청한 고객이 있다. no user_id service_name start_date end_date 0001 janes netflix 2021-03-22 23:59:59.000 2021-04-22 23:59:59.000 그 고객이 서비스를 며칠만 더 사용해보고 싶어서 일주일 기간 연장을 신청했다. UPDATE SERVICE_TABLE SET end_date = DATEADD(DAY, 1, end_date) WHERE no = 0001 no user_id service_name start_date end_date 0001 janes netflix 2021-03-22 23:59:59.000 2021-04-23 23:59:59.000 일주일 더 겪으면서 만족한 고객이 한 달 더 ..
제한할 Bandwidth를 주입하는데 GB로 입력되어 있는 값을 Byte 단위로 변환해서 넣어줘야 하는 일이 생겼다. int bandwidth = 2; StringBuilder builder = new StringBuilder(); builder.append("BWLIMIT=").append(bandwidth * 1073741824); 넣고나니 생각하지 못한 마이너스 값이 들어가 있다. -2147483648 에 연산 값을 넣어주는 게 아니고 바로 연산만 하면 되니까 생각하고 가장 기초적인 걸 간과했다. 이런 실수를 하다니; 변수 따위랑 상관없이, 시에는 자료형 변환에 주의하여야 한다. bandwidth는 int 형인데 long 형과의 연산 결과값이 int의 크기를 벗어났다. 당연히 오버플로우가 발생한다...
html에서 ${}을 사용해서 config 파일에 있는 값을 불러오길래 찾아봤더니, servlet-context.xml에서 해당 설정이 되어 있는 걸 발견하고 방법을 찾아보았다. PropertyPlaceholderConfigurer을 사용해서 설정 가능하다. location 프로퍼티의 값에 콤마나 공백으로 구분된 properties 파일 목록을 넣고, 파일에 포함된 프로퍼티의 값은 ${프로퍼티 이름} 형식으로 사용 가능하다. 한 개 이상의 properties 파일을 불러와야할 때는 리스트로 묶어서 호출 가능하다. 아래 예제는 실제로 우리 소스에 구현되어 있는 내용이다. classpath:/config/config-common.properties classpath:/config/config-#{system..