본문 바로가기

개발 이론/Spring21

프록시??? 스프링 AOP?? 트랜젝션?? (1) 이전 개인프로젝트때 동시성 해결하기 위해 aop와 Redisson을 활용하여 해결한 적이 있다. 그때 이때 aop 프록시와 동시성메서드 트랜젝션 프록시?라고 해야하나 아무튼 두개의 트랜 젝션의 레벨이 동일하여 내가 원하는 대로 호출이 안되는 상황이 있었다. 그래서 동시성 메서드 트랜젝션을 제거하였더니 잘 호출되었다. 이때는 동일한 레벨트랜젝션이라 무엇이 먼저 호출될지 모른다로 이해하고 끝났다... 근데 계속 프로젝트 하다보니... 프록시가 뭔데,,? 그게 트랜젝션이란 뭔상관이고, aop랑은 무슨 상관인데..? 라는 물음표들이 머리속을 꽉채웠다... 그래서 이번 기회에 차분히 정리해보려고 한다. 프록시 공부하기전 나에게 프록시 은 단순히 가짜객체의 느낌이었다.근데 공부해보니 그 방향보다는 프록시 이란 "대.. 2024. 2. 22.
트랜젝션에 대해 알아낸거를 기록하자 아니 프로젝트 하다보니 트랜젝션에 대해 생각보다 자세히 알고 있어야하는 느낌이더라... 옛날에는 진짜 아무생각 없이 코드를 짯는데 쿼리 나가는거 보고 이러다보니 트랜젝션이 신경쓰인다. 그래서 검색하면서 알아낸거 하나씩 추가하는 게시판 느낌으로 쓸 예정이다 # 2023.12.28 1. 여러 entityManger가 하나의 영속성 컨텍스트를 공유할 수 있다 -> 동일 트랜젝션에서 entitymanger를 여러번 호출해서 처리하면 같은 영속성 컨텍스트에서 처리된다 -> 다만 다른 트랜젝션이라면 다른 영속성 컨텍스트에서 처리된다 # 2023.12.29 영속성 컨텍스트와 트랜젝션 관련해서 게시글을 작성했다 https://haebing.tistory.com/116 2023. 12. 28.
API호출 RestTemplate, WebClient, Feign?? 개인프로젝트하면서 API호출이 필요해서 Open Feign을 사용했다. 어떠한 이유에서라기 보다 최근에 나온 기술이라고도 하고 생각보다 사용이 쉬워서 Open Feign을 사용했다. 그렇다면 RestTemplate, WebClient,Feign 차이는 뭘까...?? RestTemplate Spring Framework 에서 제공하는 동기식 클라이언트 라이브러리다. 동기식 라이브러리라 단순한 요청처리에는 효과적이다. 다만 오랫동안 인기있는 라이브러리였지만 대량의 요청이나 비동기적인 처리가 필요한 경우에는 성능이슈가 발생하여 최근에 deprecated되어 WebClient를 권장하는 추세이다. WebClient Spring Framework 5부터 도입된 비동기식 Http클라이언트이다. 비동기 및 리액티브 .. 2023. 12. 21.
[Spring] 동시성 어떻게 해결할 것인가? - 분산락 개인프로젝트에서 예약시스템을 구축하고 있다. 그러다보니 동시성 문제가 매우 중요하다. 한날짜에 같이 예약을 걸게 되면 최악의 상황이...그래서 어떻게 동시성을 핸들링 할까하다가 나같은 경우 redisson의 분산락을 이용했다. 일단 동시성이 왜 일어나는지와 동시성을 해결할 수 있는 방법에 대해서 얘기해보자. 이 글은 redis를 통한 분산락 해결책을 더 자세하게 다룰 계획이다. 동시성??그게 뭐고 왜 일어나는 건데?? 동일한 하나의 데이터가 2개이상의 스레드가 동시에 데이터를 제어또는 접근할때 발생하는 문제이다. 예를 들어 재고관리 시스템에서 재고를 감소시킨다고 생각해보자. 재고는 1개 남았다 만약 두 스레드가 병렬로 작업을 진행하게 되면 어느 한쪽에서 예외가 발생하거나 그래야한다. 하지만 실재로 실행해.. 2023. 11. 29.
[Spring] Spring MVC Webconfig와 Interceptors, Argument Resolvers 최근에 개인 프로젝트하면서 스프링 시큐리티 필터말고 인터셉처를 통해서 인증관련된 기능을 구현하고 있다. 어떠한 이유로 스프링 시큐리티를 사용안한다기보다는 부트캠프 미션때 이미 스프링 시큐리티를 간단하게 써본적이있어서 한번 인터셉터를 통해 구현해보고 싶었다. 스프링 시큐리티와 인터셉터가 뭐가 다르냐고 물어본다면 이미 정리해둔 내용이 있다 https://haebing.tistory.com/85 또 arguementResolver가 정확히 몰라서 간단하게 정의와 코드로 정리해둔 내용이 있다 https://haebing.tistory.com/87 WebConfig파일 프로젝트 한번 해봤다하면 WebConfig파일은 한번씩 봤을 것이다. 한마디로 정리하면 웹 구성에 대해 지정하는 내용이 담겨있는 파일이다 스프링부.. 2023. 11. 26.
[Spring] 스프링 이벤트? 곧 부트캠프에서 개인프로젝트를 본격적으로 코딩하는데...멘토님께서 이런이런 기능쓰면 좋을것같다! 라는 멘트를 해주시는데 다 하나도 모르고 써본적 없는 아이들...하... 그냥 들어보기만 했지 한번도 적용해본적 없어서... 그래서 요즘은 그런 기술들 맛보기로 블로그를 탐방하거나 다른 분들 깃허브 코드 보고있는데 @EventListner와 같은 어노테이션을 보았는데...이게 무엇인고...에서 시작한 탐방 일단 왜 스프링 이벤트를 사용할까??를 생각해보자. 그럼 자연스럽게 스프링 이벤트가 뭔지 알게될것이다. 왜 스프링 이벤트를 사용해?? 예약 서비스를 생각해보자 예약를 진행하면 예약이 완료되었다는 메세지나 알림이 온다. 이과정에서 나는 보통 reservesevice 클래스 안에서 메세지와 관련된 alarmse.. 2023. 11. 18.
728x90