목록Spring (82)
충분히 쌓여가는
스프링 데이터 JPA 스프링 데이터의 공통적인 기능에서 JPA의 유용한 기술이 추가된 기술 스프링 데이터의 인터페이스인 PagingAndSortingRepository를 상속받아 JpaRepository 인터페이스를 만들었으며, JPA를 더 편리하게 사용하는 메서드를 제공한다 기존 코드(메서드 호출로 엔티티 상태 바꾸기) @PersistenceContext EntityManager em; public void join() { // 기존에 엔티티 상태를 바꾸는 방법(메서드를 호출해서 상태 변경) Member member = new Member(1L, "홍길동"); em.persist(member); } 스프링 데이터 JPA를 사용한 코드 리포지토리 역할을 하는 인터페이스를 만들어 데이터베이스의 테이블 조회..
엔티티 entity 데이터베이스의 테이블과 매핑되는 객체 엔티티는 본질적으로 자바 객체이므로 일반 객체와 다르지 않지만, 데이터베이스의 테이블과 직접 연결된다는 특별한 특징이 있어 구분지어 부른다 엔티티는 객체이긴 하지만 데이터베이스에 영향을 미치는 쿼리를 실행하는 객체 엔티티 매너저 entity manager 엔티티를 관리해 데이터베이스와 애플리케이션 사이에서 객체를 생성, 수정, 삭제하는 등의 역할 엔티티 매니저를 만드는 곳이 엔티티 매니저 팩토리(entity manager factory) 스프링 부트에서는 엔티티 매니저 팩토리를 하나만 생성하여 관리한다 @PersistenceContext 또는 @Autowired 애너테이션을 사용하여 엔티티 매니저를 사용 @PersistenceContext Enti..
ORM(Object-relational mapping) 자바의 객체와 데이터베이스를 연결하는 프로그래밍 기법 SQL을 몰라도 자바 언어로만 데이터베이스에 접근해서 원하는 데이터를 받아올 수 있다 즉, 객체와 데이터베이스를 연결해 자바 언어로만 데이터베이스를 다룰 수 있게 하는 도구 ORM 장점 SQL을 직접 작성하지 않고 사용하는 언어로 데이터베이스에 접근할 수 있다 객체지향적으로 코드를 작성할 수 있기 때문에 비즈니스 로직에만 집중할 수 있다 데이터베이스 시스템이 추상화되어 있기 때문에 MySQL에서 PostgreSQL로 전환한다고 해도 추가로 드는 작업이 거의 없다(데이터베이스 시스템에 대한 종속성이 줄어든다) 매핑하는 정보가 명확하기 때문에 ERD에 대한 의존도를 낮출 수 있고 유지보수할 때 유리하..
테스트 코드는 test 디렉터리에서 작업 given-when-then 패턴 테스트 코드를 세 단계로 구분해 작성하는 방식 given: 테스트 실행을 준비하는 단계 when: 테스트를 진행하는 단계 then: 테스트 결과를 검증하는 단계 @DisplayName("새로운 메뉴를 저장") @Test public void saveMenuTest() { // given: 메뉴를 저장하기 위한 준비 과정 final String name = "아메리카노"; final int price = 2000; final Menu americano = new Menu(name, price); // when: 실제로 메뉴를 저장 final long savedId = menuService.save(americano); // then..