본문 바로가기

전체 글141

이전 회고록 https://velog.io/@haebing0309?tag=%ED%9A%8C%EA%B3%A0 2023. 11. 20.
[Spring] Transaction 1 나는 단순히 트랜젝션을 롤백하기 위한 개념이라고 알고 있다. 물론 이말도 맞지만 뭐랄까...너무 대충알고 있는 느낌이랄까..?? 그래서 6달전??에 김영한님 스프링 db와 관련된 트랜젝션 강의와 내가 찾아본것을 기반으로 정리해두려고한다. 사실 가장 정리하는 큰 이유는 msa에서 과연 어떻게 트랜젝션을 관리할까 궁금증에 시작된 정리이다. 트랜젝션이 뭐냐고?? 트랜젝션을 예를 들자면 가장 흔한 계좌이체라고 할 수 있다. 만약 내가 철민이에게 5000월을 보낸다. 이상황에서 일어나는 것을 간소화하자면 - 나의 잔고 -5000원 - 철민 잔고 +5000원이다 근데 여기서 나의 잔고감소는 성공했는데 예상치 못한 에러로 철민잔고 증가에 실패했다면..?? 아주아주 대형사고다.. 이때 데이터베이스가 제공하는 기능이 트.. 2023. 11. 19.
[Spring] 스프링 이벤트? 곧 부트캠프에서 개인프로젝트를 본격적으로 코딩하는데...멘토님께서 이런이런 기능쓰면 좋을것같다! 라는 멘트를 해주시는데 다 하나도 모르고 써본적 없는 아이들...하... 그냥 들어보기만 했지 한번도 적용해본적 없어서... 그래서 요즘은 그런 기술들 맛보기로 블로그를 탐방하거나 다른 분들 깃허브 코드 보고있는데 @EventListner와 같은 어노테이션을 보았는데...이게 무엇인고...에서 시작한 탐방 일단 왜 스프링 이벤트를 사용할까??를 생각해보자. 그럼 자연스럽게 스프링 이벤트가 뭔지 알게될것이다. 왜 스프링 이벤트를 사용해?? 예약 서비스를 생각해보자 예약를 진행하면 예약이 완료되었다는 메세지나 알림이 온다. 이과정에서 나는 보통 reservesevice 클래스 안에서 메세지와 관련된 alarmse.. 2023. 11. 18.
[Spring] HandlerMethod 스프링 시큐리티 기능을 인터셉터로 구현할 수 있다는 거를 공부하다가 HandlerMethod개념이 나와서 공부해본다... 아니 코드 5줄 읽으면 공부해야하는 개념이 2-3개씩 나오는게 정상이겠지..?? HandlerMethod @RequestMappin과 같은 @GetMapping, @PostMapping등 붙은 메서드의 정보를 추상화한 객체이다. 그자체가 실행가능한 객체가 아니라 메소드를 실행하기 위해 필요한 정보를 담고 있는 객체이다 빈객체, 메서드 메타정보, 메소드 파라미터 정보, 메서도 어노테이션 정보, 메소드 리턴값 메타정보 디스패처 서블릿은 애플리케이션 실행될때 모든 컨트롤런의 빈의 메서드를 살펴서 매핑 후보가 되는 메서드를 추출한뒤, 이를 HandlerMethod형태로 저장해둔다. 그리고 실.. 2023. 11. 16.
[Spring] HandlerMethodArgumentResolver와 WebMvcConfigurer 아아 저거 어디서 많이 봤는데.. 분명 인강들으면서 리졸버라는 말 썻던거같은데... 찾아보니 역시나 배웠던거...나의 기억련이란 정말 하루살이 같구나.. HandlerMethodArgumentResolver 컨트롤러 메서드에서 특정 조건에 맞는 파라미터가 있을때 원하는 값을 바인딩해주는 인터페이스이다. 엥??그게 뭔소리여... 그니까 컨트롤러 메서드를 만들때 @RequestBody라든지 @PathVariable를 사용한적이 있을것이다. 이때 HandlerMethodArgumentResolver가 HTTP메세지를 처리해주는 것이다. public interface HandlerMethodArgumentResolver { boolean supportsParameter(MethodParameter paramet.. 2023. 11. 16.
[Spring] ResponseEntity, HttpEntity HandlerMethodArgumentResolver를 분명 공부했었는데 까먹어...서 공부하다가 HttpEntity를 보았다. 이게 뭐지..?? ResponseEntity처럼 생겼느데?? 라는 의문으로 한번 알아보기 시작하였다 일단 먼저 말하자면 ReponseEntity가 HttpEntity를 상속한 것이다 HttpEntity는 스프링 프레임 워크에서 제공하는 클래스로 HTTP요청이나 응답에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스이다 public class HttpEntity { private final HttpHeaders headers; @Nullable private final T body; } 여기서 ResponseEntity와 RequestEntity가 HttpEnti.. 2023. 11. 16.
728x90