본문 바로가기

Spring

(26)
[Spring] 비동기 통신과 데이터 동기화를 위한 카프카 활용 (1) 2023.03.19 - [Spring] - [Spring] MSA 프로젝트 만들기 (1) [Spring] MSA 프로젝트 만들기 (1) 2023.02.28 - [Server] - [Spring] 마이크로서비스 아키텍쳐 (Micro Service Architecture, MSA) [Spring] 마이크로서비스 아키텍쳐 (Micro Service Architecture, MSA) 이번에 블록체인 기반의 프로젝트를 진행하게 되었는데 keylog.tistory.com 이전에 MSA 프로젝트를 개발 할때 OpenFeign 라이브러리를 사용하여 동기 방식으로 마이크로 서비스들 간에 내부 통신을 구현했는데 이제 비동기 방식으로 통신하고 동일한 기능을 가진 마이크로 서비스들 간에 데이터를 동기화 하기 위해 카프카에 대..
[Spring] MSA 프로젝트 만들기 (4) 2023.03.24 - [Spring] - [Spring] MSA 프로젝트 만들기 (3) [Spring] MSA 프로젝트 만들기 (3) 2023.03.22 - [Spring] - [Spring] MSA 프로젝트 만들기 (2) [Spring] MSA 프로젝트 만들기 (2) 2023.03.19 - [Spring] - [Spring] MSA 프로젝트 만들기 (1) [Spring] MSA 프로젝트 만들기 (1) 2023.02.28 - [Server] - [Spring] 마이크로서 keylog.tistory.com 지금까지 MSA 구조로 프로젝트를 만들고 Spring Cloud Gateway에서 JWT 토큰의 유효성 검사 처리와 CORS 설정 그리고 요청을 처리할 수 있는 마이크로 서비스로 로드밸런싱 하는 것을 ..
[Spring] MSA 프로젝트 만들기 (3) 2023.03.22 - [Spring] - [Spring] MSA 프로젝트 만들기 (2) [Spring] MSA 프로젝트 만들기 (2) 2023.03.19 - [Spring] - [Spring] MSA 프로젝트 만들기 (1) [Spring] MSA 프로젝트 만들기 (1) 2023.02.28 - [Server] - [Spring] 마이크로서비스 아키텍쳐 (Micro Service Architecture, MSA) [Spring] 마이크로서비스 아키텍쳐 (Micro keylog.tistory.com 이전 글에서 gateway-service에서 Custom Filter를 구현하여 권한이 필요한 요청에 인증된 회원의 요청만 전달되도록 하는 방법과 Spring Cloud Gateway에서 CORS 설정을 하는 방..
[Spring] MSA 프로젝트 만들기 (2) 2023.03.19 - [Spring] - [Spring] MSA 프로젝트 만들기 (1) [Spring] MSA 프로젝트 만들기 (1) 2023.02.28 - [Server] - [Spring] 마이크로서비스 아키텍쳐 (Micro Service Architecture, MSA) [Spring] 마이크로서비스 아키텍쳐 (Micro Service Architecture, MSA) 이번에 블록체인 기반의 프로젝트를 진행하게 되었는데 keylog.tistory.com 이전 글에서 gateway 프로젝트와 micro service 프로젝트를 생성하고 이를 Eureka Server에 등록하는 방법에 대해 알아보았습니다. 이번 글에서는 모든 클라이언트의 요청이 지나는 gateway-service에서 Custom Fi..
[Spring] MSA 프로젝트 만들기 (1) 2023.02.28 - [Server] - [Spring] 마이크로서비스 아키텍쳐 (Micro Service Architecture, MSA) [Spring] 마이크로서비스 아키텍쳐 (Micro Service Architecture, MSA) 이번에 블록체인 기반의 프로젝트를 진행하게 되었는데 팀원들과 MSA 방식으로 프로젝트를 개발해보자는 얘기가 나와서 개발에 들어가기 전에 MSA가 뭔지 모놀리식 방식과는 어떤 차이가 있는지 keylog.tistory.com 이전 글에서 MSA가 뭔지 모놀리스 아키텍처 방식과는 어떤 차이점이 있는지 알아봤는데 이번글에서는 인프런 강의인 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 에서 배운 내용으로간단한 MSA 프로젝트를 만들고 마이크로 서비스..
[Spring] 통합테스트와 Junit과 Mockito 프레임워크를 이용한 단위테스트 작성 테스트 코드를 작성하는 것은 개발단계에서 서비스 코드를 작성하는 것 만큼이나 매우 중요하다. 그 이유는 다음과 같다. 1. 작성한 코드가 의도한대로 동작하는지 알 수 있다. 작성한 코드를 테스트하는 방법은 포스트맨을 사용하거나 QA 과정에서 직접 서비스를 사용해 보면서 기능을 테스트하는 방법이 있는데 테스트 해야할 기능이 많다면 전부 테스트하는데 많은 시간이 걸린다. 하지만 테스트 코드를 미리 작성해 놓으면 애플리케이션을 실행하지 않고도 클릭 한번으로 테스트할 수 있으며 프로젝트 빌드 툴인 메이븐이나 그레이들 같은 툴을 사용하여 작성된 테스트 케이스들을 한 번에 모두 실행할 수도 있다. 2. 리팩토링 하기 쉬워진다. 리팩토링이란 결과값에 영향을 주지 않으면서 코드의 가독성과 유지보수성을 높이기 위해 내부..
[Spring] ThreadLocal이란? ThreadLocal이란? ThreadLocal은 해당 쓰레드만 접근할 수 있는 특별한 저장소를 말한다. 쉽게 말해서 여러사람이 사용하는 물건 보관 창구를 의미하며 여러사람(여러 쓰레드)이 ThreadLocal이라는 공용 창구를 사용하고 ThreadLocal이 사용자(쓰레드)별로 자원을 구분해준다. 그렇다면 ThreadLocal은 왜 어떤경우에 사용할까? 예를 들어 다음과 같은 상황이 있다고 가정해보자. thread-A가 먼저 userA라는 변수를 필드에 저장했지만 thread-B가 userB라는 변수를 같은 필드에 저장했더니 userA를 저장했던 변수에 덮어 씌워져 버렸다. 이렇게 되면 thread-A가 자신이 저장했던 userA라는 값을 사용하기 위해 필드를 호출했을 때 userA가 아닌 userB가..
[Spring] Interceptor와 ServletFilter의 차이 ServletFilter SerlvetFilter는 서블릿 스펙에서 제공하는 서블릿 전체에 공통 기능을 추가할 수 있는 기능으로 DispatcherServlet 앞에서 사용자의 요청과 응답을 처리할 수 있다. ServletFilter는 여러 개도 등록이 가능하며 특정 URI에만 필터 기능을 걸 수 있도록 설정할 수도 있다. ServletFilter 구현체를 만드려면 javax.servlet.Filter 인터페이스를 구현해야 한다. public interface Filter { public default void init(FilterConfig filterConfig) throws ServletException {} public void doFilter(Servlet Request request, Serv..