오늘 배운 것

Java 기초

- StringUtils

String에 대한 유용한 메소드들을 제공하는 클래스이다. null-safe한 연산을 진행해주는 점이 아주 큰 장점이다.

원본 클래스는 org.apache.commons.lang3 를 import해야하고 기능도 더 많지만 spring에서 제공해주는 (org.springframework.util.StringUtils) 만 알아보자.

아래는 공식 문서이다.

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/StringUtils.html

 

StringUtils (Spring Framework 6.0.13 API)

hasText Check whether the given CharSequence contains actual text. More specifically, this method returns true if the CharSequence is not null, its length is greater than 0, and it contains at least one non-whitespace character. StringUtils.hasText(null) =

docs.spring.io

자주 쓰는 유용한 메소드들은

 

hasText() - 입력값이 null이거나, "" 이거나, 공백이 포함되어 있다면 false. 순수한 텍스트만이 있는 지 확인해준다.

public static boolean hasText(@Nullable CharSequence str) {
    if (str == null) {
       return false;
    }

    int strLen = str.length();
    if (strLen == 0) {
       return false;
    }

    for (int i = 0; i < strLen; i++) {
       if (!Character.isWhitespace(str.charAt(i))) {
          return true;
       }
    }
    return false;
}

 

isEmpty() - 문자열이 null이거나 "" 이면 true 반환.

public static boolean isEmpty(@Nullable Object str) {
    return (str == null || "".equals(str));
}

 

trimAllWhitespace() - 모든 공백을 삭제

startsWithIgnoreCase(a,b), endsWithIgnoreCase(a,b) - a가 b로 시작하거나 끝나는지 확인

 

hasText()가 JWT 토큰을 substring할 목적으로 사용되었을 때("Bearer "의 공백을 없애기 위함) 궁금해서 정리해보았다.

 

 

- Spring Security

흐름을 이해하는 게 중요하다. 용어들에 익숙해지자

 

Spring security가 제공하는 인증이 진행되는 filter의 이름은 UsernamePasswordAuthenticationFilter.

UsernamePasswordAuthenticationToken에 (principal(사용자 식별자. 주로userDetails), credentials(비밀번호 인데 인증 후 비움),Authorities)를 넣어주고 이를 AuthenticaitonManager에게 넘겨준다.

이 토큰이 합당하다면 이 토큰을 SecurityContext의 Authentication으로 set해준다.

 

 

알고리즘

- 프로그래머스 : 의상(Level 2, Hash)

느낀 점

처음보는 개념, 어려운 용어들이 우수수 쏟아지다 보니 구현은 커녕 이해도 힘들어지는데 파이팅해보자^^

'TIL' 카테고리의 다른 글

[23.11.16]  (0) 2023.11.16
[23.11.15]  (3) 2023.11.15
[23.11.13]  (1) 2023.11.13
[23.11.10]  (0) 2023.11.10
[23.11.09]  (0) 2023.11.09

+ Recent posts