본문 바로가기
728x90
반응형

백엔드19

[Spring Boot] 예외 처리 방법 프로젝트를 진행하던 중 예외처리를 해야되는 상황이 놓였다. 각 상황별로 에러코드, 메세지를 전부 다루어야 했다. 좀 효율적인 설계를 위해 자바에서 하는 예외처리 방법을  살펴봤다. 1. Controller 레벨 예외 처리 (@ExceptionHandler)특정 컨트롤러에서 발생하는 예외를 개별적으로 처리하는 방법입니다.@RestControllerpublic class MyController { @GetMapping("/example") public String example() { throw new IllegalArgumentException("잘못된 요청입니다."); } @ExceptionHandler(IllegalArgumentException.class) pu.. 2024. 9. 25.
[Spring Boot] Jacoco - 코드 커버리지 벡엔드 영상이나 프로젝트 등을 보면 자주 등장하는 코드 커버리지를 80% 이상을 ~~ 이런 말이 보통 자주 나오게 된다. 이런 상황에서 코드 커버리지가 정확히 무엇인지 파악하고 Jacoco를 적용하는 시간을 가져보자. 일단 코드 커버리지란? 테스트에서 얼마나 많은 코드가 실제로 테스트되었는지를 측정하는 지표이다. 이를 통해 테스트가 소스 코드의 어느 부분을 검증하고 있는지, 어떤 부분이 테스트되지 않았는지를 파악할 수 있고 보통 4가지 측면에서 측정이 된다.  라인 커버리지: 소스 코드에서 각 줄이 테스트를 거쳤는지 측정.분기 커버리지: if, else와 같은 조건문에서 모든 분기가 테스트되었는지 측정.메소드 커버리지: 메소드 단위로 테스트가 수행되었는지 측정.클래스 커버리지: 클래스 단위로 테스트가 수.. 2024. 9. 8.
[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
반응형