좌충우돌 개발공부

TIL(20240528) [StatusCode: 4XX]


📌 Spring

🔒 Status code: 4XX

1) StatusCode:401(Unauthorized:권한없음-> 지정한 리소스에 대한 엑세스 권한이 없다.)

No content to map due to end-of-input

Why? WebSecurityConfig 인증/인가를 다루는 파일자체를 만들지 않아서 권한설정이 되지 않아 파일 생성

2) StatusCode:403(Forbidden:금지됨-> 지정한 리소스에 대한 엑세스가 금지 되었다.)

  • 구글링 결과 Spring Security 설정에서 403 오류가 발생하는 이유는 1. 보안설정 문제, 인증 및 인가 설정 문제, URL 매핑 문제 등이 있는데, 나의 경우에는 URL 매핑 문제였던 것 같다.
  • 완벽하게 문제를 해결한 건 아니지만 JwtAuthenticationFilter에서 만든 생성자 안에 setFilterProcessesUrl(“/api/user/login”); 주석 처리하였더니 실행되었다.. 그런데 login요청 URL이 controller에 /api/user/login으로 되어있는데, 이부분이 어떤부분에서 실행이 안되었는지 의아하다.. 기본설정은 api/user/login인데.. URL을 사용자정의 타입으로 사용하는 메서드이기에 요청에서 혼란이 온 걸까..?

📌 코딩테스트1️⃣ : 가운데 글자 가져오기

🔒 문제 : 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

🚫 조건 :

  • s는 길이가 1 이상, 100이하인 스트링입니다.

💡 필요했던 메서드

  • substring() : 문자열자르기

🔓 문제풀이

class Solution {
    public String solution(String s) {
        String answer = "";
        int i = s.length();
        
        if (i%2 == 0) { 
            answer = s.substring((i/2)-1,(i/2)+1);
        } else {
            answer = s.substring((i/2),(i/2)+1);
        }
        
        return answer;
    }
}

🤷‍♀️ 코딩테스트1️⃣ 문제풀이를 하면서 느낀점

: 오.. 솔직히.. 이게 통과할 줄 몰랐다.. 문제를 풀고 코드실행, 제출 통과했을 때도 놀랬고, 뭐지..? 이게 맞구나? 그러면서 허탈웃음이 나왔다… 내가 이때까지 햇던 문제 접근방식과는 달라서 어제 제일 작은수 제거하기와 같이 문제를 접근하려고 노력했다. 가운데 인덱스값을 구하기 위해서는 어떻게 해야하는가..로 시작했더니, 쉽게 풀렸다.. 30분만에 풀어서 너무 행복하다.. 이전까지는 복잡하게 아 이렇게도 해볼 수 있는 거 같은데, 저렇게도 해볼 수 있는 거 같은데.. 라는 복잡한 생각들로 문제를 푸는데 시간소모를 많이 한 것 같다. 그래서 오늘에서야 느낀 건. 문제에서 요구하는 정답을 구하기 위한 방법이 무엇인지 정확히 파악해야 한다는 것! 그런 다음 로직으로 풀어나가야 한다는 것을 깨닫게 된 것 같다.. 하하하. 코딩테스트에 오랜 시간이 소요될 때는 뒤에 해야하는 공부들이 점점 밀려서 스트레스를 받았는데 오늘은 일찍 풀게되서 너무 좋다.. 히히히..ㅎ힣…