문제 JAVA 17, Spring Boot 3.2 멀티 모듈 구조에서 각 모듈간의 의존성을 제대로 선언해놓고 실행했음에도 모듈에서 다른 모듈의 소스 정보를 못 읽어오는 이슈가 발생했다. 해당 문제를 해결하기 위해 애플리케이션 실행 지점에 다른 모듈의 객체를 생성하는 간단한 코드를 넣어 확인해보았다. 소스코드와 IDE 상에는 분명히 domain 모듈의 Product 클래스가 import 되어 있는데, 컴파일러가 Product 클래스를 import 하는 시점에 오류가 발생한다. 해당 프로젝트는 내가 예전에 작성하고 테스트까지 끝마쳤던 소스코드를 그대로 가져와서 동일한 환경으로 재구성 한 것이라 완벽하게 동일한 소스코드와 의존성을 가지고 있다. 이전의 프로젝트는 오류없이 정상적으로 실행되니 참 답답한 상황이 ..
오류
스프링부트에서 로그인기능을 만드는 과정에 유저 객체를 생성하고 아무생각 없이 해당 객체를 복사하여 정보를 수정 하였더니 원래의 정보까지 변경되어 버리는 참사가 일어났다.. User user = new User(); User persistenceUser = user; 위의 코드에서 user와 persistenceUser 인스턴스는 같은 주소를 가리킨다. 때문에 둘 중 하나의 참조 변수를 수정하더라도 두 변수 모두 변경이 일어나게 된다. 해당 문제가 발생하는 이유는 user 변수가 참조 타입 변수이기 때문이다. User 의 인스턴스를 생성하고 인스턴스의 주소를 user 변수가 참조하고 있는 것이다. 즉, 값!이 아닌 주소 값!을 가지고 있다는 것. 그렇다면 user의 값을 복사한 persistenceUser..
카카오 로그인 시 DB에 정보가 없으면 회원가입 진행 후 로그인을 진행하는 서비스를 생성하였다. 하지만 회원가입 진행 후 DB에는 정상적으로 데이터가 입력되나 로그인이 정상적으로 작동하지 않는 상황이 발생하였다. String kakaoUsername = kakaoProfile.getKakao_account().getEmail() + "_" + kakaoProfile.getId(); String kakaoEmail = kakaoProfile.getKakao_account().getEmail(); String kakaoPassword = cosKey; User kakaoUser = User.builder() .username(kakaoUsername) .password(kakaoPassword) .email..
sec:authorize는 스프링 시큐리티에서 제공하는 기능이므로, 스프링 시큐리티 의존성을 추가하셔야 합니다. 또한 isAuthenticated() 메서드를 사용하기 위해서는 스프링 시큐리티 설정 파일에서 로그인 인증을 구현해야 합니다. 설정 파일에 인증 구현을 추가하신 후 sec:authorize 기능을 사용하시면 됩니다. 스프링 시큐리티로 구현한 로그인 이후 권한에 따른 메뉴바의 아이템을 다르게 설정 해주었습니다. ✅ `isAuthenticated()` 메서드는 스프링 시큐리티에서 제공하는 메서드 중 하나로, 현재 사용자가 인증된 사용자인지를 확인해주는 역할을 합니다. 만약 현재 사용자가 인증된 사용자이면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 이 메서드를 사용하여 로그인한 사..