소금기둥
2025년 11월 13일 10:30분
package com.jesusbornd.genesis;
/*
* Genesis_19_Chapter_Lv1_V2.java
* [KO] 새 스타일: 창세기 19장 — 대표 4절(KRV+ESV) + 요약 + 적용
* [EN] New style: Genesis 19 — 4 Key Verses (KRV+ESV) + Summary + Practice
*
* Variation (Java, V2):
* 1) java.util.Formatter 로 포맷팅 일원화 (printf 스타일)
* 2) 작은 하이라이터 함수(뒤를 돌아봄 / looked back)
* 3) record Verse + 배열 → 순회 출력 (간결/명료)
*/
import java.util.Formatter;
import java.util.Locale;
import java.util.function.UnaryOperator;
public class Genesis_19_Chapter_Lv1_V2 {
// ---- Domain ----
public record Verse(String ref, String krv, String esv) {}
// ---- Data: 19:16, 19:22, 19:24, 19:26 (4 key verses) ----
private static final Verse[] VERSES = new Verse[] {
new Verse(
"창세기 19:16 / Genesis 19:16",
"롯이 지체하매… 사람이 롯과 그의 아내와 두 딸의 손을 잡아 인도하여 성 밖에 두니 이는 여호와께서 그에게 긍휼을 더하심이었더라",
"But he lingered… so the men seized him and his wife and his two daughters by the hand, the LORD being merciful to him."
),
new Verse(
"창세기 19:22 / Genesis 19:22",
"네가 거기 이르기까지는 내가 아무 일도 할 수 없노라… 그 성의 이름을 ‘소알’이라 하였더라",
"I can do nothing till you arrive there… Therefore the name of the city was called Zoar."
),
new Verse(
"창세기 19:24 / Genesis 19:24",
"여호와께서 하늘 곧 여호와에게로서 유황과 불을 소돔과 고모라에 비같이 내리사",
"Then the LORD rained on Sodom and Gomorrah sulfur and fire from the LORD out of heaven."
),
new Verse(
"창세기 19:26 / Genesis 19:26",
"롯의 아내는 뒤를 돌아보매 소금 기둥이 되었더라",
"But Lot’s wife, behind him, looked back, and she became a pillar of salt."
)
};
// ---- Labels & texts ----
private static final String TITLE_KO = "[창세기 19장 | KRV & ESV]";
private static final String TITLE_EN = "[Genesis 19 | KRV & ESV]";
private static final String SUMMARY_HDR = "[요약 / Summary]";
private static final String PRACTICE_HDR = "[적용 / Practice]";
private static final String SUMMARY_KO =
"긍휼로 롯을 붙드시고(19:16) 피난처에 이를 때까지 보호하신다(19:22). 심판은 하나님의 주권 아래 임하며(19:24), "
+ "‘뒤를 돌아봄’은 불순종의 경고가 된다(19:26; 19:29에 아브라함을 기억하심).";
private static final String SUMMARY_EN =
"By mercy God seizes Lot (19:16) and withholds judgment until he reaches refuge (19:22). "
+ "Judgment falls under divine sovereignty (19:24), and ‘looking back’ warns against disobedience (19:26; cf. 19:29 God remembered Abraham).";
private static final String PRACTICE_KO =
"오늘 ‘뒤돌아보는 붙잡힘’을 끊는 결단 1가지, 피난처 되신 주께 피하는 기도 1분, 긍휼을 베풀 대상 1명.";
private static final String PRACTICE_EN =
"Make one decision not to ‘look back,’ pray 1 minute to take refuge in the Lord, extend mercy to one person.";
// ---- Small console highlighter ----
private static final UnaryOperator<String> HI = s -> s
.replace("뒤를 돌아보매", "[뒤를 돌아보매]")
.replace("looked back", "[looked back]");
public static void main(String[] args) {
StringBuilder buf = new StringBuilder(2048);
try (Formatter f = new Formatter(buf, Locale.ROOT)) {
// Title
f.format("%s%n%s%n%s%n%n",
TITLE_KO,
TITLE_EN,
"Lv1: Mercy that Seizes - Protected to Zoar - Fire from Heaven - Do Not Look Back");
// Verses
for (Verse v : VERSES) {
f.format("%s%n", v.ref());
f.format("KRV: %s%n", HI.apply(v.krv()));
f.format("ESV: %s%n%n", HI.apply(v.esv()));
}
// Summary
f.format("%s%nKO: %s%nEN: %s%n%n", SUMMARY_HDR, SUMMARY_KO, SUMMARY_EN);
// Practice
f.format("%s%nKO: %s%nEN: %s%n", PRACTICE_HDR, PRACTICE_KO, PRACTICE_EN);
}
System.out.print(buf.toString());
}
}
#### Genesis_19_Chapter_Lv1_V2.py
#### [KO] 새 스타일: StringIO 버퍼 + 섹션 렌더 함수 + 작은 하이라이트
#### [EN] New style: StringIO buffer + section render helpers + tiny highlight
from dataclasses import dataclass
from io import StringIO
from typing import List, Iterable
def hi(s: str) -> str:
return (s
.replace("뒤를 돌아보매", "[뒤를 돌아보매]")
.replace("looked back", "[looked back]"))
@dataclass(frozen=True)
class Verse:
ref: str
krv: str
esv: str
# 19:16, 19:22, 19:24, 19:26
VERSES: List[Verse] = [
Verse("창세기 19:16 / Genesis 19:16",
"롯이 지체하매… 사람이 네 사람의 손을 잡아 성 밖으로 인도함 (여호와의 긍휼)",
"He lingered… so the men seized them by the hand, the LORD being merciful."),
Verse("창세기 19:22 / Genesis 19:22",
"네가 소알에 이르기 전엔 아무 일도 할 수 없노라 (소알=작다)",
"I can do nothing till you arrive there (Zoar)."),
Verse("창세기 19:24 / Genesis 19:24",
"여호와께서 하늘로부터 유황과 불을 비같이 내리사",
"The LORD rained sulfur and fire from heaven."),
Verse("창세기 19:26 / Genesis 19:26",
"롯의 아내는 뒤를 돌아보매 소금 기둥이 되었더라",
"But Lot’s wife looked back and became a pillar of salt."),
]
TITLE = ("[창세기 19장 | KRV & ESV]",
"[Genesis 19 | KRV & ESV]",
"Lv1: Mercy that Seizes - Protected to Zoar - Fire from Heaven - Do Not Look Back")
SUMMARY = {
"KO": ("긍휼로 롯을 붙드시고(19:16) 피난처에 이르기까지 보호하시며(19:22), 심판은 하나님의 주권 아래 임한다(19:24). "
"‘뒤를 돌아봄’은 불순종의 경고다(19:26; 19:29 참조)."),
"EN": ("God’s mercy seizes and preserves Lot to refuge (19:16,22); judgment falls under His sovereignty (19:24). "
"Looking back warns against disobedience (19:26; cf. 19:29).")
}
PRACTICE = {
"KO": "‘뒤돌아봄’을 끊는 결단 1가지 · 피난처로 달려가는 1분 기도 · 긍휼 1명에게 베풀기.",
"EN": "One decision not to look back; one minute prayer for refuge; show mercy to one person."
}
def lines_title() -> Iterable[str]:
yield TITLE[0]; yield TITLE[1]; yield TITLE[2]; yield ""
def lines_verses() -> Iterable[str]:
for v in VERSES:
yield v.ref
yield "KRV: " + hi(v.krv)
yield "ESV: " + hi(v.esv)
yield ""
def lines_summary() -> Iterable[str]:
yield "[요약 / Summary]"
yield "KO: " + SUMMARY["KO"]
yield "EN: " + SUMMARY["EN"]
yield ""
def lines_practice() -> Iterable[str]:
yield "[적용 / Practice]"
yield "KO: " + PRACTICE["KO"]
yield "EN: " + PRACTICE["EN"]
def main() -> None:
buf = StringIO()
for section in (lines_title, lines_verses, lines_summary, lines_practice):
for line in section():
buf.write(line + "\n")
print(buf.getvalue())
if __name__ == "__main__":
main()
← 목록으로
Comments
긍휼로 손을 붙들어 이끄시는 하나님(19:16)과 소알에 이를 때까지 아무 일도 하지 않으시는 보호(19:22)가 본문 내내 은혜의 배경음처럼 흐르는데, 정작 인간의 발목을 잡는 건 대재앙도, 불의 비도 아니라 — “뒤를 돌아보매” 그 작은 한 걸음이었습니다. 헛마음질이 더 큰 문제였다는 톰과제리 서신의 고백처럼, 19장은 행동의 실패보다 마음의 시선이 어디를 향하고 있는지가 삶을 결정짓는다는 경고로 들립니다. 오늘도 ‘소알’까지 책임지고 이끄시는 주님의 긍휼을 붙들고, 뒤돌아보지 않는 한 걸음을 디딜 수 있기를 축복합니다. 🙏✨