본문 바로가기
728x90
반응형

분류 전체보기143

[Spring Boot] Jacoco - 코드 커버리지 벡엔드 영상이나 프로젝트 등을 보면 자주 등장하는 코드 커버리지를 80% 이상을 ~~ 이런 말이 보통 자주 나오게 된다. 이런 상황에서 코드 커버리지가 정확히 무엇인지 파악하고 Jacoco를 적용하는 시간을 가져보자. 일단 코드 커버리지란? 테스트에서 얼마나 많은 코드가 실제로 테스트되었는지를 측정하는 지표이다. 이를 통해 테스트가 소스 코드의 어느 부분을 검증하고 있는지, 어떤 부분이 테스트되지 않았는지를 파악할 수 있고 보통 4가지 측면에서 측정이 된다.  라인 커버리지: 소스 코드에서 각 줄이 테스트를 거쳤는지 측정.분기 커버리지: if, else와 같은 조건문에서 모든 분기가 테스트되었는지 측정.메소드 커버리지: 메소드 단위로 테스트가 수행되었는지 측정.클래스 커버리지: 클래스 단위로 테스트가 수.. 2024. 9. 8.
[CS] DB - 트랜잭션과 격리성 DB를 공부하던 중 트랜잭션을 정확히 모르겠어서 공부하고 정리하고자 한다. 우선 트랜잭션을 왜 알아야하나? 며칠 전 내가 겪었던 일인데 맥도날드 앱에서 햄버거를 결제하던 중 네트워크 문제가 발생해서 카카오페이에서 돈만 빠져나가고 햄버거가 처리 안된 경우를 겪었었다. 여기서 만약 돈만 빠져나가고 햄버거가 처리가 안된다면 엄청난 문제가 발생할 것이다. 30분정도 지나니 트랜잭션 처리(아마)로 카카오페이에 돈이 다시 입금되는 것을 볼 수 있었다. 이러한 문제를 해결하기 위해 All Or Nothing 전략을 사용한다. 이 전략은 말 그대로 전부하거나 나무것도 하지 않거나 둘 중 하나만 하는 전략이다. 만약 중간에 에러가 발생하면 Rollback으로 Nothing을 취하게 된다. 트랜잭션(Transaction).. 2024. 9. 5.
[Spring Boot] JPA 값 타입 JPA의 데이터 타입은  엔티티 타입값 타입 으로 구분 할 있다.여기서 엔티티 타입은우리가 @Entity를 붙이는 객체를 말하는 거고 값 타입은 자바 기본 타입이나 객체를 말한다.1. 값 타입의 종류JPA에서 값 타입은 크게 세 가지로 나눌 수 있습니다.기본 값 타입(Basic Value Type)JPA에서 제공하는 기본적인 값 타입으로, Java의 기본 데이터 타입(int, long, double, boolean 등)과 래퍼 클래스(Integer, Long, Double, Boolean 등), 그리고 String, Date, BigDecimal, BigInteger 같은 타입들이 이에 해당합니다.별도의 매핑 없이 엔티티의 속성으로 사용 가능하며, 데이터베이스 테이블의 컬럼과 직접적으로 매핑됩니다.임베디.. 2024. 9. 2.
[Spring Boot] JPA 영속성 전이, 고아 객체 영속성 전이(Cascade)란?영속성 전이는 특정 엔티티의 상태가 변경될 때, 그와 연관된 다른 엔티티도 자동으로 동일한 상태 변화를 적용받도록 하는 것입니다. 이를 통해 코드의 간결성을 유지하고, 엔티티 간의 관계를 쉽게 관리할 수 있습니다. 말 그대로 종속, 파도처럼 같이 작용하는 것이라고 이해하면 편할 것 같습니다. Cascade 유형JPA에서 지원하는 CascadeType의 유형은 다음과 같습니다:CascadeType.PERSIST부모 엔티티가 저장(Persist)될 때, 연관된 자식 엔티티도 함께 저장됩니다.예를 들어, 부모 엔티티를 persist() 하면, CascadeType.PERSIST가 적용된 자식 엔티티도 자동으로 persist() 됩니다.CascadeType.MERGE부모 엔티티가 .. 2024. 9. 1.
728x90
반응형