@Valid를 걸고, 커스텀 어노테이션을 만들어서 코드가 실행되는 것을 확인하고, 테스트 코드로 검증을 하기 위해 테스트 코드를 작성하고 실행을 시켰다. 커스텀 어노테이션 코드가 궁금하다면 아래 글에서 보고 오자. https://myeongju00.tistory.com/152 [Spring Boot] Custom validator annotation 만들기API를 만들다보면 종종 클라이언트가 보낸 값을 검사하는 과정이 필요해진다. 그럴때 검증하는 로직들을 매 비즈니스 로직마다 반복적으로 넣지 말고, 어노테이션을 만들어서 사용해보도록 하myeongju00.tistory.com @Import(MockCerebrasConfig.class)class DiaryTest extends SuperIntegration..
API를 만들다보면 종종 클라이언트가 보낸 값을 검사하는 과정이 필요해진다. 그럴때 검증하는 로직들을 매 비즈니스 로직마다 반복적으로 넣지 말고, 어노테이션을 만들어서 사용해보도록 하자. ConstraintValidator 가 뭔데 ?ConstraintValidator은 jakarta.validation에서 제공하는 유효성 검증 인터페이스이다.ConstraintValidatorsns Controller 진입 전인, Interceptor에서 동작한다.이 반식은 똑같은 코드를 여러 번 반복해서 작성할 필요가 없으며, 코드 통일성 유지할 수 있어 개발 효율성을 높일 수 있다는 장점이 있다. 객체 지향 관점에서 바라봤을때도, 결합도를 낮추고 응집력을 높일 수 있다는 점에서 좋다. ConstraintValidat..
의존성 받아오기//S3 implementation platform("io.awspring.cloud:spring-cloud-aws-dependencies:3.1.1") implementation("io.awspring.cloud:spring-cloud-aws-starter-s3:3.1.1") AWS Credentials Provider 구성하기스프링 클라우드 AWS에서 AWS Credentials Provider를 구성할 수 있는 방법은 3가지가 있다.기본 자격 증명 제공자 - `DefaultCredentialsProvider``StsWebIdentityTokenFileCredentialsProvider - EKS 권장사용자 지정 Aws 자격 증명 공급자 - Custom AwsCredentialsPr..
JWT 토큰 로직을 짜는 중 Gradle: io.jsonwebtoken:jjwt-api:0.12.5 버전에서Jwt.parserBuilder() Deprecated가 되었다고 뜬다.parserBuilder -> parser()setSigningKey(key) -> verifyWith(key)parseClaimsJws(token) -> parseSignedClaims(token)로 바꿔준다. 아래 코드는 다음과 같이 변경하면 된다. Jwts.builder() .expiration(new Date(now + REFRESH_TOKEN_EXPIRE_TIME)) .signWith(this.key) .compact();
JPA 소개 현대의 웹 애플리케이션에서 관계형 데이터베이스는 빠질 수 없는 요소이다. Oracle, MySQL, MSSQL 등을 쓰지 않는 웹 애플리케이션은 거의 없다. 그러다 보니 객체를 관계형 데이터베이스에서 관리하는 것이 무엇보다 중요하다. 관계형 데이터베이스가 계속해서 웹 서비스의 중김이 되면서 모든 코드는 SQL 중심이 되어 간다. 이는 관계형 데이터베이스가 SQL만 인식할 수 있기 때문인데, SQL로만 가능하니 각 테이블마다 기본적인 (CRUD)를 매번 생성해야 된다. 개발자가 아무리 자바 클래스를 아름답게 설계해도, SQL을 통해야만 데이터베이스에 저장하고, 조회할 수 있다. 결국 관계형 데이터베이스를 사용해야만 하는 상황에서 SQL은 피할 수 없다. JPA는 이런 문제점을 해결하기 위해 등..
Spring 단어의 의미스프링 DI 컨테이너 기술(Bean 관리 등)스프링 프레임워크스프링 부트, 스프링 프레임워크 등을 모두 포함한 Spring 생태계 Spring의 핵심 개념"자바 언어 기반의 프레임워크"객체지향 언어가 가진 강력한 특징을 살려내는 프레임워크좋은 객체 지향 어플리케이션을 개발할 수 있게 도와주는 프레임워크 Spring 특징자바 객체와 라이브러리들을 관리, Tomcat과 같은 Was가 내장되어 있어 자바 웹 어플리케이션을 구동할 수 있음경량 컨테이너로 자바 객체를 직접 Spring에서 관리: 객체의 생성및 소멸과 같은 생명주기(Life Cycle)을 관리하며, Spring 컨테이너에서 필요한 객체를 가져와서 사용제어의 역전(IOC, Inversion Of Control): 컨트롤의 제..