inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

코드로 배우는 React 19 with 스프링부트 API서버

PageResponseDTO 질문이 있습니다.

77

zzzzz

작성한 질문수 192

0

package com.example.backend.mallapi.dto;

import lombok.Builder;
import lombok.Data;

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

@Data
public class PageResponseDTO<E> {

  private List<E> dtoList;

  private List<Integer> pageNumList;

  private PageRequestDTO pageRequestDTO;

  private boolean prev, next;

  private int totalCount, prevPage, nextPage, totalPage, current;

  @Builder(builderMethodName = "withAll")
  public PageResponseDTO(List<E> dtoList, PageRequestDTO pageRequestDTO, long totalCount) {

    this.dtoList = dtoList;
    this.pageRequestDTO = pageRequestDTO;
    this.totalCount = (int)totalCount;

    int end =   (int)(Math.ceil( pageRequestDTO.getPage() / 10.0 )) *  10;

    int start = end - 9;

    int last =  (int)(Math.ceil((totalCount/(double)pageRequestDTO.getSize())));

    end =  end > last ? last: end;

    this.prev = start > 1;//1보다 크면 참 밑에 if문 실행.


    this.next =  totalCount > end * pageRequestDTO.getSize();

    this.pageNumList = IntStream.rangeClosed(start,end).boxed().collect(Collectors.toList());
//    start부터 end까지 연속된 숫자 스트림(IntStream)을 생성
//    rangeClosed(a, b): a부터 b까지 포함
//    IntStream은 기본형 int 스트림이기 때문에,
//            객체형 리스트(List<Integer>)로 변환하기 위해 .boxed()를 사용.
//    스트림을 리스트로 변환하는 역할
    if(prev) {
        this.prevPage = start -1;
    }

    if(next) {
        this.nextPage = end + 1;
    }

    this.totalPage = this.pageNumList.size();

    this.current = pageRequestDTO.getPage();

  }
}

위에 코드를 옆에처럼 디버깅할려면(https://www.youtube.com/watch?v=OHrLRg150As )

즉 step over로 사용도 하면서 한 줄 한 줄 씩 어떻게 실행되는 지 보고 싶은데 아래와 같이 에러가 나옵니다.

혹시 스프링부트를 사용하면 디버거 모드가 활성화가 안되나요? 아래 사진을 보시면 38번째 줄에 브레이크 포인트 표시 해놨고 우측 상단에 디버그 모드도 실행되어있는데 중앙에 네모박스처럼 step over 모드가 비활성화 되어있습니다. 한 줄 한줄씩 디버깅을 할려면 어떻게 해야하는지 궁금합니다.

인프런 질문1.png.webp

 

react spring-boot jpa jwt redux-toolkit

답변 2

0

구멍가게코딩단

인텔리제이를 사용하신다면 실행이 아니라 옆에있는 디버그를 실행하시면 됩니다.

0

zzzzz

선생님 실행버튼 누르면 실행 버튼 아이콘이 바뀌는데 사진에서 보시는 바와 같이 우측 상단에 실행버튼이 아닌 벌레모양(빨간버튼)을 눌렀습니다. 제 생각인데 주황색 박스 가 BackendApplication이 되어있어서 그런 것 같은데 맞나요? 근데 BackendApplication이게 작동되어야지, PageResponseDTO 이부분이 실행되는거 아닌가요?

아래는 이해를 돕기 위한 예시 사진입니다.

위에 올려놓은 그림이 수정이 안되서요.

(https://jeonyoungho.github.io/posts/IntelliJ-%EB%94%94%EB%B2%84%EA%B9%85/) 여기서 퍼왔어요.

 

image.png

 

0

구멍가게코딩단

디버그 모드로 실행하신 후에 PageResponseDTO가 실행되는 코드를 호출해 보셨나요?

 

PageResponseDTO의 생성자에 브레이크 포인트를 잡아두셨으므로

todo의 리스트 처럼 PageResponseDTO를 생성하는 코드가 실행될때 브레이크 포인트에서 멈추는걸 확인하실 수 있으면 정상입니다.

스크린샷 2025-02-20 171425.png.webp

 

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. zzzzz님께서 하신 질문에 대해 도와드리겠습니다.

스프링부트 프로젝트에서 디버깅 모드를 활성화하여 한 줄 한 줄 코드 실행을 확인하고 싶으신 것 같습니다. 현재 사례에서는 Intellij IDEA와 같은 IDE를 사용하시는 것으로 보입니다. 디버깅 과정에서 step over 가 비활성화된 경우 몇 가지 확인해 볼 사항이 있습니다:

  1. 디버그 실행: 우선 해당 코드를 디버그 모드로 실행시켜야 합니다. 디버그 모드로 실행한 후에야 step over, step into 등의 디버깅 기능이 활성화됩니다. 상단의 “디버그” 버튼이 잘 작동 중인지 확인하세요.

  2. 브레이크포인트 설정: 디버깅을 원하는 라인에 브레이크포인트를 제대로 설정했는지 확인합니다. 브레이크포인트는 코드 옆에 빨간 원 모양으로 나타나며, 디버그 실행 중 해당 지점에서 코드 실행이 멈추게 됩니다.

  3. 컴파일 및 빌드 확인: 코드가 빌드 되지 않았다면 최신 코드가 실행되지 않을 수 있습니다. 따라서 필수적인 컴파일 오류가 있는지 빌드 로그를 확인해 보세요.

  4. IDE 환경 설정: 경우에 따라 IDE 환경 설정이 디버깅을 제한할 수 있습니다. Intellij IDEA에서는 Run > Edit Configurations으로 들어가서 디버그 관련 설정을 점검해 보세요.

  5. 재시작: IDE나 시스템의 일시적인 오류일 수 있으므로, IDE를 재시작하거나 컴퓨터를 다시 시작해 보는 것도 도움이 될 수 있습니다.

위의 사항들을 확인해 보신 후에도 디버깅이 어려우시다면, [IntelliJ 공식 가이드](https://www.jetbrains.com/help/idea/debugging-your-first-java-application.html)를 참고해 보세요. 이 가이드에는 Java 애플리케이션의 기본 디버깅 방법에 대해 자세히 설명되어 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

동일하게 실습하는데 이상하게 페이지를 찾지 못하네요..

0

72

2

22. REST 방식 컨트롤러 만들기(2), 29. 등록처리 부분 질문이 있습니다.

0

74

2

37강. 강의수업듣다 질문드립니다.

0

56

2

TodoDTO test 함수

0

80

3

강사님 오타 있음요

0

77

2

No 1. 교제(ppt) soruce 복붙 문제 의 건

0

94

4

No 1. 교제(ppt) soruce 복붙 문제 의 건

0

70

3

17강 문의드립니다.

0

44

1

카카오 연동설정이 이제 안되는거 같아요

0

187

2

8장 마지막 강의 시 오류

0

98

4

혹시 뭐가 문제인지 알 수 있나요?

0

87

2

챕터: React-Router 설정

0

58

2

백)TODO관련

0

56

2

마리아 db 설치중 포트를 이미 사용중이라고 합니다

0

109

2

이강의 듣고 소화시켰다면 몇년차 정도 개발자라고 할수 있을까요?

0

105

1

CSR , SSR 의 수요 궁금증 질문

0

81

2

섹션5부터...

0

71

1

간단한 코드 질문!!

0

59

2

tbl_todo 질문입니다

0

64

2

수업 외 질문인데 'tbl'이 무슨 의미인가요???

0

288

2

엔티티클래스에서 질문입니다

0

77

2

수정시 writer값이 삭제되는 오류

0

41

2

교안 31 오타 수정해주세요

0

62

2

쿠키에 accessToken, refreshToken을 담고, 조회 시에 undefined

0

78

1