반응형
ArgumentCaptor란?ArgumentCaptor는 Mockito 프레임워크에서 클래스로, Mock 객체의 메소드가 호출될 때 전달되는 인자를 이름 그대로 "캡처"하고 검증하는 데 사용된다.ArgumentCaptor는 복잡한 객체나 람다 함수와 같은 인자를 검증할 때 매우 유용하게 사용할 수 있다. ArgumentCaptor Mokito 공식 문서https://site.mockito.org/javadoc/current/org/mockito/ArgumentCaptor.html ArgumentCaptor (Mockito 2.2.7 API)Use it to capture argument values for further assertions. Mockito verifies argument values i..
이번 프로젝트에서 민감한 설정(DB 계정, 비밀번호 등)을 private 레포지토리에 저장하고 이 레포지토리를 서브모듈로 사용해 관리하고 있었다.하지만 서브모듈을 사용하는데에 다음과 같은 많은 번거로움이 있었다.서브모듈을 포함하고 있는 부모 레포지토리는 서브모듈로 적용한 레포지토리의 커밋 내역을 참조하고 있기 때문에 서브모듈에 수정사항이 생겼다면 꼭 서브모듈 먼저 push 후 메인 프로젝트를 push 하여야 한다.서브모듈로 적용한 레포지토리에 변경사항이 부모 레포지토리에 바로 반영되지 않으므로 서브모듈을 사용하는 프로젝트를 관리할 때 서브모듈의 상태를 항상 확인하고 변경사항이 있다면 update 해주어야만 반영된다.이러한 주의점들을 지켜주지 않으면 프로젝트를 진행하면서 서브모듈의 이전 커밋 내역을 들고와..
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] 스프링 테스트 어노테이션..