썸네일 logback + mybatis 사용시 불필요한 쿼리 로그 제외하기 pom.xml org.codehaus.janino janino 3.1.12 logback.xml %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n return message.contains("NOT_SQL_LOG"); NEUTRAL DENY ..
썸네일 모바일 하이브리드 서비스에서 키보드 감지하기. appKeyboardState.js(function () { const VIEWPORT_VS_SCREEN_HEIGHT_RATIO = 0.75 const HEIGHT_DELTA_THRESHOLD = 100 let initialInnerHeight = window.innerHeight let keyboardVisible = false let listenersAttached = false function detectKeyboardState() { const visualHeight = window.visualViewport?.height * window.visualViewport?.scale || window.innerHeight const screenH..
썸네일 Spring Boot에서 세션 ID로 사용자 요청 추적하기 (Logback MDC 활용) Logback MDC + Spring Filter 운영 업무를 보다보면 로그를 분석할 일이 있는데 많은 요청들중에 특정 한 사람의 요청을 추적해야 하는 경우가 종종 있다. 어떤 방법이 있을까하여 찾아봤고 아래 방법으로 어느정도 해결이 가능할거 같단 생각이 든다.MDC란?MDC(Mapped Diagnostic Context)는 Logback에서 제공하는 기능으로, 쓰레드 로컬 저장소를 사용해 로그에 컨텍스트 정보를 추가할 수 있게 해준다.구현 방법1단계: Filter 구현import jakarta.servlet.*;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpSession;import org.slf4j.MDC;..
썸네일 연휴 끝- 길었던 연휴가 끝나간다…특별히 뭘 한건 아니지만…연휴의 끝은 언제나 그렇듯 아쉬움이 남는거같다…
썸네일 Thymeleaf + VersionResourceResolver를 이용하여 자바스크립트 캐시 문제 해결하기... 개발을 하다보면 자바스크립트 파일을 빈번하게 수정하게 된다. 그렇다 보니 브라우저에서 캐시를 하게되면 수정된 사항이 반영이 되지 않는 문제가 발생하곤 한다. 이를 해결하기위해 html파일에서 자바스크립트 파일을 임포트할때 아래와 같이 처리하곤 했다.   이렇게 처리하면 브라우저에서 자바스크립트가 캐시되는걸 방지할 수 있지만 파일이 수정될때마다 수동으로 버전을 변경해줘야 하는 번거로움이 발생한다. 이를 효율적으로 처리할 수 있는 방법에 대해서 찾아보다가 VersionResourceResolver라는것을 알게 되었다. 방법은 다음과 같다. WebMvcConfigurer을 구현할때 addResourceHandlers 메서드에 자바스크립트 리소스 경로를 지정해주고addResolver(new VersionReso..
썸네일 mysql 환경에서 시퀀스 사용하기 시퀀스를 사용하는 방법 중에 auto increment 가 존재하지만 유니크한 값을 사용해야 할 때 애매한 순간이 올 때가 있다.이를테면 날짜별 주문 번호를 중복되지 않게 사용해야 할 때이다.이때 오라클과 비슷한 방법으로 시퀀스를 생성하여 사용할 수 있는 방법이 있다.1. 시퀀스를 관리할 테이블 생성DELIMITER //CREATE TABLE `SEQUENCES` (`NAME` VARCHAR(50) NOT NULL COLLATE 'utf8mb4_unicode_ci',`CURRVAL` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',`UPD_DT` DATETIME NOT NULL DEFAULT NOW())COLLATE='utf8mb4_unicode_ci'ENGINE=InnoDB;D..