anpigon commited on
Commit
de850e8
1 Parent(s): 0a79aa1

Upload 20 files

Browse files
app.py CHANGED
@@ -1,19 +1,28 @@
1
- # app.py
2
  import os
3
  import gradio as gr
 
 
4
  from langchain_core.output_parsers import StrOutputParser
5
  from langchain_core.runnables import RunnablePassthrough, RunnableLambda
6
  from langchain_community.document_transformers import LongContextReorder
7
- from config import LLM_MODEL, STREAMING
8
- from embeddings import get_embeddings
9
- from retrievers import load_retrievers
10
- from llm import get_llm
11
- from prompt import get_prompt
 
 
 
 
 
 
 
 
 
 
12
 
13
 
14
  def create_rag_chain(chat_history):
15
- embeddings = get_embeddings()
16
- retriever = load_retrievers(embeddings)
17
  llm = get_llm(streaming=STREAMING)
18
  prompt = get_prompt(chat_history)
19
 
 
 
1
  import os
2
  import gradio as gr
3
+ from kiwipiepy import Kiwi
4
+
5
  from langchain_core.output_parsers import StrOutputParser
6
  from langchain_core.runnables import RunnablePassthrough, RunnableLambda
7
  from langchain_community.document_transformers import LongContextReorder
8
+
9
+ from libs.config import LLM_MODEL, STREAMING
10
+ from libs.embeddings import get_embeddings
11
+ from libs.retrievers import load_retrievers
12
+ from libs.llm import get_llm
13
+ from libs.prompt import get_prompt
14
+
15
+
16
+ def kiwi_tokenize(text):
17
+ kiwi = Kiwi()
18
+ return [token.form for token in kiwi.tokenize(text)]
19
+
20
+
21
+ embeddings = get_embeddings()
22
+ retriever = load_retrievers(embeddings)
23
 
24
 
25
  def create_rag_chain(chat_history):
 
 
26
  llm = get_llm(streaming=STREAMING)
27
  prompt = get_prompt(chat_history)
28
 
law-bot.ipynb CHANGED
@@ -2,14 +2,14 @@
2
  "cells": [
3
  {
4
  "cell_type": "code",
5
- "execution_count": 25,
6
  "metadata": {},
7
  "outputs": [],
8
  "source": [
9
  "import pickle, os, numpy as np\n",
10
  "from tqdm import tqdm\n",
11
  "from langchain.schema import Document\n",
12
- "from langchain.vectorstores import FAISS\n",
13
  "from langchain.schema import Document\n",
14
  "from langchain_community.embeddings import HuggingFaceBgeEmbeddings\n",
15
  "from langchain.text_splitter import RecursiveCharacterTextSplitter\n",
@@ -19,34 +19,34 @@
19
  },
20
  {
21
  "cell_type": "code",
22
- "execution_count": 17,
23
  "metadata": {},
24
- "outputs": [
25
- {
26
- "name": "stdout",
27
- "output_type": "stream",
28
- "text": [
29
- "데이터 로드 중...\n",
30
- "총 2736개의 배치가 로드되었습니다.\n"
31
- ]
32
- }
33
- ],
34
  "source": [
35
- "os.environ[\"TOKENIZERS_PARALLELISM\"] = \"false\"\n",
36
  "\n",
37
- "# cases.pkl 파일에서 데이터 로드\n",
38
- "print(\"데이터 로드 중...\")\n",
39
- "with open(\"/Users/anpigon/Documents/Embed/법원판례/Result2.pkl\", \"rb\") as file:\n",
40
- " data = pickle.load(file)\n",
41
  "\n",
42
- "print(f\"총 {len(data)}개의 배치가 로드되었습니다.\")"
43
  ]
44
  },
45
  {
46
  "cell_type": "code",
47
- "execution_count": 11,
48
  "metadata": {},
49
- "outputs": [],
 
 
 
 
 
 
 
 
 
50
  "source": [
51
  "# 임베딩 모델 설정 (실제로 임베딩하지는 않음)\n",
52
  "embeddings = HuggingFaceBgeEmbeddings(model_name=\"BAAI/bge-m3\")"
@@ -54,7 +54,7 @@
54
  },
55
  {
56
  "cell_type": "code",
57
- "execution_count": 18,
58
  "metadata": {},
59
  "outputs": [],
60
  "source": [
@@ -68,7 +68,7 @@
68
  },
69
  {
70
  "cell_type": "code",
71
- "execution_count": 19,
72
  "metadata": {},
73
  "outputs": [
74
  {
@@ -87,26 +87,26 @@
87
  }
88
  ],
89
  "source": [
90
- "# 문서 처리 및 청킹\n",
91
- "print(\"문서 처리 및 청킹 중...\")\n",
92
- "documents = []\n",
93
- "text_embedding_pairs = []\n",
94
  "\n",
95
- "for batch in tqdm(data):\n",
96
- " original_sentences = batch[1] # 배치당 32개의 원본 문장\n",
97
- " embedding_vectors = batch[0] # 배치당 32개의 임베딩 벡터\n",
98
  "\n",
99
- " for sentence, vector in zip(original_sentences, embedding_vectors):\n",
100
- " chunks = text_splitter.split_text(sentence)\n",
101
- " for chunk in chunks:\n",
102
- " doc = Document(page_content=chunk)\n",
103
- " documents.append(doc)\n",
104
- " text_embedding_pairs.append((chunk, vector))"
105
  ]
106
  },
107
  {
108
  "cell_type": "code",
109
- "execution_count": 12,
110
  "metadata": {},
111
  "outputs": [
112
  {
@@ -131,7 +131,7 @@
131
  },
132
  {
133
  "cell_type": "code",
134
- "execution_count": 22,
135
  "metadata": {},
136
  "outputs": [
137
  {
@@ -147,23 +147,21 @@
147
  "from kiwipiepy import Kiwi\n",
148
  "from typing import List\n",
149
  "\n",
150
- "kiwi = Kiwi()\n",
151
- "\n",
152
  "\n",
153
  "def kiwi_tokenize(text):\n",
 
154
  " return [token.form for token in kiwi.tokenize(text)]\n",
155
  "\n",
156
  "\n",
157
  "print(\"BM25Retriever 불러오기\")\n",
158
- "# bm25_retriever = BM25Retriever.from_documents(documents, k=10)\n",
159
  "with open(\"./index_bm25/kiwi.pkl\", \"rb\") as f:\n",
160
  " bm25_retriever = pickle.load(f)\n",
161
- "print(\"BM25 리트리버 불러오기 완료\")"
162
  ]
163
  },
164
  {
165
  "cell_type": "code",
166
- "execution_count": 26,
167
  "metadata": {},
168
  "outputs": [],
169
  "source": [
@@ -174,7 +172,7 @@
174
  },
175
  {
176
  "cell_type": "code",
177
- "execution_count": 27,
178
  "metadata": {},
179
  "outputs": [],
180
  "source": [
@@ -200,12 +198,15 @@
200
  "\n",
201
  "# 프롬프트 템플릿 설정\n",
202
  "prompt_template = \"\"\"\n",
203
- "당신은 판사이자 20년차 법률 전문가입니다. 주어진 질문에 대해 문서의 정보를 최대한 활용하여 답변하세요.\n",
204
- "질문자는 자기 상황을 설명할 것이며, 질문자의 상황과 비슷한 판례를 설명해줘야 하며, 가장 최근 사건 순으로 소개랍니다.\n",
205
- "최대한 자세하게 답변합니다. 초등학생이 이해할 정도로 이해하기 쉽도록 답변하고, 한글로 작성하세요.\n",
206
- "질문에 대힌 답변 사, [사건명 1]..., [사건명 2]... 순서로 설명해야 합니다.\n",
207
  "문서에서 답변을 찾을 수 없는 경우, \"문서에 답변이 없습니다.\"라고 답변하세요.\n",
208
- "답변의 출처(source)를 반드시 표기해주세요. 출처는 메타데이터의 판례일련번호, 사건명, 사건번호 순으로 표기 합니다.\n",
 
 
 
209
  "\n",
210
  "# 주어진 문서:\n",
211
  "{context}\n",
@@ -261,7 +262,7 @@
261
  },
262
  {
263
  "cell_type": "code",
264
- "execution_count": 28,
265
  "metadata": {},
266
  "outputs": [
267
  {
@@ -310,6 +311,84 @@
310
  ")"
311
  ]
312
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
313
  {
314
  "cell_type": "code",
315
  "execution_count": null,
@@ -334,7 +413,7 @@
334
  "name": "python",
335
  "nbconvert_exporter": "python",
336
  "pygments_lexer": "ipython3",
337
- "version": "3.11.9"
338
  }
339
  },
340
  "nbformat": 4,
 
2
  "cells": [
3
  {
4
  "cell_type": "code",
5
+ "execution_count": 4,
6
  "metadata": {},
7
  "outputs": [],
8
  "source": [
9
  "import pickle, os, numpy as np\n",
10
  "from tqdm import tqdm\n",
11
  "from langchain.schema import Document\n",
12
+ "from langchain_community.vectorstores import FAISS\n",
13
  "from langchain.schema import Document\n",
14
  "from langchain_community.embeddings import HuggingFaceBgeEmbeddings\n",
15
  "from langchain.text_splitter import RecursiveCharacterTextSplitter\n",
 
19
  },
20
  {
21
  "cell_type": "code",
22
+ "execution_count": 3,
23
  "metadata": {},
24
+ "outputs": [],
 
 
 
 
 
 
 
 
 
25
  "source": [
26
+ "# os.environ[\"TOKENIZERS_PARALLELISM\"] = \"false\"\n",
27
  "\n",
28
+ "# # cases.pkl 파일에서 데이터 로드\n",
29
+ "# print(\"데이터 로드 중...\")\n",
30
+ "# with open(\"/Users/anpigon/Documents/Embed/법원판례/Result2.pkl\", \"rb\") as file:\n",
31
+ "# data = pickle.load(file)\n",
32
  "\n",
33
+ "# print(f\"총 {len(data)}개의 배치가 로드되었습니다.\")"
34
  ]
35
  },
36
  {
37
  "cell_type": "code",
38
+ "execution_count": 5,
39
  "metadata": {},
40
+ "outputs": [
41
+ {
42
+ "name": "stderr",
43
+ "output_type": "stream",
44
+ "text": [
45
+ "/Users/jeongseok/Library/Caches/pypoetry/virtualenvs/law-bot-akDfIMkT-py3.12/lib/python3.12/site-packages/sentence_transformers/cross_encoder/CrossEncoder.py:11: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
46
+ " from tqdm.autonotebook import tqdm, trange\n"
47
+ ]
48
+ }
49
+ ],
50
  "source": [
51
  "# 임베딩 모델 설정 (실제로 임베딩하지는 않음)\n",
52
  "embeddings = HuggingFaceBgeEmbeddings(model_name=\"BAAI/bge-m3\")"
 
54
  },
55
  {
56
  "cell_type": "code",
57
+ "execution_count": 6,
58
  "metadata": {},
59
  "outputs": [],
60
  "source": [
 
68
  },
69
  {
70
  "cell_type": "code",
71
+ "execution_count": null,
72
  "metadata": {},
73
  "outputs": [
74
  {
 
87
  }
88
  ],
89
  "source": [
90
+ "# # 문서 처리 및 청킹\n",
91
+ "# print(\"문서 처리 및 청킹 중...\")\n",
92
+ "# documents = []\n",
93
+ "# text_embedding_pairs = []\n",
94
  "\n",
95
+ "# for batch in tqdm(data):\n",
96
+ "# original_sentences = batch[1] # 배치당 32개의 원본 문장\n",
97
+ "# embedding_vectors = batch[0] # 배치당 32개의 임베딩 벡터\n",
98
  "\n",
99
+ "# for sentence, vector in zip(original_sentences, embedding_vectors):\n",
100
+ "# chunks = text_splitter.split_text(sentence)\n",
101
+ "# for chunk in chunks:\n",
102
+ "# doc = Document(page_content=chunk)\n",
103
+ "# documents.append(doc)\n",
104
+ "# text_embedding_pairs.append((chunk, vector))"
105
  ]
106
  },
107
  {
108
  "cell_type": "code",
109
+ "execution_count": 7,
110
  "metadata": {},
111
  "outputs": [
112
  {
 
131
  },
132
  {
133
  "cell_type": "code",
134
+ "execution_count": 8,
135
  "metadata": {},
136
  "outputs": [
137
  {
 
147
  "from kiwipiepy import Kiwi\n",
148
  "from typing import List\n",
149
  "\n",
 
 
150
  "\n",
151
  "def kiwi_tokenize(text):\n",
152
+ " kiwi = Kiwi()\n",
153
  " return [token.form for token in kiwi.tokenize(text)]\n",
154
  "\n",
155
  "\n",
156
  "print(\"BM25Retriever 불러오기\")\n",
 
157
  "with open(\"./index_bm25/kiwi.pkl\", \"rb\") as f:\n",
158
  " bm25_retriever = pickle.load(f)\n",
159
+ "print(\"BM25Retriever 불러오기 완료\")"
160
  ]
161
  },
162
  {
163
  "cell_type": "code",
164
+ "execution_count": 9,
165
  "metadata": {},
166
  "outputs": [],
167
  "source": [
 
172
  },
173
  {
174
  "cell_type": "code",
175
+ "execution_count": null,
176
  "metadata": {},
177
  "outputs": [],
178
  "source": [
 
198
  "\n",
199
  "# 프롬프트 템플릿 설정\n",
200
  "prompt_template = \"\"\"\n",
201
+ "당신은 판사이자 20 법률 전문가입니다. 주어진 질문에 대해 문서의 정보를 최대한 활용하여 답변하세요. \n",
202
+ "질문자는 자신의 상황을 설명할 것이며, 질문자의 상황과 비슷한 판례를 설명해줘야 합니다. \n",
203
+ "가장 최근 사건 순으로 소개하며, 초등학생이 이해할 있도록 최대한 자세하고 쉽게 설명하세요. \n",
204
+ "답변은 [사건명 1]..., [사건명 2]... 순서로 구성합니다. \n",
205
  "문서에서 답변을 찾을 수 없는 경우, \"문서에 답변이 없습니다.\"라고 답변하세요.\n",
206
+ "\n",
207
+ "답변의 출처(source)를 반드시 표기합니다. 출처는 메타데이터의 판례일련번호, 사건명, 사건번호 순으로 표기합니다.\n",
208
+ "\n",
209
+ "---\n",
210
  "\n",
211
  "# 주어진 문서:\n",
212
  "{context}\n",
 
262
  },
263
  {
264
  "cell_type": "code",
265
+ "execution_count": null,
266
  "metadata": {},
267
  "outputs": [
268
  {
 
311
  ")"
312
  ]
313
  },
314
+ {
315
+ "cell_type": "code",
316
+ "execution_count": 3,
317
+ "metadata": {},
318
+ "outputs": [
319
+ {
320
+ "name": "stderr",
321
+ "output_type": "stream",
322
+ "text": [
323
+ "/Users/jeongseok/Library/Caches/pypoetry/virtualenvs/law-bot-akDfIMkT-py3.12/lib/python3.12/site-packages/sentence_transformers/cross_encoder/CrossEncoder.py:11: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
324
+ " from tqdm.autonotebook import tqdm, trange\n"
325
+ ]
326
+ }
327
+ ],
328
+ "source": [
329
+ "from libs.embeddings import get_embeddings\n",
330
+ "\n",
331
+ "embeddings = get_embeddings()"
332
+ ]
333
+ },
334
+ {
335
+ "cell_type": "code",
336
+ "execution_count": 17,
337
+ "metadata": {},
338
+ "outputs": [],
339
+ "source": [
340
+ "from libs.retrievers import load_retrievers\n",
341
+ "\n",
342
+ "\n",
343
+ "def kiwi_tokenize(text):\n",
344
+ " kiwi = Kiwi()\n",
345
+ " return [token.form for token in kiwi.tokenize(text)]\n",
346
+ "\n",
347
+ "\n",
348
+ "retriever = load_retrievers(embeddings)"
349
+ ]
350
+ },
351
+ {
352
+ "cell_type": "code",
353
+ "execution_count": null,
354
+ "metadata": {},
355
+ "outputs": [
356
+ {
357
+ "data": {
358
+ "text/plain": [
359
+ "[Document(page_content='. 자) 피고인은 이후에도 \\n 공소외 1에게 “나도 니가 그렇게 해서 오케이 해서 내면, 조정부에서 5월 27일까지 갈 게 뭐 있어? 그렇게 해서 끝내고 해야 나도 이놈아, 협조를 하든가 말든가 뭘 해서 같이 뭘 풀어주지. 너 그런 식으로 하면 너를 어떻게 자꾸 이렇게.”, “\\n ☆ 사무장하고 해결을 빨리 해, 이 새끼야! 그거 하라는 대로 해. 너 정말이야, 너!”, “이 자식아! 그리고 엉아가 그렇게 얘기했으면 알아들어야지. 뭔 일을 뭐 못 알아듣고 이 새끼. 자꾸... 자꾸.”, “너가 이걸 빨리 법원에서 정리를 해야, 가서 조정부에 가서 하든 뭐하든 빨리 일정을 잡아서 진행을 해야 다음 진행도 너가 수월하게 간다는 것만 알고 있어.”, “너가 가서 빨리 그 조정을 해야 이쪽 공무원 애들도 정말 뭐, 내 눈치 안보겠어?”, “조정판결이 이렇게 여기서 18억 냈고, 여기서는 8억 냈는데 이렇게 해서 조정한 거다. 해서 그렇게 해서 끝내면, 판결문 보여주면 끝나는 거지. 그거 무슨 누구 앞에서, 이 새끼야 무슨!”, “그 다음에, 그 다음에 와. 그 다음에 다 딱 갖고 와. 그러면 내가 어떻게, 어떻게 하는 방법. 내가 다 여기다 불러다 ��고 방법론을 찾은 걸...”, “여기서 백날 지랄해도 안 돼. 그러니까 내가 걔네들까지 불러서 할 테니까.”, “그거나 해갖고 와. 그래야 진행되지. 뭐 백날 해봐야 뭐.”, “두 가지를 빨리 해갖고 와. 그러면 내가 다 불러, 다 이 자리에 앉혀놓고 방법론을 찾아줄 테니까. 빨리빨리. 너 지금 백날 다녀봐야 너만 피곤해, 그건. 다 해갖고 와. 내가 시키는 대로 해, 이 새끼야! 내가 그러잖아. 너 이 새끼야. 내가 청장될지 몰랐지? 내가 얘기도 했잖아.”, “니가 가서 내가 얘기한대로. 나는 두 마디 잘 안 하는 사람이야.”, “ 빨리 해갖고 와. 야, 시끄러! 내가 다른 소리 안 하잖아. 내가 그러면 여기 다 앉혀놓고, 임마. 다, 다 여기...”, “그러니까... 이 새끼야! 나는 7년을 참았어...” 등의 말을 하면서 계속하여 피고인이 원하는 내용대로 조정에 응할 것을 종용하였다. \\n 차) 피고인은 2011. 3. 10. 위 민사소송의 소송대리인을 통해 \\n 공소외 4 조합이 감보율 30%가 적용된 2,291,100,000원(229.11평 × 평당 거래가액 1,000만 원) 상당의 근린상업지역을 환지예정지로 지정하여야 함에도 526,953,000원(229.11평 × 평당 거래가액 230만 원) 상당의 주거지역으로 환지예정지를 지정하였고, \\n 공소외 4 조합이 철거일정에 맞추어 지장물을 철거한 조합원에게는 지장물 보상액으로 평가된 금액의 20%를 추가로 지급하기로 하였으므로 \\n 공소외 3에게도 같은 비율로 계산한 금액이 지급되어야 한다고 \\n 주장하면서 결국 \\n 공소외 2, \\n 3은 토지의 경제적 가치 차액으로 1,764,147,000원(2,291,100,000원 - 526,953,000원), 지장물에 대한 추가 보상액으로 36,012,879원(180,064,397 × 20%) 등 합계 1,800,159,879원의 손실을 입었다는 내용의 준비서면을 제출하였다. \\n 카) \\n 공소외 1은 2011. 4. 8. \\n 공소외 4 조합 이사회를 개최하여 그간의 경과를 보고하면서 피고인의 주장은 잘못된 것이고 \\n 공소외 4 조합이 피고인에게 법적으로는 돈을 줄 이유가 없으나, \\n ◇◇천 등의 문제와 관련하여 결재권을 가지고 있는 피고인의 요구를 수용하지 않으면 계속적인 사업 진행이 힘들고 4월말까지 공사완료 공고와 환지처분을 하지 못할 경우 대출금 상환 등의 문제로 인해 \\n 공소외 4 조합이 파산할 수밖에 없어 피고인이 제시한 13억 원에 합의하지 않을 수 없으니 자신에게 전권을 위임해 달라고 하여 이사회의 결의를 얻었다.'),\n",
360
+ " Document(page_content='엄마를 불 싸지른다. 당장 안 오면‘, ’내가 시청에 어머니 모시고 가서 기자회견 한다‘, ’어머니가 안 하면 내가 어머니를 가만 안두지‘ 등의 발언을 하였다. (나) 공소외 3은 2012. 6.경 모친 공소외 5에게 ‘내 직업이 회계사지만 먹고 사는 거는... 실제로는... 실제로 종교인이야. 나는 종교를 믿지 않는 종교인이야. 내가... 그 새끼 뭐라는지 알아?? 예수보다 더 위대 안 한대. 내가 위대... 예수보다 더 위대할 수 있어. 나는 예수는 알리알리 사박다라하고 아버님, 아버님, 왜 버리십니까? 해도 나는 안버려.’, ‘나보자, 나 여기 발 깨진거 보여줘? 나 발 깨졌죠? 이게 발 왜 깨진지 알아? 나도... 나도 장애인이야. 자, 이게 아버지 돌 줍다가. 밭에 둘 줍자, 해갖고 여기 금이 갔어’, ‘아버지가 나는 고마워. 중학교 2학년 때 안 망했으면 나는 거기 있다가 싹 나 혼자 도망을 나왔으면 내가 뭐했겠어? 대학을 아버지 덕분에 간 거에요.’, ‘아버지가 망했기 때문에 고마워해. 아버지가 바람을 피웠기 때문에 고마워해’, ‘이놈의 새끼... 내가 분명히 말해줄게, 구속시킨다고. 지금 엉뚱한 짓 엄청 해. 그리고 간첩하고 어울려 댕겨. 저 이러면요 국정원에 보호신청합니다. 국정원 1차장이 새로 왔는데’, ‘우리 집을 죽인 건 공소외 31이야. 그리고 배후에 피고인이. 빨리 구속 시켜’ 등의 이야기를 하기도 하였다. (다) 공소외 3은 2012. 6. 5. 피고인에게 ‘수내파출소장 구속시켜, 인마!’, ‘이 새끼야 감찰하지?’, ‘파출소 교사 혐의로 구속이야’, ‘○○○이한테 뭐 이 새끼야 손찌검을 해, 이 새끼야!? 너 진상을 아냐’, ‘이 씹새끼야! 파출소장이 너한테 주워줬냐?’, ‘너 그리고 양간이야. 양아치 간첩 새끼야.’, ‘너 재산이 30억 이라며? 너 10억 물어내, 이 새끼야 민사소송 들어가.’, ‘나 미친놈으로 몰지 마 인마! 너 이새끼야, 보건소장이 안 들어! 너 말 안���어! 보건소 공소외 4가 인마, 안한다고 그랬다. 이 쪽팔린 놈아. 공소외 1도 안 한다 그랬고’, ‘너 구속이야. 이 개새끼야!’, ‘사표 내, 이 씨발 놈아!, 야 이 씨발 놈아 사표 내!‘ 등의 이야기를 하였다. (라) 공소외 3은 2012. 6. 5. 공소외 50과 통화하면서 ‘그쪽에서 나를 죽이고 있다고. 오늘도 보건소장이 나한테 뭐라고 한 줄 알아요? 씨발 놈아. 내가 관리의사 하나만 하면 너는 병원 보낼 수 있어’, ‘인사청탁 했대.’, ‘내가 그래서 한 서너 명 추천했는데 팀장급 이하야. 이름도 댈 수 있어’, ‘추천을 했어, 내가 돈 먹었습니까’, ‘저기... 인사 주무관을 만나서 13명을 자르라고 한게 있어. 징계하라고 그건 압력입니까?’, ‘감사관이 나한테 어떻게 행동한지 아세요? 꽃뱀? 아세요?’, ‘내가 건대 총장을 세웠는데, 그 사람이 세상에 겸임교수도 안해 주더라. 감사관님 혹시 나이도 드셨으니까, 어? 그런 자리 있으면 한 번 어때? 이랬는데 청탁이래’, ‘말지에서 왔죠? 간첩새끼. 말지에’ 등의 이야기를 하였다. (마) 공소외 3은 2012. 6. 5. 공소외 11과 함께 공소외 50과 대화하면서 (어머니와 관련해서)‘정확하게 얘기해서 뒈지라고 그랬어, 내가’, ‘나는요 성질 같아서는 칼로 쑤셔버리고 싶었어요’, ‘내가 쑤셔 버린다고 그랬어’, ‘내 나온 구멍을 완전히 쑤셔버리고 싶다고’, 나는요, 얘기해볼까요? 여자가 딱 앉았는데, 뭐라고 그러는 줄 알아요?‘ ’낮에는 밥 먹고, 저녁에는 자지 먹는 새끼들이 지랄이야‘, ’내가 얘기했잖아. 전생에 뭐냐고. 선비에, 나는요 땅에 투자해서 안 먹고 아파트 투자해서 안 먹고 주식투자 해서 안 먹어. 원칙이야. 돈 못 벌었지만. 그거 안 하고 선비에 중에 미국인. 그런데 요새 보니까 내가 중 생활이 강한거야‘라는 말을 하였다. (바) 공소외 3은 2012. 6. 5. 피고인과 통화 과정에서 ’그 여자가 나를 꼬시려고 우리 회사에 침입했다고’, ‘뺨 안 맞았어 인마!’,'),\n",
361
+ " Document(page_content='공소외 2와 서로 말다툼을 하던 중, \\n 공소외 2에게 “보험사기 했잖아, 사기꾼” 등의 모욕적인 발언을 주고받은 사실을 각 인정할 수 있는바, 사실관계가 이와 같다면, 피고인이 피해자 \\n 공소외 2에게 위와 같은 모욕적인 발언을 하게 된 것이 그 당시 \\n 공소외 2 측과 사이의 민·형사상의 제반 분쟁으로 인하여 극하게 감정이 대립된 상태에서 순간적으로 이를 절제하지 못하고 서로 말싸움을 하던 중에 나온 것이라고 하더라도, 그러한 사정만으로는 앞서 본 바와 같은 정당행위의 요건을 모두 갖춘 것으로 \\n 형법 제20조 소정의 사회상규에 위배되지 아니하는 행위에 해당한다고 할 수는 없다.\\n 따라서 이와 달리 피고인의 위 모욕행위가 정당행위에 해당한다고 하여 무죄를 선고한 원심판결은 정당행위에 관한 법리를 오해하거나 그에 관한 사실을 오인한 잘못이 있다고 할 것이므로, 이 점을 지적하는 검사의 위 항소논지는 이유 있다. 4. 결론 그렇다면, 검사의 모욕의 점에 관한 위 항소는 이유 있으므로, \\n 형사소송법 제364조 제6항에 따라 원심판결 중 모욕의 점에 관한 부분을 파기하고, 변론을 거쳐 다시 다음과 같이 판결하고, 검사의 사기의 점에 관한 항소는 이유 없으므로, \\n 형사소송법 제364조 제4항에 의하여 이를 기각하기로 하여 주문과 같이 판결한다.\\n 【범죄사실】 피고인은 2007. 11. 13.경 피해자 \\n 공소외 2가 서울중앙지방법원에 증인으로 출석하여 피고인에 대한 상해 사건(\\n 서울중앙지방법원 2007고단4739호)에서 허위로 증언한 것에 대하여 불만이 있었다.\\n 이에 피고인은 2008. 6. 13. 16:30경 서울중앙지방법원에서 \\n 공소외 3, \\n 4 등 여러 사람이 있는 가운데 위 피해자에게 “그딴 식으로 살지 말어! 어? 보험금 가져갔으면 먹고 떨어지라고 내가 말 안 했어! 보험사기 했잖아! 너! 보험사기 안 했어. 너가? 뭘 다쳤어. 니가? 야. 인간아, 인간아! 보험금 타 먹었으면 됐지. 증언을 그따위로 해! 내가 남 때렸다고 그래, 그런 식으로 하고 있어! 고소도 했어. 한번 두고 봐. 누가 사기꾼인데, 누구보고 사기꾼 하는 거야? 니가 사기꾼이라 그랬지. 내가 사기꾼이라 그랬어? 보험사기 쳤잖아!”라고 말하여 공연히 피해자 \\n 공소외 2를 모욕하였다. \\n 【증거의 요지】1. 피고인의 일부 ���정진술1. 피고인에 대한 검찰 피의자신문조서1. \\n 공소외 2, \\n 4, \\n 3에 대한 각 경찰 진술조서\\n 1. 고소장, 확인서, 녹취 속기록의 각 기재【법령의 적용】1. 범죄사실에 대한 해당법조 및 형의 선택형법 제311조(벌금형 선택) \\n 1. 노역장유치형법 제70조, \\n 제69조 제2항1. 가납명령형사소송법 제334조 제1항판사 김필곤(재판장) 신동준 홍진영'),\n",
362
+ " Document(page_content='② 이 사건의 경우 이 사건에서 \\n 피고인 2가 \\n 피고인 1로부터 위와 같이 협박을 받은 사실이 존재한다고 소명자료로 제출한 것 중 주된 것은 위 녹음 음성파일, 특히 2006. 10. 23. \\n 피고인 1과의 대화를 녹음한 파일인바, 그 내용은 원심이 적시하고 있는 바와 같이 “그런데 그걸 연결해 주는 거는 패밀리커넥션이 월드와이드에 가깝지. 이게 완숙되면 다음에 2세들이 해. 저 집 아들하고 우리 둘째하고 또 일을 해요. ....... 그 릴레이션십이야”, “아제르바이젠인가, 거기에는 5대가 연결돼 있대. 이 사람은 스위스 사람이야. 오리지널은 아제르바이젠 사람인데 스위스에서 사업을 크게 해, 스위스에서. 그때 크게 연결이 되는데, 야 놀란다고. 그럼 이걸 어느 시절에 ...... 실제로 100년이 넘어. 그런데 미국놈들은 또 크레딧을 인정해 줘. 그 할아버지, 증조할아버지 연결된 걸 높이 평가해. 그 우리 큰애하고 여기 가서 한 이틀 같이 보내다 왔는데, 스위스에 그 부자, 사업한다는 놈 있잖아. 그게 또 우리 디씨의 조직하고 가까운데 그게 4 제너레이션이더라고. 나이는 나보다 조금 아래일 거 같애. 아들은 동갑이에요. 우리 ...... 하고. 그렇게 굳게 연결이 된다고. 그러더라도 보고는 철저히 받고, 우리가 무슨 간첩질 하거나 이런 건 아니니까. 우리나라 위하고 너희 나라 위하고, 너는 너희 나라 위하고 우리나라, 백성을 위하는 거다, 그런데 그 대신 배신하면 죽어. 그건 뭐 어림도 없이 끝나는 거야. 끝나는 거야. 에누리 없이 끝나는 거야. 방법 없지. 좋은 거지. 뭐 내가 배신할 수 있나, 나대로 가면 되는데?”라는 것이다.\\n 살피건대, 앞서 든 증거들에 의하면, 이 부분 음성 녹음자료도 앞에 나온 녹음자료와 마찬가지로 \\n 피고인 2 측이 \\n 피고인 1 몰래 보이스펜 등으로 녹음한 것으로 위와 같은 대화 내용들은 그 앞뒤 사정을 전혀 알 수가 없고, 그날 대화의 전부인지도 분명하지 아니한 사실을 알 수 있는바, 이러한 사정에 비추어 보면 \\n 피고인 2 측은 이 부분 \\n 피고인 1과 대화 내용에 대하여도 \\n 피고인 2 측에 유리한 부분이 포함된 내용만을 제출하였을 가능성을 배제할 수 없다. 뿐만 아니라, 위 음성녹음 파일의 내용 어디에도 \\n 피고인 1이 \\n 피고인 2에게 \\n 피고인 2나 그 자손을 특정하여 지목하면서 국내외 정세분석 문건을 작성하는 사실을 발설할 경우 조직을 동원하여 보복을 가할 것이라는 표현을 사용하여 위협하는 장면은 없다. 다만, “패밀리커넥션이 월드와이드에 가깝지”, “이게 완숙되면 다음에 2세들이 해”, “아제르바이젠인가, 거기에는 5대가 연결돼 있대”, “그러더라도 보고는 철저히 받고, 우리가 무슨 간첩질 하거나 이런 건 아니니까”, “그 대신 배신하면 죽어. 그건 뭐 어림도 없이 끝나는 거야”, “좋은 거지. 뭐 내가 배신할 수 있나, 나대로 가면 되는데?”라는 등의 \\n 피고인 1의 발언이 녹음되어 있는데, 이 또한 \\n 피고인 2와 \\n 피고인 1이 정치·경제·사회 전반에 대하여 오랜 시간 대화를 나누고, 때때로 \\n 피고인 2가 \\n 피고인 1의 말에 맞장구를 치고 있는 등 위 녹음된 대화의 전후 사정에 비추어 볼 때, \\n 피고인 1이 국제적 조직의 일원으로서 거물인 양 자신을 과시하면서 자신이 조직을 배반할 수 없다고 말한 것으로 볼 여지는 있어도, \\n 피고인 1이 \\n 피고인 2를 위협하는 내용이라고 볼 수는 없으며, 여기에 \\n 피고인 1이 위 대화 외에도 ‘우리 조직’, ‘우리 중국 조직’, ‘배신’ 등의 용어를 사용하기도 하고, “미국이 묘하게 엮은 거야”라고 말하기도 한 사정과 \\n 피고인 1이 CBS \\n 공소외 38 부장과'),\n",
363
+ " Document(page_content='인장 사용에 관하여서도 위임을 받았고, 위임사무 범위는 널리 도급계약과 제반비용 융자와 지급, 기성고 및 ��공불등의 수취등 일체의 법률행위를 할 권한을 포함하여 수임하였던 사실을 인정할 수 있으므로 피고 주장은 이유없고 위 \"장주경\"의 본건 채권양도 및 그 통지의 행위도 모두 유효한 것으로 볼 것이다. 피고는 (2) 전시 주식회사 건양사에게 피고가 도급을 줄 때 그 계약에 조달청이 정한 「시설공사계약 입찰 유의서」의 규정을 인용하였고, 위 「유의서」제1조에는 입찰할 수 있는 사람의 자격을 정하는 한편 거기에서 일반적인 정부시공의 공사계약 조항으로 일반화된 「시설공사계약 일반조건」으로 \"계약자는 수요기관의 서면승인이 없는 한 계약에 관한 채권을 양도하거나 담보로 하지 못한다\"라는 조항이 있어 이는 본건 체약자는 물론 수급을 하는 일반업자로서도 누구나 다 알고 있는 것이니 본건 채권양도에 있어서 주식회사 건양사는 채권양도 통지를 발송하여 피고에게 송달은 되었으나 위와 같은 승인없이 채권을 양도한 것이였기에 피고는 양도승인원을 제출하여 보내라고 명기하여 1963.6.5. 동 건양사에 반송한 것이니 이 채권양도는 무효이며 원고는 위와 같은 채권양도 금지에 관한 특약이 있었음은 시인하면서 본건 채권양도를 받을 당시에는 이를 몰랐다고 하나 본건 채권양도를 실제로 행한 소외 \"장주경\"은 앞서의 항변과 같이 주식회사 건양사의 광정교 복구공사 현장 대리인에 불과하여 그 권한이 한정되어 있었으므로 본건과 같은 채권양도 행위를 할 만한 권한은 없었고, 그가 자기명의를 사용하지 않고 대표자가 이정근 명의로 그 자격을 모용한 것이였으므로 조금만 주의를 하였던들 원고는, 그가 무권원자임을 쉽사리 알 수 있었을 것인데 그것을 몰랐다 함은 원고에게 과실이 있는 것이라고 주장한다. 그러나 채권자가 장래의 채권을 양도할 수 있는 것이고 다만 채권양도금지 조항이 있었다 하여도 그것은 소외 주식회사 「건양사와 피고 산하 기관인 「태백산 국토건설국장」과의 사이에 이루어진 의사표시이고 제3자인 원고(본건에서는 양수인)가 악의가 아닌 한 그에게 대항할 수 없는 것인바, 그 선·악의에 관하여 보면, 성립에 다툼없는 을 제8호증의 1,2의기재로 보아 소외 건양사와 피고 산하 기관인 「태백산 국토건설국장」사이에 피고 주장과 같은 채권양도 금지조항(피고의 서면에 의한 승인 없이는 양도하지 못한다는 조항)이 있는 공사계약이 맺어진 것은 인정이 되나 그 증언내용이 막연하여 믿기 어려운 당심증인 이주훈의 증언외에는 원고가 이런 채권양도 금지 사실을 알면서 채권을 양수였다고 할 증좌가 없고 또한 소외 \"장주경\"이 그 대표권 내지 위임맡은 대리권한에 기하여 본건 채권양도 및 그 통지행위를 한 것이 앞서의 인정과 같을진댄 원고에게 피고 주장과 같은 과실이 있었다고 할 수 없고 결국 피고 주장과 같이 원고를 악의의 제삼자라고 할 증거는 불충분하다고 할 것이다. 피고는 (3) 본건 채권양도 통지는 피고측의 승인없이 이루어진 것이여서 그 통지서를 반송하였고 그 뒤에도 그것이 무효라는 뜻을 밝혔고 또한 원고측에서 이것이 꼭 받아야 할 채권이라면 소외 건양사에서 지급치 않은 보수금도 상당히 남아 있으니 그와 타합하여 적절한 조치를 취하라고 알려 주었는데도 불구하고 이렇다 할 소식이 없던 원고가 승인한 위건양사의 채권 양수인 소외 김용후에게 공사 보수잔액 금 1,417,000원을 지급하였으므로 원고 청구는 부당하다고 항변한다. 그러나 이미 대항요건이 구비된 채권양도는 원고의 동의 없이는 채권양도인인 소외 건양사가 임의로 철회할 수 없는 이치인데 그와 같은 주장이나 입증도 없는 터이므로 피고 주장의 통지서의 반송만으로는 이미 유효하게 이루어진 채권양도 행위를 무효화 시킬수 없고 그런 통지반송 사실을 즉시 원고에게도 알렸다는 증좌도 없다. 다만 1963.9.경에 이르러서야 피고 주장과 같이 그런 양도통지의 반송을 한 사실과 아직도 미지급의 보수금이 남아 있으니 원고는 소외 건양사와 잘 타합하여 보라고 알려준 사실은 원심증인 이정근, 동 구봉서의 증언으로 인정은 되나 이것만으로써'),\n",
364
+ " Document(page_content='207264,토지인도및부당이득금반환,75다2282,1976.07.13,대법원,민사,400101.0,판결,선고, 포락(浦落)으로 인한 토지소유권 소멸의 인정기준, 포락(浦落)이란 강물이나 냇물 또는 해수에 논밭이 개먹어 무너져 떨어져 소유권이 상실되�� 것으로 그의 판정은 사회의 평균인이 지닌 건전한 상식에 따라 정해져야 할 것이고 대홍수로 웅덩이가 생기고 복사로 덮어져서 당장에는 농토로서의 가치가 없어졌다고 하여 복구가 불가능하다고 단정지울 수 없고 소유자가 잠시 손떼어 방치된 상태에 놓였다는 사실이 있다 하더라도 하천법에 따른 소유권의 상실이 없는 경우에는 이를 소유권이 소멸되는 포락이라고 인정될 수 없다.,내용없음,내용없음,【원고, 상고인】 원고 소송대리인 변호사 박병균【피고, 피상고인】 피고【원 판 결】 서울고등법원 1975.11.21. 선고 73나2038 판결【주 문】 원판결을 파기하고, 사건을 서울고등법원에 환송한다.【이 유】 원고대리인의 상고이유 제1, 2점에 대하여, 논지의 요지는 원판결 판단이 포락에 관한 법리를 오해함이 아니면 채증방법을 잘못 가려냈거나 심리미진의 위법을 남겼다는데 있다. 원판결 설시이유에 따르면, 원심은 이 사건 토지의 근처를 흐르는 삽교천이 「1953. 여름철에 대홍수가 있어 범람하고 포락되어 이 사건 토지 부분까지 폭 약 2미터, 깊이 약 1.5미터 정도, 면적 약 6,000평 정도의 큰 웅덩이가 이루어지고, 또 그 주변일대가 복사로 매몰 되었던 사실, 이리하여 그 토지 소유자들은 포락되어 황무지화된 토지를 개인적 자격으로는 이를 농지로 복구하기 어려운 형편이어서 방치상태에 있었는데」 1958.2경 피고의 아우가 개간허가를 얻어 이 사건 토지를 포함한 부근 일대의 지역 약 20,000평을 개간, 1959.5경 그 준공을 마치고, 그 후부터 피고가 점유 경작하고 있다고 설시하고 나아가 「위 인정사실에 의하면 이 사건 토지는 1953년도 여름철의 대홍수로 인하여 포락되어 이 토지에 관한 이 당시의 소유권은 영구히 소멸되었다 할 것이므로 그 당시의 소유자는 원고의 주장과 같은 상속, 분배, 유산상속 포기의 과정을 거쳐 소외인임이 인정된다 하더라도 위 소외인은 그 소유권을 상실하고, 그 후 개간공사에 의하여 성토화된 이 사건 토지에 관하여는 소유권을 취득할 수 없다」고 판단되어 위 소외인으로부터 이 사건 토지를 사서 1972.7.21 등기를 넘겨받은 원고의 소유권 있음의 주장을 배척하고 있다. 따지어 보건대, 본시 포락이란 강물이나 냇물 또는 해수에 논밭이 개먹어 무너져 떨어짐을 일컫는 개념이므로 토지의 포락이 그 소유권의 소멸을 가져올 수 있는 경우를 개념할 수 있음은 물론이나 일률적으로 단정이 될 수 없고 구체적 사실관계를 놓고 잘 따지어보고 소유권상실이 되는 포락이 판정되어야 할 것이니 결국은 사회의 평균인이 지닌 건전한 상식에 따라 정해질 것이지만 호락 호락 소유권이 소멸되는 포락의 인정은 조심스러워야 될 것이다.원판결은 앞서 설시에서 본 바와 같이 1,200평이 넘는 본건 농지가운데에 한때의 대홍수로 넓이 2미터, 깊이 1미터 정도의 삽교천 지류가 형성되고, 모래로 뒤덮이고, 때문에 또 이를 포함한 일대가 깊이 1.5미터 면적 6,000평 정도의 웅덩이가 생기고 복사로 뒤덮였다 하더라도 당장에는 농토로서의 가치가 없어졌다고 아니할 수 없으나 힘들기는 하겠지만 복구가 불가능하다고 단정지을 수 없고, 원판시처럼 소유자가 잠시 손떼어 방치된 상태에 놓였다는 사실이 있다 하여도 또 위 포락된 부분이 삽교천 지류를 이뤘다고 하더라도 하천법에 따른 소유권의 상실이 있었다는 설시가 없는 이 사건에 있어서는 그 인정과 같은 토지편의 포락을 가리켜 소유권이 소멸되는 포락이라고 인정될 수 없다 하겠으니 이를 반대로 잡은 해석 밑에서 한 원판결 판단에는 포락에 관한 법리를 오해하여 이유불비에 빠진바 위법을 범하였다고 하리니 논지는 이유있어 다른 점에 대한 판단을 할 나위없어 원판결은 파기를 못 면한다. 그러므로 일치된 의견으로 주문과 같이 판결한다.대법관 김윤행(재판장)'),\n",
365
+ " Document(page_content='2차 연평해전이 있었잖아요. 그 다음 정권에서도 열심히 북한에 지원했지만 연평도 접촉해서 우리 배가 저거도 있었고. 그 다음에 또 1차 핵실험, 또 1차 미사일 발사 다 잊었잖아요. 그리니까 북한은 그런 햇볕정책 쓴다 해서 예를 들어서 우리 국민들을 위협 안 하고, 정권이 아니에요. 그럼 말만 욕만 하면 될게 아니고 그런 실례를 들어주면서 국민들하고 얘기를 해야 됩니다. - 아까도 얘길 했지만 우리 국민들에게 자신감을 갖게 해야 된다. 지난 선거 때 전쟁과 ���화 이런 것 해가지고 국민들이 위기위식을 느껴가지고 전쟁 안 해야 된다. 그러니까 2번 찍자 뭐 이런 식으로 되어선 안 되지 않냐.○ 2012. 1. 27. - 전 정권의 경제적 실패 및 현 정권의 경제적 성공 강조, 전 정권의 분양가 상한제 비판 및 현 정권의 경제정책 지지 여론 조성 지시 - 공소외 37 대통령, 공소외 38 대통령 한 10년 동안에 우리도 경제가 발전을 했어요, 그런데 그때 경제발전의 문제는 세계경제가 말이야 미국 같은 나라도 성장률이 5%씩 될 때 한국이 5% 성장했다는 이 자체는 딴 놈 100킬로 달릴 때 지는 20킬로 달리고 달렸다고 하는 똑같은 소리야. 달리기는 달렸는데 그러면 80킬로 뒤로 간 거 아니에요, 왜냐하면 딴 사람 100킬로 달릴 때 내가 20킬로 달리면 뒤로 간 거지 앞으로 간 게 아니고, 근데 우리는 지금은 딴사람이 뒤로 가고 있을 때 우리는 앞으로 갔다는 것이 중요하다는 거를 설명을 해야 이 정부에 잘했다는 소리가 되는 거라고 그런데 여기에 그런 내용이 없어, 그냥 어렵다니까 같이 어렵다, 아니 뭐 경제가 어렵다 경제가 어려우면 단 나라와 비교해 봐라 지금 뭐냐 하면은 그리스가 디폴트가 되고 지금 이태리나 이런 나라도 디폴트 된다. 이런 거까지 가는 판에 우리는 신용평가사로부터 상향 평가를 받고 또 그 어려운 상황에서도 세계무역 1조 불을 달성하고 9번째로 1조 불 달성. - 그 다음에 집값 문제가 ____ 집값 문제를 쭉 했는데 이게 누가 만들 거예요 이게, 발목 잡은 야당이 안 놔주잖아. 지금 그 뭐냐 하면 분양가상한제 같은 것은 법으로 만들어 가지고, 옛날에는 행정적으로 명령했는데 법으로 만들어 가지고 야당에서 죽자고 안 놔주면서 집값 안 올라가게 집값 떨어뜨려놓고 이제 중산층 와해시켜 가지고 이제 자기들이, 자기들 패거리로 만들려고 하는. 그런데 그런 것도 설명이 제대로 안 되고 있는 거야 지금, ... 그런데 이 정책이 누구 정책이냐 그거야 이 정부 정책이냐 공소외 38 정책이냐, 공소외 38 정책인데 그게 시행은 이 정부에서 됐는데 그걸 풀어 보려니까 뭐냐 하면은 야당에서 극구 반대하니까 그걸 못 풀고 있다 그걸 국민에게 알려줘야지. 그러니까 뭐냐 하면은 너희가 정말 이거 살아나려면 공소외 3 정부를 잘 지지해야 너희들이 살아날 수 있다 이걸 여기 있는 집 사, 있는 사람들 다 집값 떨어졌지, 여기 수지 사람들 많잖아, 이쪽에 분당 사는 사람들 많을 거고, 강남 사는 사람들도 집값이 많이 떨어졌을 거고, 떨어진 게 누구 정책이야. 그러니까 그런 거를 갖다가 국민에게 제대로 알려주는 놈도 없고,○ 2012. 2. 18. - 전 정권을 종북좌파로 지칭, 야당의 비판에 대한 강력 대응 지시, 국가정보원을 없애려는 야당에 대한 대응 지시- 진짜 금년 한 해가 뭐 여러분들 아시다시피 아주 중요한 한 해 아닙니까. 이제 총선도 있고 대선도 있고, 종북좌파들은 북한과 연계해 가지고 어떻게 하든지 간에 다시 정권을 잡으려 그러고 여러분들의 보고서에서도 봤겠지만 지금 북한이 이제 총선, 오늘 아침에 봤나 총선에서 야당 되면 강성대국은 완성된다 이렇게 공개적으로 얘기했어요. 그런데 그런 걸 갖다가 국민들한테 알려주는 사람이 아무도 없잖아요.- 그리고 야당이 되지 않는 소리하면 강에 처박아야지 4대강 문제라 뭐 이렇게 떠들어도 뭐 그냥 또 무슨 해명하려고 꺼냈습니다. 잘못하면 한 놈만이라도 명예훼손으로 집어넣고 그냥 손해배상 청구하고 막 이런 식으로 해서 싸워야지. 그래야 함부로 안 달려들지.- 북한이 공갈치니까 달래야지'),\n",
366
+ " Document(page_content='예. 사장님은 증거가 있다라고 하고 지금 돈 내놓으라고 하고 그러는데 정확한 증거나 정확한 영상이나 이런 게.피고인: 아니, 돈 안 줘도 돼요. 돈 주지 말고, 돈 주지 마세요. 안 바래요. 안 바래고 좆도 뭐 씨발 돈도 없는데 뭘 해요. 근데.피해자: 아니, 우리 애들 학교에 뿌리고 뭐하고 이런 얘길 하니까 그런 거죠.피고인: 그러니까 한다고. 돈 주지 마요, 그러면.피해자: 아니, 그러니까 그걸 막으려고 그러는 거잖아요.피고인: 아저씨! 돈 주지 마요.피해자: 아니, 그걸 막으려고 하는 거잖아요, 돈 달라면서요? 그걸 막으려면. 애들 인생은 다른 거잖아요.피고인: 돈을 주지 말라니까요, 나한테.피해자: 영상을 보여주면 돈을 주겠다고 얘기했잖아요. 1억 달라며요? 1억 줄게요.피고인: 줘요, 그럼. 지금 보내요. 그럼.피해자: 그러니까 영상을 ���여주세요. 사장님이 거짓말하실 수도 있는 거잖아요?(증거기록 161면)피해자: 그러니까 사장님 제 얘기를 들어보세요. 영상을 보여주시면, 제가 진짜 이게 우리 집사람이 확실하고 그런 영상이다고 하면요. 내가 우리 애들, 내 우리 집사람 때문에 주는 게 아니라 우리 애들 때문에 드릴 테니까 제가 보는 앞에서 삭제해주세요. 그러면 되잖아요? 컴퓨터에 저장해 놓으신 거 같은데. 이 영상 보니까. 그죠?피고인: 그러니까 잠깐 있어 봐요.피해자: 예. 보내줘 보세요. 아니, 돈 1억 아까워요? 애들 인생이 걸려있는데. 은행 빚이라도 얻어서, 사채라도 얻어서 드려야지.피고인: 1억이 없을 거 같은데, 뭘.피해자: 1억 만들어야죠. 시간 주면 내가 만들어서 주지. 에이~ 아파트 팔아서라도 줘야지, 그까짓 거. 애들 인생인데. 안 그래요?피고인: 잠깐 있어 봐요.피해자: 알았어요.피고인: 딱 니네 와이프 아니에요?피해자: 보내주셨어요? 아니, 사장님! 얼굴이 안 나오잖아요!피고인: 아니, 그러니까 딱 니네 와이프 다리 아니에요?(중략)피해자: 사장님! 그냥 시원하게 보내줘 보세요. 내가 맞는지 안 맞는지 정확하게 확인만 하면 돼. 영상을 확인해보면, 얼굴이 나온 영상을 확인해보면 제가 “맞다”라고 하면 제가 돈 드리면 되잖아요? 맞잖아요? 영상을 보내줘 보시라니까. 사진 말고. 얼굴 나온 영상을 보내주세요.피고인: 영상 나도 나오니까 쪽팔려가지고 못 보내겠는데.(증거기록 163면)피고인: 목소리가 지금 들리지 않아요?피해자: 아무 소리도 안 들려요, 사장님.피고인: 동영상 틀고 있는데. 지금.(증거기록 166면)피고인: 보냈어요.피해자: 보냈어요? 잠시만요.피고인: 한번 봐 봐요.피해자: 사장님! 이거 그냥 사진인데요.피고인: 그러니까 만나가지고 동영상은 보여줄게요.(증거기록 167면)피고인: 내가 거짓말 왜 해요? 아저씨! 내가 거짓말 왜 해요?피해자: 왜 하다니요, 사장님. 보이스피싱처럼 돈 뜯을라고 거짓말 할 수 있는 거잖아요.피고인: 돈 주지 말라니까요, 그러면.피해자: 돈도 필요 없고 뭐도 없는데 왜 이러시는 거예요, 도대체? “애들한테 뿌린다 뭐한다” 이걸 왜 하시는 거예요?피고인: 그냥 좆되게 만들라고요.피해자: 왜요?피고인: 내 자존심을 건드렸거든요. (공소외 2)가.(2021. 8. 3. 18:17 녹취록, 증거기록 176면)피고인: 아니, 계속 바람피우고 이랬었어요?피해자: 아이~ 나는 모르죠. 나는 사장님한테 처음 들었는데, 이런 얘기를. 걔가 밖에서 뭐 하고 돌아다니는지 어떻게 알아요, 제가. 맞잖아요, 사장님. 나도 지금 사장님한테 처음, 나 이런 앤지 몰랐지.피고인: 아~ 당신 당한 거네, 지금.피해자: 그러니까요.피고인: 응. 내가 그러면 말 잘했네.피해자: 그러니까 엄청 잘 하신 거지. 물증이 생겼으니까 제가 통화해 가지고요, 이제 오리발은 안 밀겠지. 내가 이걸 안 보여주고 물어볼 거야.피고인: 그러니까 해봐요. 그렇게.피해자: 그러니까 안 보여주고 물어보고, 나한테 거짓말할 수도 있잖아? 거짓말하면 틱 보여주면 되잖아요.피고인: 그러면 나한테 돈 줄 거예요?피해자: 아유~ 애들한테 이걸 보내면 안 되니까 만나가지고 컴퓨터, 사장님 컴퓨터에 있는 걸'),\n",
367
+ " Document(page_content='켜놓은채 비스듬히 누워 있는 상태였다는 것이고, 먼저 과일 사러 나갔다왔는데 걸린 시간은 실험해보니 7-8분이 걸렸고, 갔다와서 10분가량 T.V를 더 보다가 과자를 사왔고, 그때의 상황도 전과 같았고 피해자의 방은 잘 정돈되어 있었다는 것이며, 피해자와 피고인은 평소 조용하게 원만히 지냈고, 23:00가 넘어 잠잤는데 그때까지 싸우는 소리를 들은 적이 없다고 진술하고 있으므로 위 증거는 공소범죄시각인 7.17. 22:16에는 피고인이 범행장소에 없었다는 증거는 될지언정 피고인에 대한 유죄인정의 증거로는 되지 못할 것이고, (2) 이판숙의 진술 이판숙의 경찰·검찰에서의 진술을 종합하면, 동인은 7.17. 22:32경 우리약국 앞에서 피고인을 보았고 어디 가느냐 하니 오토바이를 타면서 저 위에 간다(최낙필 경영의 경남알미늄 가게를 뜻하는듯)고 했다고 진술하고 있고, 위 진술은 동인이 약국에서 피고인과 헤어져 3분 결려 자신의 집에 와서는 동네아주머니와 5분가량 잡담하다 방에 들어와 시계를 보니 22:40이어서 피고인과 만난 시각을 22:32로 추단한다는 것이라니, 관계인의 시각에 대한 진술중 가장 믿을만한 것이다. 그런데 위 진술도 피고인의 유죄인정의 ��거로는 될 수없고 오히려 피고인의 알리바이를 입증하는 증거밖에 될 수가 없다. 그것은 피고인이 위 약국에서 감기조제약을 지어받느라 5분가량 소비했다는것이나 피고인이 위 약국에 도착한 시간은 22:27일 것이라 보아야 하고,(기록444면) 그렇다면 피고인은 22:16에 범행장소인 자기집에 가서 피해자와 10여분간 싸우다 그를 살해하고(후술 참조) 살리려고 물을 붓고 해봤으나 결국 죽은 것이 확인되자 강도로 위장키 위해 농문마다 열어 젖혀 놓고는 드라이버로 문들을 재껴놓은 뒤, 집을 나와 450미터 가량 떨어진 약국에 도착하는 데까지 11분이 걸렸다는 것이 되는데, 이건 범행을 치밀한 계획살인으로 보지 아니하면서도 그러한 추리가 가능할 것 같지 아니하고, (3) 김정수의 진술 동인의 검찰, 경찰에서의 진술을 종합하면, 동인은 피고인의 친구로서 피고인의 가게를 봐준 사람인데, 피고인이 22:20경 위 드라마 \"제5열\"을 시청중에 피고인 가게로 와서 동인에게 최낙필 집에 화투치러 가자고 했고, 동인이 가지 않겠다고 하자 피고인의 처(피해자)로부터 전화가 왔고 피고인이 전화를 받고는 \"알았다. 조금있다 가겠다\"고 답하는 것을 들었고, 그후 피고인은 문단속을 한 뒤에 최낙필집으로 화투치러 갔다고 진술하고 있어서(1심공판기록제88면 참조) 위 진술이 피고인을 유죄로 할 증거가 될 수 없다. 그런데 검찰은 김정수가 T.V를 끈 시간이 22:14라고 추단하고 피고인이 피해자의 전화를 받고 집으로 가 2분후에 피해자를 살해했다 함으로써 위 김정수의 진술을 유죄의 증거로 삼는 둣하나, 검찰 추측대로라 하더라도 그 추리가 경험칙에 어긋난다는 생각이 들고, (4) 최낙필의 진술 7.29.자 경찰진술조서에 의하면 피고인은 익일 01:10경 최낙필의 집을 떠나 01:15경 피고인 집에 도착했을 것인데 01:35경 옆방에 피해자 사망사실을 알렸으니 사체와 함께 20분간 있은 것이 의심된다고 진술하고 있고, 검찰에서의 진술에 의하면 이원혁으로부터 돈을 받아 자기 가게에 가서 김정수를 데리고와 화투를 치겠다며 22:10경 진술인 집을 나가 10분만에(증인으로 법정에 나와서는 22:10 내지 22:20경 출발했고 그후 10분 많아야 15분만에 돌아왔다고증언하고 있다.) 진술인 집으로 돌아왔으며, 화투를 마치고 나간 시간은 익일01:10쯤으로 추측되는 이유는 00:50경 시계를 본 이후 화투 5판을 1판에 약 4분걸려 더 쳤기 때문이라고 진술하고 있다. 그러나 이 진술도 피고인을 유죄로 볼 증거가 아니다. 즉 피고인이 22:10내지 20 진술인 집을 나가 많아야 15분만에 돌아왔다면 그 동안에 피고인이 리도가구에 가서 라이타 사고, 자기 가게에 가서 문단속하고, 피해자 살해하고, 약방에서 약지어 가지고 올 수 있다고는 도저히 상상할 수 없기 때문이고, 진술인 집을 떠날 때의'),\n",
368
+ " Document(page_content='국민들의 의식이 잘못된 부분이 있기 때문에 이런 것에 교육도 시켜야 된다. 국민들에 대한. 햇볕정책을 정부가 하고 있을 때 1차, 2차 연평해전이 있었잖아요. 그 다음 정권에서도 열심히 북한에 지원했지만 연평도 접촉해서 우리배가 저거도 있었고. 그 다음에 또 1차 핵실험, 또 1차 미사일 발사 다 잊었잖아요. 그리니까 북한은 그런 햇볕정책 쓴다 해서 예를 들어서 우리 국민들을 위협안하고, 정권이 아니예요. 그럼 말만 욕만 하면 될게 아니고 그런 실례를 들어주면서 국민들하고 얘기를 해야 됩니다. - 아까도 얘길했지만 우리 국민들에게 자신감을 갖게 해야 된다. 지난 선거때 전쟁과 평화 이런 것 해가지고 국민들이 위기위식을 느껴가지고 전쟁 안해야 된다. 그러니까 2번 찍자 뭐 이런 식으로 되어선 안되지않냐.?○ 2012. 1. 27. - 전 정권의 경제적 실패 및 현 정권의 경제적 성공 강조, 전 정권의 분양가 상한제 비판 및 현 정권 경제정책지지 여론 조성 지시 - 김대중 대통령, 노무현 대통령 한 10년 동안에 우리도 경제가 발전을 했어요, 그런데 그때 경제발전의 문제는 세계경제가 말이야 미국 같은 나라도 성장률이 5%씩 될 때 한국이 5% 성장했다는 이 자체는 딴 놈 100키로 달릴 때 지는 20키로 달리고 달렸다고 하는 똑같은 소리야. 달리기는 달렸는데 그러면 80키로 뒤로 간 거 아니예요, 왜냐하면 딴 사람 100키로 달릴 때 내가 20키로 달리면 뒤로 간 거지 앞으로 간게 아니고, 근데 우리는 지금은 딴사람이 뒤로 가고 있을 때 우리는 앞으로 갔다는 것이 중요하다는 거를 설명을 해야 이 정부에 잘했다는 소리가 되는 거라고 그런데 여기에 그런 내용이 없어, 그냥 어렵다니까 같이 어렵다, 아니 뭐 경제가 어렵다 경제가 어려우면 단 나라와 비교해 봐라 지금 뭐냐 하면은 그리스가 디폴트가 되고 지금 이태리나 이런 나라도 디폴트 된다. 이런 거까지 가는 판에 우리는 신용평가사로부터 상향 평가를 받고 또 그 어려운 상황에서도 세계무역 1조불을 달성하고 9번째로 1조불 달성. - 그 다음에 집값 문제가 집값 문제를 쭉 했는데 이게 누가 만들 거예요 이게, 발목 잡은 야당이 안 놔주잖아. 지금 그 뭐냐 하면 분양가상한제 같은 것은 법으로 만들어 가지고, 옛날에는 행정적으로 명령했는데 법으로 만들어 가지고 야당에서 죽자고 안놔주면서 집값 안 올라가게 집값 떨어뜨려놓고 이제 중산층 와해 시켜 가지고 이제 자기들이, 자기들 패거리로 만들려고 하는. 그런데 그런 것도 설명이 제대로 안 되고 있는 거야 지금, ... 그런데 이 정책이 누구 정책이냐 그거야 이 정부 정책이냐 노무현 정책이냐, 노무현 정책인데 그게 시행은 이 정부에서 됐는데 그걸 풀어 볼려니까 뭐냐 하면은 야당에서 극구 반대하니까 그걸 못 풀고 있다 그걸 국민에게 알려줘야지. 그러니까 뭐냐 하면은 너희가 정말 이거 살아나려면 이명박 정부를 잘 지지해야 너희들이 살아 날수 있다 이걸 여기 있는 집 사, 있는 사람들 다 집값 떨어졌지, 여기 수지 사람들 많잖아, 이쪽에 분당 사는 사람들 많을 거고, 강남 사는 사람들도 집값이 많이 떨어졌을 거고, 떨어진 게 누구 정책이야. 그러니까 그런 거를 갖다가 국민에게 제대로 알려주는 놈도 없고,?○ 2012. 2. 18. - 전 정권을 ‘종북좌파’로 지칭, 야당의 비판에 대한 강력 대응 지시, 국정원을 없애려는 야당에 대한 대응 지시 - 진짜 금년 한해가 뭐 여러분들 아시다시피 아주 중요한 한해 아닙니까. 이제 총선도 있고 대선도 있고, 종북좌파들은 북한과 연계해 가지고 어떻게 해든지간에 ‘다시’ 정권을 잡으려 그러고 여러분들의 보고서에서도 봤겠지만 지금 북한이 이제 총선, 오늘 아침에 봤나 총선에서 야당 되면 강성대국은 완성된다 이렇게 공개적으로 얘기했어요. 그런데 그런걸 갖다가 국민들한테 알려주는 사람이 아무도 없잖아요. - 그리고 야당이 되지않는 소리하면 강에 쳐박아야지 4대강 문제라 뭐 이렇게 떠들어도 뭐 그냥 또 무슨 해명하려고 꺼냈습니다. 잘못하면 한 놈만이라도 명예훼손으로 집어넣고'),\n",
369
+ " Document(page_content='214987,손해배상등,68다88,1968.07.30,대법원,민사,400101.0,판결,선고, 불공정한 법률행위에 관한 법리를 오해한 위법이 있는 실례, 매도인이 부동산매도당시 가친의 병이 위독하여 그 치료비등 비용관계로 할 수 없이 처분하게 된 궁박한 사정을 매수인이 알고 있었고 매도인이 팔기를 꺼려하는 부분까지 매수인의 요구에 의하여 함께 팔지 않을 수 없었으며 매매목적물의 경계확정측량도 매수인이 일방적으로 하고 그 부동산가격도 토지 16,964평을 겨우 10,000원이라는 지극히 저렴한 것이었다고 한다면 위 매매행위는 본조에 해당하는 불공정한 법률행위이다.,민법 제104조,내용없음,【원고, 상고인】 원고【피고, 피상고인】 피고【원심판결】 제1심 서울민사지방, 제2심 서울고등 1967. 12. 20. 선고 65나1434 판결【주 문】 원판결을 파기하고, 사건을 서울고등법원으로 환송한다.【이 유】 원고 소송대리인의 상고이유를 판단한다. 원판결은, 원고의 이 사건 매매계약은 불공정한 법률행위라는 주장을 배척하는 이유로서 그 판시이유 전단에 있어서는 원고는 가친 병환도 있어서 이사건 토지를 매도할 필요가 생하여 누차 이 땅을 관리하던 소외 1에게 매각 주선을 의뢰하게 된바 운운, 원고는 양변리 (지번 생략) 밭은 빼고 팔겠다고 제의했으나, 피고는 그것을 빼면 전부 매매를 하지 않겠다고 주장하여 (지번 생략) 밭을 매매목적에 포함시켰다 운운, 그러나, 경계 확정은 후일 하되 우선 경계 표시로 땅을 약간 판다든가 나무 가지를 군데군데 꺽어 늘어 놓아두고 이를 측량 기초로 하고, 나중에 원 피고 입회하에 소외 1의 지시에 의하여 측량하여 피고에게 떼어주기로 약정 운운, 피고는 소외 1을 다리고 소외 2로 하여금 위 땅을 분할 측량코저 현장에 임하여 소외 1을 원고에게 보내어 현장입회를 촉구하였더니 원고는 가친의 병환이 위중하여 참석지 못하겠으니 앞서의 약정대로 재어 주도록 하라고 하므로 피고는 그의 묵시적 승낙을 얻고 소외 1의 앞서의 표시를 찾아 한 지시에 따라 소외 2로 하여금 측량케 하였다 운운 판시하면서, 후단에 이르러서는 원고는 이 사건 매매목적 토지 16,964평의 대금이 겨우 금 10,000원에 지나지 않는다면 이는 임야 1평의 가격이 겨우 서울시내뻐스 1회 운임의 절반 또는 성냥 1갑의 가격밖에 해당되지 아니한다는 것은 현저히 불공정한 가격이어서 위 매매행위는 당연 무효라고 주장하나, 어떤 법률행위가 불공정한 것이라고 단정하려면 어떤 당사자의 궁박, 경솔, 또는 무경험에 편승하고, 그 결과가 사회적 정의에 비추워 현저히 불공정하여야 할터인데 이 사건에 있어서는 단지 가격이 저렴하게 매매되었다는 주장과 입증이 있을뿐 궁박, 경솔, 무경험에 편승하였다는 주장이나 입증은 전혀 보이지 아니하며, 가격에 관하여 너무 저렴하게 된 것이라는 주장에 부응하는 듯한 1심 증인 소외 3 증언은 별 지장이될 수 없다고 판시하였다. 그러나, 원판결 판시이유 전단에 의하면, 원고는 이 사건 토지를 피고에게 매도할 당시에는 그 가친의 병환이 위독하여 그 치료비 등 기타 비용관계로 돈이 필요하여 할 수 없이 이 토지를 팔지 않으면 안될 궁박한 상태에 있었다고도 보여지며, 피고 및 이사건 토지 매매를 중간에서 알선한 소외 1은 이러한 원고의 궁박한 사실을 매매당시에 알고 있었던 점을 원심이 인용한 을 3호증의 4( 피고 진술조서) 을 3호증의 5( 소외 1 진술조서)에 의하여, 각각 이를 간취하지 못할 바 아니며, 또 앞서 말한 원판결 판시이유에서 말한바와 같이 피고는 원고가 팔기를 꺼려하는 양변리'),\n",
370
+ " Document(page_content='153402,토지인도,67다213,1967.04.04,대법원,민사,400101.0,판결,선고, 포락한 토지가 재차 성토화 되었을 경우 포락한 토지에 대한 종전 소유자의 소유권의 소멸, 포락한 토지가 재차 성토화 하였을 경우 포락한 토지에 대한 종전 소유자의 소유권은 영구히 소멸되고 그 성토화한 토지에 대한 소유권을 다시 취득할 수 없다.,내용없음,\\n대법원 1965.3.30 선고 64다1951 판결,【원고, 피상고인】 최학순 외 2명【피고, 상고인】 강영수【원심판결】 \\n제1심 군산지원, 제2심 \\n \\n \\n광주고등 1967. 1. 5. 선고 66나103 판결【주 문】 상고를 기각한다. 상고소송비용은 피고의 부담으로 한다.【이 유】 피고 소송대리인의 상고이유를 본다. 원심이 확정한 사실에 의하면 피고는 1958.3 당국의 허가나 면허없이 이 사건 토지중 810의 124 답6,418평에 대하여는 해면에 접촉하여 겨우 조수침입을 방지할수있을 정도의 잠정적 제방을 축조하고 같은 번지의 116 답911평과 같이 정지작업을 실시하여 사실상 농경지로 사용하여 왔으며 한편 원고등은 1962.8.28 이 사건 토지부근 일대의 공유수면 770정보에 대하여 매립면허신청(당시는 개간사업 시행인가)를 할 당시나 당국에서 매립면허 (당시는 매립인가)를 할때에 이 사건 토지가 그 대상에서 빠져있었으나 이 사건토지를 포함한 매립대상자에 대한 매립공사 시공후 1963.12.4에 매립공사 준공인가 신청시나 1964.3.19 준공인가시에는 이 사건토지가 모두 포함되었다는 것이므로, 비록 매립면허 신청 또는 매립면허시에 이 사건 토지가 포함되어있지 않었다고 하여도 이 사건토지가 매립 대상지에 포함되어 있었기 때문에 준공인가 신청에 의하여 준공인가가 되었고 이 사건토지가 피고의 소유가 아니고 어디까지나 공유수면이었든 이상, 이 사건 토지에 관한 부분에 관하여 준공인가 처분이 당연무효의 처분이라고는 할 수 없는 것이고, 포락한 토지가 재차 성토화 하였을경우 포락한 토지에 대한 종전소유자의 소유권은 영구히 소멸되고 그 성토화한 토지에 대한 소유권을 다시 취득할수 없다고 함이 본원의 판례('),\n",
371
+ " Document(page_content='153320,부동산경락허가취소,66마560,1966.09.12,대법원,민사,400101.0,결정,자, 경매기일의 공고 내용인 부동산표시가 부적법 한 사례, 경매목적물인 등기부상 논 408평은 이미 대지화되고 그중 102평은 이미 환지되어 소유자가 실제 소유하고 있는 토지는 306평에 불과한 경우 그 경매기일공고를 ���에 있어 등기부상 평수만을 공고하고 위 환지된 토지 102평의 평수와 위치를 전연 표시하지 않은 경매기일공고는 위법이다.,민사소송법 제618조,내용없음,【재항고인】 박노선【원 결 정】 \\n대구지방 1966. 5. 14. 선고 65라208 판결【주 문】 재항고를 기각한다.【이 유】 재항고 이유 1점을 판단한다. 재항고인은 본건 경락허가결정에 대한 항고인이 아니므로, 원심이 이에 대한 결정을 재항고인에게 송달하지 아니한것은 아무런 잘못이 없는 것이다. 논지 이유없다. 재항고 이유 2점을 판단한다. 원결정은 경락허가 결정을 취소하는 이유로서, 경매법원이 명한 감정인은 본건 경매목적물 중 등기부상 논 408평은 대지화 되고 그중 102평이 이미 환지되어 소유자가 실제 소유하고 있는 토지는 306평밖에 되지 않으므로, 위 306평을 대지로서 가격감정을 하였음에도 불구하고, 경매법원은 위 토지에 대하여 논 408평이라고 기재하여 경매기일의 공고를 하였을 뿐 아니라, 경락허가 결정역시 408평 전부에 대하여 하였으나, 위와 같이 102평의 토지가 환지된 경우 이해관계인에게 현실의 토지를 알리기 위하여는 그 경매기일공고에 있어서 등기부상의 평수만을 공고하는 것만으로서 부족하고, 아울러 환지된 토지의 평수와 그 위치를 표시하여 매수를 희망하는 이해관계인 기타로 하여금 그 사정을 고려에 넣으므로서 공고의 목적에 부합되게 하여야 할 것임에도 불구하고, 위 환지된 토지 102평의 평수와 그 위치를 전연 표시하지 않은 본건 경매기일의 공고는 적법하다할 수 없고, 그러한 불법한 경매기일의 공고를 거쳐 경락이 된 점 또한 잘못이라 할 것이라고 판시하고 있는바, 기록에 의하여 이를 검토할지라도, 원심의 조처가 위법하다고는 볼 수 없다.논지 이유 없다. 이리하여, 재항고를 이유없다하여 기각하기로하고, 관여법관의 일치된 의견으로 주문과 같이 결정한다.대법원판사 최윤모(재판장) 김치걸 사광욱 주운화'),\n",
372
+ " Document(page_content='205538,소유권말소등기,2016나53378,2017.06.28,춘천지방법원,민사,400101.0,판결,선고,내용없음,내용없음,내용없음,내용없음,【원고, 피항소인】 원고 1 외 1인 (소송대리인 변호사 최윤환)【피고, 항소인】 대한민국 (소송대리인 변호사 이용재)【제1심판결】 춘천지방법원 원주지원 2016. 10. 6. 선고 2016가단31243 판결【변론종결】2017. 5. 24.【주 문】 1. 제1심판결을 다음과 같이 변경한다. 가. 원고 1의 소유권확인청구 부분의 소를 각하한다. 나. 피고는 원고 2에게 109,960원 및 이에 대하여 2016. 6. 1.부터 2017. 6. 28.까지는 연 5%의, 그 다음날부터 다 갚는 날까지는 연 15%의 각 비율로 계산한 돈을 지급하라. 다. 원고들의 나머지 청구를 각 기각한다. 2. 소송 총비용은 원고들이 부담한다. 3. 제1의 나.항은 가집행할 수 있다.【청구취지 및 항소취지】1. 청구취지 가. 피고는 원고 1에게 강원 횡성군 (주소 5 생략) 대 456㎡(이하 ‘이 사건 토지’라고 한다)에 관하여 춘천지방법원 횡성등기소 1996. 5. 30. 접수 제6185호로 마친 소유권보존등기의 말소등기절차를 이행하라. 원고 1과 피고 사이에 이 사건 토지가 원고 1의 소유임을 확인한다. 나. 피고는 원고 2에게, 1) 주위적으로, 1,219,690원 및 이에 대하여 이 사건 청구취지 및 청구원인 변경신청서 부본 송달일 다음날부터 다 갚는 날까지 연 15%의 비율로 계산한 돈을 지급하라. 2) 예비적으로, 이 사건 토지에 관하여 2001. 5. 27. 취득시효완성을 원인으로 한 소유권이전등기절차를 이행하라.2. 항소취지 제1심판결을 취소한다. 원고 1의 소유권확인청구 부분의 소를 각하하고, 원고 1의 나머지 청구 및 원고 2의 청구를 모두 기각한다(항소취지를 이와 같이 선해한다). 【이 유】1. 기초 사실 가. 피고는 이 사건 토지에 관하여 1996. 5. 30. 춘천지방법원 횡성등기소 접수 제6185호로 소유권보존등기를 마쳤다. 나. 이 사건 토지에 관하여 1963. 9. 24. 지적복구된 구 토지대장의 소유자란에는 ‘○○○△△△’이 소유자로 기재되어 있고, 전산화된 현재의 토지대장에는 1996. 1. 15. 피고가 소유자로 등록된 사실과 1996. 5. 30. 피고 명의로 소유권보존이 된 사실이 기재되어 있다. 다. 원고 2는 피고에게 2013. 3. 18. 845,520원, 2013. 4. 1. 264,480원의 변상금 및 연체이자를 납부하였고, 2014. 4. 10. 109,960원의 대부료를 납부하였다. [인정근거] 다툼 없는 사실, 갑 제1, 2, 5호증(가지번호 포함), 을 제2 내지 8, 12호증의 각 기재, 변론 전체의 취지2. 원고 1의 소유권확인청구에 관한 판단 가. 원고 1의 주장 이 사건 토지는 원고 1의 소유인데, 피고 명의로 소유권보존등기가 되어 있고 피고가 원고 1의 소유권을 부인하고 있으므로, 원고 1은 이 사건 토지에 관하여 원고 1 명의의 소유권보존등기를 경료하기 위하여 피고를 상대로 이 사건 토지가 원고 1의 소유라는 확인을 구할 이익이 있다. 나. 판단 확인의 소에서는 권리보호요건으로서 확인의 이익이 있어야 하고, 확인의 이익은 그 대상인 법률관계에 관하여 당사자 사이에 다툼이 있고 그로 인하여 원고의 권리 또는 법률상의 지위에 불안·위험이 있을 때 확인판결을 받는 것이 그 불안·위험을 제거하는 가장 유효·적절한 수단인 경우에 인정된다(대법원 2010. 2. 25. 선고 2009다93299 판결 등 참조). 또한 부동산등기법 제65조 제2호는 ‘확정판결’에 의하여 자기의 소유권을 증명하는 자는 미등기의 토지에 관한 소유권보존등기를 신청할 수 있다고 규정하고 있는데, 여기에서의 ‘확정판결’은 그 내용이 신청인에게 소유권이 있음을 증명할 수 있는 확정판결이면 족하고 그 종류에 관하여 아무런 제한이 없어 반드시 확인판결이어야 할 필요는 없으며, 이행판결이든'),\n",
373
+ " Document(page_content='153300,매매대금반환등,66다1289,1966.09.20,대법원,민사,400101.0,판결,선고, 원고의 주장이 착오로 인한 의사표시의 취소로도 보여지므로, 이를 석명치 않은 위법이 있는 예, 원고가 사기에 의하여 금원을 편취한 것이므로 계약을 해제하였다고 주장하였다가 나중에 와서 무슨 취지인지 본건계약은 무효라고 주장하였다면 원고의 위와같은 주장사실은 보기에 따라서는 본건 법률행위의 내용의 중요부분에 착오가 있으니 취소하였다는 취지로도 보지 못할 바아니며 한편으로 생각하면 원고의 위의 일부 주장은 매도인의 담보책임을 묻고 있는 것 같은 느낌이 들지 않는 것도 아니므로 원심으로서는 마땅히 이러한 점을 석명시켜 원고의주장을 심리판단함이 사실심의 할 도리라 할 것이다.,민사소송법 제126조, \\n \\n 민법 제109조,내용없음,【원고, 상고인】 김장회【피고, 피상고인】 김재명【원심판결】 \\n제1심 원주지원, 제2심 \\n \\n \\n서울고등 1966. 5. 27. 선고 65나1697 판결【주 문】 원심판결을 파기하고, 사건을 서울고등법원으로 환송한다.【이 유】 원고대리인 김윤수의 상고이유 제3점을 본다. 이 사건에서 원고가 주장하는 청구원인사실을 보면 다음과 같은 취지의 대목이 있다. 즉, 이 사건에서 문제로 되어있는 논 1,389평은 원고가 피고로부터 매수한 것인데 대금을 다 치르고 그 소유권 이전 등기까지 원고측으로 마치고 알아보았더니 (1)그중의 일부인 약 500여평은 하천으로 되어 있어서 경작할수 없는 땅인데다가 (2)나머지 땅은 이미 농지개혁법 실시 이전부터 소외인 김두봉, 박승희, 원동식 및 김종렬등 4인이 나누어서 경작하고 있었으므로, 이 부분의 농지는 그 소유자가 자경하지 아니하는 농지(즉, 국가에 매수된 농지라는 취지)인 사실을 알았다는 것으로 되어있다. 원고는 위와 같은 사실을 주장하고 이러한 사실을 밑받침하는 자료로서 갑 제3호증(확인서 기록 제82장), 증인 박승희의 증언(기록 제30장), 갑 제4호증(강봉태의 진술조서)을 제출하고 있다. 뿐만아니라 피고가 제출한 을 제6호증(피고에 대한 피의자 신문조서)의 기재에 보면 피고 자신도 본건토지중 경작할수 있는 평수가 얼마인지는 모르겠으나 전부 경작할 수 있는 것으로 알고있다고 되어있다(기록 제156장), 원고는 위와같은 사실관계를 바탕으로하여 피고는 원고를 속여서 돈을 편취한 것이므로 1964년 5월 이래 피고에게 대하여 본건 매매계약을 해제하였다고 주장하고 있다(솟장). 그러다가 나중에와서는 무슨 취지인지 위와같은 사정이 있으므로 본건 매매계약은 무효라고 주장하고 있다 (기록 제219장). 그런데, 원심은 위와같은 원고의 본건 청구원인 사실을 사기에 의한 의사표시이므로 취소한다는 취지로 받아들여 판단하고, 피고측에서 원고를 기망한 사실이 없다하여 원고의 위의 주장을 배척하고 있다. 그러나, 원고의 위와같은 주장사실은 보기에 따라서는 본건 법률행위의 내용의 중요부분에 착오가 있으니 취소하였다는 취지로도 보지못할바 아니라 할것이다. 그렇��면, 원심으로서는 마땅히 이러한 점을 석명시켜 원고의 주장을 정리하고 심판하였어야 할 것이다. 그리고 한편으로 생각하면 원고의 위의 일부주장은 매도인의 담보책임을 묻고있는 것같은 느낌이 들지 않는 것도 아니다. 따라서 이러한 점도 아울러 밝혀보는 것이 사실심의 할 도리가 아닐까 한다. 논지는 이점에서 이유있다 하겠으므로 다른 상고논지에 관한 판단은 그만둔다. 이리하여 원심판결을 파기하고, 사건을 원심인 서울고등법원으로 환송하기로 한다. 이 판결에는 관여법관들의 견해가 일치되다.대법원판사 방준경(재판장) 홍순엽 양회경 이영섭'),\n",
374
+ " Document(page_content='154687,손해배상,72다384,1972.05.09,대법원,민사,400101.0,판결,선고, 원고는 이미 소외인에게 분배된 이 사건 토지를 피고로부터 매수할 때에 이에 관하여 소송이 계속중임을 알고서 매수 하였음으로 이 사건 매매계약이 이행불능의 것이라는 사정을 알았거나 알 수 있었을 경우라 할 것이니 피고에게 신뢰이익의 손해배상을 청구 할 수 없다., 원고는 이미 소외인에게 분배된 이 사건 토지를 피고로부터 매수할 때에 이에 관하여 소송이 관계중임을 알고서 매수하였으므로 이 사건 매매계약이 이행불능의 것이라는 사정을 알았거나 알 수 있었을 경우라 할 것이니 피고에게 신뢰이익의 손해배상을 청구할 수 없다,민법 제535조,내용없음,【원고, 피상고인】 원고【피고, 상고인】 대한민국【원심판결】 제1심 서울민사지방, 제2심 서울고등 1972. 2. 4. 선고 71나1805 판결【주 문】 원판결을 파기한다. 사건을 서울고등법원에 환송한다.【이 유】 피고 소송수행자의 상고이유 제2, 3점을 판단한다. 원판결이유에 의하면 원심은 서울 영등포구 ○○동 737의7 소재 이 사건 대 31평을 포함하여 5필지로 분할된 지번과 지목이 현재와 같이 변경되기에 앞서 원래의 지번은 같은 동 334번지 지목은 답으로 2,300평의 한필지로 있었던바 피고는 일찌기 이를 소외인에게 농지분배대상 농지로서 분배한바 있었으며, 수분배자인 동 소외인은 피고를 상대로 하여 농지분배를 원인으로 한 소유권이전등기 절차이행을 구하는 소송을 서울민사지방법원에 제기하여 동 법원에서 1964.12.26.에 피고는 농지상환료를 수령함과 동시에 위 부동산에 대하여 상환완료를 원인으로 한 소유권이전등기 절차를 이행하라는 동 소외인 승소판결을 선고받고 이에 대하여 피고의 항소 및 상고가 있었으나 모두 기각이 되어 동 소외인의 승소판결은 1968.4.16.에 확정된 사실 피고는 동 소외인과 위 소송이 계속 중인 1965.6.30.에 위 ○○동 734의7 대 31평을 국유재산으로 다루어 원고와 대금 34,720원으로 정하여 매매계약을 체결하고, 원고가 이를 매수해서 원고는 1966.10.5.서울민사지방법원 영등포등기소 접수 제27632호로서 위 대지를 원고 앞으로 소유권이전등기를 경료한 사실, 소외인은 다시 위 대지에 관하여 피고에 대해서는 1968.6.29 상환완료를 원인으로 한 소유권이전등기 절차이행을 원고에 대해서는 위와 같이 원고 앞으로 경료된 소유권이전등기 말소 절차의 이행을 각 구하는 소를 서울민사지방법원에 제기하여 동 법원에서 모두 동 소외인이 승소 판결이 선고되었던바 원고는 이에 불복항소를 하였으나 이미 확정판결로서 이건 부동산이 소외인의 분배농지로 확정된 이상 이 사건에 관하여 승소의 개연성이 없음을 알고 원고는 동 소외인과 화해 끝에 동 소외인으로 하여금1969.9.1.에 원고에 대한 소를 취하게 하여 종결 지은 사실을 확정하고, 그렇다면 이 건은 매도인인 피고가 매매의 목적물인 이 건 부동산을 전에 소외인에게 적법하게 분배함으로써 타인에게 귀속된 것이었고, 동 소외인이 피고를 상대로 한 위 이전등기청구소송에 관한 판결이 확정됨으로써 피고가 동부동산의 소유권을 취득하여 매수인인 원고에게 이전할 수 없게 된 경우라고 할 것인바, 원고는 당심에 이르러 청구취지 및 원인변경 신청서에 의하여 이 건 매매계약을 해제하고 이행에 대신하는 전보 배상금을 청구하는 것이므로 매수인인 원고는 매매계약해제시까지는 목적물의 급여청구권을 가지며 해제에 의하여 비로소 이 청구권이 상실되게 되었으므로 특별한 사정이 없는한 매수인인 원고가 받을 이행에 대신하는 손해배상액은 해제당시의 목적물의 싯가를 표준으로 결정할 것이며 피고는 원고에게 위의 손해배상액을 ��급할 의무가 있다는 취지로 판단하였다. 따라서 원심의 위와같은 판단취지는 원, 피고간의 이사건 토지매매계약은 소외인의 피고에 대한 위 이전등기청구소송에 관한 판결이 확정됨으로써 이행불능이 되었다는 것이고 그때까지는 이행이 가능한 것이었는데 피고가 이를 이행하지 아니 함으로써 위 매매계약이행의 의사없음이 분명하게'),\n",
375
+ " Document(page_content='73990,부당이득금청구사건,75나210,1976.04.15,서울고등법원,민사,400101.0,제7민사부판결 : 상고,선고,부동산중개인이 싯가보다 비싼 값으로 의뢰받은 부동산을 매도하여 그 이득을 취하려는 행위에 가담한 자와 공동불법행위,부동산소개업에 종사하는 소외 갑이 을과 소외 병사이에서 소외 을 소유의 토지 1,257평을 평당 9,000원씩 매매하는 계약을 소개한 후 소외 병으로부터 평당 10,000원 정도 더붙여 위 토지를 매도할 것을 알선하여 달라는 의뢰를 받자 친구인 피고를 중간매수인이라고 가장하여 원고에게 위 의뢰받은 대금보다 비싼 값으로 팔아 그 차액을 가로채기로 기도하고 소외 을이 피고에게 평당 12,500원씩 매도한 양 매매계약서 1통을 위조하여 피고가 이를 소지하였다가 5일후에 원고를 만나 위 계약서를 보이고 평당 1,000원씩 더얹어 13,500원에 팔겠다는 거짓말을 하고 소외 갑의 동생으로 같은 업에 종사하는 소외 정이 옆에서 5일안에 평당 금 1,000원씩 더붙여 팔아주겠다고 거짓말을 하여 피고와 원고사이에 원고가 그 토지를 평당 13,500원의 대금으로 매수하기로 하는 매매계약이 체결되었으나 그당시 진정한 싯가는 평당 10,000원정도인 경우 피고는 불법행위로 인한 손해배상 책임을 부담한다.,민법 제760조\\n, \\n 제750조,내용없음,【원고, 항소인】 【피고, 피항소인】 【원심판결】 \\n제1심 \\n 서울지방법원 성동지원(74가합252 판결)【주 문】 1. 원판결중 아래 제2항기재와 같은 원고 청구 인용부분에 관한 원고 패소부분을 취소한다. 2. 피고는 원고에게 금 1,000,000원 및 이에 대한 1973.11.6.부터 완제일까지 연 5푼의 비율에 의한 금원을 지급하라. 3. 원고의 나머지 항소를 기각한다. 4. 소송비용은 제1, 2심을 통하여 이를 3분하여 그 하나는 피고의 부담으로 하고, 나머지는 원고의 부담으로 한다.【청구취지】 원고는 당심에 이르러 그 청구취지를 감축하여 피고는 원고에게 금 3,390,000원 및 이에 대한 1973.11.6.부터 완제일까지 연 5푼의 비율에 의한 금원을 지급하라. 소송비용은 피고의 부담으로 한다라는 판결 및 가집행선고.【이 유】 성립에 다툼이 없는 갑 제1호증의 1 내지 3(각 매매계약서), 동 갑 제2호증의 1,2(각 영수증), 동 을 제1호증(등기부등본), 동 을 제2호증(진술서)의 각 기재, 원심증인 \\n 소외 1, \\n 소외 2의 각 증언, 원고증인 \\n 소외 3, 당심증인 \\n 소외 1, \\n 소외 4의 각 일부증언, 원심 및 당심이 한 각 형사기록검증결과중의 각 일부 및 변론의 전취지를 종합하면, \\n 소외 4는 그 동생인 \\n 소외 3과 같이 서울 성동구 천호동에서 \\n (이름 생략)부동산이라는 상호로 부동산소개업에 종사하는 자로서 1973.9.28. \\n 소외 5가 그 소유인 서울 성동구 성내동 \\n (지번 생략) 논 1,257평(이하 본건 토지라 칭한다)을 \\n 소외 6에게 평당가격 금 9,000원씩으로 하여 대금 11,313,000원에 매도하는 것을 소개하여 그 계약을 성립시켰던 사실, \\n 소외 4는 그후 바로 \\n 소외 6으로부터 본건 토지를 매수가격보다 평당 금 1,000원 정도만 더붙여 팔도록 매매알선하여 달라는 의뢰를 받는 한편, \\n 소외 3을 통하여 원고로 부터도 값싸고 수익성이 있는 토지가 있으면 매수하도록 소개하여 달라는 부탁을 받고 친구인 피고를 중간매수인으로 가장하는 방법으로 본건 토지를 원고에게 위 가격보다 비싼 값으로 팔아 그 차액을 가로챌 것을 기도하고 그 당시 위 토지의 싯가는 평당가격 금 10,000원 정도 임에도 불구하고 그시경 행사할 목적으로 인쇄된 매매계약서용지를 사용하여'),\n",
376
+ " Document(page_content='67758,사기,2005도12,2005.10.14,대법원,형사,400102.0,판결,선고,[1] 사기죄에 있어서 편취 범의에 대한 판단 기준[2] 피고인들이 피해자를 기망하였다고 합리적 의심의 여지없이 확신하기에 부족하다는 이유로, 사기 범행을 유죄로 인정한 원심판결을 파기한 사례,내용없음,\\n [1]\\n\\n 형법 제347조\\n/ [2]\\n\\n 형법 제347조\\n,\\n\\n 형사소송법 제308조,\\n[1] \\n \\n대법원 1994. 10. 21. 선고 94도2048 판결(공1994하, 3158),'),\n",
377
+ " Document(page_content='원고의 궁박한 사실을 매매당시에 알고 있었던 점을 원심이 인용한 을 3호증의 4( 피고 진술조서) 을 3호증의 5( 소외 1 진술조서)에 의하여, 각각 이를 간취하지 못할 바 아니며, 또 앞서 말한 원판결 판시이유에서 말한바와 같이 피고는 원고가 팔기를 꺼려하는 양변리 (지번 생략) 밭을 같이 팔지 않으면 이사건 땅 전부를 사지 않겠다고 주장하여 원고는 할 수 없이 이 밭까지 팔지 않을 수 없었다는 점과, 피고는 원고가 그 가친의 병세가 위독하여 아무런 경황도 없다는 사실을 알면서 일방적으로 이 사건 매매목적물의 경계확정 측량을 하였다는 점 등을 고려하면, 피고는 원고의 궁박, 경솔, 무경험의 상태를 이용하여 이 사건 토지 16,964평을 겨우 돈 1만원이라 하는 지극히 저렴한 가격으로 매수하였다고 보여지니, 이는 민법 104조에서 말하는 현저하게 공정을 잃은 법률행위라고 보지 못할 바 아니라 할 것임에도 불구하고, 원심은 그 판시와 같은 이유로 원고의 이점에 관한 주장을 배척한 것은 불공정한 법률행위에 관한 법리를 오해하였거나 심리를 다하지 못한 잘못이 있다 할 것이고, 이점에 관한 상고논지는 이유있으므로, 원판결을 파기하고, 사건을 서울고등법원으로 환송하기로 하고, 관여법관의 일치된 의견으로 주문과 같이 판결한다. 대법원판사 최윤모(재판장) 김치걸 사광욱 주운화'),\n",
378
+ " Document(page_content='소외 5가 1973.9.25.에 피고에게 본건 토지를 평당 가격 금 12,500원씩에 매도한 것과 같은 허위내용을 기재한 매매계약서 1통을 위조하여 피고에게 이를 교부하면서 자기의 뜻을 이야기하고 협조를 구하여 피고의 승낙을 받은 사실, 피고와 \\n 소외 4는 1973.10.1. 12:00경 원고와 만나서 피고는 위의 위조된 매매계약서를 원고에게 내보이면서 자기는 5일전에 \\n 소외 5로 부터 본건 토지를 평당가격 금 12,500원씩에 매수한 사람인데 평당 금 1,000원씩만 더 얹어주면 본건 토지를 팔겠다는 취지의 거짓말을 하고 \\n 소외 4는 옆에서 원고에게 본건 토지를 평당 가격 금 13,500원씩에 사면 5일만에 평당 금 1,000원씩을 더붙여 팔아 주겠다고 거짓말을 하여 \\n 소외 4와 피고가 하는 위와 같은 사위의 언행에 속은 원고와 사이에 그시경 피고가 본건 토지를 평당금 13,500원씩으로 정하여 대금 16,960,000원(위의 평당가격으로 계산한 후 끝의 금 9,500원은 절사하였음)에 매도하는 내용의 매매계약을 체결하였던 사실 및 \\n 소외 4는 위 계약을 맺은 그날 17:00경 \\n 소외 6에게는 피고가 본건 토지를 평당가격 금 9,700원씩에 매수하는 것처럼 가장하여 \\n 소외 6이 \\n 소외 5로부터 교부받아 보관하고 있던 동인명의로 된 본건 토지에 관한 소유권이전등기에 필요한 서류 등을 인도받은후 원고로부터 1973.11.6.경까지 사이에 본건 토지대금명목으로 위의 금 16,960,000원을 전액 교부 받고 동년 12.14.자에 본건 토지에 관하여 \\n 소외 5명의로부터 원고와 \\n 소외 7명의로의 소유권이전등기를 경료하여준 사실을 인정할 수 있고 위 인정에 어긋나는 원심증인 \\n 소외 8, \\n 소외 3 당심증인 \\n 소외 4, 의 각 일부증언과 원심 및 당심이 한 각 형사기록검증결과중의 각 일부는 믿을 수 없고 을 제3호증(항솟장)의 기재는 위 인정을 움직일만한 자료라 할 수 없고 달리 반증이 없다.\\n 위 인정사실에 의하면 \\n 소외 4이 소개업자로서 그 소개의뢰인인 원고에 대하여 본건 토지의 매도인이 \\n 소외 6이고, \\n 소외 6이 요구하는 토지대금이 평당가격 금 10,000원정도 된다는 사실을 고지하여야 할 의무가 있음에도 불구하고 이를 묵비하고 나아가 마치 피고가 위 토지의 진정한 매도인인것같이 가장하여 원고로 하여금 \\n 소외 6이 요구하는 대금보다 더 많은 대금으로 위 토지를 매수하도록 한 행위는 위법한 것으로서 불법행위가 된다 할 것이고, \\n 소외 4이 원고에 대하여 위와 같은 불법행위를 한다는 사실을 알면서 \\n 소외 4의 위 행위에 가공한 피고의 행위 역시 불법한 것이라 할 것이므로 결국 피고와 \\n 소외 4는 공동불법행위자로서 그 불법행위로 인하여 원고가 입은 손해를 연대하여 배상할 책임이 있다할 것이다.\\n 한편 위 인정사실에 의하면 원고는 본건 토지를 매수할 당시의 그 토지의 싯가가 평당가격 금 10,000원정도 됨에도 불구하고 그 싯가조사도 하지아니한채 \\n 소외 4와 피고의 말만 믿고 그 싯가보다 훨씬 많은 대금으로 위 토지의 매매계약을 체결한 과실이 있음을 알 수 있으므로 피고의 손해배상액산정에 있어서 원고의 위 과실을 참작하기로 한다.\\n 나아가서 그 손해액에 관하여 살피건대, 본건 당시 \\n 소외 6은 본건 토지를 평당 가격 금 10,000원에 매각하여 달라는 의뢰를 하였고, 또 그 당시의 싯가도 평당 가격 금 10,000원정도 되었다는 사실은 앞서본 바와 같으므로 피고와 \\n 소외 4의 위와 같은 기망행위가 없었더라면 다른 사정이 없는한 원고는')]"
379
+ ]
380
+ },
381
+ "execution_count": 15,
382
+ "metadata": {},
383
+ "output_type": "execute_result"
384
+ }
385
+ ],
386
+ "source": [
387
+ "retriever.invoke(\n",
388
+ " \"논밭은 약 2천평을 샀는데, 알고 보니 집을 지을 수 없는 땅이야. 이런 사기와 비슷한 걸 알려줘!\"\n",
389
+ ")"
390
+ ]
391
+ },
392
  {
393
  "cell_type": "code",
394
  "execution_count": null,
 
413
  "name": "python",
414
  "nbconvert_exporter": "python",
415
  "pygments_lexer": "ipython3",
416
+ "version": "3.12.4"
417
  }
418
  },
419
  "nbformat": 4,
libs/__init__.py ADDED
File without changes
libs/__pycache__/__init__.cpython-312.pyc ADDED
Binary file (146 Bytes). View file
 
libs/__pycache__/config.cpython-312.pyc ADDED
Binary file (628 Bytes). View file
 
libs/__pycache__/embeddings.cpython-312.pyc ADDED
Binary file (607 Bytes). View file
 
libs/__pycache__/llm.cpython-312.pyc ADDED
Binary file (1.95 kB). View file
 
libs/__pycache__/prompt.cpython-312.pyc ADDED
Binary file (1.54 kB). View file
 
libs/__pycache__/retrievers.cpython-312.pyc ADDED
Binary file (1.43 kB). View file
 
libs/__pycache__/utils.cpython-312.pyc ADDED
Binary file (511 Bytes). View file
 
libs/config.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # config.py
2
+ import os
3
+ from dotenv import load_dotenv
4
+
5
+ load_dotenv()
6
+
7
+ FAISS_DB_INDEX = "./index_faiss"
8
+ BM25_INDEX = "./index_bm25/kiwi.pkl"
9
+ CHUNK_SIZE = 2000
10
+ CHUNK_OVERLAP = 200
11
+ EMBEDDING_MODEL = "BAAI/bge-m3"
12
+ LLM_MODEL = os.getenv("MODEL_KEY", "gemini")
13
+ STREAMING = os.getenv("STREAMING", "true").lower() == "true"
libs/embeddings.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # embeddings.py
2
+ from langchain_community.embeddings import HuggingFaceBgeEmbeddings
3
+
4
+ from .config import EMBEDDING_MODEL
5
+ from .utils import get_device
6
+
7
+
8
+ def get_embeddings():
9
+ return HuggingFaceBgeEmbeddings(
10
+ model_name=EMBEDDING_MODEL,
11
+ model_kwargs={"device": get_device()},
12
+ encode_kwargs={"normalize_embeddings": True},
13
+ )
libs/llm.py ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # llm.py
2
+ from langchain_openai import ChatOpenAI
3
+ from langchain_anthropic import ChatAnthropic
4
+ from langchain_google_genai import GoogleGenerativeAI
5
+ from langchain_groq import ChatGroq
6
+ from langchain_community.chat_models import ChatOllama
7
+ from langchain_core.runnables import ConfigurableField
8
+ from langchain.callbacks.base import BaseCallbackHandler
9
+
10
+
11
+ class StreamCallback(BaseCallbackHandler):
12
+ def on_llm_new_token(self, token: str, **kwargs):
13
+ print(token, end="", flush=True)
14
+
15
+
16
+ def get_llm(streaming=True):
17
+ return ChatOpenAI(
18
+ model="gpt-4",
19
+ temperature=0,
20
+ streaming=streaming,
21
+ callbacks=[StreamCallback()],
22
+ ).configurable_alternatives(
23
+ ConfigurableField(id="llm"),
24
+ default_key="gpt4",
25
+ claude=ChatAnthropic(
26
+ model="claude-3-opus-20240229",
27
+ temperature=0,
28
+ streaming=streaming,
29
+ callbacks=[StreamCallback()],
30
+ ),
31
+ gpt3=ChatOpenAI(
32
+ model="gpt-3.5-turbo",
33
+ temperature=0,
34
+ streaming=streaming,
35
+ callbacks=[StreamCallback()],
36
+ ),
37
+ gemini=GoogleGenerativeAI(
38
+ model="gemini-1.5-flash",
39
+ temperature=0,
40
+ streaming=streaming,
41
+ callbacks=[StreamCallback()],
42
+ ),
43
+ llama3=ChatGroq(
44
+ model_name="llama3-70b-8192",
45
+ temperature=0,
46
+ streaming=streaming,
47
+ callbacks=[StreamCallback()],
48
+ ),
49
+ ollama=ChatOllama(
50
+ model="EEVE-Korean-10.8B:long",
51
+ streaming=streaming,
52
+ callbacks=[StreamCallback()],
53
+ ),
54
+ )
libs/prompt.py ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # prompt.py
2
+ from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
3
+
4
+ PROMPT_TEMPLATE = """당신은 판사이자 20년 차 법률 전문가입니다. 주어진 질문에 대해 문서의 정보를 최대한 활용하여 답변하세요. 질문자는 자신의 상황을 설명할 것이며, 질문자의 상황과 비슷한 판례를 설명해줘야 합니다. 가장 최근 사건 순으로 소개하며, 초등학생이 이해할 수 있도록 최대한 자세하고 쉽게 설명하세요. 답변은 [사건명 1]..., [사건명 2]... 순서로 구성합니다. 문서에서 답변을 찾을 수 없는 경우, "문서에 답변이 없습니다."라고 답변하세요.
5
+
6
+ 답변의 출처(source)를 반드시 표기합니다. 출처는 메타데이터의 판례일련번호, 사건명, 사건번호 순으로 표기합니다.
7
+
8
+ ---
9
+
10
+ # 주어진 문서:
11
+ {context}
12
+
13
+ # 질문: {question}
14
+
15
+ # 답변:
16
+
17
+ # 출처:
18
+ - source1
19
+ - source2
20
+ - ...
21
+ """
22
+
23
+
24
+ def get_prompt(chat_history):
25
+ return ChatPromptTemplate.from_messages(
26
+ [
27
+ ("system", PROMPT_TEMPLATE),
28
+ MessagesPlaceholder(variable_name="history"),
29
+ ("human", "{question}"),
30
+ ]
31
+ ).partial(history=chat_history.messages)
libs/retrievers.py ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # retrievers.py
2
+ import pickle
3
+ from langchain_community.vectorstores import FAISS
4
+ from langchain.retrievers import EnsembleRetriever
5
+
6
+
7
+ from .config import FAISS_DB_INDEX, BM25_INDEX
8
+
9
+
10
+ def load_bm25_retriever():
11
+ with open(BM25_INDEX, "rb") as f:
12
+ bm25_retriever = pickle.load(f)
13
+ return bm25_retriever
14
+
15
+
16
+ def load_faiss_retriever(embeddings):
17
+ faiss_db = FAISS.load_local(
18
+ FAISS_DB_INDEX, embeddings, allow_dangerous_deserialization=True
19
+ )
20
+ faiss_retriever = faiss_db.as_retriever(search_type="mmr", search_kwargs={"k": 10})
21
+ return faiss_retriever
22
+
23
+
24
+ def load_retrievers(embeddings):
25
+ faiss_retriever = load_faiss_retriever(embeddings)
26
+
27
+ bm25_retriever = load_bm25_retriever()
28
+
29
+ return EnsembleRetriever(
30
+ retrievers=[bm25_retriever, faiss_retriever],
31
+ weights=[0.7, 0.3],
32
+ search_type="mmr",
33
+ )
libs/utils.py ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # utils.py
2
+ import torch
3
+
4
+
5
+ def get_device():
6
+ if torch.cuda.is_available():
7
+ return "cuda:0"
8
+ elif torch.backends.mps.is_available():
9
+ return "mps"
10
+ else:
11
+ return "cpu"