작성
·
19
1
1.오타
JobScope와 StepScop가 선언된 빈은 애플리케이션 구동 시점에는 우선 프록시 객체로만 존재한다. 그 후 Job이나 Step이 실행된 후에 프록시 객체에 접근을 시도하면 그 때 실제 빈이 생성된다.
StepScop <-오타
2.건의(내가틀렸을수도있음 그러면 수정해주셈)
그리고 JobParameters가 잡 실행 내부에서 불변이라는 내용이 필요할거같음
배치쓰던사람들은 당연한거라 생각할수있는데(잡파라미터랑 잡이름으로 유니크체크한댔나 그런거도 있으니까)
배치 첨쓰는사람은 왜 잡파라미터가 있는데 ExecutionContext를 사용하지 라는 생각을 할수있을거같음
3.궁금증
컴파일 시점에 없는 값을 어떻게 참조할 것인가?
여기서 잡의 스텝생성시점에서 di받는 잡파라미터 자리에 null을 넣는식으로 처리하는 방법이 있다고했는데,만약 코틀린의 경우엔 명시적으로 잡파라미터를 ?를 붙여서 nullable로 선언하고 로직에서 NullSafe 박는식으로밖에 해결할수없고 저게 맘에안들면 빈주입해야함?
저런 null전달같은 꼼수딴거없음?
강의가 자바기반이라고 적혀있어서 물어봐도되나싶긴한데 예전에 저것땜에 고생했었는데 다른방법을 못찾아서 물어봄
답변 1
1
KILL-9@/bin/feedback:~$ cat student_inquiry_response.log
╔═════════════════════════════════════════════════════════════════════╗
║ 🚨 STUDENT INQUIRY PROCESSING 🚨 ║
║ IMMEDIATE RESPONSE PROTOCOL ║
╚═════════════════════════════════════════════════════════════════════╝
[TIMESTAMP]: System.currentTimeMillis()
[SEVERITY]: HIGH_PRIORITY_FEEDBACK
[STATUS]: 오래 기다렸다. 일이 바빠 퇴근이 늦었다. 이해바란다.
▓▓▓▓▓▓▓▓▓▓▓▓▓▓ BUG TERMINATION COMPLETE ▓▓▓▓▓▓▓▓▓▓▓▓▓▓
└─> [TYPO_KILL]: StepScop → StepScope
└─> 오타 발견 및 즉시 처형 완료 💀
└─> 고맙다 버그 킬러. 얼른 수정하겠다.
▓▓▓▓▓▓▓▓▓▓▓▓▓▓ KNOWLEDGE BASE REFERENCE ▓▓▓▓▓▓▓▓▓▓▓▓▓▓
└─> [INQUIRY]: JobParameters 불변성 설명 요청
└─> [RESPONSE]: 이미 Chapter 1 작전2에서 완전 해부 완료
└─> [ACTION]: 해당 챕터 다시 학습 권장
KILL-9@/bin/feedback:~$ echo "잡파라미터랑 잡이름으로 유니크체크한댔나"
너의 말이 맞다. 그러나 이 의미를 정확히 이해하려면 JobInstance라는 개념을 알아야한다. 이에 대한 내용은 챕터5를 가면 배우게된다 이것은 너희의 학습 곡선을 고려한 나의 배려이다. 그대가 방금 학습한 챕터1에서부터 이런 개념을 설명하는 것은 강의 서문에 설명했듯 우리 강의의 방식이 아니다. '죽음의 스프링배치'는 무분별한 암기를 추구하지 않는다 아니 배제한다. 내부 원리와 함께해야 진정한 이해가 가능하다. 학습에 참고하기바란다
└─> [ADVANCED_TOPIC]: JobInstance 유니크 체크 메커니즘
└─> [STRATEGIC_HOLD]: Chapter 5에서 완전 공개
└─> [WARNING]: 무분별한 암기는 시스템 오염을 일으킨다
└─> [PHILOSOPHY]: 내부 원리와 함께해야 진정한 지배가 가능하다
▓▓▓▓▓▓▓▓▓▓▓▓▓▓ KOTLIN COMPATIBILITY PROTOCOL ▓▓▓▓▓▓▓▓▓▓▓▓▓▓
└─> [QUERY]: 코틀린에서 null 전달 꼼수 가능한가?
└─> [ANSWER]: 당연히 가능하다. 언어가 바뀐다고 Spring Batch 내부가 바뀌는 게 아니다. nullable 등 적절히 변화해 전달하면 된다.
└─> [CRITICAL_WARNING]: 그러나 이건 트릭이자 꼼수에 불과하다 💀
└─> [RECOMMENDATION]: 권고: Bean definition method call -> Method parameter DI
└─> [REASON]: 불필요한 혼동 최소화가 시스템 안정성을 보장한다
┌─────────────────────────────────────────────────────────────────┐
│ 💀 KILL-9's TEACHING PROTOCOL 💀 │
│ │
│ "우리 강의는 무분별한 암기를 추구하지 않는다" │
│ "내부 원리와 함께해야 진정한 이해가 가능하다" │
│ "학습에 참고하기 바란다" │
│ │
│ [SYSTEM]: 체계적 학습 > 단편적 지식 │
│ [RESULT]: 진정한 시스템 지배력 획득 │
└─────────────────────────────────────────────────────────────────┘
[SYSTEM] Student inquiry processing complete
[INFO] Knowledge transfer: SUCCESSFUL
[WARN] Continue systematic learning path...
💀 KILL-9 SYSTEM TERMINATOR
Process terminated with exit code: FEEDBACK_DELIVERED_WITH_PRECISION