일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- kotest testcontainers
- 낙관적 락 롤백
- Invalid property 'principal.username' of bean class
- java
- spring DI
- jpa
- @transactional
- RefreshToken
- S3
- 형상관리
- 소수찾기 java
- DI
- netty
- 낙관적 락 재시도
- springsecurity
- 알고리즘
- ObjectOptimisticLockingFailureException
- 백준
- TestContainers
- ObjectOptimisticLockingFailureException 처리
- 멀티모듈 테스트컨테이너
- 우아한 테크러닝
- OptimisticLock
- Spring Cloud Gateway
- aop
- interface
- redissonlock aop
- multimodule testcontainers
- AccessToken
- spring aop
- Today
- Total
목록분류 전체보기 (66)
조급하면 모래성이 될뿐
결론 - 동시에 처리 가능한 스레드 풀 개수를 조절하여 리소스(CPU) 사용률을 관리하자 - 큰 파일 업로드 시 메인 메모리에 대한 걱정은 거의 없다. 임시 디스크에 대한 경로를 직접 설정해서 혹시 남아있는 경우가 있다면 직접 관리하자. - 네트워크 대역폭을 넓히거나 하드웨어성능을 높여보자. (가능하다면) 업로드 로직 application.yml spring.servlet.multipart.max-request-size: 3GB spring.servlet.multipart.max-filet-size: 3GB UploadService fun upload(multipartFile: MultipartFile) { val elapsedTime = measureTimeMillis { if (multipartFil..
1. 낙관적 락 방식을 통해 동시성 문제를 제어한다. 2. 버전 충돌로 인한 문제가 발생했을 때, 다시 로직을 시도한다. 낙관적 락(Optimistic Lock) 이란? - 코드 레벨에서 동시성 문제를 해결하는 방법이다. 간단하게 설명하면 버저닝을 통해서 문제를 해결한다. - 읽을 때 버전과, 변경할 때 버전이 다르면 예외가 발생한다. - DB 자체에 Lock을 걸게 되는 비관적 락(Pessimistic Lock) 방식보다 빠르다. - 그러나 Rollback 처리가 번거롭다. 스프링과 같이 트랜잭션 관리를 프레임워크가 처리한다면 비교적 신경 쓸 부분이 많이 줄어들지만, 그렇지 않은 경우에는 코드레벨에서 롤백에 대한 처리를 신경 써야 한다. 적용해 보기 - Jpa와 함께 낙관적 락을 사용해 보자 - 버저닝..
https://tech.kakaopay.com/post/overcome-spring-aop-with-kotlin/#overcome-with-kotlin--spring-context Kotlin으로 Spring AOP 극복하기! | 카카오페이 기술 블로그 Kotlin의 문법적 기능을 사용해서 Spring AOP 아쉬운 점을 극복한 경험을 공유합니다. tech.kakaopay.com 위 글을 읽고 프로젝트에 적용한 AOP 코드를 개선해보고 싶다는 생각이 들었다. 개선하고 싶은 코드는 동시성 처리를 위한 Redisson Lock 처리 코드이다. 정리 - 동시성 처리를 위해 적용한 AOP 코드를 KotlinAOP로 변경해 보았다. - 두 방식 모두 장, 단점이 있는 것 같다. - Spring AOP는 익숙하기 ..