전체 글
JPA 관련 주의 사항 정리
👉 Fetch Join의 한계페치 조인을 쓰면 연관된 전체 데이터를 다 가져와야 한다!만약에 조건에 만족하는 연관된 데이터만 가져올 경우 Collection에 전체 데이터가 담기지 않고 선택된 데이터만 담긴 다음 영속화 되어버린다. 이 때 다른 곳에서 해당 Collection을 호출 할 경우 정상적으로 데이터를 반환하지 못하게 된다. JPA의 Fetch Join 목적 자체는 전체 데이터를 가져오려고 설계 된 것임을 유의하자. 둘 이상의 Collection을 Fetch Join 하면 안된다!데이터가 뻥튀기 된다. 곱하기 곱하기가 되어서 데이터가 예상치 못하게 늘어날 수 있다. Collection을 Fetch Join하면 페이지 기능을 사용할 수 없다.일대일, 다대일은 페이징을 쓸 수 있다. (데이터 뻥튀기..
마이페이지 쿼리 성능 점검
더미데이터 삽입 목적데이터 용량이 만 단위를 넘어서게 되면 쿼리의 성능이 어떻게 나오는지 파악하고, 만약 성능이 안좋다면 이를 개선하기 위함. 마이페이지 관련 테이블 정보 총 3가지 테이블member (회원 정보)sbd (회원의 운동 수행 능력 정보, 3대 운동 중량)member_gym (회원이 등록한 헬스장 정보 - 최대 2개 까지 가능) member와 sbd는 일대다 관계 member와 member_gym도 일대다 관계 memer_gym과 sbd는 무슨 차이가 있는가?member_gym은 한 회원당 2개까지만 생성 가능, 만약 추가 생성을 한다면 이전에 생성된 테이블은 소프트 삭제 처리sbd는 한 회원당 무한으로 생성 가능, 마이페이지 조회 시에 최신 sbd 정보만 조회 마이페이지 관련 더미데이터 삽..
개발 입문 1주년 회고 - (1)
어느덧 개발에 입문한 지 1년이 지났다. (정확히 말하자면 1년 반..) 그동안 참 많은 일이 있었다. 첫 2개월 간 자바 기본 문법을 공부하였고, 그 뒤로는 인프런 김영한 님의 스프링 강의를 보며 스프링 학습과 간단한 게시판을 만들어봤다. 그때까지만 해도 나는 흔히 말하는 '네카라쿠배'를 1년 정도 공부하면 갈 줄 알았다 ㅎㅎ.. 개발 공부는 나에게 있어서 밑 빠진 독에 물 붓는 느낌이었다. 새로운 내용을 학습하고 몇 개월이 지나면 그 새 잊어버렸기 때문이다. 계속해서 반복하지 않으면 관련 지식을 내 것으로 만들기 어려웠다. 그렇다고 계획적으로 복습하는 성격도 못되는지라.. 어렴풋이 아는 것을 많은데, 그것에 대해 자세하게 설명하라고 하면 말 못 하는 감자가 되기 십상이었다 ㅜ 지금도 내가 관심 있는 ..
DB 인덱스 실습
여태 까지 이론적으로 알고 있던 인덱스의 종류 (단일, 복합, 커버링) 인덱스에 대하여 직접 설정을 해보고 그 효과에 대하여 실습을 해보려고 합니다. Table 구조 구조를 조금 단순화 하기 위하여 Member Table에서 PK에 해당하는 member_id와 회원이 거주하는 도시 city 그리고 상세 거주 지역 관련 정보 location, 마지막으로 회원의 이름 name등 4가지 칼럼을 생성하고 이에 대해 각각 인덱스를 거는 방식을 달리 함에 따라 실습을 진행할 에정입니다. 데이터 생성 CREATE DEFINER=`performance`@`%` PROCEDURE `insertMembers`() BEGIN DECLARE i INT DEFAULT 1; DECLARE j INT DEFAULT 1; DECLA..