본문 바로가기
반응형

spring boot4

[Spring Boot] mybatis update, delete 무한대기 spring boot에서 mybatis를 사용하고 있습니다. 다른 환경에서 똑같은 디비 저장소(도커 컨테이너)를 사용하고 있는데, 다른 환경에서 트랜잭션이 걸려있을 경우 mybatis는 트랜잭션이 완료될 때까지 무한 대기상태가 됩니다. ㅠㅠ 테스트를 하기 위해 더미 유저를 만들어서 실험해보았습니다. pk값이 701인 유저 정보가 있습니다. delete 직후 아직 DB에 반영되지 않았습니다. commit을 하지 않았을 경우 spring boot에서 해당 로직을 사용한다면 결괏값이 반환되지 않고 무한 대기상태로 계속 있게 됩니다. 다른 환경에서 commit을 하여 디비에 반영하게 된 뒤에 로직이 정상적으로 실행되게 됩니다. 만약 쿼리에서 로직이 넘어가지 않는다면, 다른 환경에서 트랜잭션이 걸려있을 수 있으니.. 2022. 2. 21.
[Spring Boot] 테스트 커버리지 툴 도입(JaCoCo) 회사 동기들과 프로젝트를 진행 중에 테스트 커버리지 툴을 도입하자고 설득하여 도입했습니다. 간단히 사용법을 정리해보려고 합니다. build.gradle에 의존성을 추가해줍니다. plugins { id 'org.springframework.boot' version '2.6.2' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id 'jacoco' } jacocoTestCoverageVerification { violationRules { rule { // 'element'가 없으면 프로젝트의 전체 파일을 합친 값을 기준으로 한다. limit { // 'counter'를 지정하지 않으면 default는 'INSTRUCTION' .. 2022. 2. 17.
@validation 이용해서 값 검증하기 + 예외처리까지!🔍 로그인 검증 부분을 어떻게 설계할까 고민을 많이 했습니다. 하드코딩과 @validation 두 가지를 고려했습니다. 1. 하드코딩 하드코딩으로 만든다면 각각의 계층에서 연속적으로 검증을 해줘야 하는 번거로움이 있습니다. 또한 검증 로직이 변경될 경우 각 계층을 같이 봐야하는 어려움이 있습니다. 2.Bean Validation java는 Bean Validation라는 유효성검사 프레임워크를 지원하고 있습니다. 각 계층에서 검증하는 것이 아닌 빈 어노테이션을 통해 공통적으로 필요한 부분만 검증할 수 있게 되었습니다. 시작 gradle 설정 dependencies { implementation 'org.springframework.boot:spring-boot-starter-validation' } 의존성을.. 2022. 1. 30.
Spring Boot gradle 환경에서 logback을 적용해보자. 🔥 팀 프로젝트 진행 중에 로깅 관련돼서 도입하려고 했습니다. 고민했던 것이 log4j와 logback이었습니다. 결정적으로 logback을 선택했던 이유는 기본적으로 스프링 부트는 SLF4 J(Simple Logging Facade for Java)를 이용하여 로그를 관리합니다. 아래는 log4j와 logback의 밴치마킹 비교글입니다. https://www.loggly.com/blog/benchmarking-java-logging-frameworks/ Benchmarking Java logging frameworks | Loggly Two years ago, Loggly ran a series of performance tests on some of the most popular Java logging .. 2022. 1. 27.
반응형