DB 의 연관관계 JPA 가 제공하는 연관관계는 결국 DB 의 연관관계를 표현하기 위함 따라서 먼저 DB 의 연관관계를 이해해야 함 DB 의 연관관계는 비즈니스 요구사항에 맞춰 이루어짐 음식 주문앱 DB 설계 예제 👉 예를 들어, 우리가 음식 주문앱 DB를 설계한다고 가정해볼게요! 일단 "고객이 1개의 음식을 주문할 수 있다"라는 요구사항을 받았다고 해봅시다. 일단 각 주체의 테이블 설계가 필요 고객 (User) 테이블 음식 (Food) 테이블 연관 관계 고민 고객이 음식 주문 시, 주문 정보는 어느 테이블에 들어가야 할까? 고객 테이블? 음식 테이블?? Tip) 테이블 설계 시 실제 값을 넣어봄 시도1) "고객 테이블" 에 주문 정보를 넣어보자!! 문제점: 회원 중복 시도2) "음식 테이블" 에 주문 ..
영속성 컨텍스트? JPA 객체 - ORM - DB 객체 - 영속성 컨텍스트 매니져 (entity context manager) - DB 영속성 컨텍스트 매니져 객체 ↔ DB 의 소통을 효율적으로 관리 PK (Primary Key) 테이블에서 각 row 마다 가져야 하는 유일무이한 값 (중복,Null 허용되지 않음) 샘플 자연키 vs 인조키 자연키: USERNAME, EMAIL 인조키: ID 보통 테이블 ID 를 PK 로 설정 (인조키) JPA 영속성 컨텍스트 1차 캐시 이해 Entity 저장 시 Entity 조회 시 1차 캐시에 조회하는 Id 가 존재하는 경우 1차 캐시에 조회하는 Id 가 존재하지 않은 경우 '1차 캐시' 사용의 장점 DB 조회 횟수를 줄임 **'1차 캐시'**를 사용해 DB row 1..
1)ORM 이란? 💡 ORM: Object-Relational Mapping Object: **"객체"**지향 언어 (자바, 파이썬) Relational: "관계형" 데이터베이스 (H2, MySQL) 백엔드 개발자(Backend Developer): 웹 서버를 개발하는 개발자 DBA (Database Administration): 데이터베이스 관리자. 데이터베이스를 설치, 구성, 관리 등의 일을 맡은 사람 Questions) ORM 이 없이 웹 서버 개발은 못 하나요? ORM 없이도 충분히 웹 서버 개발 가능 예) AllInOneController 에서 Repository 역할 분리 ORM 만든 이유? ORM 이 없는 환경에서는 백엔드 개발자가 비즈니스 로직 개발보다 SQL 작성에 더 많은 노력을 들여야..
JPA란? 👉JPA는, SQL을 쓰지 않고 데이터를 생성, 조회, 수정, 삭제할 수 있도록 해주는 번역기이다. JPA가 없다면? https://www.baeldung.com/spring-jdbc-jdbctemplate 자바 짜다가 갑자기 SQL 짜고, 그걸 잘 맞추어 넣어야 한다. 작업 과정이 복잡하고 불편하며 두 가지 언어를 사용해야 한다. JPA가 있다면? https://spring.io/guides/gs/accessing-data-jpa/ 아래의 설정 추가. (build.gradle) implementation 'org.springframework.boot:spring-boot-starter-data-jpa' 명령도 바로 자바로 사용 가능하다. 👉프로잭트를 시작 할 때 JPA를 설치 했기 때문에, ..