본문 바로가기
반응형

전체 글79

코틀린으로 Functional 하게 테스트 코드 짜기 예제소스는 깃허브에 있습니다. 코틀린은 자바보다 함수를 다루기 편하다. 함수도 1급 시민으로 다루기 때문에 인자로 함수를 넘기는 방식이 매우 간편해졌다. 그래서 자바에서 코틀린으로 넘어간 후에 코드 스타일이 많이 달라졌는데, 이번에 테스트 코드를 짜면서 함수를 적극적으로 활용해본 사례를 소개해볼까 한다. 테스트 전후에 특정 로직 실행하기 테스트를 짤 때 가끔 LocalDateTime.now() 과 같은 전역 함수들을 제어하고 싶은 경우가 있는데 코틀린의 mockk 는 간편하게 static mock 방식을 지원해준다. gradle.kts testImplementation("io.mockk:mockk:1.10.3") @Test fun `static now test`() { val now = LocalDate.. 2021. 8. 13.
스프링에서 다중 데이터소스 사용하기 예제소스는 깃허브에 있습니다. 스프링을 첨 공부할 때는 스프링 부트 설정으로 데이터 소스를 쉽게 빈으로 등록해서 사용한다. application.yml 에 url, host, port, id, pw 등 만 입력하면 되기 때문이다. 실제 회사 환경에서는 스프링부트의 컨벤셔널한 설정을 하기보다 데이터 소스를 직접 여러개 설정해야 할 상황들이 있다. 예를 들어 1. CUD 인 경우는 master, R 인 경우는 slave db 를 바라봐야 하는 경우 (이건 꼭 코드레벨에서 해야만 하는 것은 아닌듯하다.. db 클러스터 구성을 어떻게 하냐에 따라..) 2. 특정 path나 ID, 도메인 기반으로 데이터베이스를 다르게 가져가야 하는 경우 3. 조회하는 데이터의 날짜를 기준으로 db를 다르게 가져가야 하는 경우 등.. 2021. 8. 9.
gmail smtp 사용해서 스프링으로 메일 보내기 예제소스는 깃허브에 있습니다. 1. 이메일을 보내는 Gmail 의 2단계 인증 진행 구글 계정의 보안 설정 접속 후 2단계 인증 진행 https://myaccount.google.com/u/2/security 2단계 인증이 완료되면 아래와 같이 설정했다는 안내가 나온다. 2. 앱 비밀번호 설정 앱설정 -> 메일 기타 설정 -> 기타(맞춤 이름) 입력 적절히 앱 이름을 입력하고 생성을 누르면 아래와 같이 비밀번호가 제공된다. 3. 스프링 부트 설정 스프링 부트에 이메일 모듈을 추가한다. implementation 'org.springframework.boot:spring-boot-starter-mail' application.yml 에 Gmail smtp 설정을 추가한다. 이때 username, passw.. 2021. 8. 5.
Adyen 문서로 살펴보는 결제 API 의 멱등성(Idempotency) 먼저 멱등성의 개념을 알아볼 필요가 있다. https://developer.mozilla.org/ko/docs/Glossary/Idempotent 멱등성 - 용어 사전 | MDN 동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성을 가졌다고 말합니다. 다른 말로는, 멱등성 메 developer.mozilla.org 발췌 동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성을 가졌다고 말합니다. 보통 Http 메서드의 GET, POST, PUT, HEAD, DELETE 중 POST를 제외한 GET, HEAD, PU.. 2021. 8. 5.
반응형