작성
·
40
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 모드가 비활성화 되어있습니다. 한 줄 한줄씩 디버깅을 할려면 어떻게 해야하는지 궁금합니다.
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. zzzzz님께서 하신 질문에 대해 도와드리겠습니다.
스프링부트 프로젝트에서 디버깅 모드를 활성화하여 한 줄 한 줄 코드 실행을 확인하고 싶으신 것 같습니다. 현재 사례에서는 Intellij IDEA와 같은 IDE를 사용하시는 것으로 보입니다. 디버깅 과정에서 step over
가 비활성화된 경우 몇 가지 확인해 볼 사항이 있습니다:
디버그 실행: 우선 해당 코드를 디버그 모드로 실행시켜야 합니다. 디버그 모드로 실행한 후에야 step over
, step into
등의 디버깅 기능이 활성화됩니다. 상단의 “디버그” 버튼이 잘 작동 중인지 확인하세요.
브레이크포인트 설정: 디버깅을 원하는 라인에 브레이크포인트를 제대로 설정했는지 확인합니다. 브레이크포인트는 코드 옆에 빨간 원 모양으로 나타나며, 디버그 실행 중 해당 지점에서 코드 실행이 멈추게 됩니다.
컴파일 및 빌드 확인: 코드가 빌드 되지 않았다면 최신 코드가 실행되지 않을 수 있습니다. 따라서 필수적인 컴파일 오류가 있는지 빌드 로그를 확인해 보세요.
IDE 환경 설정: 경우에 따라 IDE 환경 설정이 디버깅을 제한할 수 있습니다. Intellij IDEA에서는 Run
> Edit Configurations
으로 들어가서 디버그 관련 설정을 점검해 보세요.
재시작: IDE나 시스템의 일시적인 오류일 수 있으므로, IDE를 재시작하거나 컴퓨터를 다시 시작해 보는 것도 도움이 될 수 있습니다.
위의 사항들을 확인해 보신 후에도 디버깅이 어려우시다면, [IntelliJ 공식 가이드](https://www.jetbrains.com/help/idea/debugging-your-first-java-application.html)
를 참고해 보세요. 이 가이드에는 Java 애플리케이션의 기본 디버깅 방법에 대해 자세히 설명되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
선생님 실행버튼 누르면 실행 버튼 아이콘이 바뀌는데 사진에서 보시는 바와 같이 우측 상단에 실행버튼이 아닌 벌레모양(빨간버튼)을 눌렀습니다. 제 생각인데 주황색 박스 가 BackendApplication이 되어있어서 그런 것 같은데 맞나요? 근데 BackendApplication이게 작동되어야지, PageResponseDTO 이부분이 실행되는거 아닌가요?
아래는 이해를 돕기 위한 예시 사진입니다.
위에 올려놓은 그림이 수정이 안되서요.
(https://jeonyoungho.github.io/posts/IntelliJ-%EB%94%94%EB%B2%84%EA%B9%85/) 여기서 퍼왔어요.