Programming/TroubleShooting 11

회원가입 API 중복 요청 방지: Redis를 활용한 해결법

🤍 문제상황회원가입 버튼을 두번 연속으로 눌렀다가, 쿼리가 두번 연속으로 날아가며 중복된 email값이 데이터베이스에 저장됨.중복된 email 데이터로 인해 로그인 시 오류가 발생함  🤍 해결방법 : Redis회원가입 비즈니스 로직이 실행되는 순간, 이메일이 Redis에 10분간 저장되도록 코드 추가 public void signUp(SignupRequestDto signupRequestDTO){ String email = signupRequestDTO.getEmail(); //이메일 중복검사 isEmailDuplicate(email); //요청 중복 방지 isRequestDuplicate(email); //비밀번호 암호화 String passw..

[Spring] 스프링의 Collection Injection

🤍 Collection Injection스프링은 자동으로 타입에 맞는 Bean을 찾아서 주입해주는 기능이 있다. Map와 같이 Map으로 선언하면 AbstractTemplate의 구현체들을 모두 찾아서 key값으로 구현체의 빈 이름을, value 값으로 구현 객체를 담아 주입해준다. List도 마찬가지다. AbstractTemplate의 구현체들을 List에 담아 주입해준다. 이것을 Collection Injection 이라고 한다.  🤍 트러블 슈팅문제상황 AbstractOAuthTemplate의 구현체들을스프링 빈으로 등록 후 Map에 추가하여"naver"와 "kakao"라는 문자열을 받으면 구현객체를 반환하고자 함 그러나 Service코드에서 "naver"를 받으면 null 값을 반환함.  원인..

[AWS] EC2 퍼블릭 IPv4 DNS에 연결 거부됨, 연결 안됨, 비공개 등 문제발생

0. 필자의 컴퓨터 환경Window 11 유저로 Ubuntu를 통해 EC2 구현 중에 고통을 받게 됨. 1. 문제 발생EC2 인스턴스를 생성하면 할당되는 ip 주소로 접속했으나 연결이 거부됨. 2. 뻘짓 과정정확히 2024년 7월 12일에 약 6시간동안 이 문제를 해결하기 위해모든 블로그와 티스토리에 있는 해결책대로 실행해봄* 보안그룹 설정 -> 제대로 되어있는데 그럼에도 불구하고 http, https로 접속 안됨 (80포트 443포트 잘 열어둠)* 인스턴스 삭제-생성만 10번은 함* putty로 했다가 ubuntu로 했다가 결국에 기도메타로 계정문젠가 싶어서 새 계정도 파봄 3. 해결 과정여러분은 저처럼 고생하지마세요!!!!!ㅠ^ㅠ행복하게 코딩 하실 권리가 충분히 있습니다!!!https://www.yo..

타임리프 th: fragment 사용시 css 깨지는 문제

해당 페이지는 PostController를 통해 “/post/createPostForm” 뷰로 이동하면 CSS가 깨지는 현상을 볼 수있다. 콘솔창 오류를 확인해보자 해당 페이지는 static/css/index.css를 찾는 것이 아니라 /post/css/index.css를 찾으며 오류가 발생한 것을 볼 수 있다. 따라서 문제의 페이지인 html에 들어가 css 링크를 걸어준 곳을 상대경로(css/index.css)에서 절대경로(/css/index.css)로 변경하여 css 깨짐현상을 해결했다.

[spring Security] 리다이렉션 횟수가 너무 많습니다.

'쿠키 삭제해 보기' 링크까지 해줬으면서 쿠키를 다 삭제해도 고쳐지지않는다.. 다시 기초로 돌아가서 오류가 났을땐 IDE 메세지를 읽으라는 수많은 티스토리, 벨로그 자료들의 명언이 떠올랐다.. 2024-03-08T11:33:25.501+09:00 ERROR 968 --- [io-8080-exec-10] org.thymeleaf.TemplateEngine : [THYMELEAF][http-nio-8080-exec-10] Exception processing template "/member/loginForm": Error during execution of processor 'org.thymeleaf.spring6.processor.SpringInputGeneralFieldTagProcessor' (temp..

[Spring Security] formLogin() deprecated

Spring Security 6.1.0부터는 메서드 체이닝의 사용을 지양하고 람다식을 통해 함수형으로 설정하게 지향하고 있습니다. 6.1.0 버전 이전 http.formLogin() 6.1.0 버전 이후 public SecurityFilterChain filterChain(HttpSecurity http) { http .formLogin(form -> form .loginPage("/login") .permitAll() ); } http.formLogin((formLogin) -> formLogin .loginPage("/login/login") .usernameParameter("username") .passwordParameter("password") .loginProcessingUrl("/login..

JPA 에서 deleteById가 작동하지 않는 경우

문제상황 문제의 서비스 코드이다. 분명히 콘솔창에선 오류메세지도 없고 디버그 모드로 postId를 추적해봐도 해당 메소드에 잘 입력되는데 이상하게 Delete 쿼리문만 날라가지 않는 것이다. 정말 몇시간동안 이 오류에 대해 찾기 위해 부리나케 뛰어다녔다.. 해결방식 코드상의 오류가 아니라면 JPA연관관계를 설정할 때 무언가(?)잘못 설정해서 게시물을 삭제하려면 다른 엔티티까지 삭제하도록 설정을 해놓지 않았을까..? (라는 결론에 이르기까지 약 몇시간이 걸림) 결과 File 엔티티의 컬럼 중에서 cascade = CascadeType.All 를 걸어놓은 것이 문제였다. 제대로 알지 못하는 기능은 사용하지 마 이 녀석은 엔티티 객체의 생명주기, 고아객체와 관련있는 녀석인데 대충 '자바 ORM 표준 JPA 프..

반응형