객체와 테이블 매핑@EntityJPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션을 필수로 붙여야 한다. @Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라 부른다. [주의]- 기본 생성자는 필수다 (파라미터가 없는 public 또는 protected 생성자)- final 클래스, enum, interface, inner 클래스에는 사용할 수 없다- 저장할 필드에 final을 사용하면 안된다 (즉, 상수 불가능)* 자바는 생성자가 하나도 없으면 기본 생성자를 만든다. 하지만 생성자를 하나 이상을 만들었을 경우에는 기본 생성자를 직접 만들어야 한다. 속성기능기본값nameJPA에서 사용할 엔티티의 이름을 지정한다.같은 클래스의 이름이 없으면 가급적 기본값을 사용한다클래스 이름을..
영속성 컨텍스트엔티티 매니저 팩토리와 엔티티 매니저엔티티 매니저 팩토리 : 엔티티 매니저를 만드는 공간엔티티 매니저 : 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 등 엔티티와 관련된 모든 일을 처리 엔티티 매니저 팩토리는 여러 쓰레드가 동시에 접근해도 안전하므로 서로 다른 스레드 간에 공유해도 되지만, 엔티티 매니저는 여러 쓰레드가 동시에 접근하면 동시성 문제가 발생하므로 쓰레드 간에 절대 공유하면 안 된다.// 공장 만들기, 비용이 많이 듦EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook");// 공장에서 엔티티 매니저 생성, 비용이 거의 안 듦EntityManager em = emf.createEntityMan..
SQL 중심적인 개발의 문제SQL에 의존하는 개발관계형 데이터 베이스는 가장 대중적이고, 신뢰할 만한 안전한 데이터 저장소다. 그래서 자바로 개발하는 애플리케이션은 대부분 관계형 데이터베이스를 데이터 저장소로 사용한다. 하지만, 데이터 베이스에 데이터를 관리하려면 SQL을 사용해야 한다. 개발자들은 지루한 SQL을 계속해서 작성해야 했고, 만약 객체에 필드가 추가가 된다면, 관련된 모든 SQL에 필드를 추가해야하기 때문에 SQL에 의존적인 개발을 할 수 밖에 없었다. 패러다임의 불일치객체 지향 프로그래밍은 추상화, 캡슐화, 정보 은닉, 상속, 다형성 등 시스템의 복잡성을 제어할 수 있는 다양한 장치들을 제공한다. 그래서 현대의 복잡한 애플리케이션은 대부분 객체 지향 언어로 개발한다. 관계형 데이터 ..
코딩 자율학습 스프링부트3올해 1월 쯤에 백엔드 공부를 해보겠다고 구매해서 방학 내에 다 못 끝냈었다. 3학년 1학기 동안 UMC를 활동하면서 스프링에 대해서 어느정도 학습을 진행했다. 학기중에 학습했던 스프링 개념들을 이 책을 통해 다시 한 번 탄탄하게 정리하고 싶다는 생각에 7월동안 다시 이 책을 펼치게 되었다. 지금부터는 이 책에서 학습한 어노테이션들을 코드와 함께 정리해보려 한다. 뿐만 아니라 꼭 기억하고 싶은 내용을 추가로 정리할 예정이다. 코딩 자율학습 스프링 부트 3 자바 백엔드 개발 입문 | 홍팍 - 교보문고코딩 자율학습 스프링 부트 3 자바 백엔드 개발 입문 | 스프링 부트 백엔드 개발, 실습 문턱을 낮추고 자신 있게 시작하자!스프링 부트를 처음 접하는 입문자와 이미 공부했지만 부족하다..