본문 바로가기

개인적으로 공부한 것을 정리해 놓은 블로그입니다 틀린 것이 있으면 댓글 부탁 드립니다!


반응형

분류 전체보기

(160)
SPRING DATA JPA 공부 5 - EntityListener 활용 EntityListener는 해당 엔티티 라이프 사이클 중 특점 시점에 원하는 로직을 처리하도록 한다 . 총 7가지가 있으며 각각 엔티티의 라이프 사이클에 맞게 동작한다 @NoArgsConstructor @AllArgsConstructor @RequiredArgsConstructor @Data @Builder @Entity public class User { @Id @GeneratedValue private Long id; @NonNull private String name; @NonNull private String email; private String nickName; @Transient private String testData; @Enumerated(value = EnumType.STRING) ..
SPRING DATA JPA 공부 4 - Query Method 활용 2 ( 정렬과 페이징) 이전 시간에 쿼리메소드에 대한 기본적인 활용에 대해 알아봤다 . 쿼리메소드를 통해 정렬과 페이징을 할 수 있는 방법을 알아보려한다 . repository에 3가지 메소드를 만들었다 1.정렬 List findTop3ByNameOrderByIdDesc(String name); List findFirstByNameOrderByIdDescEmailAsc(String name); List findFirstByName(String name , Sort sort); fintTop3는 이름순으로 내림차순으로 정렬하여 그 중 가장위의 3개 레코드를 얻어오느 메서드이다 메서드이름에 OrderByIdDesc가 그것을 의미한다 . findFirstByNameOrderByIdDescEmailAsc 이름이 엄청길다 이 메서드 처..
SPRING DATA JPA 공부 3 - QueryMethod 활용 JPA에서 기본적으로 제공하는 메서드들이 있지만, where 절에 특정 값을 넣는 경우에는 기본제공 메서드들로 생성하기 한계가 있다 QueryMethod는 Repository에 메소드 이름으로 간편하게 where 절을 구성할 수 있게 해주는 기능이다 . IDE에서 추천을 해주기 때문에 작성하는데에 더욱 편리하다 필드명까지 참조해서 추천해준다 하지만 아래의 추천이 모두 알맞은 쿼리를 작성해 주는 것은 아니기 때문에 아래의 규칙을 한번 보면 좋을 것 같다 . 리턴타입과 메서드명에 관한 규칙들이다 package com.ugo.jpatest.repository; import com.ugo.jpatest.domain.User; import org.springframework.data.jpa.repository.J..
SPRING DATA JPA 공부 2- JPA 메서드 살펴보기 JPA의 기본적인 메서드들을 살펴보자 먼저 테스트하기 위해 entity객체를 하나 만들었다 User @NoArgsConstructor @AllArgsConstructor @RequiredArgsConstructor @Data @Builder //위에 까지는 롬복의 어노테이션이다 //@Entity 는 해당 객체가 JPA에서 관리할 엔티티 타입임을 알려준다. @Entity public class User { @Id @GeneratedValue private Long id; @NonNull private String name; @NonNull private String email; private LocalDateTime createdAt; private LocalDateTime updatedAt; } @Id ..
SPRING DATA JPA 공부 1 - JPA 란? 백엔드 개발에서 주된 일이라고하면 객체화된 데이터를 데이터베이스에 넣거나 반대로 데이터베이스에서 데이터를 꺼내와 객체화하여 응답해주는 일이다. 데이터를 저장하기 위해 데이터베이스를 사용한고 , 객체지향에서 사용하는기본 단위는 오브젝트를 기본 단위로 사용한다. ORM은 객체와 데이터베이스간의 연결을 담당하며 어플리케이션 과 JDBC 사이에서 동작한다. ORM Object Relational Mapping의 약자이다. JPA는 Java Persitance Api의 약자이다. 현재 자바에서 표준으로 채택된 ORM이다. 스프링에서 JPA를 주입받아 Jar파일을 확인해보면 Jacarta.Persistence.Api 라는 이름으로 되어 있는데 2019년 부터 Java Persitance Api에서 Jacarta...
Spring-boot 공부 9 - RestTemplate 활용(Naver Open API 사용) 이전시간에 공부한 RestTemplate를 활용해보려한다 Naver 지역 Api를 활용해서 데이터를 얻어와 보려 한다. 일단 브라우저의 요청을 받을 Controller를 만들었다 . ApiController @RestController @RequestMapping("/api/client") public class ApiController { private final RestTemplateService templateService; public ApiController(RestTemplateService templateService) { this.templateService = templateService; } @GetMapping("/naver") public NaverApiDto naver() thro..
Spring-boot 공부 8 - RestTemplate(Server to Server 간의 통신) Server to Server 간의 통신 백엔드 서버가 클라이언트로서 다른 서버에게 요청을 할때 RestTemplate를 사용한다. spring3.0 부터 지원되었고 , 스프링에서 제공하는 http 통신에 유용하게 쓸 수 있는 템플릿이다 . Http 서버와의 통신을 단순화하고 RESTful 원칙을 지킨다 . jdbcTemplate 처럼 RestTemplate 도 기계적이고 반복적인 코 드를 깔끔하게 정리해준다. 먼저 클라이언트 서버에서의 요청은 sevice 단에서 이루어 지며 UriComponentsBuider를 통해 URI를 생성하고 RestTemplate를 생성해 요청을 만들어낼 수 있다. RestTemplate은 Spring WEB 프로젝트 안에 있는 기능이기 때문에 Spring Web Depend..
Spring boot 공부 6 - interceptor interceptor interceptor는 Filter 와 매우 유사하나 차이점은 ,Web Application context 에서 돌아가는 filter와는 다르게 Spring Context에 등록 되고 그 안에서 동작하기 때문에 Spring Context에 관한 내용을 사용할 수 있다 . 필터와 마찬가지로 선/후 처리가 가능하기 때문에 , 인증 단계를 처리하거나 , Logging을 Service business logic으로 부터 분리 시킬 수 있다 . Interceptor 구현 먼저 인터셉터를 탈 PrivateController와 모두에게 공개되는 PublicController를 만들었다. PrivateController //인증된 사용자만 접근할 수 있는 컨트롤러 @RestController @R..

반응형