[백엔드온라인TIL] java 학습 46일차 JPA를 사용하다 보면 바로 N+1의 문제에 마주치고 바로 Fetch Join을 접하게 됩니다. 처음 Fetch Join을 접했을 때 왜 일반 Join으로 해결하면 안되는지에 대해 명확히 정리가 안된 채로 Fetch Join을 사용했습니다. Join, Fetch Join 차이점 요약 일반 Join Fetch Join과 달리 연관 Entity에 Join을 걸어도 실제 쿼리에서 SELECT 하는 Entity는 오직 JPQL에서 조회하는 주체가 되는 Entity만 조회하여 영속화 조회의 주체가 되는 Entity만 SELECT 해서 영속화하기 때문에 데이터는 필요하지 않지만 연관 Entity가 검색조건에는 필요한 경우에 주로 사용됨 Fetch Join 조회의 주체가 되는 Entity 이외에 Fetch Join이.. 더보기 [백엔드스터디WIL]9주차 학습일지 - 학습한 내용 - @Transactional - @MappedSuperClass - queryDsl 개념 @Transactional 1. 트랜잭션의 성질 (ACID) 원자성 : 한 트랜잭션 내에서 실행한 작업들은 하나로 간주한다. 즉, 모두 성공 또는 모두 실패 일관성 : 트랜잭션은 일관성 있는 데이터베이스 상태를 유지한다. 격리성 : 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않도록 격리해야한다. 지속성 : 트랜잭션을 성공적으로 마치면 결과가 항상 저장되어야 한다. 2. 스프링에서 트랜잭션 처리 방법 스프링에서 트랜잭션 처리를 지원하는데 그 중 어노테이션 방식으로 @Transactional을 선언하여 사용하는 방법이 일반적이며, 선언적 트랜잭션이라 부른다. 클래스, 메서드 위에 @Transact.. 더보기 [백엔드온라인TIL] java 학습 45일차 docker 터미널에서 컨테이너 생성 docker run -p 5432:5432 -e POSTGRES_PASSWORD=pass -e POSTGRES_USER=rose -e POSTGRES_DB=messenger --name postgres_spr -d postgres Windows Subsystem for Linux의 동작 원리 가상머신을 사용하지 않고도, 윈도우에서 리눅스가 네이티브하게 동작한다니 신기하지 않나요? WSL은 윈도우의 가상화 기술을 Hyper-V 아키텍처를 기반으로 동작합니다. 하지만 이 구조는 윈도우 내부에 잘 감춰져있고 윈도우와 통합도 잘 되어있기 때문에, 가상 머신을 사용하는 느낌은 받을 수 없습니다. 가상머신 부팅이 몇 분 정도가 걸린다면, WSL 리눅스는 몇 초 정도면 바로 사용.. 더보기 이전 1 ··· 40 41 42 43 44 45 46 ··· 88 다음