Java25 [Spring Boot] 액추에이터 1. 액추에이터(Actuator)란? 스프링 공식 문서에서는 위와 같이 설명하고 있다. 즉, 스프링 부트 액추에이터는 HTTP 엔드포인트나 JMX를 사용해 애플리케이션을 관리하고 모니터링할 수 있는 기능을 제공한다. * JMX(Java Management Extensions) : 실행 중인 애플리케이션의 상태를 모니터링하고 설정을 변경할 수 있게 해주는 API 2. 액추에이터 사용을 위한 의존성 액추에이터 기능을 사용하려면 spring-boot-starter-actuator 모듈의 의존성을 추가해야 한다. 다음은 build.gradle 예시이다. implementation group: 'org.springframework.boot', name: 'spring-boot-starter-actuator' 3... 2023. 4. 21. [Spring Boot] 유효성 검사와 예외처리 1. 유효성 검사 1.1. 스프링 부트에서의 유효성 검사 먼저 유효성 검사를 위한 프레임워크가 없던 시절의 유효성 검사에 대해 살펴보면 몇가지 문제점이 있다. 계층별로 진행하는 유효성 검사는 검증 로직이 각 클래스별로 분산돼 있어 관리하기가 어렵고, 검증 로직에 중복이 많아 코드의 효율성이 떨어진다. 이 같은 문제를 해결하기 위해 자바 진영에서는 Bean Validation이라는 데이터 유효성 검사 프레임워크를 제공하기 시작했다. 이는 어노테이션을 통해 검증을 진행하여 개발자가 직접 검증 로직을 구현할 필요가 없게 되었다. 유효성 검사는 아래 이미지와 같이 각 계층으로 데이터가 넘어오는 시점에 해당 데이터에 대한 검사를 진행한다. 계층 간 데이터 전송에 대체로 DTO를 사용하고 있기 때문에 DTO를 대상.. 2023. 4. 14. [Spring Boot] 연관관계 매핑 1. 객체 연관관계 vs 테이블 연관관계 객체 객체는 참조를 통해 연관관계를 맺는다. 참조를 통한 연관관계는 단방향이다. 즉, 객체에서의 양방향은 두 엔티티가 서로 단방향 연관관계를 갖고 있는 것이다. 테이블 테이블은 외래키로 연관관계를 맺는다. 외래키를 통한 연관관계는 언제나 양방향이다. 외래키가 있으면 해당 키를 중심으로 A JOIN B와 B JOIN A 모두 가능하기 때문이다. 2. 연관관계 매핑 종류 2. 1. 일대일(One To One) 매핑 2. 1. 1. 일대일 단방향 매핑 public class Member { ... @OneToOne @JoinColumn(name = "member_detail_id", referencedColumnName = "id") private MemberDetai.. 2023. 4. 9. [Spring Boot] 테스트 코드 작성 1. 테스트 코드를 작성하는 이유 개발 과정에서 문제를 미리 발견할 수 있다. 일부러 오류를 발생시켜 의도한대로 예외 처리가 수행되는지 확인 의도한 비즈니스 로직대로 결과값이 잘 나오는지 확인 리팩토링의 리스크가 줄어든다. 서비스 업데이트 과정에서 코드를 수정하면 그와 연관된 다른 코드에 영향을 주기 마련이다. 이때 작성되어 있는 테스트 코드를 실행해봄으로써 일련의 과정을 보다 수월하게 수행해볼 수 있다. 명세 문서로서 기능할 수 있다. 잘 작성된 테스트 코드를 보면 특정 로직에 어떤 값을 입력하면 어떤 값이 반환되는지를 이해할 수 있다. 이를 통해 코드 작성자의 의도를 다른 개발자가 이해하기 수월하게 만들 수 있다. 2. 단위 테스트와 통합 테스트 2. 1. 단위 테스트 일반적으로 메서드 단위의 테스트.. 2023. 3. 31. 이전 1 2 3 4 5 6 7 다음