반응형
java나 hibernate에서 예외 검증을 위한 Validation(검증) 어노테이션들을 제공한다.아래는 자바에서 제공하는 검증 어노테이션들이다.많은 어노테이션들을 제공하지만 우리가 원하는 검증을 위한 어노테이션이 없을 수도 있다.이를 위해 커스텀 검증 어노테이션 만드는 법을 알아보자.특정 클래스에만 적용되는 커스텀 Validator 상황클라이언트 요청을 받을 때 시작 날짜, 종료 날짜를 받아 기간이 30일 내의 요청인지 확인하는 상황.커스텀 어노테이션 생성@Constraint(validatedBy = DateRangeValidator.class) // 필드 값을 검증할 검증 클래스를 지정@Target(ElementType.TYPE) // 어노테이션을 적용할 수 있는 위치 설정 (TYPE : 클래스에 ..
현재 진행하고 있는 "원만한 친구 사이를 위한 약속 지킴이 서비스" 오디(ody) 프로젝트는친구들이 약속에 지각하지 않도록 돕기 위해 친구들의 출발 위치와 만나기로 약속한 장소까지 걸리는 소요 시간을 외부 API를이용하여 계산해 출발 시간 알림을 보내준다. 알림의 경우에는 안드로이드에 푸쉬 알림을 보내기 위해 FCM을 사용한다.(FCM 연결 및 알림 전송에 대한 부분은 아래 포스팅에서 설명한다.)2024.07.20 - [◼ JAVA/Spring] - [Spring] Firebase Cloud Messaging(FCM)으로 푸시 알림 전송 기능 구현 그렇다면 스프링에서 사용자별 특정 시간에 FCM에 알림을 전송하기 위해서는 어떻게 해야 할까?정적 스케줄링과 동적 스케줄링이란?그렇다면 정적, 동적 스케줄링..
이번에 우테코 프로젝트로 "원만한 친구 사이를 위한 약속 지킴이 서비스" 오디(Ody)를 안드로이드 애플리케이션으로 만들게 되면서MVP 기능으로 약속에 늦지 않도록 하기 위한 출발 시간 푸시 알림 기능을 구현하게 되었다. 안드로이드 푸시 알림을 구현하는데에 여러 대안이 있었다.Amazon SNSFirebase Cloud Messaging(FCM) 오디 팀은 FCM을 선택하게 되었는데 이유를 간단하게 설명하자면 다음과 같다.FCM 선정 이유Amazon SNS는 푸시 알림 외에도 SMS, 이메일 등 다양한 메시징 옵션을 제공하지만FCM에 비해 push 알림을 구현할 참고 자료가 상당히 부족했다.무엇보다 유료이기도 했고, 안드로이드 측에서는 FCM을 학습해와서익숙한 기술 + 무료 라는 장점으로 FCM을 선정..
통합 테스트와 슬라이스 테스트 비교이번에 통합 테스트와 슬라이스 테스트를 둘 다 적용해보며 직접 느낀점들을 작성하고자 한다.이 글을 읽기 전에 주의할점은 계층별 슬라이스 테스트가 작성되어 있고, 통합 테스트까지 작성되어 있는 것과는 상관없다.(테스트도 비용이기에 실제로도 규모가 큰 회사의 서비스에서 이렇게 까지 빡세게 작성할지는 모르겠지만...)현재 프로젝트가 슬라이스 테스트로만 이뤄졌는지와 통합 테스트로만 이뤄졌는지에 대한 비교이다. 통합 테스트와 슬라이스 테스트가 무엇인지 알아보고 싶다면 아래 포스팅을 보고 오는 것을 추천한다.2024.04.25 - [◼ JAVA/Spring] - [Spring] 스프링 테스트 어노테이션 알아보기 (feat. 슬라이스 테스트) [Spring] 스프링 테스트 어노테이션..
웹 애플리케이션은 Controller, Service, Repository 계층이 있고 각 계층 별로 역할이 있다.스프링 테스트는 일전에 작성했던 경험이 없어 @SpringBootTest 어노테이션 밖에 몰랐는데Controller, Service, Repository 계층을 테스트하는 상황에 매번 사용하지 모든 빈들을 등록하고 내장된 톰캣까지 실행해야 할까?라는 생각이 들었고 이러한 문제를 해결할 수 있는 방법을 찾아 봤다.그 결과 스프링은 이러한 문제를 해결할 수 있도록 도와주는"레이어 별로 잘라서 특정 레이어에 대해서 Bean을 최소한으로 등록해 사용할 수 있는 테스트" 어노테이션을 제공하고 있었다.그리고 이러한 테스트를 슬라이스 테스트라고 한다. 슬라이스 테스트를 적용하는 것이 무조건 좋은 것은 아..