블로그
전체 3#태그
- 유니콘
- 스타트업
2021. 06. 29.
3
# [TIL] 자바 ORM 표준 JPA 프로그래밍 읽기 스터디 3회차
안녕하세요 "공유하는 문화속에서 함께 성장하는 것"을 추구하는 스터디 그룹 TIL 입니다. 지난 29일날 진행했던 "자바 ORM 표준 JPA 프로그래밍" 읽기 스터디의 3회차 내용을 공유합니다. 🥐 자바 ORM 표준 JPA 프로그래밍 읽기 3회차 2021.06.29 Google Meet을 통해 3회차 리뷰를 진행했습니다. 스터디 범위는 "자바 ORM 표준 JPA 프로그래밍" 6장-7장의 내용이며 스터디 정리본은 아래의 링크를 통해 확인하실 수 있습니다. "자바 ORM 표준 JPA 프로그래밍 6장-7장" 📌 스터디에서 공유했던 질문들 연관관계의 주인을 N쪽에 설정하는데 그 반대로 설정할 경우 발생할 수 있는 단점은 무엇인가 @OneToMany는 양방향 매핑에서 연관관계의 주인이 될 수 없는 이유는 무엇인가 N:N 매핑을 했을 때 발생할 수 있는 문제점은 무엇인가 1:N 단방향 매핑을 선호하지 않는 이유는 무엇이며 이를 어떻게 개선시킬 수 있는가 양방향 1:1 연관관계 매핑에서 연관관계의 주인이 아닌 엔티티를 지연로딩 할 수 없는 이유는 무엇이며 이를 해결할 수 있는 방법은 무엇인가 카테고리와 같은 항목을 열거 타입으로 관리했을 때와 테이블로 관리했을 때 각각 어떠한 장단점이 존재하는가 슈퍼 타입과 서브 타입 모델을 구현 클래스마다 테이블 전략을 사용했을 때 발생할 수 있는 문제점은 무엇인가 @MappedSuperclass는 슈퍼타입 서브타입을 구현한 다른 모델과의 차이점은 무엇인가 @MappedSupperclass를 인터페이스로 선언하면 안되는 이유는 무엇인가 복합키를 사용할 때 반드시 equals() 와 hashCode() 를 구현해야하는 이유는 무엇인가 식별 관계보다 비식별 관계를 선호하는 이유는 무엇인가 엔티티가 상속할 수 있는 클래스는 무엇인가 📆 다음번 스터디 일정과 주제 다음 스터디는 2021.07.05에 마찬가지로 Google Meet을 통한 온라인 미팅 방식으로 진행될 예정이며 "자바 ORM 표준 JPA 프로그래밍" 8장에 해당하는 주제를 가지고 토론할 예정입니다. 이번 스터디에서는 단순히 책에 있는 내용 뿐만 아니라 각자 생각해온 도메인에서의 연관관계를 스터디를 하면서 같이 풀어보는 시간을 가졌었는데요 확실히 실제 프로젝트나 서비스에 적용된 도메인을 가지고 연관관계에 대해서 고민해보고 토론을 해보니 단순한 관계를 풀어내는 과정에서도 생각하는 관점에 따라서 연관관계의 구성이 달라질 수 있다는 것과 애매한 연관관계들을 실제로 풀어나아가는 과정에서 많은 것들을 추가로 생각해볼 수 있었던 시간이었습니다~ 앞으로 진행되는 스터디 회고도 인프런 블로그를 통해 찾아뵙겠습니다. 읽어주셔서 감사합니다~
2021. 06. 22.
11
# [TIL] 자바 ORM 표준 JPA 프로그래밍 읽기 스터디 2회차
안녕하세요 "공유하는 문화속에서 함께 성장하는 것"을 추구하는 스터디 그룹 TIL 입니다. 지난 21일날 진행했던 "자바 ORM 표준 JPA 프로그래밍" 읽기 스터디의 2회차 내용을 공유합니다. 🥐 자바 ORM 표준 JPA 프로그래밍 읽기 2회차 2021.06.21 Google Meet을 통해 2회차 리뷰를 진행했습니다. 스터디 범위는 "자바 ORM 표준 JPA 프로그래밍" 4장-5장의 내용이며 스터디 정리본은 아래의 링크를 통해 확인하실 수 있습니다. "자바 ORM 표준 JPA 프로그래밍 4장-5장" 📌 스터디에서 공유했던 질문들 엔티티 클래스에서 기본 생성자를 필요로 하는 이유는 무엇인가 엔티티 클래스의 기본생성자의 접근 제한자를 protected 와 public 만 허용하는 이유는 무엇인가 스키마 자동 생성 기능을 운영환경에서 사용하면 안되는 이유는 무엇인가 (성능상의 관점에서 추가적으로 고민해보기) IDENTITY 전략을 사용하는 경우에 배치 INSERT가 정상적으로 동작하지 않는 이유와 해결방법은 무엇인가 TABLE 전략의 사용을 지양해야하는 이유는 무엇이며 SEQUENCE 전략과 비교했을 때 성능상의 차이는 어떠한가 TABLE 이나 SEQUENCE 전략을 사용할 때 성능을 최적화 시킬 수 있는 방법은 무엇인가 AUTO 전략을 사용할 경우에 IDENTITY 전략을 지원하는 데이터베이스에서도 DEFAULT로 TABLE 전략을 선택하는 이유는 무엇인가 기본키를 대체키를 사용해서 생성하는 것을 권장하는 이유는 무엇인가 @Transient 어노테이션의 역할은 무엇인지 transient 키워드와 비교했을 때 어떠한 공통점과 차이점이 존재하는가 @Enumerated 를 사용할 때 ORDINAL 이 아닌 STRING 으로 저장하는 것을 권장하는 이유는 무엇인가 설계를 할 때 단방향과 양방향 중 어떻게 연관관계를 설정하는 것이 좋은지와 그 이유는 무엇인가 양방향 연관관계 설정시 주의할 점은 무엇인가 양방향 연관관계에서 연관관계 설정시 연관관계의 주인은 어느쪽이 되어야 하는가 엔티티 설계시 toString 메서드를 오버라이딩 할 때 주의할 점은 무엇인가 📆 다음번 스터디 일정과 주제 다음 스터디는 2021.06.28 에 마찬가지로 Google Meet을 통한 온라인 미팅 방식으로 진행될 예정이며 "자바 ORM 표준 JPA 프로그래밍" 6장-7장에 해당하는 주제를 가지고 토론할 예정입니다. 또한 추가적으로 앞으로 진행할 주제가 다양한 연관관계인 만큼 다양한 도메인 예시를 통해 연관관계를 어떻게 설정해야할지 각자 예시로 사용할 도메인을 준비해오기로 하였습니다. 앞으로 진행되는 스터디 회고도 인프런 블로그를 통해 찾아뵙겠습니다. 읽어주셔서 감사합니다~
2021. 06. 18.
5
# [TIL] 자바 ORM 표준 JPA 프로그래밍 읽기 스터디 1회차
안녕하세요 "공유하는 문화속에서 함께 성장하는 것"을 추구하는 스터디 그룹 TIL 입니다. 인프런에서 좋은 기회를 제공해주셔서 저희 스터디 일지를 기록하며 스터디 내용을 공유하고자 합니다~ 👀 스터디 진행 방식과 규칙 현재 TIL에서는 개발도서 읽고 토론하기라는 스터디를 진행하고 있습니다. 스터디는 매주 2회 Google Meet를 활용한 온라인 미팅을 통해 진행됩니다. 참가자들의 합의하에 정독할 도서를 한권 선정합니다. 모든 참가자는 책을 읽는 Leader이자 Reader로 활동합니다. Leader는 매주 돌아가면서 선정하며 책의 분량을 정하며 Reader가 해당 부분을 읽다가 궁금하거나, 기록하고 싶은 사항, 질문등에 대한 피드백을 작성합니다. Reader는 Leader가 선정한 범위의 책을 정독하며 해당 범위내에서 궁금한 사항이나, 기록하고 싶은 것들, 질문사항 등을 이슈로 등록합니다. Leader는 스터디 시작하기 전까지 Reader가 작성한 이슈에 대한 피드백을 작성합니다. 해결하지 못한 이슈에 대해서는 자유롭게 토론할 수 있으며 해결이 완료될 때까지 continue 태그를 부착합니다. 더 자세한 스터디 진행 방식은 Github 을 참고해주시면 감사드리겠습니다! 🥑 스터디 목표 이전에 "토비의 스프링 3.1" 읽기라는 목표를 성공적으로 끝마치고 두 번째 도서인 "자바 ORM 표준 JPA 프로그래밍" 이라는 도서를 선정하여 스터디를 진행하고 있습니다. 매주 1-2 챕터 정도의 분량을 정해놓고 이를 정독하고 토론하고 있으며 단순히 책을 완독한다는 목표 보다는 이 스터디를 통해서 "왜?"라는 이유에 대해 끊임없이 고민하고 토론하는 과정을 거쳐서 "JPA에 대한 깊고 정확한 이해"를 가지는 것을 목표로 하고있습니다. 링크를 통해서 이전 "토비의 스프링 3.1"읽기의 회고를 확인하실 수 있습니다. 🥐 자바 ORM 표준 JPA 프로그래밍 읽기 1회차 2021.06.14 Google Meet를 통해 1회차 리뷰를 진행하였습니다. 스터디 범위는 "자바 ORM 표준 JPA 프로그래밍" 1장 - 3장의 내용이며 스터디 정리본은 아래의 링크를 통해 확인하실 수 있습니다. "자바 ORM 표준 JPA 프로그래밍 1장 - 3장" 📌 스터디에서 공유했던 질문들 객체지향과 데이터베이스의 패러다임 불일치에 해당하는 문제는 어떠한 것들이 있는가 DBMS에서 슈퍼타입 서브타입 구조를 사용할 때에 발생할 수 있는 단점은 무엇인가 객체를 비교하는 관점에서 해당하는 패러다임 불일치 문제는 무엇인가 서비스 추상화의 관점에서 JPA를 사용하면 좋은 점은 무엇인가 엔티티 매니저 팩토리, 엔티티 매니저, 영속성 컨텍스트에 대해서 각각을 명확하게 설명할 수 있는가 영속성 컨텍스트 내부의 스냅샷은 어떻게 업데이트 되는가 영속성 컨텍스트란 무엇이고 생명주기는 어떻게 되는가 변경감지의 UPDATE SQL은 어떠한 형태를 띄고 있으며 그렇게 동작함으로써 얻을 수 있는 장점은 무엇인가 JPQL을 사용하면 자동으로 flush 가 호출되는 이유는 무엇인가 준영속 상태의 엔티티를 merge 할 경우 어떻게 동작하는가 📆 다음번 스터디 일정과 주제 다음 스터디는 2021.06.21 에 Google Meet을 통한 온라인 미팅 방식으로 진행될 예정이며 "자바 ORM 표준 JPA" 4장-5장에 해당하는 주제를 가지고 토론할 예정입니다. 개인적으로 저자이신 김영한님의 강의를 수강도 했었는데 이를 직접 책으로 읽고 다른 분들과 토론하고 소통하는 과정에서 몰랐던 내용들도 잘못 알고 있던 내용들도 새롭게 얻어가는 내용들도 많았던 시간이었습니다. 앞으로 진행되는 스터디 회고도 인프런 블로그를 통해 찾아뵙겠습니다. 읽어주셔서 감사합니다~