마주쳤던 이슈 기록 (14) 썸네일형 리스트형 #3. Spring Security 순환 참조 에러 프로젝트를 수행하며, SecurityConfiguration 클래스를 생성하여 하위 4가지 기능을 구현. 1. 로그인 방식(OAuth2, JWT), 2. Request에 담기는 JWT의 검증하는 역할, 2. 인증 실패 시 응답 할 클래스 설정, 3. CORS 설정, 4. HTTP Method 별 권한 설정 등을 처리했었다. 하지만 SecurityConfiguration 하나의 클래스에서 여러 역할을 맡은 클래스들을 모두 사용하다보니 Security Configuration 클래스에서 [순환 참조] 에러가 발생 [원인] 최초 패키지 구조를 설계할 당시, Spring Bean 으로 등록한다는 것이 무슨 의미인지 모르는 채로 학습 컨텐츠에 있는 애너테이션을 무지성으로 사용한 것이 원인이 되었다. 즉, Bean.. #2. OAuth2 구현시 CORS 에러 프로젝트 진행시 인증 부분을 담당했었는데, 그 중 Google의 OAuth2 기능을 구현하고자 했다. 이 과정에서 2차례 마주쳤었던 CORS 에러에 대해 정리를 하고자 한다. 1. 최초 Google OAuth2 로 로그인 할 때, 위의 순서상 #1. 에서 [사용자]가 Google 로그인 링크가 있는 버튼을 클릭할 경우, #2. FE 측에서는 BE 서버의 Login URL로 GET 요청을 보내고, #3. BE 서버에서는 그 GET 요청의 응답으로 Google 로그인 페이지 + 인증 성공 시 '인증 코드'를 전달받을 Redirect URL을 보내게 되어 있다. 그래서 BE서버 입장에서 자신의 서버로 요청을 보낼 FE의 URL을 허가된 URL이라는 의미로 Google OAuth2 설정 페이지에서 [승인된 자바.. #1. 초기 SQL 파일 - duplicate Error 프로젝트 개발 당시, 애플리케이션에 필요한 초기 데이터를 수동으로 .sql 파일로 생성하여 MySQL의 DB에 넣도록 작업을 진행했었다. 이 과정에서 생성해둔 초기 데이터 .sql 들을 MySQL과 연동 할 때 duplicate Error 발생. 이 Error를 해결했던 과정에 대해 정리를 하고자 한다. [원인] Spring Boot를 최초 실행 시, application.yml에 설정해둔 대로 생성해둔 .sql 파일들이 연동된 MySQL의 DB에 자동으로 기입되지만 재실행 할 경우, 최초 실행 당시 DB에 기입된 데이터가 남아있는데 application.yml에 설정에 의해 동일한 .sql 파일들을 MySQL DB에 또 넣으려고 하기 때문에 중복 에러 발생. [해결] 최초 실행, 두번째 실행, 세번째 .. 제네릭 Integer vs Int 차이 1. 제네릭은 클래스 선언할 때 의 형태로 선언하여 형변환으로부터 편하게 이용하는건 알겠다. 보다 자세히 알아보자 2. Integer와 int는 wrapper 클래스와 primative 클래스 라는건 알겠다. 하지만 정확히 어떻게 다른지 알아보자. 생성자 1. 객체 인스턴스할때, 클래스명 변수명 = new 생성자(); 가 클래스의 기본 구성요소인데, 생성자를 선언할 때 , 매개변수가 있는 경우가 있다. ex) Car car = new Car(Car_Name); 객체.메소드명 을 할때 오버라이딩으로 매개변수를 사용하면되는데 굳이 객체 선언할때부터 매개변수가 필요하면 사용하는데 제한이 있어서 불편할 것 같다. 현재로써는 이해가 가지않아 추후 다시 돌아볼 예정. 2. 메인 클래스가 아닌 다른 클래스에서 필드 변수(인스턴스 변수)를 선언하면 public 생성자(클래스명과 이름이 같음) (인스턴스 변수) { this.변수명 = 변수명; } 으로 초기화하고 메인클래스에서 해당클래스를 인스턴스화 하고 나서부터 사용하는 거로 외웠는데, 이해를 하려고하면 너무 어려워서 .. 더블콜론 A :: B 의 경우, [인스턴스/클래스타입] :: [메소드명(or new)] 이지만 제대로 파봐야 겠다. 이전 1 2 다음