분류 전체보기
-
[MySQL] DB에 이상한 데이터가 있어요! (MySQL Strict mode)DBMS/MySQL 2023. 10. 2. 18:02
발단 데이터 중에 누가봐도 이상한게 있었다. 테스트 데이터겠지, 그 때 어플리케이션 코드가 이상했겠지로는 설명이 안되는 최신데이터로 말이다. MySQL Strict Mode MySQL 5.7 이상 버전들은 Strict Mode 가 기본설정이지만, 그 이하 버전들은 Strict Mode 가 꺼져있다. Strict Mode 가 꺼져있다면 에러가 나야 할 쿼리들이 에러 없이 실행된다. varchar(4) 로 설정했지만 10글자의 String 을 INSERT 문으로 작성하여도 성공적으로 실행된다. 아래 포스팅에 잘 설명되어 있으니 참고하자. MySQL Strict mode 끄기/켜기 MySQL 5.7 부터는 STRICT_MODE 가 기본 설정이라고 하니 별도의 설정 작업이 필요없다. www.lesstif.com..
-
[테스트코드] Test Fixture 로 *.sql 파일을 사용해도 될까?Back End/테스트코드 2023. 10. 2. 17:12
Test Fixture 세팅 회사에서 레거시 SSR 프로젝트를 FE/BE 가 각각 작업할 수 있도록 분리한적이 있었다. 해야할 일이 너무나도 많았다. View 에서 필요한 API 들의 목록을 정리 및 새롭게 작성 언어를 Java 에서 Kotlin 으로 변경 Spring Framework 5 에서 Spring Boot 2.7.3 으로 변경 JPA, Security 환경 세팅 모든 API 에 대한 독립 인수테스트 작성 코드 리팩토링 대충 위와 같은데, Kotlin 을 처음 다뤄보던 시기라 환경설정부터 Java 와 다르게 동작하는 경우가 잦았다. 시간의 압박때문에 타협을 본 것 중 하나가 Test Fixture 를 *.sql 파일을 이용하여 작성하였다는 것이다. @Sql( value = [ "classpath..
-
[MySQL] view 테이블 생성시 Access denied; you need (at least one of) the SUPER or SET_USER_ID privilege(s) for this operationDBMS/MySQL 2023. 10. 2. 15:56
원인 view, function 등을 생성할 때 definer 를 지정해주지 않으면 접속한 계정으로 definer 가 설정 됨 해결 create definer 구문을 사용하여 생성 create definer = my_account@`%` view v_user_product_info as (select ...) Reference ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER or SET_USER_ID privilege(s) for this operation MySQL 관련 문의사항이 들어온 내용을 정리 한 내용입니다. 내용은 이렇습니다. 유저가 함수를 생성하는데 에러가 발생한다는 것입니다. 확인한 에러는 아래와 같습니다. E..
-
[Kotlin] Runtime 에 타입정보를 알아내는 방법프로그래밍 언어/Kotlin 2023. 5. 15. 20:37
Runtime 에 타입정보를 알아내는 법 (순수 Generic) fun printGenerics(value: T, classType: Class) { when (classType) { String::class.java -> { println("String : $value") } Int::class.java -> { println("Int : $value") } } } printGenerics("print generics function", String::class.java) printGenerics(1000, Int::class.java) Runtime 에 타입정보를 알아내는 법 (inline function) inline fun printGenerics(value: T) { when (T::class)..
-
[MySQL] 날짜 차이 시, 분, 초로 가져오기DBMS/MySQL 2023. 5. 9. 19:28
단순 개인 색인용 포스팅입니다. TIMESTAMPDIFF SELECT ABS(TIMESTAMPDIFF(minute, temp.lag_reg_time , temp.reg_date)) as diff Reference [MySQL] 날짜 차이 가져오기 (DATEDIFF, TIMESTAMPDIFF 함수) ▶MySQL 날짜 차이 가져오기 (DATEDIFF, TIMESTAMPDIFF 함수) ▶설명 MySQL에서 두 날짜간의 차이를 가져올 때 사용하는 함수가 두 가지가 있습니다. 단순히 일 차이를 가져올 때 사용하는 것이 DATEDIFF 함수 extbrain.tistory.com