spring28 spring Mock Test 본 글에서는 spring Mock Test에 대해 다룹니다. spring에서 일반적으로 생성한 클래스들에 대해 테스트를 할때, 테스트 클래스위에 @SpringbootTest 어노테이션을 명시하여 통합테스트 합니다. 그런데, 통합테스트는 테스트가 필요한 클래스외에 나머지들도 전부 구동시키기 때문에, 테스트 속도가 매우 느려지는 단점이 있으며, 또한 테스트하려는 클래스외에 다른 클래스에서 에러가 발생했을때도 테스트 클래스를 실행할 수 없는 단점이 있습니다. 이러한 통합테스트의 단점을 해결하기 위해 단위 테스트가 필요할 때가 있는데, 이때 Mock test가 쓰입니다. 정확히는 단위테스트 중에서, 타 클래스 의존성 주입이 필요한 클래스의 테스트가 필요할때 사용할 수 있습니다. Controller -> Serv.. 2024. 3. 12. 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. 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 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 application.yml파일 설정값 적용 spring에서 yml파일에 설정된 값을 불러와서 주입할때 사용할 수 있는 방법 두가지를 간단하게 비교하겠습니다. - application.yml : 아래와 같이 임의의 값을 입력합니다. custom: value: x: test y: test2 value_v2: z: test3 - Service @Slf4j @Service @ConfigurationProperties(prefix = "custom.value") @Getter @Setter public class MyServiceImpl implements MyService{ private String x; private String y; @Value("${custom.value_v2.z}") private String z; @Override public.. 2023. 7. 21. spring jwt 인증인가 인터셉터 만들기 본 글에서는 jwt 토큰을 발급받았다 가정하고, 발급된 token을 http 헤더에 보내고, 이를 인증인가하는 인터셉터를 다루도록 하겠습니다. jwt 발급 관련 설정, 코드는 이전 글들을 참고해주세요 1. spring jwt 토큰 발급하는 restapi 만들기 spring jwt 토큰 발급하는 restapi 만들기 본 글에서는 spring security에서 인증/인가를 위해 활용하는 jwt 토큰의 발급하는 restapi를 만들어보도록 하겠습니다. restapi를 통해 id와 password를 보내면, DB에 저장된 id, password 를 확인하여 값이 일치 dnl1029.tistory.com 2. spring jwt 토큰 복호화 메서드 생성 및 테스트 spring jwt 토큰 복호화 메서드 생성 및.. 2023. 7. 8. spring 쓰레드로컬(ThreadLocal) 본 글에서는 spring에서 쓰레드로컬(ThreadLocal)로 다룰수있는 MDC를 사용해보고자 합니다. MDC는 Mapped Diagnostic Context의 약자로, 쓰레드 단위로 특정 데이터를 읽고/쓸수 있는 저장소입니다. Key-Value 형태로 데이터를 저장할 수 있는데, MDC를 사용하는 이유는 다음과 같습니다. 1. ThreadLocal을 필드에 따로 선언할 필요없이, 바로 MDC를 호출해서 MDC.put, MDC.get을 통해 쓰레드 로컬을 사용할 수 있습니다. spring에서 로그를 찍기위해 보통 Lombok 의존성을 추가 후 사용하는데, MDC는 별다른 의존성을 추가할필요없이 바로 사용할 수 있습니다. 아래와 같이 선언할 필요가 없습니다. ThreadLocal threadLocal =.. 2023. 7. 8. spring jwt 토큰 발급하는 restapi 만들기 -2 지난 글에 이어 jwt 발급과 관련된 개선사항이 있어 추가글을 작성하려합니다. jwt 관련 코드는 이전글을 참고해주세요. spring jwt 토큰 발급하는 restapi 만들기 spring jwt 토큰 발급하는 restapi 만들기 본 글에서는 spring security에서 인증/인가를 위해 활용하는 jwt 토큰의 발급하는 restapi를 만들어보도록 하겠습니다. restapi를 통해 id와 password를 보내면, DB에 저장된 id, password 를 확인하여 값이 일치 dnl1029.tistory.com 개선점 1 : payload상에 password가 존재하면 안되어 주석처리를 했습니다. 생각해보니 jwt 토큰은 https://jwt.io/ 해당 사이트에서도 바로 복호화가 가능하며 이때 pa.. 2023. 7. 5. spring security로 ID/PASSWORD 로그인 구현하기 본 글에서는 spring security를 통해, restapi로 사용자가 ID와 Password를 입력하면 DB에 저장된 값과 비교해 인증을 하는 간단한 서비스를 개발해보려합니다. JDK 17 / springboot는 3.0.6 버전으로 작성되었습니다. RDB는 H2 DB를 사용하였는데, DB설정같은 정보는 이전 글을 참고해주세요. spring mybatis로 RDB select 해보기 spring mybatis로 RDB select 해보기 본 글에서는 RDBMS를 사용할때 종종 사용하는 mybatis를 활용하여 SQL 쿼리를 사용, CRUD 중에서 기본적인 Select 쿼리를 호출하는 api를 만들어보도록 하겠습니다. 실무에서는 Oracle DB를 주로 사용하였 dnl1029.tistory.com 기.. 2023. 6. 28. spring jwt 토큰 복호화 메서드 생성 및 테스트 본 글에서는 jwt 토큰 암호화와 반대로, 발급된 토큰을 복호화하는 메서드를 작성 및 테스트 해보도록 하겠습니다. jwt 관련 코드는 이전글을 참고해주세요. spring jwt 토큰 발급하는 restapi 만들기 spring jwt 토큰 발급하는 restapi 만들기 본 글에서는 spring security에서 인증/인가를 위해 활용하는 jwt 토큰의 발급하는 restapi를 만들어보도록 하겠습니다. restapi를 통해 id와 password를 보내면, DB에 저장된 id, password 를 확인하여 값이 일치 dnl1029.tistory.com - JwtIssueService : JwtIssueService내에 아래와 같이 getClaims라는 메서드를 추가했습니다. payload에 들어있는 Cla.. 2023. 6. 25. 이전 1 2 3 다음