인프런 커뮤니티 질문&답변

김태희님의 프로필 이미지
김태희

작성한 질문수

스프링 배치

프로젝트 구성 및 의존성 설정

Break Point와 Debugging시 단축키

작성

·

515

0

안녕하세요 강의를 보다가 몇가지 질문이 생겨서 글을 남기게 됬습니다. 27분정도의 강의를 모두 직접 해봤는데도 의문이 풀리지 않아서 질문드립니다.

조금 중간중간 생략이 되어있는것 같아서, 앞으로의 강의도 수강시에 이렇게 생략된것들은 저희가 그냥 할 줄안다고 혹은 했다고 가정하고 진행을 하시는건지 여쭤보고 싶습니다. 그게 맞다면 참고해서 강의를 수강할 예정입니다.

  1. 23:28초쯤에 main메소드 디버그 모드로 실행시, 갑자기 아래의 프록시를 만드는 createLazyProxy 메소드 4개에 Break Point가 찍혀있는데, 이거는 강의 내에서 혹시 언제 찍힌건가요? 아무리 찾아봐도 없는것 같아서 질문 드립니다. 그냥 저희가 SimpleBatchConfiguration.java에 가서 직접 포인트를 찍고 Debugging을 실행시킨다라는걸 가정하신걸까요? 아니면 이번 강의에서는 그냥 눈으로만 보고 넘기는걸까요?

    1. return createLazyProxy(jobExplorer, JobExplorer.class);

     

  2. 24:43초 쯔음에, createLazyProxy관련 Break Point 4개를 왔다갔다 하실때 단축키를 사용하시는것 같은데 혹시 어떤 단축키를 쓰신건가요? 혹은 단축키가 각각 개발자 마다 다르니, Step Over, Step Into와 같은 Debugging의 기본 Feature들 중에서 어떠한 것을 사용하신건가요? 혹시 위의 제가 말씀드린 것들중에 없다면 사용하신 Feature의 이름을 말씀해주시면 좋을것 같습니다.

    1. 관련해서 강사님의 앞으로의 강의 계획을 제가 다른 질문에서 본적이 있습니다. 너무 기대가 되는데, 강사님도 앞으로의 강의에 강의중에 사용하신 단축키를 화면의 중앙 하단에 표시해주는 App을 사용하셔서 수강생들에게 어떠한 단축키를 사용하셨는지 실시간으로 알려줄 수 있게 강의를 녹화해보시는건 어떨까요? 이게 수강생들에게 상당히 도움이 많이됩니다.

  3. 24:49초쯤에, BatchConfigurerConfiguration.java에서도 두개의 Break Point가 찍혀져 있는데요, 이것도 1번과 마찬가지로 그냥 저희가 해당 파일에 직접 들어가서 Break Point를 찍고 보라는걸 의도하셔서 생략하신건지 여쭤보고 싶습니다. 그리고 JPA관련된 의존성을 애초에 Initializer 단계에서 받지 않았기때문에 해당 Break Point의 코드에는 도달할 수 없을것 같습니다.
    하지만 강의에서는 2번 질문처럼 어떤 단축키를 통해서? 왔다갔다 되더니 해당 2개의 Break Point에 도달을 한것 같습니다. 밑에 Debug관련된 Stack창에 Stack이라도 찍혀있다면 그거 보고서라도 할텐데 그것도 없어서 어떻게 저 코드에 도달하신걸까 여쭤보고 싶습니다. 저는 1,2번 질문에 있는 총 6개의 Break Point를 모두 찍고 Debugging을 진행했었는데 도달을 하지는 않았던것 같습니다.

    1. JpaBatchConfigurer(properties, batchDataSource.getIfAvailable(() -> dataSource)

     

  4. 위에 제가 질문 드린것들을 저는 아 그냥 수강생들이 충분히 할 수 있다고 생각을 하셔서 생략을 하셨구나라고 생각을 해서 강의에 있는 모든 내용을 직접 찾아보면서 해보았습니다. 꼭 강사님의 강의가 아니더라도 다른 분들의 강의를 들을때도 마찬가지로 저는 이렇게 직접 확인해보면서 학습을 하는데요, 이러한 것들이 있다면 Break Point를 미리 찍어놨다던지 라는, 딱 한번만이라도 언급만이라도 해주시면 좋을것 같습니다. Context를 갑자기 잃어버리는 느낌이여서 강사님의 의도를 전혀 파악하지 못하는것 같습니다.

  5. 현재 23.5.30 기준으로 Spring의 Version도 오르고, Spring Batch 버전이 5버전으로 오른것 같습니다. 관련해서 Deprecated된게 조금 있던데 우선 강의에 나온 버전으로 듣고나면 5버전에서 어떤게 어떻게 바뀐건지 왜 Deprecated된건지 스스로 학습할수 있을것 같다고 생각이 드는데 맞을까요?

사실 관련되서 질문이 하나도 없어서, 이게 지금 다른분들은 수월하게 하실 수 있는데 저만 이러는건지도 의문이 듭니다. 답변 주시면 잘 참고해서 나머지 강의도 열심히 수강하겠습니다 감사합니다 :D

답변 2

0

김태희님의 프로필 이미지
김태희
질문자

빠른 답변 정말 감사드립니다.

해당 답변을 통해서 이제는 강사님의 강의 스타일을 인지한채로 강의를 수월하게 들을 수 있을것 같습니다.

네 해당 질문을 남기고 나서도 해당강의 이후의 강의들을 쭉 듣고있는데 사실 제가 여쭤봤던 부분들이 이 수업의 이후에 상당부분 말씀을 해주셔서 해소가 되었습니다.

조금 더 제가 강의를 들어보고 질문을 드렸으면 좋았겠다라는 생각이 드네요

하지만 이 질문이 질문을 남길당시의 저와 같이 차례로 수업을 들어 이후의 수업을 들어보지 못한 다른 수강생분들께 강사님의 의도와 생각을 파악하는데 도움이 되면 좋겠습니다.

이렇게 답변을 통해 알고나니 저도 강사님의 의도에 맞춰서 나머지 수업을 수강할 수 있을것 같습니다.

긴 답변 정말 감사드립니다 :D

0

정수원님의 프로필 이미지
정수원
지식공유자

네 궁금하신 점을 상세하게 설명해 주셔서 감사드립니다.

먼저 디버깅 관련 답변부터 드리겠습니다.

제가 강의에서 디버깅을 통해서 설명하는 부분은 1차적으로는 어플리케이션의 어떤 기능에 대한 처리 흐름을 따라가면서 이해하기 위한 과정입니다. 물론 디버깅 자체에 대해 경험이 적거나 어려워하실 수도 있지만 이건 조금만 관련 자료를 참고하시면 익히실 수 있다고 봅니다.

그리고 강의 시간절약과 실시간적인 실수 등을 예방하기 위해 브레이크 포인트를 미리 찍고 설명하는 경우가 많습니다. 필요할 경우 그 때마다 찍는 경우도 있긴 합니다. 일단 학습하시는 중에 처음부터 디버깅을 직접 하시면서 따라 오셔도 되지만 먼저 전반적으로 어떤 단계와 처리과정을 거쳐서 기능이 완성되는지를 강의를 통해 눈으로 파악하신 다음 어느 정도 이해가 되었다고 판단되면 그 때 본인이 직접 디버깅 모드로 실행하면서 더 자세하게 구조를 파악하는 게 좋지않을까 개인적인 의견입니다.

그리고 디버깅 단축키는 총 4가지를 사용합니다. 다 기본적인 것들입니다.

인텔리제이 기준으로 하자면
Step Over - F8 (라인 1칸씩 이동)
Step Into - F7(메서드 안으로 들어감)
Step Out - F8(메서드 밖으로 나옴)
Resume Program - F9 (다음 중단점까지 이동)

입니다.
그리고 조언해 주신 것처럼 단축키 사용을 표시하는 플러그인을 설치해서 강의에 적극 사용하도록 하겠습니다.

두번째 버전 관련 내용입니다

스프링 배치가 5버전으로 업데이트 되면서 강의 내용과 다른 점들이 발견되고 있습니다.
전반적으로 굵직한 뼈대가 바뀐것 같지는 않습니다만 저도 자세히는 아직 들여다 보지 못하고 있습니다.

그러나 본 강의를 충분히 익히신다면 말씀하신 것처럼 최신 5 버전의 API 를 스스로 학습하고 업데이트 된 사양에 맞게 적용해 나갈 수 있다고 생각합니다.

어떤 기술이든 마찬가지이겠지만 기본, 기초만 단단하게 갖추고 있으면 그것을 응용한다던지 활용하는 부분은 그렇게 어렵지 않게 완성해 나갈 수 있다고 생각합니다.
본강의가 긴 러닝시간을 가지고 있지만 끝까지 완주하신다면 스프링 배치가 어떤 프레임워크이며 가장 핵심적인 기능과 실무적으로 어떻게 활용할 것인지의 식견을 분명히 가질 수 있을 것입니다.

김태희님의 프로필 이미지
김태희

작성한 질문수

질문하기