위 사진과 같이 Mustache 파일을 리턴했을 때 한글이 물음표로 출력되는 에러가 발생했다. 해당 에러는 머스테치 사용 시 스프링 버전에 따라 한글이 깨지는 문제가 있다고하는데, 스프링부트 2.7.x 버전을 사용할 때 아래 코드를 properties 파일에 추가해주니까 해결되었다.server.servlet.encoding.force-response= true 2.6.x 버전에서는 build 설정을 gradle에서 intellij로 변경해서 해결됐다는 사례도 있는 것 같다.
Dirty Check( = 상태 변경 확인) JPA에서는 트렌잭션이 종료되는 시점에 모든 변경 사항을 반영시킨다. Entity를 조회한다면 조회된 시점에 스냅샷을 남겨두고 트랜잭션 종료 시점에 Entity에 변경 사항이 있다면 update 후 종료한다. 예시 코드 @RequiredArgsConstructor @Service public class PostsService { private final PostsRepository postsRepository; @Transactional public Long update(Long id, PostsUpdateRequestDto requestDto){ Posts posts = postsRepository.findById(id).orElseThrow(() -> ne..
테스트 코드 작성 후 실행을 했을 때 아래와 같은 에러가 발생했다.찾아보니 build 설정을 gradle에서 intellJ로 바꿔주어야한다. gradle과 intelliJ 둘 다 같은 빌드 툴을 사용하지만 빌드 방식이 다르다고 한다.intelliJ는 증분 빌드 방식을 사용해서 변경된 사항만 빌드를 하기 때문에 빌드 속도가 더 빠르다.하지만 삭제된 파일에 대해서 반영이 되지않아 삭제된 파일을 포함하여 빌드하는 문제가 생길 수 있다.
ORM (Object Relational Mapping)객체가 테이블이 되도록 매핑시켜주어 자바 객체와 쿼리를 분리할 수 있으며 트랜잭션 처리나 기타 DB 관련 작업들을 간편하게 처리할 수 있게해주는 기술 JPA (Java Persistance API)Java의 ORM 기술에 대한 API 표준 명세이며, JPA는 ORM을 사용하기 위한 인터페이스를 모아둔 것이다.즉, 사용하기 위해서는 구현체가 있어야한다.장점단점데이터를 객체 지향적으로 관리할 수 있기 때문에 개발자가 비즈니스 로직에만 집중할 수 있다.학습 비용이 높다SQL을 직접 작성하지 않아도 되며, 테이블 변경 시 Entity만 수정하면 된다.복잡한 쿼리가 필요한 경우 불편할 수 있다.DB에 대한 코드 종속성이 낮아 DB가 변경되더라도 JPA가 해당..