diff --git a/src/main/java/org/example/catch_line/booking/waiting/service/WaitingService.java b/src/main/java/org/example/catch_line/booking/waiting/service/WaitingService.java index 18c5e05..6e892eb 100644 --- a/src/main/java/org/example/catch_line/booking/waiting/service/WaitingService.java +++ b/src/main/java/org/example/catch_line/booking/waiting/service/WaitingService.java @@ -41,6 +41,7 @@ public WaitingEntity getWaitingEntity(Long waitingId) { .orElseThrow(() -> new WaitingException("웨이팅이 존재하지 않습니다.")); } + // 다른 사이트의 코드들을 참고해보면 서비스 메소드들에 트랜잭션을 붙이지 않은 메소드들도 많던데 트랜잭션을 붙여야 하는 경우와 붙히지 않는 경우의 차이가 궁금합니다 @Transactional(isolation = Isolation.SERIALIZABLE) public WaitingResponse addWaiting(Long restaurantId, WaitingRequest waitingRequest, Long memberId) { MemberEntity member = memberValidator.checkIfMemberPresent(memberId); diff --git a/src/main/java/org/example/catch_line/dining/restaurant/repository/RestaurantRepositoryCustomImpl.java b/src/main/java/org/example/catch_line/dining/restaurant/repository/RestaurantRepositoryCustomImpl.java index 473b234..8af08c4 100644 --- a/src/main/java/org/example/catch_line/dining/restaurant/repository/RestaurantRepositoryCustomImpl.java +++ b/src/main/java/org/example/catch_line/dining/restaurant/repository/RestaurantRepositoryCustomImpl.java @@ -21,6 +21,7 @@ public class RestaurantRepositoryCustomImpl implements RestaurantRepositoryCusto private final JPAQueryFactory queryFactory; + // querydsl gradle 후 Q 클래스들이 제가 사용하려는 클래스들만이 아니라 모든 클래스들에 대한 Q 클래스가 생성되는데 다른 방법은 없는 것인지 궁금합니다! @Override public Page findRestaurantsByCriteria(Pageable pageable, String criteria, String type, String keyword) { QRestaurantEntity restaurant = QRestaurantEntity.restaurantEntity; // Q 클래스 사용 diff --git a/src/main/java/org/example/catch_line/dining/restaurant/service/RestaurantPreviewService.java b/src/main/java/org/example/catch_line/dining/restaurant/service/RestaurantPreviewService.java index 1b0d35f..7e2aa55 100644 --- a/src/main/java/org/example/catch_line/dining/restaurant/service/RestaurantPreviewService.java +++ b/src/main/java/org/example/catch_line/dining/restaurant/service/RestaurantPreviewService.java @@ -54,6 +54,10 @@ public Page restaurantPreviewPaging(Pageable pageable } + // 식당 프리뷰(홈 화면)를 조회할 때마다 DB에서 리뷰, 스크랩 데이터를 조회하고, 업데이트를 하면 서버의 부하가 클 것이라 예상하였습니다. + // 그렇기 때문에 조회할 때마다 업데이트가 아닌 스케줄러를 이용해서 1시간 마다 업데이트하는 방식으로 진행하고 있습니다. + // 이 방식보다 더 효율적이고 좋은 방안이 있을까요? + // 또한 홈 화면의 식당 프리뷰 조회 시마다 DB의 데이터를 계속 조회하는 것이 아닌 다른 좋은 방안이 있을까요? 떠오르는 것은 캐시를 활용하면 될 것 같습니다. @Scheduled(cron = "0 0 0/1 * * *") // @Scheduled(cron = "0 0 0 * * ?") public void scheduleUpdateRestaurantPreview() { diff --git a/src/main/java/org/example/catch_line/exception/CatchLineException.java b/src/main/java/org/example/catch_line/exception/CatchLineException.java index 86653c1..b1599bd 100644 --- a/src/main/java/org/example/catch_line/exception/CatchLineException.java +++ b/src/main/java/org/example/catch_line/exception/CatchLineException.java @@ -2,6 +2,9 @@ public class CatchLineException extends RuntimeException { + // Custom Exception의 최상위 Exception으로 이 Exception을 이용하고 있습니다. + // 다른 Custom Exception은 모두 이 Exception을 상속받고 있습니다. + // Exception에 추가로 넣어야 할 정보와 실무에서는 Custom Exception을 어떻게 사용하고 계신지 궁금합니다. public CatchLineException(String message) { super(message); } diff --git a/src/main/java/org/example/catch_line/filter/MemberJwtAuthenticationFilter.java b/src/main/java/org/example/catch_line/filter/MemberJwtAuthenticationFilter.java index 91a5ae8..9d118b4 100644 --- a/src/main/java/org/example/catch_line/filter/MemberJwtAuthenticationFilter.java +++ b/src/main/java/org/example/catch_line/filter/MemberJwtAuthenticationFilter.java @@ -19,6 +19,7 @@ import java.io.IOException; import java.util.Objects; +//TODO: 코드 리뷰 // 스프링 시큐리티의 필터 // /login 요청해서 username, password post로 전송하면 diff --git a/src/main/java/org/example/catch_line/filter/MemberJwtAuthorizationFilter.java b/src/main/java/org/example/catch_line/filter/MemberJwtAuthorizationFilter.java index 8bc5ce8..b9e4f3b 100644 --- a/src/main/java/org/example/catch_line/filter/MemberJwtAuthorizationFilter.java +++ b/src/main/java/org/example/catch_line/filter/MemberJwtAuthorizationFilter.java @@ -23,6 +23,9 @@ import java.util.List; import java.util.Objects; +//TODO: 코드 리뷰 + + @Slf4j public class MemberJwtAuthorizationFilter extends BasicAuthenticationFilter { diff --git a/src/main/java/org/example/catch_line/filter/OwnerJwtAuthenticationFilter.java b/src/main/java/org/example/catch_line/filter/OwnerJwtAuthenticationFilter.java index 38db7f8..3712ce1 100644 --- a/src/main/java/org/example/catch_line/filter/OwnerJwtAuthenticationFilter.java +++ b/src/main/java/org/example/catch_line/filter/OwnerJwtAuthenticationFilter.java @@ -23,6 +23,11 @@ // 해당 필터가 동작 // security config에서 formLogin disable해서 동작 안함. + +//TODO: 코드 리뷰 + + + @Slf4j public class OwnerJwtAuthenticationFilter extends UsernamePasswordAuthenticationFilter { diff --git a/src/main/java/org/example/catch_line/filter/OwnerJwtAuthorizationFilter.java b/src/main/java/org/example/catch_line/filter/OwnerJwtAuthorizationFilter.java index 4bd7c37..4c8c5eb 100644 --- a/src/main/java/org/example/catch_line/filter/OwnerJwtAuthorizationFilter.java +++ b/src/main/java/org/example/catch_line/filter/OwnerJwtAuthorizationFilter.java @@ -23,6 +23,8 @@ import java.util.List; import java.util.Objects; +// TODO: 코드리뷰 + @Slf4j public class OwnerJwtAuthorizationFilter extends BasicAuthenticationFilter { diff --git a/src/main/java/org/example/catch_line/filter/OwnerPreviewFilter.java b/src/main/java/org/example/catch_line/filter/OwnerPreviewFilter.java index 64d2ed8..b953765 100644 --- a/src/main/java/org/example/catch_line/filter/OwnerPreviewFilter.java +++ b/src/main/java/org/example/catch_line/filter/OwnerPreviewFilter.java @@ -20,6 +20,10 @@ import java.io.IOException; import java.net.URLEncoder; + +// TODO: 코드리뷰 + + @Slf4j @RequiredArgsConstructor public class OwnerPreviewFilter extends OncePerRequestFilter { diff --git a/src/main/java/org/example/catch_line/filter/RestaurantPreviewFilter.java b/src/main/java/org/example/catch_line/filter/RestaurantPreviewFilter.java index 01fbcd8..9d3c2f0 100644 --- a/src/main/java/org/example/catch_line/filter/RestaurantPreviewFilter.java +++ b/src/main/java/org/example/catch_line/filter/RestaurantPreviewFilter.java @@ -20,6 +20,9 @@ import java.util.List; import java.util.Objects; +// TODO: 코드리뷰 + + @Slf4j @RequiredArgsConstructor public class RestaurantPreviewFilter extends OncePerRequestFilter { diff --git a/src/main/java/org/example/catch_line/scrap/model/key/ScrapId.java b/src/main/java/org/example/catch_line/scrap/model/key/ScrapId.java index 3a36a3c..3d0ba74 100644 --- a/src/main/java/org/example/catch_line/scrap/model/key/ScrapId.java +++ b/src/main/java/org/example/catch_line/scrap/model/key/ScrapId.java @@ -15,6 +15,8 @@ @AllArgsConstructor public class ScrapId { + // 현재 복합키를 이용해서 scrapId를 구현했습니다. + // 실무에서 복합키를 사용하는지, 사용한다면 사용하는 경우가 궁금합니다. private Long memberId; private Long restaurantId; diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index a7f3bf0..c1c865e 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -1,6 +1,6 @@ - +