이전

리뷰 (2)

한줄평
평점 분포
  • 리뷰 총점10 100%
  • 리뷰 총점8 0%
  • 리뷰 총점6 0%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 0.0
  • 30대 0.0
  • 40대 9.0
  • 50대 10.0

포토/동영상 (1)

리뷰 총점 종이책 구매
일독 하였습니다.
"일독 하였습니다." 내용보기
따라가기 쉽게 잘 정리되어있어서, 책을 끝가지 마칠 수 있었습니다. 마지막 장은 좀 테스트 코드를 추가하면서 하면 좋았는데, 그렇게까진 못하였네요.. ㅠㅠ 연관관계 부분은 아리송한 부분이 있는데, 해깔리는 부분은 한번 더 읽어보려고 합니다. 책 잘 읽었습니다. 감사합니다.       개정판이 나온다면 희망 의견  main 메서드 테스트 대신 JUnit으로 동작을 테스트하는
"일독 하였습니다." 내용보기

따라가기 쉽게 잘 정리되어있어서, 책을 끝가지 마칠 수 있었습니다.

마지막 장은 좀 테스트 코드를 추가하면서 하면 좋았는데, 그렇게까진 못하였네요.. ㅠㅠ

연관관계 부분은 아리송한 부분이 있는데, 해깔리는 부분은 한번 더 읽어보려고 합니다.

책 잘 읽었습니다. 감사합니다.


 

 

 

개정판이 나온다면 희망 의견

  •  main 메서드 테스트 대신 JUnit으로 동작을 테스트하는 식으로 진행하면 좋을 것 같습니다.
    • 프로젝트 설정시 JUnit 4 또는 5가 기본 사용가능한 상태가 되어, 사용이 어렵지는 않을 것 같습니다.
    • 나중에 Scanner로 입력을 받는 예제가 등장하는데.. 이부분은은 JUnit5의 @ParameterizedTest 로 처리하긴했습니다.
  • Java 8 이상의 Lamda 식이나, 최신 날짜 클래스를 사용하면 좋을 것 같습니다
    • 책에서도 OpenJDK 13으로 사용하기 때문에, 적어도 Java 8의 기능을 사용하는 식으로 가이드가 되면 좋을 것 같습니다.
    • 하이버네이트 요즘 버전에서는 Java 8의 LocalDate, LocalDateTime을 그대로 사용할 수 있음.
    • * 반복 부분들을 람다 식으로 바꿔봐도 좋을것 같습니다.
  •  p362~365 까지 log4j 추가가 있는데, 아래 내용이 들어가거나 변경되면 좋을 것 같습니다.
    • log4j2 slf4j기반으로 가이드가 되면 좋을 것 같음
    • 로거 이름을 org.hibernate.type 까지보다는 org.hibernate.type.descriptor.sql.BasicBinder 까지 지정하고 레벨을 TRACE 로 유지했을 때, 바인딩로그만 보여서, 괜찮긴 했던 것 같습니다. 이부분 먼저 알려주셔도 좋을 것 같습니다.
  • p471 :부서정보가 없는 직원을 검색하는 것에 대해서는, dept(s_dept)에 대한 fetch 없이 s_emp.dept_id 가 NULL인 것만 확인하면 되기 때문에, 일부러 FETCH문을 포함할 필요가 없을 것 같습니다.
  •  p490 : trim 함수 사용부분에 Character.valueOf('부')로 되어있는데.. '부'로만 써도 될 것 같습니다.
  • p495 : 컬렉션 함수 이용하기 도입부 설명에서 GROUP BY 절과 HAVING 절을 이용했다고 적혀있는데, 실제로 JOIN하고 서브쿼리로 쿼리가 실행되어서, 조금 설명이 해깔리는 것 같습니다.
  •  p526 ~ 529
    • failed to lazily initialize a collection of role 관련 예외에 대해서,  부서 조회후 트랜젝션이 끝난 상태에서, 거기에 속한 직원을 조회하려해서 저런 예외가 난 것 같습니다.
      부서 조회와 내부의 직원 컬렉션을 조회하는 부분을 트랜젝션 범위에 둔뒤에 실행할 때는 예외가 발생하지 않았습니다.
      부서가 소유한 직원컬렉션을 EAGER 전략으로 사용하는 것외에도 트랜젝션 관련 설명이 추가되면 좋을 것 같습니다.
  • 마지막 9장의 마크업
    • 단순하기 때문에, HTML5 기반에 스타일도 단순하게 인라인으로 집어넣어 예제를 만들어주셔도 좋을 것 같습니다.
      저는 진행하면서 HTML5에 인라인 css로 바꾸거나하였어요.
  • 진행을 Gradle로 했었는데, 괜찮아보였습니다.Gradle로의 빌드도 한번 검토해주셔도 좋을 것 같습니다.

정오표 

  •  p175 : 동기화 잡업 -> 동기화 작업
  • p470 :
    • le(), lessThanOrEqualTo() 항목
    • 메서드는 맞는데, 값만 25400.00 에서 121500.00 으로 변경필요.
    • lessThan() 항목
    •  builder.graterThan(emp.<Double>.get("salary"), 25400.00) -> builder.lessThan(emp.<Double>.get("salary"), 121500.00)
  •  p474 : 주석 부분에서  AND emp.salary >= 5000/00 의 우변 값 부분을 35000.00 으로 변경
  • p507 : 공퉁으로 -> 공통으로
  • p609, p636, 637 : 영속성 유닛 설정 이름 부분 "RubbyShopping" -> "RubyShopping", "RubbyShoppingClient" -> "RubyShoppingClient"
    • rubby 란 단어가 알콜중독자란 뜻이 있어서 고치는게 나을 것 같습니다.
  • p618 : reduceStock 함수에서 'if (quantity < 0)' 조건에 this를 붙여야함. this를 붙이지 않으면 파라미터 값을 사용해서 항상 양수가 되어,
    재고 수량 부족에대한 처리가 오동작함.
  • p624 : Hibernate 쿼리실행결과에서, Item엔티티의 테이블 명을 S_ITEM으로 설정했다면..  Item 엔티티의 테이블 생성구문, 외래키 설정 구문에 나타난 테이블 이름 들이 S_ITEM으로 나와야할텐데, S_ORDER_PRODUCT 로 표시되어있습니다.

 

기타

  • Gradle
    • Windows 8.1 과 Gradle 6.4.1 이상에서 빌드 문제가 있음.
    • 빌드시 계속 데몬을 실행시켜, Java프로세스가 무한정 늘어남..
    • 6.4 버전까지는 이슈 없음.
  • IntelliJ
    • JPA Console로 SELECT조회하면 persistence.xml의    hibernate.hbm2ddl.auto=create 설정을 다시 읽어서 조회를 하는지?    DB의 데이터가 삭제됨
    • DB에서 S_EMP와 S_DEPT를 제거하고 JPA Console로 Employee를 조회했을 때, 테이블이 생기는것을 확인함, 그동안 못느꼈던 원인은 아마도 update되어있던 상태였태 였었을 것 같습니다..
  • MyBatis 파트는 SqlSession만 만들어서 아래 /mybatis-dynamic-sql 라이브러리로 테스트
    • https://mybatis.org/mybatis-dynamic-sql/docs/quickStart.html 
YES마니아 : 골드 s******n 2021.02.21. 신고 공감 3 댓글 0
리뷰 총점 종이책 구매
JPA 퀵스타트
"JPA 퀵스타트" 내용보기
첵 제목 안에 퀵스타트가 들어가는 책답게, 이 책으로 문법을 공부하여 JPA를 바로 사용해볼 수 있습니다. 내부 원리를 알 수 없다는 점이 단점이긴 하지만, JPA를 바로 사용해야 하는 순간에 이 책으로 공부하여 JPA를 사용한 다음, 나중에 차차 내부 원리를 익히면 될 것 같습니다.  다양한 상황에 대해 예제로 제공되며, 예제에 대해 설명이 깔끔한 것도 장점입니다.
"JPA 퀵스타트" 내용보기

첵 제목 안에 퀵스타트가 들어가는 책답게, 이 책으로 문법을 공부하여 JPA를 바로 사용해볼 수 있습니다. 내부 원리를 알 수 없다는 점이 단점이긴 하지만, JPA를 바로 사용해야 하는 순간에 이 책으로 공부하여 JPA를 사용한 다음, 나중에 차차 내부 원리를 익히면 될 것 같습니다. 

다양한 상황에 대해 예제로 제공되며, 예제에 대해 설명이 깔끔한 것도 장점입니다.

YES마니아 : 로얄 b****2 2022.06.21. 신고 공감 0 댓글 0