본문 바로가기

전체 글838

Spring Validation in Kotlin data class Dto( @field:NotNull val x: Int?, @field:NotNull val s:String, ) Spring Validation @filed:NotNull 선언이 되어 있으면 객체 타입 null 로 보내면 에러 아예 json 에 포함되지 않으면 에러 Int 등 숫자 타입 Nullable 처리가 되어 있을 시 (Int?) null 로 보내면 에러 json 필드에 포함되어 있지 않으면 에러 Nullable 처리가 되어 있지 않을 시 (Int) 빈 값을 보내면, 숫자 기본 값 들어감 null 을 보내면, 숫자 기본 값 들어감 NotNull 선언 x 객체 타입 안전 연산자가 있을 시 json 필드에 포함되있지 않으면 null로 받음 null 로 보낼시 null로 받음 안전 .. 2024. 1. 14.
Spring @Async + ThreadPoolTaskExecutor 동기/비동기 동기 함수의 종료 시점과, 결과를 반환 받은 시점이 같은 경우 비동기 함수의 종료 시점과, 결과를 반환 받은 시점이 다른 경우 Spring @Async Spring 에서는 @Async 어노테이션을 통해 비동기 처리 지원 @Async 어노테이션을 적용하면 내부적으로 프록시로 동작 Caller Thread와 다른 Thread에서 비동기 작업 동작 내부적으로 proxy를 사용하기 때문에 private 메서드에 적용 불가 또한 self-invocationg 도 불가하다. → proxy 미적용 문제 Spring Context에 등록되어 있는 Async Bean 호출 Spring이 Async Bean을 Proxy로 Wrapping Spring Container에 의해 Bean으로 등록되는 시점에 프록시.. 2024. 1. 14.
[책 후기] 자바 성능 튜닝 이야기 https://product.kyobobook.co.kr/detail/S000001032977 자바 성능 튜닝 이야기 | 이상민 - 교보문고 자바 성능 튜닝 이야기 | 『자바 성능 튜닝 이야기』는 고성능 애플리케이션을 위해 고려 해야 할 복잡한 요소들을 하나하나 짚어 주는 책이다. 장애를 일으키는 반복적인 코딩 이슈부터 시스템 product.kyobobook.co.kr 과거 JVM 내부 로직과 GC에 대해 공부하고 싶어 책을 찾던 중 알게된 책이다. 막상 구매하고 읽지 않았는데, JVM 복습 겸 읽게 되었다. 자바의 신 저자인 이상민님이 작성한 책이다. 책 내용 자체는 좋지만 2013년 책이라 과거 이야기가 많다. JSP, 서블릿이 자주 나오는데, 2013년 당시에는 진짜 좋은 책이였을 것 같다. 해당 .. 2024. 1. 6.
Spring Security Filter 작성 이유 회사 프로젝트에는 Auth 모듈이 개별적으로 존재한다. 해당 모듈은 주로 Auth 기능을 담당하는데, JWT 토큰 관련 설정도 존재한다. 앱과 웹 환경이 존재하는데, 둘의 JWT Provider가 다르다. 웹 쪽에서 버그가 발견되었는데, 한쪽 로그인을 해놓고, 다시 로그인을 하면 헤더에 토큰이 존재하는 상태로 요청이 간다. 즉, 중복 로그인 처리 문제인데, 시나리오 상 토큰을 실은 상태로 로그인을 시도하면, 로그인 된 것으로 간주해야 한다. 하지만 토큰 시그니처가 맞지 않다는 에러가 발생 → 클라이언트에서도 해당 버그를 인지하지 못한 상태여서 에러 처리가 안되어 있어 다시 로그인 시도 위 과정을 반복하며 무한 로그인 시도가 되는 버그가 있었다. 이로 인해 Auth 모듈에 요청이 비정상적으로 많.. 2024. 1. 1.
[책 후기] 자바 ORM 표준 JPA 프로그래밍 https://product.kyobobook.co.kr/detail/S000000935744 자바 ORM 표준 JPA 프로그래밍 | 김영한 - 교보문고 자바 ORM 표준 JPA 프로그래밍 | 자바 ORM 표준 JPA는 SQL 작성 없이 객체를 데이터베이스에 직접 저장할 수 있게 도와주고, 객체와 관계형 데이터베이스의 차이도 중간에서 해결해준다. 이 책은 JPA product.kyobobook.co.kr 과거 취업하기전에 김영한님의 인프런 강의 JPA를 들으면서 샀던 책이다. 회사에서는 JPA 와 MyBatis 기술을 주로 사용하는데, 주로 JPA를 많이 사용한다. 실무에서 프로젝트를 진행하며 새로운 엔티티를 추가해야 했는데, DDD 형식으로 구성하였다. 그래서 Aggregate 개념을 적용해서 설계하였.. 2023. 12. 31.
[책 후기] 아토믹 코틀린 https://product.kyobobook.co.kr/detail/S000201206714 아토믹 코틀린 | 브루스 에켈 - 교보문고 아토믹 코틀린 | 코틀린을 익히고 레벨업하는 가장 확실한 방법! 한 번에 하나씩 + 명확한 예제를 실행하면서 + 훌륭한 멘토의 설명으로 배워라!코틀린의 기본 개념을 명확히 이해하고, 더 나은 product.kyobobook.co.kr 현재 회사에서는 자바 환경에서 코틀린으로 마이그레이션 중 이다. 하지만 대부분 새로 생기는 기능만 코틀린 코드로 작성 중 이다. 코틀린을 과거에 접해보긴 했지만, 기본적인 문법도 부족하여 회사에서 레퍼런스를 찾아보며 적용하였다. 자바랑 호환되고, 문법만 다르기 때문에 습득과 사용에는 큰 어려움이 없었다. 필요할 때 레퍼런스를 참고하여 적용.. 2023. 12. 17.