TIL 26

[Spring] JPA deleteAll

repository.deleteAll() 과 repository.deleteAllInBatch()의 차이가 무엇일까? @Override @Transactional public void deleteAll() { for (T element : findAll()) { delete(element); } } delete 쿼리가 하나씩 날라간다. 만약 테스트 데이터로 1000개 의 item 을 삭제해야 한다면 1000번의 delete 쿼리가 실행되는 것이다. @Override @Transactional public void deleteAllInBatch(Iterable entities) { Assert.notNull(entities, "Entities must not be null!"); if (!entities...

TIL 2023.01.26

[GITHUB] 1개 Issue에 changed files이 많을 때 처리법

이 문제는 게시판 서비스 뷰에 기능 구현하기 Issue를 진행하면서 많은 commit과 파일이 생성되고 변경되면서 겪은 상황이다. 한 Issue에서 test와 기능 구현을 전부 진행하였는데, test에서만 changed files이 20개가 나왔다. 기능 구현까지 끝내면 코드 리뷰 양이 너무 많을 거 같아 feature branch를 분산시켜 처리해 보았다. 다음과 같이 이슈 번호에 맞춰 브랜치를 분리시킨다. feature/#21 feature/#21-service feature/#21-service-impl feature/#21은 부모의 역할을 하고 feature/#21-service과 feature/#21-service-impl은 자식의 역할은 맡는다. feature/#21 브랜치를 원격 Repo에 ..

TIL 2022.12.30

[Spring] DAO, DTO

DAO DAO(Data Access Object) 는 데이터베이스의 data에 접근하기 위한 객체입니다. DataBase에 접근 하기 위한 로직 & 비지니스 로직을 분리하기 위해 사용합니다. DTO DTO(Data Transfer Object) 는 계층 간 데이터 교환을 하기 위해 사용하는 객체로, DTO는 로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가진 클래스)입니다. 유저가 입력한 데이터를 DB에 넣는 과정을 보겠습니다. 유저가 자신의 브라우저에서 데이터를 입력하여 form에 있는 데이터를 DTO에 넣어서 전송합니다. 해당 DTO를 받은 서버가 DAO를 이용하여 데이터베이스로 데이터를 집어넣습니다.

TIL 2022.12.29