들어가면서...이번에 배달 레전드 프로젝트에서는 배달의 민족과 같은 배달 앱을 개발한다.키워드 검색 API를 구현하면서 시도했던 것, 구현한 것을 정리하려고 한다! 먼저 내가 구현하고자 했던 키워드 검색 API의 기능은 특정 키워드로 검색 시해당 키워드가 `가게 이름에 포함된 가게`, 혹은 `해당 키워드가 메뉴 이름에 포함된 가게`들을 조회하는 것이었다. ex) 배달의 민족처럼 가게에 해당 키워드가 포함된 메뉴들이 있다면 뜨도록! 그래서 처음 생각한 방법은 아래와 같다.처음 시도한 방법public Page search(PageRequest pageRequest, String keyword) { // 가게 이름에 해당 키워드가 포함된 가게 가져오기 Page shops = shopRepo.find..
springboot
이번에는 공동구매 게시물 조회 기능을 구현해볼 것이다.@ManyToOne(fetch = FetchType.LAZY)@JoinColumn(name = "user_id")private User writer; 현재 `Copurchasing` 도메인의 `User` 필드는 `FetchType.LAZY`로 설정 돼 있다. 📌 FetchType`지연 로딩(Lazy Loading)` 연관된 엔티티를 처음 접근할 때까지 로드하지 않고 필요할 때만 데이터베이스에서 데이터를 로드`즉시 로딩(Eager Loading)` 엔티티가 로드될 때 연관된 모든 엔티티를 즉시 로드JPA는 지연 로딩을 위해 `프록시 객체`를 사용한다. 실제 데이터는 필요할 때까지 로드되지 않고, 프록시 객체로 대체된다.`LAZY`는 성능 최적화에 유용..
📌 의존성 주입이란?Spring Boot에서 `의존성 주입(Dependency Injection, DI)`은 객체 간의 의존 관계를 자동으로 설정해주는 중요한 개념이다.이를 통해 코드의 `결합도`를 낮추고, `테스트 용이성`과 `유지보수성`을 높일 수 있다. 의존성 주입을 통해 클래스 간의 결합도를 낮출 수 있다. 결합도가 낮아지면, 한 클래스의 변경이 다른 클래스에 미치는 영향을 줄일 수 있다. 이는 코드의 유지보수성과 확장성을 높이는 데 중요한 역할을 한다. 예를 들어, 클래스 A가 클래스 B에 직접 의존하는 경우, B의 변경사항은 A에 직접적인 영향을 미치게 된다. 하지만 의존성 주입을 사용하면, A는 B의 구체적인 구현이 아니라 인터페이스나 추상 클래스에 의존하게 되어, B의 구현 변경이 A에 ..