목록분류 전체보기 (640)
충분히 쌓여가는

엔티티 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..
build.gradle 파일 dependencies { // 생략 // 스프링 데이터 JPA implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.h2database:h2' // 인메모리 데이터베이스 compileOnly 'org.projectlombok:lombok' // 롬복 annotationProcessor 'org.projectlombok:lombok' } 스프링 부트용 JPA인 스프링 데이터 JPA 로컬 환경과 테스트 환경에서 사용할 인메모리 데이터베이스 H2 반복 메서드 작업을 줄여주는 라이브러리인 lombok