멜기세덱
2025년 11월 6일 11:43분
package com.jesusbornd.genesis;
/*
* Genesis_14_Chapter_Lv1.java
* [KO] 새 스타일: 창세기 14장 — 대표 구절 4개(KRV+ESV) + 한 줄 요약 + 한 줄 적용
* [EN] New style: Genesis 14 — 4 Key Verses (KRV+ESV) + One-line Summary + One-line Practice
*
* Variation (Java):
* 1) enum Theme 로 주제 태깅, Map<Theme, List<Verse>>로 묶음 출력
* 2) 작은 하이라이터(키워드 강조) 적용 (멜기세덱/Melchizedek, 십일조/tithe 등)
* 3) StringJoiner 로 버퍼링 출력
*/
import java.util.*;
import java.util.stream.Collectors;
public class Genesis_14_Chapter_Lv1 {
// ---- Domain ----
enum Theme { RESCUE, BLESSING, WORSHIP, INTEGRITY }
public record Verse(String ref, String krv, String esv, Theme theme) {}
// ---- Data (4 key verses) ----
private static final List<Verse> VERSES = List.of(
new Verse(
"창세기 14:14 / Genesis 14:14",
"아브람이 삼백십팔 명을 거느리고 단까지 쫓아가 롯을 구하러 나아감",
"When Abram heard that his kinsman had been taken captive, he led forth his 318 trained men and went in pursuit as far as Dan.",
Theme.RESCUE),
new Verse(
"창세기 14:16 / Genesis 14:16",
"모든 빼앗긴 재물과 조카 롯과 그 소유와 또 부녀와 인민을 다 찾아오니라",
"Then he brought back all the possessions, and also brought back his kinsman Lot with his possessions, and the women and the people.",
Theme.RESCUE),
new Verse(
"창세기 14:19-20 / Genesis 14:19-20",
"살렘 왕 멜기세덱이 복을 빌며 떡과 포도주를 가지고 나옴. 아브람이 그 얻은 것에서 십분의 일을 주니라",
"And he blessed him and said, Blessed be Abram by God Most High... And Abram gave him a tenth of everything.",
Theme.BLESSING),
new Verse(
"창세기 14:22-23 / Genesis 14:22-23",
"아브람이 소돔 왕에게 말하되 실 한 오라기라도 네게서 취하지 아니하리라",
"Abram said to the king of Sodom, I would not take a thread or a sandal strap or anything that is yours...",
Theme.INTEGRITY)
);
// ---- i18n labels ----
private static final Map<String, String> LBL = Map.of(
"TITLE_KO", "[창세기 14장 | KRV & ESV]",
"TITLE_EN", "[Genesis 14 | KRV & ESV]",
"SUMMARY", "[요약 / Summary]",
"PRACTICE", "[적용 / Practice]"
);
// ---- Summary & Practice ----
private static final String SUMMARY_KO =
"아브람은 믿음으로 롯을 구출하고(14:14,16), 멜기세덱의 복을 받으며 하나님께 경배와 십일조로 반응한다(14:19-20). "
+ "또한 소돔 왕의 제안을 거절해 하나님의 영광을 보존한다(14:22-23).";
private static final String SUMMARY_EN =
"Abram rescues Lot by faith (14:14,16), receives Melchizedek's blessing and responds in worship with a tithe (14:19-20), "
+ "and preserves God's glory by refusing the king of Sodom's offer (14:22-23).";
private static final String PRACTICE_KO =
"오늘 누군가를 위해 나서는 사랑 1가지, 예배적 감사 1문장, 이익보다 하나님의 영광을 선택하는 결단 1가지.";
private static final String PRACTICE_EN =
"Do one act of loving rescue, write one worshipful thanks, and choose God's glory over gain in one decision.";
// ---- Small highlighter (console-friendly) ----
private static String highlight(String s) {
return s
.replace("멜기세덱", "[멜기세덱]")
.replace("십분의 일", "[십분의 일]")
.replace("십일조", "[십일조]")
.replace("Melchizedek", "[Melchizedek]")
.replace("tenth", "[tenth]")
.replace("tithe", "[tithe]");
}
public static void main(String[] args) {
StringJoiner out = new StringJoiner(System.lineSeparator());
// Title
out.add(LBL.get("TITLE_KO"));
out.add(LBL.get("TITLE_EN"));
out.add("Lv1: Rescue - Blessing - Worship - Integrity");
out.add("");
// Group by theme -> stable order print
List<Theme> order = List.of(Theme.RESCUE, Theme.BLESSING, Theme.WORSHIP, Theme.INTEGRITY);
Map<Theme, List<Verse>> grouped =
VERSES.stream().collect(Collectors.groupingBy(Verse::theme, LinkedHashMap::new, Collectors.toList()));
for (Theme t : order) {
List<Verse> bucket = grouped.get(t);
if (bucket == null) continue;
for (Verse v : bucket) {
out.add(v.ref());
out.add("KRV: " + highlight(v.krv()));
out.add("ESV: " + highlight(v.esv()));
out.add("");
}
}
// Summary
out.add(LBL.get("SUMMARY"));
out.add("KO: " + SUMMARY_KO);
out.add("EN: " + SUMMARY_EN);
out.add("");
// Practice
out.add(LBL.get("PRACTICE"));
out.add("KO: " + PRACTICE_KO);
out.add("EN: " + PRACTICE_EN);
System.out.println(out);
}
}
#### Genesis_14_Chapter_Lv1.py
#### [KO] 새 스타일: Enum(Theme) + defaultdict로 주제별 묶기, textwrap.indent로 가독성 향상
#### [EN] New style: Enum(Theme) + defaultdict grouping, readable blocks via textwrap.indent
from __future__ import annotations
from dataclasses import dataclass
from enum import Enum, auto
from collections import defaultdict
import textwrap
class Theme(Enum):
RESCUE = auto()
BLESSING = auto()
WORSHIP = auto() # reserved for future split
INTEGRITY = auto()
@dataclass(frozen=True)
class Verse:
ref: str
krv: str
esv: str
theme: Theme
VERSES = [
Verse("창세기 14:14 / Genesis 14:14",
"아브람이 318명을 거느리고 단까지 쫓아가 롯을 구하러 감",
"Abram led forth his 318 trained men and pursued as far as Dan.",
Theme.RESCUE),
Verse("창세기 14:16 / Genesis 14:16",
"모든 재물과 롯과 그 소유와 사람들을 도로 찾아옴",
"He brought back all the possessions, Lot, and the people.",
Theme.RESCUE),
Verse("창세기 14:19-20 / Genesis 14:19-20",
"살렘 왕 멜기세덱의 축복과 아브람의 십일조",
"Melchizedek blessed Abram; Abram gave him a tenth of everything.",
Theme.BLESSING),
Verse("창세기 14:22-23 / Genesis 14:22-23",
"아브람, 소돔 왕의 제안을 거절함",
"Abram refused the king of Sodom's offer.",
Theme.INTEGRITY),
]
SUMMARY_KO = (
"아브람은 믿음으로 롯을 구출하고(14:14,16), 멜기세덱의 복 앞에 예배로 반응하며 십일조를 드린다(14:19-20). "
"또한 소돔의 제안을 거절해 하나님의 영광을 드러낸다(14:22-23)."
)
SUMMARY_EN = (
"Abram rescues Lot by faith (14:14,16), responds to Melchizedek's blessing in worship with a tithe (14:19-20), "
"and rejects Sodom's offer to exalt God's glory (14:22-23)."
)
PRACTICE_KO = "구출의 사랑 1가지 실천 · 예배적 감사 1문장 · 이익보다 하나님 영광 선택 1가지."
PRACTICE_EN = "Practice one rescuing love; write one worshipful thanks; choose God's glory over gain once today."
def block(title: str, lines: list[str]) -> str:
return f"{title}\n" + textwrap.indent("\n".join(lines), prefix=" ") + "\n"
def main() -> None:
print("[창세기 14장 | KRV & ESV]")
print("[Genesis 14 | KRV & ESV]")
print("Lv1: Rescue - Blessing - Worship - Integrity\n")
buckets: dict[Theme, list[Verse]] = defaultdict(list)
for v in VERSES:
buckets[v.theme].append(v)
order = [Theme.RESCUE, Theme.BLESSING, Theme.WORSHIP, Theme.INTEGRITY]
for t in order:
if not buckets.get(t):
continue
lines = []
for v in buckets[t]:
lines.append(v.ref)
lines.append("KRV: " + v.krv)
lines.append("ESV: " + v.esv)
lines.append("") # blank line between verses of same theme
print(block(f"[{t.name}]", lines).rstrip())
print()
print("[요약 / Summary]")
print("KO:", SUMMARY_KO)
print("EN:", SUMMARY_EN, "\n")
print("[적용 / Practice]")
print("KO:", PRACTICE_KO)
print("EN:", PRACTICE_EN)
if __name__ == "__main__":
main()
← 목록으로
Comments
오늘 하루 “이익보다 하나님의 영광을 선택”하는 실천 한 가지, 정말 도전이 됩니다. 아브람처럼 살길 소망합니다. ✨ #믿음의용기 #멜기세덱의축복 #하나님영광