본문 바로가기

분류 전체보기143

[Spring] 동시성 어떻게 해결할 것인가? - 분산락 개인프로젝트에서 예약시스템을 구축하고 있다. 그러다보니 동시성 문제가 매우 중요하다. 한날짜에 같이 예약을 걸게 되면 최악의 상황이...그래서 어떻게 동시성을 핸들링 할까하다가 나같은 경우 redisson의 분산락을 이용했다. 일단 동시성이 왜 일어나는지와 동시성을 해결할 수 있는 방법에 대해서 얘기해보자. 이 글은 redis를 통한 분산락 해결책을 더 자세하게 다룰 계획이다. 동시성??그게 뭐고 왜 일어나는 건데?? 동일한 하나의 데이터가 2개이상의 스레드가 동시에 데이터를 제어또는 접근할때 발생하는 문제이다. 예를 들어 재고관리 시스템에서 재고를 감소시킨다고 생각해보자. 재고는 1개 남았다 만약 두 스레드가 병렬로 작업을 진행하게 되면 어느 한쪽에서 예외가 발생하거나 그래야한다. 하지만 실재로 실행해.. 2023. 11. 29.
[Spring Security] AccessToken과 RefreshToken 개인 프로젝트에 AccessToken이랑 RefreshToken을 아무 생각없이 도입하다 문득 생각이 들었다. 나는 왜 Refresh Token을 rdb에 저장했을까?? 만약 로그아웃 했는데 AccessToken이 유효기간이 살아있는 채로 탈취당했다면 어쩌야하는 거지?? 만약 RefreshToken 탈취는...?? 아 기능 하나 중심으로 이렇게 많은 궁금증이 생기다니... 이거 찾다보니 2시간 뚝딱이었다. 나의 밑거름이 되리라 믿고 지금까지 찾아본 결과와 생각을 정리해본다 RefreshToken은 왜 도입했나?? 나의 경우 JWT토큰을 accesstoken으로 하여 인증 인가 서비스를 구현했다. 토큰을 client에게 보내주면 클라이어트에서는 요청의 Authorization헤더에 토큰을 담아서 서버로 보.. 2023. 11. 26.
[Spring] Spring MVC Webconfig와 Interceptors, Argument Resolvers 최근에 개인 프로젝트하면서 스프링 시큐리티 필터말고 인터셉처를 통해서 인증관련된 기능을 구현하고 있다. 어떠한 이유로 스프링 시큐리티를 사용안한다기보다는 부트캠프 미션때 이미 스프링 시큐리티를 간단하게 써본적이있어서 한번 인터셉터를 통해 구현해보고 싶었다. 스프링 시큐리티와 인터셉터가 뭐가 다르냐고 물어본다면 이미 정리해둔 내용이 있다 https://haebing.tistory.com/85 또 arguementResolver가 정확히 몰라서 간단하게 정의와 코드로 정리해둔 내용이 있다 https://haebing.tistory.com/87 WebConfig파일 프로젝트 한번 해봤다하면 WebConfig파일은 한번씩 봤을 것이다. 한마디로 정리하면 웹 구성에 대해 지정하는 내용이 담겨있는 파일이다 스프링부.. 2023. 11. 26.
2022-11-26 일주일 회고록 개인프로젝트..?? 개인프로젝트를 시작하면서 여러 기술을 사용해보려고 하다보니...사실 기본적인 기술인데 내가 안사용해본거..ㅋㅋㅋ 음 코드 파악하다보면 반나절 지나가고 반나절 코드 치면 하루 뚜딱임.. 아 인강도 들어야하고 코테도 해야하는데 개인프로젝트 할께너무 많다 고비아닌 고비? 아니 깃 사용해서 프로젝트 중인데 ...나로 말하자면 1월달에 처음 개발ㅇ르 공부한 사람으로서 깃을 6월달쯤 처음 사용했고 pull request, merge,commit이 뭔지 정확하게 모르는 내가 브랜치만들고 pull request하고 있으니 깃 문제 한번 만나면 반나절 뚜딱... 어쩔 수 없지...이러면서 배우는 거지 하면서도 코드친 파일 다 날라가고 멘붕오고 하하하하하하하하 빠르게 적응하기를... 곧 시험기간 아 1.. 2023. 11. 26.
[Spring] objectMapper에서 LocalDateTime문제발생 아아 공부하기 시러..... 하다가도 코드치면 나오는 에러들;;; 아 만나서 반가운데 오늘은 나오지 말지 ㅋㅋㅋㅋ 그럼에도 에러가 나왔기때문에 기록해야지. 사실 이 에러는 저번에도 나온에러다. 아 대충 뭐가 파싱하는데?? 에러가 나왔구나 정도만 이해하고 넘어갔다. 하지만 또 나왔으니 이번에는 기록해야쥐... ObjectMapper 그거 뭔데? 음 간단하게 parse해주는 클래스다. - Java Object -> Json : Serialize (직렬화) - Json -> Java Object : Deserailize (역직렬화) 이거 언제 사용하는디?? contoller를 사용할때 파라미터로 @RequestBody로 객체를 받는 경우가 있을 것이다. 이때 Json 데이터를 자바객체로 변환하는데 Mappin.. 2023. 11. 23.
[개인프로젝트] @FeignClient 파라미터 오류 로그인 구현을 구글과 로그인으로 하는 중 각각 로그인 api에 요청을 보내고 응답을 받기 위해 @FeignClient를 이용중이었다. 구글의 경우 로그인 연동 결과로 code까지 잘 받고 접근 토큰 발급 요청하여 accessToken까지 잘 받아서 고객의 이메일과 이름을 잘받았다. 문제상황 네이버의 경우 문제가 생겼다 네이버의 로그인 연동 결과로 code값을 받았지만 접근 토큰 발급 요청에서 Response객체의 필드가 다 null인 상황이 발생한거다.. 문제의 상황을 자세히 들여다보자 public class NaverOauth implements Oauth { @Override public String getLoginView() { String reqUrl=NAVER_API_URL+"response_t.. 2023. 11. 22.
728x90