Personal Research 5

SecurityContextHolder

Spring Security의 인증부분을 공부하던 도중 SecurityContextHolder에 관해 의문점이 생겨 포스트를 작성하게 되었다. SecurityContextHolder는 위와 같이 Spring Security에서 UsernamePasswordAuthenticationFilter에서 인증작업을 모두 마친 후 UserPasswordAuthenticationToken을 SecurityContextHolder에 담아 보관하게 된다. 하지만 공부 도중 실습단계에서 구현한 코드에는 해당 내용을 찾을 수 없엇다. 대신 OncePerRequestFilter를 상속받는 또 다른 Filter에서 SecurityContextHolder를 찾을 수 있었다. public class JwtVerificationFi..

Personal Research 2023.05.18

BindException과 MethodArgumentNotValidException

개인 프로젝트를 하던중 쿼리 파라미터의 정보가 만들어 놓은 Dto의 유효성 검증에 실패했을때 BindException이 발생 하게 되어 @ExceptionHandler를 이용하여 해당 예외에 대한 처리를 코드로 작성 해주려 하고 있었다. BindException에 대한 예외 처리 코드 작성 GlobalExceptionAdvice @RestControllerAdvice public class GlobalExceptionAdvice { @ExceptionHandler @ResponseStatus(HttpStatus.BAD_REQUEST) public ErrorResponse handleMethodArgumentNotValidException( MethodArgumentNotValidException e) {..

Personal Research 2023.05.10

Mysql, safe update mode

위와같이 테이블과 데이터들을 생성해주고 title이 'article for Java'인 데이터의 body를 수정해주려고 했다. UPDATE content SET body ='this is an article about Java' WHERE title='article for Java' 기본적인 방식인 UPDATE를 사용해 주었는데 에러가 발생했다. Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect..

Personal Research 2023.03.31

MySQL 서브쿼리

MySQL의 서브쿼리에 대해 연습겸 실험을 진행 해봣다. 실험 예제 위의 그림과 같이 데이터베이스에 테이블들을 생성 및 관계를 형성해주었다. category의 name이 'homework'인 content의 title, created_at 그리고 user의 name을 찾기위한 쿼리를 작성하려고한다. 1. Join 활용 select user.name as username, content.title, content.created_at from user inner join content on user.id = content.userid inner join content_category on content.id = content_category.contentid inner join category on cont..

Personal Research 2023.03.31

실험을 통해 깨닳은 추상화의 중요성

이번 포스트는 지난 포스트에서 스트림의 groupingBy에 대해 공부하던 도중 알게된 것들을 다룬다. (지난포스트: https://mason-lee.tistory.com/65) 사건의 발단 사건의 발단은 스트림의 groupingBy를 구현해보다가 코드를 좀더 깔끔하게 보여지기를 원해서 새로운 클래스에 스태틱 메서드를 작성하게 되었다. 이후 해당 클래스를 콜렉션 프레임워크 처럼 필요할때마다 꺼내쓰면 어떨까? 라는 의문이 들어 실험을 하게 되었다. public class Main { public static void main(String[] args) { List list = new ArrayList(); list.add( new Human("김철수",23,"남자")); list.add( new Human..

Personal Research 2023.03.11