본문 바로가기
반응형

분류 전체보기714

TIL_210829 1. Facts(사실, 객관) - JPA 영속성 컨텍스트 정리 - JPA 칼럼, 기본키 설정, 테이블 자동생성 강의 2. Feelings(느낌, 주관) - JPA 개념 정리에 이어서, JPA의 영속성 컨텍스트의 작동원리와 장점에 대해 정리했습니다. 강의를 들으면서, 영속성 컨텍스트의 이미지를 떠올리고 최대한 해당 내용을 머리속에서 순서대로 이해하기 위해 노력했습니다. 그렇게 하나씩 그림을 추가하고 그 필요성과 장점에 집중하니 훨씬 이해가 빨랐습니다. 또한 JPA 칼럼, 기본키 설정, 테이블 자동생성 등의 설정과 어노테이션에 대해 배웠습니다. 내일 그 내용들을 종합해서 정리하고 넘어갈 예정입니다. 다른 강의와 맞물려서 JPA를 학습하는데, 상호 보완을하여 잘 정리하고 적용할 수 있도록 노력할 것입니다! 3.. 2021. 8. 31.
JPA 영속성 컨텍스트 개요 일반적으로 Spring Data Jpa를 사용하여 간단한 CRUD를 작업할 수 있습니다. 쉽게 사용 가능한 이유는, 해당 메서드들이 인터페이스에 추상화되어 있어 개발자는 가져다가 사용만 하면 되기 때문입니다. 한 단계 깊이 들어가서, 해당 인터페이스를 구현한 SimpleJpaRepository를 보면, Entity Manager를 통해 각 메서드들을 직접 구현했음을 확인 할 수 있습니다. 해당 기능으로 제어하는 JPA의 중요한 개념인 영속성의 동작 원리를 알아보겠습니다. 영속성 컨텍스트란? 영속성 컨텍스트는 "엔티티를 영구 저장하는 환경"이라는 뜻입니다. EntityMnager.persist(entity); 가 대표적인 코드입니다. 영속성 컨텍스트는 논리적인 개념으로, 눈에 보이지 않지만, Enti.. 2021. 8. 30.
TIL_210828 1. Facts(사실, 객관) - Query Method 조사 및 글쓰기 - EntityManager 인프런 강의 공부 2. Feelings(느낌, 주관) - Query Method를 사용하여 JPA로 DB를 조작하는 방법을 다시한번 확인했습니다. 간편한 조회를 위해서 Query Method를 사용하면 좋습니다. 단순히 인터페이스를 사용했던 것과 달리 이제는 구현체가 어떻게 되어있는지 공부하는 습관을 가지려고 노력하고 있습니다. 물론 해당 Query Method에 해당하는 것은 아니지만 CrudRepository, JpaRepository 등은 메서드를 보고 javadoc도 열심히 살펴보았습니다. 또한 이전에는 어렴풋이 이해했었던 Entity Manger에 대해 공부했습니다. 공부할 떄 중요한 것은 큰 .. 2021. 8. 29.
네이버 지역검색 API를 활용한 맛집 List 제작 - (4) 1. wishListEntity 생성 2. Controller 생성 3. 검색, 조회, 위시리스트 삭제, 방문추가 Service 생성 1. wishListEntity 생성 @NoArgsConstructor @AllArgsConsctructor @Data public class WishListEntity extends MemoryDbEntity { ... } 2. Controller 생성 @RestController @RequiredArgsConstructor @RequestMapping("/api/restaurant") public class ApiController { private final WishListService wishListService; @GetMapping("/search") publi.. 2021. 8. 29.
Query Method Spring에서 사용하는 JpaRepository, CrudRepository 등에는 기본적인 CRUD 관련 메서드가 기본적으로 정의되어 있다. 예를 들어, 조회(검색)의 경우 findById()라는 메서드가 있는데, 내가 엔티티를 조회할 때 Id 뿐만 아니라 다른 것을 이용하고 싶다면 어떻게 할 수 있을까? 해당 메서드를 직접 정의하고 "구현"하지 않더라도, Spring Data JPA 규칙에 맞게 메서드 이름을 정의한다면 내부적으로 이름에 맞게 검색을 해준다. 다음은 Spring Data JPA 공식문서에서 제공하는 네이밍 방법이다. public interface UserRepository extends JpaRepository { User findFirst1ByName(String name); Li.. 2021. 8. 29.
Spring Data Repository Interface Spring Data는 Spring 프로젝트 중 데이터 접근에 관련된 프로젝트이다. 기본적인 데이터 저장소의 특성을 유지하면서 데이터 접근을 위해 친숙하고 일관된 스프링 기반 프로그래밍 모델을 제공하는 것이 목표이다. 대표적으로 Spring Data Commons, Spring Data JPA가 있으며 해당 내용을 알아보도록 한다. Repository 데이터베이스 마커 인터페이스로, 타입과 id의 타입을 설정한다. ( 마커 인터페이스 ) CrudRepository CRUD 메서드를 제공한다. 생성, 읽기, 삭제 메서드가 제공된다. S save(S entity); Iterable saveAll(Iterable entities); Optional findById(ID id); boolean existsByI.. 2021. 8. 29.
SQL select 쿼리 문법 순서 1. FROM 2. ON 3. JOIN 4. WHERE 5. GROUP BY 6. CUBE | ROLLUP 7. HAVING 8. SELECT 9. DISTINCT 10. ORDER BY 11. TOP - FROM GROUP BY HAVING SELECT - FROM ON JOIN WHERE SELECT DISTINCT ORDER BY - SELECT, ORDER BY는 나중에 실행된다 - JOIN을 사용했을 때 FROM ON JOIN WHERE 순서로 실행한다. 출처 : https://bicloud.tistory.com/20 2021. 8. 28.
TIL_210827 1. Facts(사실, 객관) - 개발자를 위한 오라클 SQL 튜닝 3장 조인 튜닝 ( 중첩루프조인, 해시조인 ) - JPA 개념 조사 2. Feelings(느낌, 주관) - 평소에 JPA, Hibernate, Sring JPA DATA 등 다양한 JPA 관련 용어들의 정확한 쓰임새가 궁금했다. 따라서, 이번 기회에 해당 내용을 정리하였는데, 생각보다 각 기술이 등장하고 사용되는 것에 나름의 타당한 이유와 등장배경이 있었다. 큰 흐름을 알고나니, 또 단순히 Spring JPA DATA를 사용하는 것이 아니라, 안에 어떻게 함수들이 구현되어있는지도 궁금해졌다. 일단 역사에 대해 다양한 사이트에서 내용을 종합해 정리하였으며, 추후 구현된 내용들을 확인할 예정이다. 또한 mybatis를 사용하면서 종종 CDA.. 2021. 8. 28.
TIL_210826 1. Facts(사실, 객관) - 개발자를 위한 오라클 SQL 튜닝 2장 인덱스 튜닝 - ORACLE ROWNUM 조사 2. Feelings(느낌, 주관) - SQL 작성을 넘어서서 어떻게하면 성능을 끌어올릴 수 있는지 튜닝에 관심이 생겼다. 가끔 시스템에서 너무 느린 쿼리문을 본 경험들이 많다. 따라서, 해당 쿼리들을 어떻게 바꾸어야 하는지 평소 궁금증이 많았다. 또한 오라클 힌트, 인덱스등이 궁금하기도 했다. 책이 작아서 가볍게 들고다니기 좋았다. 출퇴근 시간을 이용해서 공부할 생각으로 보았고, 술술 읽혔다. 안타깝게도 실무 튜닝책이다보니 오라클 힌트에 대한 설명을 생략하고 바로 인덱스로 들어갔다. 몇초 걸리던 쿼리문이 몇초로 줄었는지 구체적으로 알 수 있어서 좋았다. 앞으로 단순한 쿼리문 뿐만 아니.. 2021. 8. 28.
반응형