
1. 엔티티의 생명주기엔티티는 다음 네 가지 상태를 가질 수 있다:비영속(New/Transient): 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태이다.//객체를 생성한 상태(비영속)Member member = new Member();member.setId("member1");member.setUsername("회원1");영속(Managed): 영속성 컨텍스트에 저장된 상태이다. 예를 들어, em.persist(member);를 호출하면 이 상태가 된다.//객체를 생성한 상태(비영속)Member member = new Member();member.setId("member1");member.setUsername("회원1");EntityManager em = emf.createEntityManager()..

💡객체와 테이블 매핑💻 @Entity'@Entity' 애노테이션은 클래스가 데이터베이스 테이블에 매핑될 엔티티임을 나타낸다.이 애노테이션을 사용하면 JPA가 해당 클래스를 엔티티로 관리한다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity가 필수이다. 주의사항기본 생성자가 필수이다. (public 또는 protected).final 클래스, enum, interface, inner 클래스에는 사용할 수 없다.final 필드를 사용할 수 없다.속성: nameJPA에서 사용할 엔티티 이름을 지정한다. 기본값은 클래스 이름을 그대로 사용한다.다른 패키지에 동일한 이름의 엔티티 클래스가 있을 때 충돌을 방지하기 위해 사용된다.같은 클래스 이름이 없으면 가급적 기본값을 사용한다.@Entity(name..

💡엔티티 매니저 팩토리와 엔티티 매니저엔티티 매니저 팩토리(Entity Manager Factory):이는 애플리케이션 전반에 걸쳐 오직 한 번만 생성되며, 클라이언트의 요청이 있을 때마다 새로운 엔티티 매니저 인스턴스를 생성하는 공장 역할을 한다. 엔티티 매니저 팩토리는 데이터베이스 세션을 시작하는 데 필요한 설정 정보(예: 데이터베이스 연결 정보, Dialect 등)를 관리한다.엔티티 매니저(Entity Manager):엔티티 매니저는 엔티티 매니저 팩토리에 의해 생성되며, 실제로 엔티티와 관련된 작업들을 수행한다. 엔티티를 저장, 수정, 삭제, 조회하는 기능을 담당하며 각 클라이언트 요청 별로 생성되어 요청이 끝나면 폐기된다. 이는 데이터베이스 트랜잭션과 직접적으로 관련이 있으며, 엔티티의 생명주..

💡JPA 애플리케이션 개발💻 JPA 구동 방식package hellojpa;import jakarta.persistence.*;import java.util.List;public class JpaMain { public static void main(String[] args) { //엔티티 매니저 팩토리 생성 EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); //엔티티 매니저 생성 EntityManager em = emf.createEntityManager(); //트랜잭션 EntityTransaction t..

💡JPA란? Java Persistence API 자바 진영의 ORM 기술 표준 💻 ORM이란? Object-relational mapping(객체 관계 매핑) 객체는 객체대로 설계하고, 관계형 데이터베이스는 관계형 데이터베이스대로 설계하면, ORM 프레임워크가 중간에서 매핑해준다. 대중적인 언어에는 대부분 ORM 기술이 존재한다. 💻 JPA 동작 방식 JPA는 애플리케이션과 JDBC 사이에서 동작한다. JPA의 동작 과정 Java 애플리케이션에서의 호출: Java 애플리케이션은 JPA API를 호출한다. JPA의 처리: JPA는 이 요청을 받아 내부적으로 JDBC API를 호출한다. JDBC를 통한 SQL 실행: JDBC는 필요한 SQL을 생성하고 실행한다. 데이터베이스에서의 결과 반환: 실행된 SQL..

💡SQL 중심적인 개발의 문제점 반복적인 CRUD 쿼리 작성 및 수정 지속적으로 CRUD 쿼리를 작성하고 수정하는 반복적인 작업이 필요하다. 자바 객체와 SQL 간의 변환 자바 객체를 SQL 문으로 변환하고, SQL 결과를 다시 자바 객체로 매핑하는 과정이 반복된다. 💻 패러다임의 불일치 객체와 관계형 데이터베이스의 차이 상속 연관관계 데이터 타입 데이터 식별 방법 1. 상속 객체: 객체는 상속 구조를 명확하게 가지고 있다. 관계형 데이터베이스: 관계형 데이터베이스는 슈퍼타입 - 서브타입 관계를 사용하여 상속과 유사한 구조를 모델링 하지만, 진정한 상속 관계는 아니다. 문제 발생 Album 객체 저장: Album 객체를 저장하려면, Album과 상위 클래스인 Item으로 분해하여 두 개의 INSERT 문..

1. 데이터의 멱등성 수학에서의 멱등성은 "f(f(x)) = f(x) 일 때, f(x)는 멱등하다."고 한다. 이와 같이 데이터의 멱등성이란 동일한 작업을 여러 번 수행하더라도 결과가 동일하게 유지되는 성질을 말한다. 즉, 같은 요청을 여러 번 반복해도 최종 결과는 최초의 한 번 수행한 결과와 차이가 없어야 한다는 것이다. 이는 데이터베이스 API 디자인, 함수형 프로그래밍 등 여러 분야에서 중요한 개념으로 활용된다. HTTP 메서드와 멱등성 GET GET 메서드는 서버에서 데이터를 조회하는 메서드이다. 이는 데이터베이스의 변경 없이 순수하게 정보를 가져오는 동작이므로, 여러 번 수행해도 결과가 동일하기에 '멱등성을 가진다'고 할 수 있다. 요청 GET /users 응답 { "users": [ { "id..
sopt 세미나를 마치고, 객체를 생성하는 방법 중 정적 팩토리 메서드 패턴과 필더 패턴을 배웠는데, 이 둘의 차이점이 무엇인지 자세하게 알기 위해 글을 작성하게 되었다. 사실 이 글을 작성하게 된 가장 큰 이유는.. 지금까지는 정적 팩토리 메서드 패턴만을 사용했는데, 빌더 패턴은 사용해본적이 없어서 이 둘의 차이점을 확실히 알고 두 가지 방법을 적절한 상황에 효과적으로 사용해보고 싶어서이다.ㅎ 객체를 생성하는 방법에는 여러가지가 있지만, 그 중 두가지 주요 방법으로 정적 팩토리 메서드와 빌더 패턴이 있다. 이 두 방법은 객체를 생성하고 초기화하는 과정에서 각각 고유의 장점을 제공한다. 0. new 키워드로 객체 생성MyClass obj = new MyClass(); new 키워드의 장점1) 간단하다.n..
- Total
- Today
- Yesterday
- 프론트엔드
- 스프링
- JPA
- SQL
- 웹 MVC
- 다이나믹 프로그래밍
- 스프링 북마크
- 회원탈퇴
- 커뮤니티
- 스프링 커뮤니티
- 인텔리제이
- 영속
- 로깅
- 백준 파이썬
- 지연로딩
- SQL 레벨업
- elasticsearch
- 북마크
- 웹MVC
- 파이썬
- 준영속
- 비영속
- 자바 스프링
- DP
- EnumType.ORDINAL
- SQLD
- 로그아웃
- 백준
- 스프링부트
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |