1. 개요데이터베이스에서 동시성 제어는 데이터의 정합성을 보장하는 데 필수적입니다. 특히, 여러 사용자가 동시에 데이터를 수정할 수 있는 환경에서는 적절한 격리 수준과 락킹 메커니즘이 필요합니다. 이번 글에서는 SELECT FOR UPDATE와 REPEATABLE_READ 격리 수준을 조합하여 안전하게 동시성을 제어하는 방법을 살펴보겠습니다. 2. REPEATABLE_READ 격리 수준 REPEATABLE_READ는 트랜잭션이 시작된 이후에 다른 트랜잭션이 데이터를 수정할 수 없도록 보장합니다.장점: 트랜잭션 내에서 동일한 쿼리를 여러 번 실행해도 항상 같은 결과를 반환합니다.단점: *Phantom Read 문제는 해결하지 못합니다. * Phantom Read의 정의Phantom Read는 한 트랜잭션..

전체 글
iframe을 이용해서 컨트롤러를 없애서 썸네일처럼 보이게 했더니 크기 조절이 안되서 다른 방법을 찾아야 했다. 결과 1. getVimeoLink(item) 메서드를 통해 동적으로 이미지 소스를 설정 2. Axios와 axiosJsonp 라이브러리를 사용하여 비동기적으로 데이터를 요청 item의 thumbnailUrl을 동적으로 설정 async getVimeoLink(item) { const regex = /vimeo\.com\/(\d+)/; const match = item.VIMEO_LINK.match(regex); if (match) { const videoId = match[1]; const ajaxUrl = `http://vimeo.com/api/v2/video/${videoId}.json`; ..
과정 유튜브는 링크를 이용해서 썸네일 이미지를 가져오는 것이 가능하다. const link = 'https://youtu.be/Xj4YPgNJx20?si=YIoYW4KfLxXRqh16'; const regex = /https:\/\/youtu\.be\/([^?]+)\?si=([^&]+)/; const match = link.match(regex); if (match) { const videoId = match[1]; // videoId 추출 const embed = 'https://img.youtube.com/vi/' + videoId + '/mqdefault.jpg'; return embed; } 참고 : https://kangdanne.tistory.com/25 결과 vimeo는 링크를 이용해서 썸네..
1. 팝업창(데이터 있는 곳)에서 if문을 통해 데이터 넣기 if(typeof(accountCallbackFunction) == 'function'){ accountCallbackFunction(accountList); } 2. 데이터 가져와서 활용 function accountCallbackFunction(newList) { // 기존 데이터와 중복 검사 if(newList.length > 0) { newList.forEach(function (row) { if(existingDataList.length > 0) { existingDataList.forEach(function (row2) { if(row.IDX != row2.IDX){ accountIdxList.push(row.IDX); // 새로운 ..
결과 ajax를 이용해 전체데이터 조회해서 가져오기 var paramMap = {offset : 0, limit : 0} $.ajax({ url : '/scheduleGroup/read/list', method : 'post', contentType : 'application/json', data : JSON.stringify(paramMap), async: false, dataType : 'json', success : function(result){ if(result.rows != null){ var calendarGroupList = result.rows; var existingDataList = []; existingDataList.push(calendarGroupList); } } }) 과정 1..
이런식으로 c드라이브에 저장된 파일을 불러오기 결과 1. WebConfig.java : 요청 URL과 파일 주소 설정 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { String videoPath = "/test/**"; registry.addResourceHandler(videoPath) //요청 URL .addResourceLocations("file:///C:/test/"); //파일위치 } 2. SecurityConfig.java : 해당 URL에 대한 접근권한 허용 @Override protected void configure(HttpSecurity http) throws Exception { http ...