본문 바로가기
반응형

Spring3

11. Jacoco + Gradle.kts 로 테스트 커버리지 확인하기 (feat. SonarQube) Jacoco 는 테스트 커버리지를 확인할 수 있는 라이브러리입니다. 프로젝트 내 작성되어 있는 테스트가 전체 코드의 몇 % 정도를 커버하고 있는지 확인할 수 있습니다. HTML, CSV, XML 등의 형태로 리포트를 만들 수 있으며 SonarQube 등 정적 분석 툴에서 활용할 수도 있습니다. 이번 시간에는 Gradle 프로젝트에서 Jacoco 를 설정하여 테스트 커버리지를 확인하고, 이를 기반으로 SonarQube 에서 정적 분석을 해보겠습니다. Pull Request: https://github.com/kdohyeon/crypto-labs/pull/20 Jacoco 설정하기 Gradle 설정에 jacoco 플러그인을 추가한다. JacocoReport 와 JacocoCoverageVerification.. 2023. 4. 7.
[스프링] 프로그래밍 방식의 트랜잭션 관리 방법 [스프링] @Transactional 에서는 트랜잭션과 스프링에서의 @Transactional 어노테이션에 대해 알아보았는데, 프로그래밍 방식의 트랜잭션도 함께 소개를 했었다. 이번에는 프로그래밍 방식의 트랜잭션에 집중해서 정리를 해보고자 한다. Programmatic Transaction 트랜잭션을 관리하기 위해 흔히 사용하는 @Transactional 어노테이션을 활용하지 않고, 코드 내에서 개발자가 직접 트랜잭션 범위를 설정하며 관리하는 방식을 의미한다. 의견이 다양하겠지만 개인적으로는 개발자에게 트랜잭션 범위를 직접 설정할 수 있도록 하여 자율성을 추구하고 @Transactional 어노테이션으로는 구현하기 어려운 (예: 동일 클래스 내 여러 메소드 간 호출에서 트랜잭션을 각각 적용하고 싶은 경우.. 2023. 2. 3.
[스프링] 트랜잭션과 스프링의 @Transactional 스프링에서 데이터베이스와 관련된 처리를 하는 작업을 진행하다 보면 @Transactional 어노테이션을 사용하게 된다. 한번 알아보도록 하자. 트랜잭션(transaction)이란? "Transaction" 는 사전적 의미로 "거래", "매매", "처리(과정)" 이라는 의미를 가지고 있다 (네이버 사전). 일반적인 "거래"를 생각해보면 내가 무언가를 얻기 위해서는 무언갈 주어야 한다. 예를 들어, 사과 하나를 사기 위해서는 일정 금액의 돈을 지불해야 한다. 돈은 지불하지 않은 상태에서 사과만 획득하고 거래를 마칠 수는 없다. A 가 돈을 지불하고, B 는 그 돈을 받고 A 에게 사과를 건내 준다 까지 성공적으로 완료되어야 "거래"가 성사된다. 데이터베이스에서도 트랜잭션은 데이터베이스와 관련된 하나의 논리.. 2023. 2. 2.
반응형