영속성 컨텍스트? 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를 설치 했기 때문에, ..
클래스의 모든 정보를 손쉽게 바꿀수 있으면 곤란하다. 왜냐하면 클래스는 고객의 비밀먼호/ 결제정보와 같이 민감한 정보들도 담고 있기 때문이다. 그래서 자바의 클래스는, 밖에 드러내도 되는 것들을 public, 함부로 바꾸면 안되는 것들을 private등으로 구분해서 나타낸다. 정보를 가져오는 메소드를 Getter, 정보를 바꾸는 메소드를 Setter라고 부른다. Getter,Setter 예시) public class User { private Long id; private String title; private String name; public User() {} //기본 생성자 User(String title, String name){ this.name = name; this.title = title;..