본문 바로가기

Spring3

[MySQL]동시성 제어와 낙관적 락, 비관적 더보기회사 프로젝트 진행 중에 예약 시스템을 개발하게 되었다. 관리자에서 설정해놓은 숫자 만큼 예약이 되는 구조(선착순) 구조 였는데 서버가 이중화되어있어서 그런건지 예약 전에 Validation 비지니스 로직을 추가해도 밀리초까지 동일하게 들어오는 예약들의 오버부킹 현상이 발생했다. 동시성 제어를 위해 여러가지 시도해보았는데 결국 비관적 락으로 해결했는데. 공부한 내용을 적어보려고 한다. 동시성 제어를 위해 synchronized 와 데이터베이스(DB)의 락(비관적 락과 낙관적 락)의 활용, 각 방법의 장단점을 정리해보겠다.1. synchronized 이용장점Java 내부에서 제공하는 키워드로 사용이 간편.하나의 스레드만이 특정 자원에 접근 가능하게 하여, 데이터의 일관성을 유지단점멀티 프로세스 환경에.. 2024. 4. 25.
[Spring]Quartz 로 scheduler구현해보기 이벤트 기간이 지난 상품들을 등록대기 상태로 바꾸는 기능을 추가해야 했습니다. 스케줄러를 해본 적이 없어서 사용자가 상품페이지로 들어갈 때마다 이벤트 날짜를 체크해서 update하는 방법도 생각했었지만, 그건 좀 아닌 거 같아서 scheduler를 구현하기로 했습니다. Spring에서 Spring Scheduler와 Spring Quartz라는 2가지 방식으로 제공됩니다. 저는 Quartz 방법을 사용하기로 했습니다. 1. Quartz라이브러리 추가 pom.xml org.quartz-scheduler quartz 2.3.0 slf4j-api org.slf4j org.quartz-scheduler quartz-jobs 2.3.0 2.Service 설정 GoodsEventSchdule.java @Servic.. 2021. 4. 9.
[eGovFramework] 폼 검증(Form validation)하기 유지보수 업무 중 컨텐츠 등록에서 Validation체크를 하나 더 추가해달라는 요청이 들어와 전자정부프레임워크의 폼 검증을 검색하여 알아보았다. Validation Bean설정 처음 Validation기능을 쓰기 위해 bean을 추가해 줘야 한다. 1 2 3 4 5 6 7 8 9 10 11 12 classpath:/egovframework/validator/validator-rules.xml classpath:/egovframework/validator/com/**/*.xml Colored by Color Scripter cs DefaultValidatorFactory는 사용되는 모든 규칙을 가지고 있는 validator-rules.xml 파일과 입력폼에서 규칙이 어떻게 적용되는지 정보를 가지고 있는 .. 2020. 6. 15.