사용자 정의 ExitStatus 를 StepExecutionListener.afterStep 에서 정의하는 이유가 궁금합니다. Tasklet 안에서 조건에 따라 contribution.setExitStatus(new ExitStatus("PASS")); 를 사용해도 되는게 아닌가 싶은데, 그냥 afterStep 에서도 할 수 있다는걸 보여준걸까요? 또, 다음 강의인 JobExecutionDecider 는 사용자 정의 StepExecutionListener.afterStep 에서 사용자 종료 코드를 정의하는 것을 대체한다고 생각하면 되는걸까요?
파이참으로 100~200 까지 3의 배수 인쇄하고, 그의 합 구하고 있는데 3의 배수 5개씩 인쇄는 잘 했는데 합계가 이상하게 구해집니다. 오류가 어디에 있는 건지 모르겠어요.. 고치면 오류떠서 아예 실행이 안되는데 ㅜㅜ for문이랑 while문 두개로 만들고 있는데 둘다 합계만 이상하게 뜹니다. ㅠ <<for문>> a = 0 hap = 0 count = 0 for a in range(100, 201) : if a % 3 == 0 : print(a) count = count + 1 if count % 5 == 0 : print() a = a + 1 hap = hap + a print("100~200 중 3의 배수의 합 : %d" % hap) <<while문>> a = 100 count = 0 hap = 0 while a <= 200 : if a % 3 == 0 : print(a) count = count + 1 if count % 5 == 0 : print() a = a + 1 hap = hap + a print("100~200 중 3의 배수의 합 : %d" % hap)
[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]
위에 코드와 같이 웹서버를 열 때 처음 실행만 정상적으로 뜨고 두 번째부터는 로드중으로 계속 화면에 아무것도 안 뜹니다. 주피터 노트북과 아나콘다 프로그램을 완전히 종료하고 다시 접속해 위에 코드를 입력하면 다시 처음만 정상실행되고 두번째부터는 무한로드중으로 뜹니다. 다른 컴퓨터로 실행해봤을 때는 정상적으로 화면에 출력되는 것을 확인했고 제 노트북만 이러네요. 이거 때문에 아나콘다도 다시 설치해보고 윈도우에 내장되어 로컬호스트 주소도 확인하고 윈도우도 재설치해보고 컴퓨터 자체를 포맷해봤는데도 계속 같은 증상이네요. 혹시 문제가 무엇일까요? 이거 때문에 수업 진도를 못 나가고 있어요. 도와주세요ㅠㅠ
안녕하세요 colab을 이용하던 도중에 갑자기 이상한 현상이 생겨서 질문 남깁니다! 영어를 사용하면 별 문제가 없는데 이상하게 한글만 사용하면 글씨색도 변하고 위의 사진 처럼 셀의 화면이 내려가거나 확대 됩니다. 주석뿐만 아니라 코드에도 한글을 넣으면 똑같은 현상이 발생합니다. 작성시에는 화면이 보이지 않지만 작성후 방향키나 공백을 넣으면 다시 원래 화면으로 돌아옵니다. ㅠㅠㅠㅠ 너무 거슬려서 주석을 작성 할 수 가 없습니다ㅠㅠㅠ 해결책이 있을까요 이것저것 옵션 다 만져봤지만 해결이 안돼서 여쭙니다.
안녕하세요.! 대용량 배치를 개발하기 위해 파티션스텝을 이용하여 개발중입니다. 파티션 메인스텝에 워커 스텝을 지정하고 실행하였는데요. Thread1의 itemReader가 1만건의 데이터를 fetch하는 동안 Thread2의 itemReader는 Thread1의 itemReader의 fetch가 끝날때까지 기다리는건가요?? 제가 기대한 로그는 Thread1 : result set row 100 Thread2 : result set row 100 Thread1 : result set row 200 Thread2 : result set row 200 동시에 스레드가 실행되어 위와 같이 병렬적으로 itemreader가 수행되어야 한다고 생각하는데 실제 로그는 Thread1 : result set row 100 Thread1 : result set row 200 Thread2 : result set row 100 Thread2 : result set row 200 위와 같이 Thread1의 itemreader가 끝이 나야 Thread2의 itemreader가 동작하는것 같습니다... 제 생각이 맞을까요? 맞다면 왜 실제로그는 동기적인 방식으로 되는지 궁금합니다.
안녕하세요 선생님 강의 듣고 프로그램 배포해서 잘 운영하고 있습니다. 다름이 아니라 운영중에 데이터가 점차 쌓이면서 데이터가 많아지니 배치 속도가 조금씩 느려지더라고요. 아직 운영에 큰 이슈는 없지만 나중에는 문제가 될 수도 있겠다 싶어 질문드립니다. 보통 이런 경우에는 어떤 방법으로 속도를 개선 하는지 궁금합니다. 당장 생각 나는 방법이 오래된 날짜의 데이터는 지우는 방법인데 BATCH_JOB_EXECUTION 의 CREATE_TIME을 기준으로 지우려고 합니다. 메모리에 JOB_INSTANCE_ID를 저장하지 않고 처리 하려면 데이터 삭제 순서가 BATCH_JOB_INSTANCE 테이블이 먼저가 되는 상황이 되는데 외래키를 지우고 배치 프로그램을 운영해도 문제가 되지 않을지 궁금합니다. 쿼리 DELETE FROM BATCH_JOB_INSTANCE WHERE JOB_INSTANCE_ID IN ( SELECT DISTINCT JOB_INSTANCE_ID FROM BATCH_JOB_EXECUTION) 진행중인 프로젝트에 바로 사용한다고 시간이 없어 급하게 띄엄띄엄 들어서 못들은 강의가 많습니다. 혹시나 강의에 언급하신 내용이라면 죄송합니다. 훌륭한 강의 덕분에 프로젝트 무사히 완료 할 수 있었습니다. 감사합니다.
안녕하세요 선생님, 제가 강의를 계속 듣다가 너무 헷갈려서 질문 올립니다. 섹션 6 Transition - 배치상태 유형 (BatchStatus / ExitStatus / FlowExecutionStatus) 를 듣고 계속 머릿속으로 BatchStatus 와 ExitStatus 둘 간의 차이점을 이해하려고 해도 도통 이해가 되지 않아서 질문드립니다. PPT 에서는 BatchStatus, ExitStatus 를 다음과 같이 정의합니다. - BatchStatus : JobExecution 과 StepExecution 속성으로 Job 과 Step 의 종료 후 최종 결과 상태가 무엇인지 정의 - ExitStatus : JobExecution 과 StepExecution 의 속성으로 Job 과 Step 의 실행 후 어떤 상태로 종료되었는지 정의 ... 라고 작성되어 있는데요. BatchStatus 에서 설명하는 "종료 후 최종 결과 상태" 라는 게 결국은 ExitStatus 에서 말하는 "실행 후 어떤 상태로 종료되었는지" 와 똑같은 말로 보입니다. 혹시 이 둘간의 "차이"와 "용도"가 뭔지 조금만 이해하기 쉽게 알려주실 수 없을까요?
안녕하세요. 정수원 강사님 스프링 배치 강의 잘 보고 있습니다. 많은 도움 받고 있어요. 정말 감사드립니다. 토이 프로젝트를 진행하고 있는데 막상 구현하려니 쉽지 않네요. 어떤식으로 설계하면 좋을지 조언 구합니다. 구현하려는 부분은 아래와 같습니다. rest api로 가맹점 5곳에 각각 api를 호출하여 주문id의 총 개수와 주문id 목록( total number of orderId and orderIds) 을 가져와서 DB에 저장합니다. 가맹점 5곳에서 받아온 total number of orderId and orderIds 를 DB에서 조회해와서 해당 목록을 chunk 사이즈로 나누어서 각각 rest api로 가맹점 5곳에 호출하여 목록을 가져와서 DB에 저장합니다. partiton과 pararell step을 이용해서 구성하려고 하는데 설계부터가 만만치 않네요. 1은 pararell step을 이용하여 병렬로 각각 수행하도록 구현하려고 하고, 2는 총 개수와 grid 개수를 가지고 pagination 혹은 partiton을 이용해서 구현하려고 하는데 어떻게 해야할지 감이 잘 안 잡힙니다. 혹은 혼합하여 사용할 수도 있을까요? 강사님께서 부연설명 덧붙여 주신다면 큰 도움이 될 것 같습니다. 감사드립니다.
안녕하세요 예측에 관련되서 여쭤볼게 있어서 질문 드립니다. LSTM훈련 후 Original Price와 Predicted Price의 그래프를 그리실 때 자세히 보시면 Predict price가 Original price의 데이터를 1스탭 뒤로 그려지는 것을 볼 수 있습니다. 그렇다면 이건 예측이 아니라 전 스탭에 있는 데이터를 어느정도 이동평균 또는 지수 이동평균과 같이 보정해서 쓴다고 보는게 맞지 않을까요? 이렇게 나오는 것보다 완전히 맞지 않더라도 1스탭 뒤로 예측되는 예측되는 것보다 어느정도 맞게 따라가는 방법은 없을까요?
안녕하세요. @JobScope에 대해서 궁금한게 생겨서요! @Jobscope 를 쓰면 갖는 이점에 대해서는 이해했습니다. 웹어플리케이션이 실행될 때, Job Bean 객체에는 Scope의 JDKProxy 또는 CGLibProxy가 주입되는 것을 이해했고 Step 메소드 실행 시, 실제 Step 객체가 주입되는 것을 이해했습니다. 그러므로 여러 스레드 ( 병렬 처리 ) 가 요청에 대한 처리를 할 때, thread safe에 대한 이점도 있을 거고 동시성에도 이점이 있을 거라고 생각됩니다. 여기서 궁금한게, @Value JobParmeters를 바인딩 하는 부분이 궁금한데요. 질문 1. 이 JobParmeters는 그럼 Job에서 설정한 여러 Jobpameters 중 꼭 한가지 key값이여야만 하는 걸까요? 가령, name, requestDate 라한다면 둘 중 하나를 선택해도 무방한거죠? 두개는 안될까요? 2. 당연한 말이겠지만 여러 Job들에서 다른 Step을 공유하기 위해선 이 Jobparmeter를 정적인 변수보다는 requestDate와 같은 yyyyhhmm ss 같은 변수를 사용하는 것이 좋겠죠? 감사합니다!