본문 바로가기

전체 글44

spring Mock Test 본 글에서는 spring Mock Test에 대해 다룹니다. spring에서 일반적으로 생성한 클래스들에 대해 테스트를 할때, 테스트 클래스위에 @SpringbootTest 어노테이션을 명시하여 통합테스트 합니다. 그런데, 통합테스트는 테스트가 필요한 클래스외에 나머지들도 전부 구동시키기 때문에, 테스트 속도가 매우 느려지는 단점이 있으며, 또한 테스트하려는 클래스외에 다른 클래스에서 에러가 발생했을때도 테스트 클래스를 실행할 수 없는 단점이 있습니다. 이러한 통합테스트의 단점을 해결하기 위해 단위 테스트가 필요할 때가 있는데, 이때 Mock test가 쓰입니다. 정확히는 단위테스트 중에서, 타 클래스 의존성 주입이 필요한 클래스의 테스트가 필요할때 사용할 수 있습니다. Controller -> Serv.. 2024. 3. 12.
spring QueryDSL 본 글에서는 QueryDSL 방식을 사용하여 RDB 데이터를 가져오는 select 부분만 구현해보려 합니다. 설정은 이전글을 참고해주세요. RDB Spring Data JPA방식, mybtis방식 CRUD 비교 RDB Spring Data JPA방식, mybatis방식 CRUD 비교 본 글에서는 Spring Data JPA와 mybatis 방식을 이용하여, 동일한 CRUD를 각각의 방식으로 구현해보겠습니다. DB는 H2 DB를 사용하였습니다. 설정은 이전글을 참고해주세요 H2 Database 설치 가이드 H2 Database dnl1029.tistory.com - 개발환경 java : 17 springboot : 3.0.6 build tool : maven db : H2(RDB) - H2 테이블 생성, .. 2024. 3. 10.
spring kafka HealthIndicator 사용하여 HealthCheck 구현 본 글에서는 로컬 서버에 설치한 Kafka의 HealthCheck를 구현해보려 합니다. 우선 로컬 pc에 kafka 설치후, zookeeper와 kafka 서버가 둘다 구동 후 topic 설정 마쳐야합니다. 이전글의 4번까지 완료 되어 있어야합니다. kafka Window 환경에서 로컬 설치 후 pub/sub 테스트 kafka Window 환경에서 로컬 설치 후 pub/sub 테스트 본 글에서는 마이크로서비스아키텍쳐에서 주로 사용하는 kafka를 로컬 window PC에 설치하여 간단하게 pub/sub하는 것을 구현해보겠습니다. - kafka 설치 https://kafka.apache.org/downloads 먼저 다운로드 주소 dnl1029.tistory.com - pom.xml : HealthIndi.. 2023. 7. 31.
spring EventListener에서 @Async 비동기 적용 본 글에서는 EventListener에서 비동기 방식으로 @Async를 사용하는 방법을 다루겠습니다. EventListner에 대한 코드는 이전글을 참고해주세요. spring event pub/sub 구현 spring event pub/sub 구현 본 글에서는 spring에서 ApplicationEventPublisher를 활용하여, 동일한 프로젝트 내에서 간단하게 event pub/sub 구조를 구현해보겠습니다. 원래 다른 서버와 pub/sub 구현을 위해서는, kafka 혹은 redis 등등을 dnl1029.tistory.com - config : spring에서 비동기를 사용하는 방법은 간단합니다. ThreadPoolTaskExecutor를 선언 후 Config 파일에서 Bean 등록만 해주면되는데.. 2023. 7. 31.
redis 윈도우 환경에서 로컬 설치후 spring으로 pub/sub 구현 본 글에서는 redis를 윈도우 로컬 PC에 설치후 간단한 pub/sub을 spring으로 구현해보겠습니다. 먼저 아래 주소에서 redis 윈도우용 msi 설치파일을 다운받습니다. https://github.com/microsoftarchive/redis/releases 기본 포트는 6379 사용하는데, 만약 다른 포트를 사용하고 싶다면 바꿔서 설치하시면 됩니다. redis는 설치후 kafka처럼 별도로 서버를 구동해야하는게 아니라, 자동으로 6379 포트를 사용하여 redis 로컬서버가 구동되어있습니다. 혹시 작업관리자에서 redis-server.exe가 구동이 안되어 있으면, 설치된 주소를 찾아 redis-server를 구동시켜주세요(C:\Program Files\Redis) C:\Program Fi.. 2023. 7. 23.
spring cloud config로 yml파일 배포없이 변경해보기-2탄 이전글에 이어서 yml 파일을 서비스중단없이 변경사항을 반영하는 것을 구현해보겠습니다. spring cloud config로 yml파일 배포없이 변경해보기 spring cloud config로 yml파일 배포없이 변경해보기 본글에서는 spring cloud config를 통해 yml파일을 배포없이 변경사항을 반영해보는 것을 구현하려 합니다. 보통 서비스에서 application.yml하나만 적용하지 않고, profile 관리를통해 개발서버: application.ym dnl1029.tistory.com 이전글에서, config-repo에 값을 변경해도 client단은 별다른 설정없이는 따로 변경사항이 반영되지 않는다는 사실을 확인하였습니다. 다시한번 테스트를 하면, 현재 서버는 x값이 10으로 바뀌었는데.. 2023. 7. 23.
spring cloud config로 yml파일 배포없이 변경해보기 본글에서는 spring cloud config를 통해 yml파일을 배포없이 변경사항을 반영해보는 것을 구현하려 합니다. 보통 서비스에서 application.yml하나만 적용하지 않고, profile 관리를통해 개발서버: application.yml + application-dev.yml 운영서버 : application.yml + application.prd.yml 이런식으로, 공통사항은 application.yml에 넣고, DB정보와 같이 개발/운영이 별도로 관리되어야하는 항목은 각 dev, prd 프로파일에 추가하여 사용하였습니다. 그런데 yml파일 변경시에 서비스 중단 없이 배포를 할수 있는데, 마이크로서비스아키텍쳐에서 중요한 개념으로 보여 spring cloud config를 통해 적용해보고자 .. 2023. 7. 23.
spring kafka ConsumerAwareRebalanceListener 구현 본글에서는 kafka consumer 단에서 사용가능한 ConsumerAwareRebalanceListener를 구현해보도록하겠습니다. spring kafka 관련 설정 및 코드는 이전글을 참고해주세요. spring kafka pub/sub 구현 spring kafka pub/sub 구현 본 글에서는 springboot에서 kafka를 사용하여 메시지 pub/sub을 구현해보고자 합니다. spring에서 kafka로 pub/sub을 구현후 테스트하기전에, local에서 kafka 서버를 띄워야합니다. 이전 글에서 kafka 로컬에서 dnl1029.tistory.com ConsumerAwareRebalanceListener의 메서드는 docs.spring에도 잘 나와있습니다.(https://docs.spr.. 2023. 7. 22.
spring event pub/sub 구현 본 글에서는 spring에서 ApplicationEventPublisher를 활용하여, 동일한 프로젝트 내에서 간단하게 event pub/sub 구조를 구현해보겠습니다. 원래 다른 서버와 pub/sub 구현을 위해서는, kafka 혹은 redis 등등을 활용하지만, 동일 프로젝트 내에서는 아래와같이 간단하게 pub/sub을 통해 메시지를 주고받을 수 있습니다. -Dto @Data public class EventDto { private String message; } - pub service : ApplicationEventPublisher를 의존성 주입받아, event pub/sub으로 활용합니다. @Slf4j @Service @RequiredArgsConstructor public class Even.. 2023. 7. 22.
spring kafka pub/sub 구현 본 글에서는 springboot에서 kafka를 사용하여 메시지 pub/sub을 구현해보고자 합니다. spring에서 kafka로 pub/sub을 구현후 테스트하기전에, local에서 kafka 서버를 띄워야합니다. 이전 글에서 kafka 로컬에서 띄우는 방법을 작성하였으니, 해당 글을 참고하여 4. Topic 생성까지 완료 후 아래 spring kafka 테스트를 진행해주세요. 주키퍼와 kafka 서버가 각각 띄워져있는 상태여야 spring에서 kafka 로컬 테스트가 가능합니다. kafka Window 환경에서 로컬 설치 후 pub/sub 테스트 kafka Window 환경에서 로컬 설치 후 pub/sub 테스트 본 글에서는 마이크로서비스아키텍쳐에서 주로 사용하는 kafka를 로컬 window PC에.. 2023. 7. 22.