LostCatBox

LostCatBox

내 생각을 자유롭게 만들 때까지

Advenced-JPA1-CH04
홈화면(thymeleaf) DTO, Entity 는 반드시 분리하기 -> Entity는 완전 순수한 상태로만 쓰기 RestAPI 만들때는 Entity 절대 반환 금지 -> api 는 스펙이다. 엔티티가 계속 바뀌면 스펙이 바껴버림 변경 감지와 병합(merge) em.save() 시에는 Entity.getId() 값이 없는 것 -> em.persist() Entity.getId() 없는것은 em.merge() 가일어난다. 준영속 엔티티?영속성 컨텍스트가 더는 관리하지 않는 엔티티를 말한다. (여기서는 ...
Advenced-JPA1-CH03
상품 주문order Entity에서 객체는 자율적이여야한다. 따라서 필요한 create, remove, 자신의 주요 행동 메서드는 자신이 직접가지고있는것이 자율적이다.(캡슐화) 예시 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788package jpabook.jpashop.do...
(리뷰)객체 지향의 사실과 오해 책 리뷰
참조강추) 책을 삽시다! 훨씬 좋은 내용이 많습니다. 많이 배웠습니다 감사합니다. 저자님 왜?객체 지향적으로 짠다는 것은 무엇을까? 한번 생각해 보는 시점이 되었다. 어떻게 하면 더 좋은 코드를 짤수있을까? 예를 들면, request.checkValidation() 를 하는것이 좋은것인가?, 아니면, checkValidation(request)의 형태를 만드는 것이 더 객체 지향 스러운것인가? 너무 궁금헀다. => 결과적으론 이 문제는 상황마다 다르다라는 것이 정답이였다.(꼭 객체 지향이 좋은것도아님) 객체의 자율성을 ...
Advenced-JPA1-CH02
해당 강의 이후부터는 내용 전부가 아닌 핵심 부분들만 분석해서 팁으로 남길예정이다.기능 요구사항회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 기타 요구사항 상품은 재고 관리가 필요하다. 상품의 종류는 도서, 음반, 영화가 있다. 상품을 카테고리로 구분할 수 있다. 도메인 모델과 테이블 설계 엔티티 회원 테이블 MTM은 결국 FK 두개가 모이는 테이블이 따로 생길수밖에없다 연관관계 주인만 데이터 변경가능, 하인은 조회만 가능...
Advenced-JPA1-CH01
JPA 실전 1편기본 설정 gradle 파일 java 11 Springbok 2.7.11 1234567891011121314151617181920212223242526272829303132333435363738plugins { id 'java' id 'org.springframework.boot' version '2.7.11' id 'io.spring.dependency-management' version '1.0.15.RELEASE'}group = 'jpabook'version = '0.0.1-SNA...
(JPA) JPA-Basic-CH10(fetch-join)
페치 조인 SQL 조인 종류X JPQL에서 성능 최적화를 위해 제공하는 기능 연관된 엔티티나 컬렉션을 SQL 한 번에 함께 조회하는 기능 join fetch 명령어 사용 페치 조인 ::= [ LEFT [OUTER] | INNER ] JOIN FETCH 조인경로 엔티티 페치 조인 회원을 조회하면서 연관된 팀도 함께 조회(SQL 한 번에) SQL을 보면 회원 뿐만 아니라 팀**(T.*)*도 함께 *SELECT [JPQL] select m from Member m join fetch m.team 마치 member만 조회한것같지만,...
(ETC) 디자인 패턴에 대해서 CH3 (행동 디자인 패턴에 대해)
행동 패턴 참조전체 참조 메멘토 패턴 중재자 패턴 반복자 패턴 커맨드 패턴 책임 연쇄 패턴 책임 연쇄 패턴사용 상황 요약책임 연쇄 패턴은 핸들러들의 체인(사슬)을 따라 요청을 전달할 수 있게 해주는 행동 디자인 패턴입니다. 각 핸들러는 요청을 받으면 요청을 처리할지 아니면 체인의 다음 핸들러로 전달할지를 결정합니다. 책임 연쇄 패턴이란? 책임 연쇄 패턴은 특정 행동들을 핸들러라는 독립 실행형 객체들로 변환합니다. 당신의 앱의 경우 각 검사는 검사를 수행하는 단일 메서드가 있는 자체 클래스로 추출되어야 합니다. 이제 요청은 데이...
(JPA) JPA-Basic-CH09(객체지향 쿼리 언어)
JPA는 다양한 퀴리 방법 지원 JPQL JPA Criteria QueryDSL 네이티브 SQL JDBC API 직접 사용, MyBatis, SpringJdbcTemplate 함께 사용 JPQL 기초 반드시 숙달 가장 단순한 조회방법 검색할때도, 테이블이 아닌 엔티티 객체를 대상으로 검색 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능 애플리케이션이 필요한 데이터만 DB에서 불러올려면, 검색 조건이 포함된 SQL 문 필요 JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어 제공 JPQL은 엔티티를 대상으...
(JPA)JPA-Basic-CH08(값 타입)
값 타입 중요한것 임베디드 타입(복합 값 타입) 값 타입 컬렉션 기본값 타입JPA의 데이터 타입 분류엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 식별자로 지속해서 추적 가능 예) 회원엔티티의 키나 나이값을 변경해도 식별자로인식가능(id값은 변하지않으니까) 값 타입 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있으므로 변경시 추적 불가 엔티티의 생명주기를 따라감(엔티티죽으면다죽음) 예) 숫자 100을 200으로 변경하면 완전히 다른 값으로 ...
(JPA) JPA-Basic-CH07(프록시)
프록시왜?(Member : Team = N : 1)Member를 조회할때 Team도 함께 조회해야 할까? 비즈니스 로직에 따라다르다. 거의 항상 Member를 불러낸후, team의 정보와 같이 출력하는 비즈니스 로직있다면,Team정보까지 쿼리 한번에 가져오는 것이 좋다 Member만 쓰고, Team을 가끔 쓰는경우,Member만 쿼리로 호출하는것이 좋음 JPA에서는 즉시 로딩과 지연 로딩을 활용하여, 문제해결 프록시 기초 em.find() vs em.getReference() find()는 진짜 엔티티 객체를 반환함 get...
avatar
lostcatbox
내 생각을 자유롭게 만들 때까지
FRIENDS
friendA friendB