자바5 동시성 이슈를 해결하기 위한 Redisson 분산락 알아보기(1) 동시성 이슈를 해결하기 위한 방법으로는 여러가지 방법이 있지만 오늘은 그중 Redisson에서 제공하는 분산락을 통해 동시성을 제어하는 방법에 대해서 정리한다. 내용은 1편과 2편으로 나눠 1편에서는 동시성 이슈의 관한 이론과 Redisson의 이론적인 부분을 정리하고 2편에서는 코드를 통해서 동시성 이슈에 대한 테스트를 진행한 내용에 대해서 정리한다. 동시성 이슈를 해결하기 위한 Redisson 분산락 알아보기(1) 동시성 이슈? Redisson에 대해서 알아보기 위해 먼저 동시성 이슈가 무엇인지에 대해서 알아본다. 동시성 이슈란, 동일한 자원에 대해 둘 이상의 스레드가 동시에 제어할 때 나타나는 문제이다. 이해가 쉽도록 다음 코드로 예를 들어본다. 다음과 같은 서비스 로직이 있다. @SpringBoo.. 2023. 3. 27. 자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (9) 값 타입 JPA에서 다루는 값 타입에 대한 개념을 정리한다. 자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (9) 값 타입 값 타입 9.1 기본값 타입 Member -> id -> 식별자 값 // name, age 속성은 식별자 값도 없고 생명주기도 Member 엔티티에 의존함. 엔티티 인스턴스를 제거하면 name, age 값도 제거되므로 값 타입은 공유하면 안됨 9.2 임베디드 타입 (복합 값 타입) JPA에서 임베디드 타입이란 새로운 값 타입을 직접 정의해서 사용하는 것 직접 정의한 임베디드 타입도 int, String과 같이 값 타입이다. 회원 엔티티 정보에서 예를들어 근무 시작일과 우편번호는 서로 아무 관련이 없음 이럴때 @Embedded 을 사용하여 더욱 의미있고 응집력 있게 변경 할 수 있다... 2022. 9. 18. Kotlin - 코틀린의 Unit 타입과 자바의 void 타입 차이 정리 들어가며 자바에서 사용하였던 void와 코틀린에서의 Unit의 차이점을 알아보고 추가적으로 Nothing에 대해서도 정리한다. void와 Void 자바의 void는 알다시피 반환 타입이 없을 때 사용한다. 우리가 잘 아는 main 함수의 반환 타입도 void로 되어 있다. 추가적으로 Void로 앞에 대문자로 되어 있는 것은 void와 다르다. int와 Integer가 같지만 다른것과 마찬가지다. void는 기본형이고 Void는 참조형이다. 제네릭 사용 시 반환 타입을 명시해야하는데 이때 기본형인 void를 사용할 수 없고 Void를 사용해야한다. 의미는 void와 똑같고, 인스턴스 생성 불가 또는 참조값이 존재하지 않음을 나타낸다. Unit 코틀린에서 int 를 구분하지 않는 것과 같이 void도 두가지.. 2022. 8. 24. js - click & dbclick 동시 사용 방법 js - click & dbclick 동시 사용 방법 이벤트를 적용하다보면 같은 대상에 클릭과 더블클릭 이벤트를 적용해야되는 일이 생긴다. 이때 $('#id').click 과 $('#id').dbclick 과 같이 이벤트를 따로 선언해서 사용하면 더블클릭 이벤트가 처리가 안된다. 해결방법은 on() 함수와 타이머관련 함수들을 이용하여 해결이 가능하다. Code 코드는 다음과 같다. 설명 먼저 클릭할 대상을 만든다. 제이쿼리를 이용하여 클릭 이벤트와 더블클릭 이벤트를 선언해준다. 클릭 이벤트 발생시 클릭카운트를 증가시켜 클릭 한번시 if문이 실행되며 setTimeout 함수를 통해서 Click 함수가 실행 후 다시 카운트를 0 으로 만든다. 더블클릭 이벤트 발생시 기존 더블클릭 이벤트는 preventDef.. 2021. 8. 26. Include HTML을 이용한 html 파일 분리하기 들어가며 웹페이지 구조를 잡다보면 중복적으로 들어가게 되는 코드들이 존재하게 된다. 예를들어 상단에 헤더나 하단의 푸터같은 경우를 예로 들 수 있다. 기존 스프링에서 했을때는 thymleaf를 이용하여 이 작업을 하였는데 이번에 javascript만으로도 분리를 하는 방법을 알게 되어 정리한다. includeHTML.js 해당 스크립트문을 통해서 include-html이 포함된 html 파일을 로드할 수 있다. function includeHTML(callback) { var z, i, elmnt, file, xhr; /*loop through a collection of all HTML elements:*/ z = document.getElementsByTagName("*"); for (i = 0; i.. 2021. 7. 21. 이전 1 다음