[Lombok] Builder란? toBuilder를 사용해서 DB 내용 수정하기
·
Spring
toBuilder를 사용하기 전까지는 따로 method를 사용해서 기존 내용을 수정하고 Dirth Checking을 통해 DB내용을 수정하는 방식을 사용하였다.하지만 이 방식은 Setter메서드를 사용하는 방식이기 때문에 누군가 이 setter를 사용해서 값을 변경할 수도 있고, 안전하다고 느껴지지 않았다. 그래서 다른 방식을 찾아보고 @Builder에서 toBuilder를 속성으로 설정하면 해당 엔티티의 값을 편하게 수정 할 수 있다는 것을 찾아냈다! 우선 Builder 어노테이션에 대한 개념과 특징을 살펴보고 toBuilder 사용 방법을 알아보자.  Builder란?우선 우리가 자주 사용하는 보일러 플레이트 메서드(직접 코드를 작성하지 않아도 대신 작성해주는 메서드)인 Getter,Setter,Co..
JPA - DB 연결 예외 : 'url' attribute is not specified and no embedded datasource could be configured.
·
Spring/JPA
프로젝트를 만들다 보면 항상 발생하는 이 오류... 도대체 어디서 항상 발생하는건지 문제를 직접 이해하고 다음에는 이 문제가  발생하지 않도록 설정해보려고 한다.예외에서는 항상 entityManagaer관련 예외가 발생한다. 내 yml 설정은 아래와 같다.spring: messages: basename: messages encoding: UTF-8 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/[DB이름]?serverTimezone=Asia/Seoul username: [Id] password: [Password] jpa: properties: ..
[Spring] AOP의 개념, AsertJ와 차이점, 실습해보기
·
Spring
아래 글은 Spring의 공식 문서를 번역하고 실습을 추가한 내용 입니다!잘못된 내용이 있다면 댓글로 알려주세요 :)  AOP란?관점 지향 프로그래밍(AOP)은 프로그램 구조에 대한 또 다른 사고 방식을 제공함으로써 객체 지향 프로그래밍(OOP)를 보완한다.AOP는 횡단 관심사(Cross-cutting Concerns)를 모듈화하여 코드의 중복을 줄이고 유지보수를 용이하게 하는 프로그래밍 패러다임OOP의 주요 모듈 단위는 클래스인 반면, AOP 의 모듈 단위는 Aspect이다.Aspect는 여러 타입과 객체에 걸쳐 있는 관심사를 모듈화할 수 있게 한다.횡단 관심사란 애플리케이션의 여러 부분에 공통적으로 적용되는 기능(로깅, 트랜잭션 관리 등)AOP는 하나의 프레임워크이다. 스프링 컨테이너 IoC 컨테이너..
[Spring] Spring Batch - 일정한 시간에 회원 유효성 검사하기
·
Spring
SpringBatchSpring Batch는 대용량 데이터 배치 처리에 관한 프레임워크이다.이는 데이터 집계, 변환 및 이관 작업과 같은 반복적인 대규모 처리 작업을 지원한다.주요 개념Job하나 이상의 step으로 구성된 배치 처리 작업의 단위Job은 실행될 전체 작업의 청사진이다.Step실제 작업을 수행하는 단위각step은 Tsaklet또는 ItemReader, ItemProcessor, ItemWriter로 구성될 수 있다.TaskletStep내에서 단일 작업을 수행하는 인터페이스간단한 작업에 적합하며, execute메서드 하나로 정의된다.ItemReader, ItemProcessor, ItemWriterSpringBatch는 데이터 읽기, 처리 및 쓰기를 담당하는 이 세가지 구성 요소로 작업을 정의..
[Java - Spring Security6] Authentication(인증)과 관련된 Provider와 manager
·
Spring/Security6
이전의 내용에서는 1번 Config파일에서 인증을 거쳐야 하는 경로를 지정하거나 6번에서 비밀번호를 암호화하여 비밀번호 일치여부를 확인하는 과정에 대해서 배웠다! 오늘 공부해볼 내용은 3,4 과정이다. 유저는 로그인 하기 위한 세가지 방법을 진행할 수 있다. 첫 번째, 유저의 아이디와 비밀번호로 인증 요청 두 번째, OAuth2를 인증 요청 세 번째, OTP인증 요청 요청은 Security Filter가 인터셉트하여 인증을 위한 ProviderManager의 authenticate 메서드를 호출한다. ProviderManager는 Audentication Provider를 Implement한 클래스들을 모두 호출하여 인증성공을 반환하는 클래스가 있는지 확인한다. 우리는 Authentication Prov..
[Java - Spring Security6] PasswordEncoder와 BCryptPasswordEncoder, 그 이외의 암호화 클래스들
·
Spring/Security6
목차 1. 암호화 표준 2. 비밀번호 검증 순간의 코드 3. 해싱과 PasswordEncoder로 비밀번호가 인증되는 과정 4. PasswordEncoder의 메서드들 5. PasswordEncoder의 다양한 Encoder들 6. BCryptPasswordEncoder적용하기 1. 암호화 표준 암호화 표준 - 어느 것이 적합할까? Encoding 데이터를 한 형식에서 다른 형식으로 변환 어떠한 기밀성도 포함하지 않는다. 누구든지 디코딩 가능, 완전 가역적 비밀번호 관리에는 적합하지 않다. 예시 ) ASCII, BASE64, UNICODE Encryption 기밀성을 보장 데이터를 암호화하려고 할 때 특정 알고리즘을 따르고 비밀 키를 제공한다. 복호화하는데 필요한 것이 비밀 키다. 또한 동일한 알고리즘이..