예를 들어, 넷플릭스 서비스를 신청한 고객이 있다. 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의 크기를 벗어났다. 당연히 오버플로우가 발생한다...