Java에서 DBMS 관리가 용이하게 해주는 JDBC을 편리하게 사용할 수 있게 해주는 jdbcTemplate
DTO는 데이터를 전달하는 바구니, getter와 setter만 가능
비영속과 영속 상태, detach(entity), clear(), close(), merge(entity) 저장, merge(entity) 수정
build.gradle : spring-boot-starter-data-jpa 추가, application.properties : Hibernate 설정, Memo Entity, 트랜잭션 테스트 : 메모 생성 성공/실패, 트랜잭션 전파
Spring Data JPA란? Spring Data JPA는 JPA를 쉽게 사용할 수 있게 만들어놓은 하나의 모듈 JPA: 자바 진영에서 ORM(Object-Relational Mapping)의 기술 표준으로 사용하는 인터페이스의 모음 ORM: 데
데이터의 생성(created_at), 수정(modified_at) 시간은 포스팅, 게시글, 댓글 등 다양한 데이터에 매우 자주 활용됨 ➡️ 각각의 Entity의 생성 수정 시간을 매번 작성하는 건 매우 비효율적Spring Data JPA에서는 시간에 대해서 자동으로 값
메서드 이름으로 SQL 생성 가능
@Configuration, @Bean, @Autowired
@Primary, @Qualifier
쿠키-세션, JWT
쿠키, 세션, JESSIONID
로그인 정보를 Server에 저장하지 않고, Client에 로그인 정보를 JWT로 암호화하여 저장(Header, Payload, Signature)
@PostConstruct
ADMIN_TOKEN, Optional
.orElseThrow(), @RequiredArgsConstructor
@Slf4j(topic = "LoggingFilter"), chain.doFilter(request, response);, log.info("비즈니스 로직 완료");
UserDetails, UserDetilsService, Aythentication, SecurityContextHolder, Form Login, UsernamePasswordAuthenticationFilter
로그인 처리 과정, 로그인 구현, @AuthenticationPrincipal
복습 합시당
권한 이름은 ROLE_로 시작해야하고 Controller에 @Secured("권한 이름") 애너테이션으로 권한 설정 가능
ProductRequestDto, @Valid
SignupRequestDtoUserController
Server To Server
클라이언트 서버) RestTemplate 주입 ➡️ Query String 방식으로 Server 입장의 서버로 RestTemplate를 사용하여 요청
restTemplate.postForEntity(URI, Java 객체, 전달 받은 데이터와 매핑하여 인스턴스화할 클래스의 타입);
HTTP 프로토콜 규칙에 맞춰서 직접 만들고 Spring에서 제공해주는 RestTemplate을 사용한 요청까지
.gitignore 얘 왜이래
DB 테이블은 방향 상관 없지만 Entity에서는 방향 개념 존재
단방향 주인(수정, 등록, 삭제 가능)에게 @JoinColumn(), 양방향 외래키의 주인 주인에게 mappedBy
@ManyToOne
1 : N 은 일반적으로 양방향X
@ManyToMany , 중간 테이블 생성
@ ~One은 즉시로딩, @ ~Many는 지연 로딩이고 지연로딩된 정보를 조회하려면 반드시 트랜잭션이 적용되어 영속성 컨텍스트가 존재하는지 확인 해야함
+ 영속성 전이 삭제
orphanRemoval
관심상품 등록 API, 관심상품 희망 최저가 업데이트 API, 관심상품 조회 API
Client와 Server 모두 JWT를 직접 HTTP Header에 담아서 전달받는 방식
상품과 회원의 관계, 상품 등록 및 조회 구현
페이징 및 정렬 설계, 페이징 및 정렬 구현, 테스트 데이터 생성
폴더 테이블 설계 및 폴더와 회원의 관계
라는 오류가 떴다.@Value를 lombok으로 import함@Value를 springframework로 import하면 됨위 사진 중 2번째!
JUnit5
@ExtendWith(MockitoExtension.class)
두 개 이상의 모듈이 연결된 상태 테스트 가능, 모듈 간의 연결에서 발생하는 에러 검증 가능
핵심 로직과 부가 기능을 분리하여 애플리케이션 전체에 걸쳐 사용되는 부가 기능을 모듈화하여 재사용할 수 있도록 지원하는 것
@ExceptionHandler
@RestControllerAdvice = @ControllerAdvice + @ResponseBody
Spring의 properties 파일을 이용한 에러 메시지 관리Spring에서는 properties 파일을 이용하여 에러 메시지 관리 가능에러 메시지는 properties 파일에서 key-value 형태로 작성되며, 작성된 값은 messageSource 를 Bean
복습 또 복습