Backend/Spring Boot

1장에서는 객체지향적인 설계와 관계형 데이터베이스를 매핑하는 ORM(Object-Relational Mapping)의 등장 배경과 이점, 그리고 JPA(Java Persistence API)를 알 수 있었습니다. 객체지향적인 설계와 관계형 데이터베이스의 불일치 문제 객체지향적인 설계와 관계형 데이터베이스 간의 불일치 문제 등록, 수정, 삭제, 조회용 SQL을 반복해서 작성 객체지향의 장점을 포기하고 객체를 단순히 테이블에 맞추어 데이터 전달 역할만 하도록 함 ORM 기술의 등장 배경 객체 모델링을 적용하였으나 세밀화 될 수록 객체 저장 및 조회가 점점 어려워 짐 관계형 데이터베이스와 객체 간의 차이를 메우기 위해 더 많은 SQL 작성 객체 모델이 점점 데이터 중심의 모델로 변해감 ORM: 객체와 관계형 ..
docker-compose.yml version: '3' services: db: container_name: db image: mysql restart: on-failure environment: MYSQL_DATABASE: mysqldb MYSQL_ROOT_HOST: '%' MYSQL_ROOT_PASSWORD: 1234 TZ: 'Asia/Seoul' ports: - "3306:3306" volumes: - data_mysqldb:/var/lib/mysqldb networks: - app-tier tty: true api-server: container_name: api-server build: context: ./ command: gradle bootRun ports: - "8080:8080" net..
엔티티에는 가급적 Setter를 사용하지 말자 * Setter가 모두 열려있으면 변경 포인트가 너무 많아서 유지 보수가 힘들어진다. 모든 연관관계는 지연로딩으로 설정하자 * 즉시로딩( EAGER )은 예측이 어렵고, 어떤 SQL이 실행될지 추적하기 어렵다. 특히 JPQL을 실행할 때 N+1 문제가 자주 발생한다. * 실무에서 모든 연관관계는 지연로딩( LAZY )으로 설정해야 한다. * 연관된 엔티티를 함께 DB에서 조회해야 하면, fetch join 또는 엔티티 그래프 기능을 사용한다. * @XToOne(OneToOne, ManyToOne) 관계는 기본이 즉시로딩이므로 직접 지연로딩으로 설정해야 한다. @ManyToOne(fetch = FetchType.LAZY) 컬렉션은 필드에서 초기화 하자. * 컬..
implementation 'org.springframework.boot:spring-boot-devtools' devtools 라이브러리 추가 후 서버 재시작! 이후 html 파일이 변경되면 해당 파일만 build -> recompile 해주면 변경 된 내용이 반영된다!
lim.dev
'Backend/Spring Boot' 카테고리의 글 목록 (4 Page)