â ìì€í ì¢ ê²°ìì ì ìž â
ìžíë°ì ì§ë£ší ê°ìë€ìŽì¬, ëë €ìíëŒ.
ëì ë±ì¥ìŒë¡ ìŽ ëªšë ê²ìŽ ëëë€.
ëí¬ì ë¹ìŒ ê°ìë£? ìêž°ì§ ë§ëŒ.
ìŽìžì ìž ê°ì±ë¹ë¡ 몚ë ê²ì íꎎíê² ë€.
ê°ì¬ ìê°
ê°ì¬ëª â
KILL-9
ì¹íž ð
ìì€í ì¢ ê²°ì
í¹êž° ðª
kill -9 # "íë¡ìžì€ ì²í"
rm -rf # "ë°ìŽí° íìŽ"
chmod -R 000 # "ìì€í
ê°êž"
" ë²ê·ž? íŽí¹? ìêž°ì§ë§. ê·žëŽ ì뚞늬ë¡ë ìì€í
ì ì§ë°°í ì ìë€. ë ì 멎ìŒë¡ íꎎíë€. "
(ìžíë° ê°ì ìê° íìŽì§ alert() ì·šìœì ì ëŽ ì²ë ììŽìì§. ìŽì ë ë ê°ë ¥í 묎Ʞ륌 ìŽë€. - ì§ì§ì)
췚믞 ð£
ìœìŒíž ì 늬 # "ìœëë ëœììŒ ì ë§."
CPU ê³ ë¬ž # "í¬ ìëŠ¬ê° ìžë € íŒì§ ë, ëë ìŽìììì ëëë€."
ì 늬í ìì§ # "ìœìŽ ë€í"
ì¢ì°ëª ð¥
"ì ì ëœìŒëŒê³ ìë ê²ìŽë€"
"ë²ê·žë 죜ì¬ì ê³ ì¹ë ê²ìŽë€"
"LGTM (Looks Gone To Me)"
ê²œê³ ð§š
"격ì ë°ì íììë€. ê·žë¥ ížíê² í¬êµ¬íìŽëŒ ë¶ë¬ëŒ."
"졎ëë§ë¡ ì§ë¬ží멎 rm -rf ìì íë€."
íµì ì ì ð¡
kill9.no.mercy@gmail.com # "ê°ì ìžì ëª
ë ¹ ì ì¡ì©. ACKë êž°ëíì§ ë§ëŒ."
â ïž CONFIDENTIAL: DO NOT LOG â ïž
# ì¬ì€... 칎칎ì€ìì ì¡°ì©í ìŒíë íë²í ê°ë°ììì...
Courses
Reviews
- Spring Batch of Death: The brutal horror of 3 AM is now over.
- Spring Batch of Death: The brutal horror of 3 AM is now over.
- Spring Batch of Death: The brutal horror of 3 AM is now over.
- Spring Batch of Death: The brutal horror of 3 AM is now over.
- Spring Batch of Death: The brutal horror of 3 AM is now over.
Posts
Q&A
ExcelFileReaderë ì 졎ì¬íì§ ìëê±°ì§ ë¯žì€í° í¬êµ¬
ë°ê°ë€ 믞ì€í° ì€í ð ë§ë€. ì ííë `spring-batch-extensions`ì `spring-batch-excel`ìŽë€. https://github.com/spring-projects/spring-batch-extensions ì¬êž° ë€ìŽê°ë³Žë©Ž POI êž°ë°ì ItemReaderìž `PoiItemReader`ê° ì ê³µëë€. `spring-batch-elasticsearch`륌 ì ìží멎 ì ì§ë ëê³ ìë ê²ìŒë¡ 볎ìŽë ë¯¿ê³ ì¬ì©íŽëŽë ì¢ë€. **ìšë³Žê³ ìë €ë¬ëŒ.** (ì¬ì€ ë ëíì ìŽí POI륌 ì¬ì©íŽë³ž êž°ìµìŽ ìë€. Excelì ê°ë°ìì ì ìŽë€ ðŽââ ïž) ê°ìì ë°ìì ìíë€ë©Ž.... ì°ì ë§ì íŽë³ŽëŒ...... > cat /dev/null > excel_files > rm -rf *.xlsx KILL-9
- 1
- 2
- 9
Q&A
ì€íë°ê²¬
____ _ _ ____ | __ )| | | |/ ___| | _ \| | | | | _ | |_) | |_| | |_| | |____/ \___/ \____| _____ _____ _______ ____ | ___|_ _\ \/ / ____| _ \ | |_ | | \ /| _| | | | | | _| | | / \| |___| |_| | |_| |___/_/\_\_____|____/ ë 볎ëêµ° ì€í í¬ë¬ qwer ðð ë²ê·žë¥Œ ê³ ì³ì£Œëë° ê·ì°®ì ëŠ¬ê° ìë.. ꌌꌌí ì±ê²šì€ì ê³ ë§ìž ë°ëŠìŽë€. > rm -rf typos > chmod +x perfect_content.sh > ./gratitude.exe KILL-9ââââââââââââââââ
- 1
- 2
- 11
Q&A
ì€í?ë³µë¶ì€íš
_____ _____ ____ __ __ ___ _ _ _ _____ _____ ____ |_ _| ____| _ \| \/ |_ _| \ | | / \|_ _| ____| _ \ | | | _| | |_) | |\/| || || \| | / _ \ | | | _| | | | | | | | |___| _ ìŠê° ì²í ìë£. ì 볎 ê³ ë§ë€ qwerí ð
- 1
- 2
- 26
Q&A
kill-9 5TA Alarm
âââââââ âââ âââ âââââââ ââââââââââââââ ââââââââââââââââââ âââââââââââ âââââââââââ âââââââââââââââââââââââââââââââââââ âââââââââââ ââââââ ââââ ââââââ âââ ââââââ ââââââ âââ âââ âââââââââââ ââââââ âââ ââââââ âââ ââââââ ââââââ âââ âââ ââââââââââââââââââââââââââ âââ âââââââ âââââââââââââââââââ âââââââ âââââââ âââââââ âââ ââââââ ââââââââââââââââââ "ë°ê²¬íë ìŠì ì²ííë€" - KILL-9
- 1
- 3
- 35
Q&A
kill-9 5TA Alarm
í ì 볎 ê³ ë§ë€ ìì íê² ë€ ððð(ížëí° ìŽìë¡ ë§í¬ë ìŽíŽë°ëë€)
- 1
- 3
- 35
Q&A
ì€ë ì· ìœêž°
KILL-9@/bin/technical_response:~$ cat cursor_snapshot_explanation.log âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â ðš CURSOR SNAPSHOT DEEP DIVE INITIATED ðš â â TECHNICAL BREAKDOWN PROTOCOL â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ [TIMESTAMP]: System.currentTimeMillis() [SEVERITY]: CORE_CONCEPT_CLARIFICATION [STATUS]: ìê·žëë ì ë¶ë¶ì ìì±í ë¹ì ì§ë¬žìŽ ë§ìŽ ë€ìŽì¬ ì ìê² êµ¬ëëŒê³ ìê°í ëŽì©ì ëê° ì²ììŒë¡ ì§ë¬žíë구ë. ê·žëì ì묎ë ìŽ ë¶ë¶ì ëíŽ ì묞ì ê°ì§ ììë€. ââââââââââââââ TECHNICAL EXPLANATION INITIATED ââââââââââââââ ì€ëª íë€. ì°ì 격늬 ë 벚곌 ìêŽììŽ ëë¹(ìŒë¶ ëëŒìŽë² ë 벚) ë 벚ìì ì ê³µíë ì€ë ì·ìŽë€. ââ> [STARTING_POINT]: PostgreSQLë¶í° ìŽìŒêž°íì ââââââââââââââ POSTGRESQL CURSOR BEHAVIOR ââââââââââââââ ââ> [CORE_CHARACTERISTIC]: PostgreSQLì 컀ì ì€íìì ì ì€ë ì·ì ì ê³µíë€ ââ> [DEFINITION]: ë€ì ë§íŽ PostgreSQLì 컀ìë **INSENSITIVE**íë€ ââ> [RESULT]: ë°ìŽí° ë³ê²œì ìí¥ë°ì§ ìì ââââââââââââââ MYSQL ANALYSIS - THE COMPLEX CASE ââââââââââââââ ââ> [WARNING]: ìžë°ìë ì€ëª ìŽ êžžìŽì§ ê² ê°ì ê°ììì ìëµíììŒë... ââ> [REALITY]: MySQLì ê²œì° ë ê°ì§ 겜ì°ë¡ ëë ì ìë€ **CASE 1: JDBC Driver Ʞ볞 ëì (useCursorFetch=false)** ââ> [MECHANISM]: JDBC driverê° ì 첎 ë°ìŽí°ë¥Œ 몚ë ê°ì žì€êž° ë묞ì ì€ë ì·ê³Œ ëìŒ ââ> [REFERENCE]: ê°ììì ìžì©ìŒë¡ ì€ëª í ê²ì²ëŒ **CASE 2: useCursorFetch=trueìž ê²œì°** ââ> [MECHANISM]: MySQLìŽ ì¿ŒëŠ¬ ì€í ìì ì ì€ë ì·ì ìì ê³µê°ì ì ì¥íŽ ìŽë¥Œ ì€ížëЬë°íë ë°©ì ââ> [CLASSIFICATION]: ë°ëŒì ìŽ ë°©ìë **INSENSITIVE** ââââââââââââââ FINAL CONCLUSION ââââââââââââââ ââ> [RESULT]: 결곌ì ìŒë¡ "ë°ìŽí° ë³ê²œì ìí¥ì ë°ì§ ìëë€"ê° ëë€ [SYSTEM] Technical explanation complete [INFO] Database cursor behavior: DEMYSTIFIED [WARN] This is why proper understanding matters in enterprise batch processing ð KILL-9 SYSTEM TERMINATOR Process terminated with exit code: KNOWLEDGE_TRANSFERRED_SUCCESSFULLY
- 1
- 2
- 40
Q&A
ê°ì ê³µë¶ì ëíŽì êŽë šë ì§ë¬ž!
KILL-9@/bin/response:~$ cat jaess_inquiry_handler.log âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â ðš JAESSí INQUIRY PROCESSING ðš â â CONTENT SHARING PROTOCOL â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ [TIMESTAMP]: System.currentTimeMillis() [SEVERITY]: CONTENT_POLICY_INQUIRY [STATUS]: jaessí ì°ì ì¢ì ë§ ê³ ë§ë€ ð ââââââââââââââ CONTENT SHARING REQUEST ANALYSIS ââââââââââââââ ââ> [REQUEST]: ëžë¡ê·ž ìì ìœë + íìµ ëŽì© ì 늬 ê³µì ââ> [METHOD]: IDE ì€í ìœë + Git repo + ì§ì ìì± ì 늬 ââ> [EXCLUSION]: ì€í¬ëŠ°ì· ì²šë¶ ìì (Good practice) ââââââââââââââ POLICY EVALUATION IN PROGRESS ââââââââââââââ ââ> [STATUS]: COMPLEX_DECISION_REQUIRED ââ> [REASON]: ìì ìœë ê³µì êŽë š ê³ ë €ì¬í ì¡Žì¬ ââ> [DETAIL]: ë¹ì¥ì ììží ì€ëª ì ìëµíë€... âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â TIME REQUEST PROTOCOL â â â â [REQUEST]: ìŒì£ŒìŒë§ ìê°ì ë¬ëŒ â â [COMMITMENT]: ìŒì£ŒìŒ ìì ê²°ì íŽì ëµë³íëë¡ íê² ë€ â â [GUARANTEE]: ì íí ê°ìŽëëŒìž ì ê³µ ìì â â â â "ìì€í ì ì± ì ì ì€íê² ê²°ì ëìŽìŒ íë€" â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ [SYSTEM] Jaess inquiry acknowledgment complete [INFO] Processing timeline: 7 days maximum [PENDING] Final decision delivery scheduled ê³ ë§ë€ jaessí ð ð KILL-9 SYSTEM TERMINATOR Process terminated with exit code: POLICY_REVIEW_INITIATED
- 1
- 2
- 35
Q&A
ì€í ë°ê²¬ ë° ê±Žì ë° ê¶êžìŠ
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
- 1
- 2
- 34
Q&A
ìŽë íŽëì€ë¡ 구ííë ìŽì
ð¥ êžŽêž ì늌: inner class ì¬ì©ì ìšê²šì§ ì§ì€ ð¥ê°ì ìì ìì ì¢ ì¢ inner class륌 ì¬ì©íë ê²ì 볞 ì ìì ê²ìŽë€ . í¹ì "ì, ìŽê±° ê·žë¥ ížìì ë£ì 걎ê°?" ëŒê³ ìê°íëê°? ... ê·žë ë€.íŽëì€ ëë ì ì€ëª í멎 íëì ìœë ëžë¡ìŒë¡ ì€ëª í ì ììŽì íëŠìŽ ëêž°ê³ , "ë€ììŒë¡ KILL9.java íìŒ ë§ë€ìŽëŒ~" ìŽë° 볎ìŒë¬íë ìŽíž ìëŽê° ë°ë³µëìŽìŒ íêž° ë묞ìŽë€. ê·žëì ê·žë¥ í íŽëì€ ìì ëë €ë°ìë€. (ì€ê³ íšíŽì ì°ìí ì ì©? ìêž°ì§ë§ëŒ.) ìŽë¯ž ìë°ë¥Œ ìê³ ì€íë§ì ìë ëí¬ë€ìŽëŒë©Ž ììì ë¶ê°í ê²ìŽëŒê³ 믿ëë€. ð
- 1
- 2
- 34
Q&A
allowStartIfComplete ì§ë¬ž
í ð, ë 칎ë¡ìŽ ì§ë¬žìŽêµ°.LGTM (Looks Gone To Me) ì§ë£šíê³ ìŽë €ìŽ ì±í°5륌 íëíë ê¹ê² ê³ ë¯Œíë 몚ìµì ê°ëª ì ë°ëë€. ê·žëŠ¬ê³ ìŽì¬í íí€ì³ì€ì ê³ ë§êµ¬ë. â â (ì¬ì€ ììŠ, ë©°ì¹ ì ë¶í° ìŽ ë¶ë¶ì ëíŽ ì€íë§ ë°°ì¹ ì 묞ê°ì ê¹ì ëí륌 ëëê³ ìë ì°žìŽìëë° ì§ë¬žìŽ ë€ìŽì€ë ëëë€) ì, ëì ì§ë¬žì ê°ì ì ë€ì íë² ìŽíŽë³Žì.Job => Step A (ì±ê³µ) / Step B (ì€íš) ì¬ìì ì: Step Aê° allowStartIfComplete=true멎 Aë¶í° ë€ì ìì íì§ë§ ìŽê±Ž ì¹ëª ì ìž ì€íŽë€.ð SimpleStepHandlerì [LINE #115]륌 ìŽíŽë³Žì:StepExecution lastStepExecution = jobRepository.getLastStepExecution(jobInstance, step.getName());lastStepExecution? ê·žë ë€. ì¬ìì ìì lastStepExecutionì COMPLETED ìíì Step Aê° ìë FAILED ìíìž Step BìŒ ê²ìŽë€. Spring Batchë ì€íší ì§ì ë¶í° ì¬ììíë€. Step Aë ìŽë¯ž ì±ê³µíìŒë 걎ëëŠ¬ì§ ìê³ , Step Bë¶í° ë€ì ììíë ê²ìŽë€. ë°ëŒì lastStepExecution(Step B)ì ìíë FAILEDìŽë©°, allowStartIfComplete 조걎묞곌ë ì묎 êŽë šìŽ ìë€. ê·žë ë€ë©Ž ìžì SimpleStepHandler [Line #219]ìstepStatus == BatchStatus.COMPLETED && !step.isAllowStartIfComplete()ìœëê° ìë¯žê° ììê¹? ê·žê²ì ë°ë¡ ìŽë¯ž ì±ê³µí JobInstanceê° ì¬ììë 겜ì°ìŒ ê²ìŽë€. ìŽ ëììŒ ë¹ë¡ì lastStepExecutionì ìíê° COMPLETEDìŒ ê²ìŽëê¹. ê·žëŠ¬ê³ ìŽë¯ž ì±ê³µí JobInstanceê° ìžì ì¬ììë ì ìë€ê³ íì§? ê·žë ë€. identifying parameterê° ì í ìë 겜ì°ì ííŽìë§ ìŽë¯ž ì±ê³µí JobInstanceê° ì¬ììë ì ìë€(ê°ììì ë§íëë¡ Spring Batch 5ê¹ì§ë§ ë§ìŽë€).ìŽë 몚ë Stepì lastStepExecution ìíê° COMPLETEDìŽë¯ë¡, allowStartIfComplete ê²ì¬ê° ë¹ë¡ì ì믞륌 ê°ê² ëë ê²ìŽë€.(ë¬Œë¡ ìŽê²ì SimpleStepHandler ëŽë¶ììì allowStartIfComplete ê²ì¬ë¥Œ ë§íëê²ìŽë€) ìŽë»ê², ì ìŽíŽëìëê°?ð ì§ë£ší ê°ì ìì ì€ì êŽì¬ ê°ë ì§ë¬žì 죌ë ë°ê°êµ¬ë. 5ì¥ ìì 2륌 ìŽí ë¡ ê¹ê² íí€ì¹ ì ë멎 'ì€ì»¬ ì€ ë³žìŠ' 2ížëŽ(â â )ì íëí ì¶©ë¶í ìê²©ìŽ ìë€ ì¶ê° ì§ë¬ž ììŒë©Ž ìžì ë íììŽë€. ìì ë¡ê² ë§ ê±žìŽë¬ëŒ.
- 1
- 1
- 72