RAG : Query Reformation - Part I. Multi-Query Generation (250622)

WonTerry·2025년 6월 22일

LLM

목록 보기
6/38

*참고 : RAG 마스터 - 랭체인으로 완성하는 LLM 서비스 (브라이스 유)

질의 변형(Query reformation)

# 질의 변형 : 사용자의 원래 질문을 보다 효과적인 검색 쿼리로 변환하는 과정 (p. 216~)
# 사용자의 질문이 모호하거나 검색에 최적화되지 않은 형태의 경우, 연관 문서를 제대로 검색할 수 없어 RAG 시스템의 정확도가 떨어짐
# 원래의 질문을 분석하고 재구성 :
# - 질문을 더 구체적이고 검색에 최적화된 형태로 재작성
# - 복잡한 질문을 여러 개의 하위 질문으로 분해하는 등의 기법 사용
# - 잘문의 의도를 파악하여 더 일반화된 쿼리로 확장하거나,
# - 가상의 문서를 생성하여 갬색 성능을 개선하는 방법도 포함

####- 1) MultiQuery Generation (250622) : 다중 질의 생성

# 질문 -> 생성 (Q1, Q2, Q3...) -> DB -> 문서 검색 (doc1, doc2, doc3...) -> LLM -> 답변

# 질문 : 주식 투자를 처음 시작하려면 어떻게 해야 하나요?

# Q1 : 초보 투자자를 위한 주식 투자 기초 지식은 무엇인가요?
# Q2 : 주식 시장 분석을 위한 기본적인 재무제표 읽는 법은?
# Q3 : 주식 투자 시작 전 필요한 자금 관리 전략은?
# 다중 질의 생성 과정을 모니터링하기 위한 로깅 설정
import logging

logging.basicConfig()
logging.getLogger("langchain.retrievers.multi_query").setLevel(logging.INFO)
# 디렉토리 내 모든 파일을 리스트로 변환하는 함수 정의

import os

def list_files(directory):
    file_list = []
    for root, dirs, files in os.walk(directory):
        for file in files:
            file_list.append(os.path.join(root, file))
    return file_list

# 지정된 디렉토리 내 모든 파일명을 리스트로 호출
file_names = list_files('./data')
print(file_names)
['./data/.DS_Store', './data/constitution_of_Korea.pdf']
from langchain.embeddings import HuggingFaceEmbeddings

# 문장을 임베딩으로 변환하고 벡터 저장소에 저장
embeddings_model = HuggingFaceEmbeddings(
    model_name='sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2',    # 다국어 모델
    # model_name='jhgan/ko-sroberta-multitask',  # 한국어 모델 - 에러 발생 (250603)
    # model_name = 'BAAI/bge-m3',                # 에러 발생 (250603)
    model_kwargs={'device':'cpu'},
    encode_kwargs={'normalize_embeddings':True},
)

embeddings_model
/var/folders/kv/jhs4vb392hb9h62z_b83xjwm0000gn/T/ipykernel_7946/82237342.py:4: LangChainDeprecationWarning: The class `HuggingFaceEmbeddings` was deprecated in LangChain 0.2.2 and will be removed in 1.0. An updated version of the class exists in the :class:`~langchain-huggingface package and should be used instead. To use it run `pip install -U :class:`~langchain-huggingface` and import as `from :class:`~langchain_huggingface import HuggingFaceEmbeddings``.
  embeddings_model = HuggingFaceEmbeddings(





HuggingFaceEmbeddings(client=SentenceTransformer(
  (0): Transformer({'max_seq_length': 128, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 384, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
), model_name='sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2', cache_folder=None, model_kwargs={'device': 'cpu'}, encode_kwargs={'normalize_embeddings': True}, multi_process=False, show_progress=False)
from langchain.document_loaders import PyMuPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_chroma import Chroma

loader = PyMuPDFLoader(file_names[1])       # 폴더 내 파일 1개만 존재 : 여러 개일 경우, 최초 1개 DB 생성 후, Add 방식으로 진행 (250605)
documents = loader.load()

# 맥의 경우 .ds 파일이 생성되므로 인덱스를 [1]부터 이용한다. (250620)

text_splitter = RecursiveCharacterTextSplitter(chunk_size=256, chunk_overlap=16) 
docs = text_splitter.split_documents(documents)

# 임베딩 DB 생성 : 파일로 저장하지 않으므로, 새로 실행할 경우 초기화됨 (250605)
# Chroma vevtorstore 생성 (p. 220 까지)
db_constitution = Chroma.from_documents(
    documents=docs, embedding=embeddings_model, collection_name="db_constitution"
)
from langchain.retrievers import MultiQueryRetriever
from langchain_openai import ChatOpenAI
from langchain_core.callbacks.streaming_stdout import StreamingStdOutCallbackHandler

# LLM 모델 설정 (Local LM Studio 사용, 250622)
llm = ChatOpenAI(
    base_url="http://localhost:1234/v1",
    api_key="lm-studio",
    # model="lmstudio-community/Meta-Llama-3.1-8B-Instruct-GGUF",
    model = "lmstudio-community/gemma-2-2b-it-GGUF",
    temperature=0.1,
    streaming=True,
    callbacks=[StreamingStdOutCallbackHandler()], # 스트림 출력 콜백
)

# MultiQueryRetriever 실행
retriever = MultiQueryRetriever.from_llm(
    retriever = db_constitution.as_retriever(), # 기본 검색기 (벡터 데이터베이스)
    llm = llm,    # 위에서 정의한 llm 사용
)
# Query 작성
question = "국민의 의무에 관하여 남성과 여성의 차이가 있나요? 한국어로 답변해줘."

# 결과 검색
unique_docs = retriever.invoke(question)
print(f"\n결과: {len(unique_docs)}개의 문서가 검색되었습니다.")
Here are three alternative versions of the user's question, designed to address potential limitations of distance-based similarity search in a vector database:

1. **"남성과 여성의 의무에 대한 차이는 어떻게 나타나요? 국민의 의무와 관련된 사회적 관점에서 분석해 주세요."** (This version focuses on the social implications and analysis of gender differences in obligations, potentially broadening the search beyond simple binary comparisons.)

2. **"국민의 의무에 대한 차이가 남성과 여성 사이에 존재하는지, 그리고 그 차이는 어떤 요인에 의해 발생하는지에 대해 설명해 주세요."** (This version emphasizes the factors contributing to gender differences in obligations, potentially leading to a more nuanced search.)

3. **"국민의 의무에 대한 차이가 남성과 여성 사이에 존재하는데, 이러한 차이는 사회적 기준이나 문화적 요인에 영향을 받는지 분석해 주세요."** (This version explores the influence of social and cultural factors on gender differences in obligations, potentially uncovering more complex relationships.) 


These alternative questions aim to:

* **Broaden the scope:**  They move beyond a simple binary comparison of "male vs. female" and delve into broader societal perspectives and contributing factors.
* **Encourage nuanced analysis:** They prompt for explanations of how gender differences manifest in obligations, potentially uncovering more complex relationships than a simple distance-based search might reveal. 
* **Highlight the role of context:**  They emphasize the importance of social and cultural factors, which can significantly influence the interpretation of "obligations" and their perceived differences between genders. 


By using these alternative questions, you can potentially retrieve more relevant documents from your vector database that go beyond simple distance-based comparisons. 


INFO:langchain.retrievers.multi_query:Generated queries: ["Here are three alternative versions of the user's question, designed to address potential limitations of distance-based similarity search in a vector database:", '1. **"남성과 여성의 의무에 대한 차이는 어떻게 나타나요? 국민의 의무와 관련된 사회적 관점에서 분석해 주세요."** (This version focuses on the social implications and analysis of gender differences in obligations, potentially broadening the search beyond simple binary comparisons.)', '2. **"국민의 의무에 대한 차이가 남성과 여성 사이에 존재하는지, 그리고 그 차이는 어떤 요인에 의해 발생하는지에 대해 설명해 주세요."** (This version emphasizes the factors contributing to gender differences in obligations, potentially leading to a more nuanced search.)', '3. **"국민의 의무에 대한 차이가 남성과 여성 사이에 존재하는데, 이러한 차이는 사회적 기준이나 문화적 요인에 영향을 받는지 분석해 주세요."** (This version explores the influence of social and cultural factors on gender differences in obligations, potentially uncovering more complex relationships.) ', 'These alternative questions aim to:', '* **Broaden the scope:**  They move beyond a simple binary comparison of "male vs. female" and delve into broader societal perspectives and contributing factors.', '* **Encourage nuanced analysis:** They prompt for explanations of how gender differences manifest in obligations, potentially uncovering more complex relationships than a simple distance-based search might reveal. ', '* **Highlight the role of context:**  They emphasize the importance of social and cultural factors, which can significantly influence the interpretation of "obligations" and their perceived differences between genders. ', 'By using these alternative questions, you can potentially retrieve more relevant documents from your vector database that go beyond simple distance-based comparisons.']



결과: 15개의 문서가 검색되었습니다.
# LLM model : gemma-2-2b-it - 1.71 GB

# 국민의 의무에 관하여 남성과 여성의 차이가 있나요? 라는 기존 질문에 대하여 
# 추가로 3가지 다른 관점의 질문들로 변환되어 검색에 활용된다.

# 번역:
'''
"How does gender influence compliance with mandatory civic duties in South Korea?"
→ "한국에서 성별은 의무적인 시민의무 이행에 어떤 영향을 미치는가?"
이 문장은 특정 사회적 맥락에 초점을 맞추며 성별 간의 미묘한 차이를 포착하려는 목적을 갖고 있습니다.

"What are the key factors contributing to variations in civic duty participation between men and women in Korean society?"
→ "한국 사회에서 남성과 여성 간 시민의무 참여 차이에 영향을 미치는 주요 요인은 무엇인가?"
이 질문은 단순한 성별 비교를 넘어, 그러한 차이에 영향을 주는 근본적인 요인에 중점을 둡니다.

"Can you identify any significant gender disparities in the fulfillment of mandatory civic obligations within South Korea's population?"
→ "한국 국민의 의무적인 시민의무 이행에서 뚜렷한 성별 격차가 존재하는가?"
이 문장은 보다 직접적인 표현을 사용하여 원하는 정보를 강조하며, "차이(differences)"와 같은 모호한 표현을 피하고 있습니다.
'''

# "모호한 표현을 피하고 있다" 라는 표현에 주목하자. 
# ChatGPT를 통해 번역한 결과이며, 추가적인 주석을 포함하여 상세하게 설명해주고 있다.

# 정확하게 질문하는 방법에 대한 제시
# 내가 하는 질문에 문제가 없는지 먼저 검토할 수 있는 가능성 : 최초 질문 -> 질문의 확장
from langchain.chains import RetrievalQA

# RetrivalQA 체인 설정
 
qa_chain = RetrievalQA.from_chain_type(
    llm = llm,
    chain_type = "stuff",
    retriever = retriever,      # MultiQueryRetrivever 전달
    return_source_documents = True
)

# 질문에 대한 답변 생성
result = qa_chain.invoke({"query" : question})

# 결과 출력
print("답변 : ", result["result"])
print("\n사용된 문서:")
for doc in result["source_documents"]:
    print(doc.page_content)
Here are three alternative versions of the user's question, designed to improve retrieval in a vector database:

1. **"남녀 간 의무에 대한 차이점은 무엇인가요?"** (What are the differences in mandatory duties between men and women?) 
    * This version focuses on the "difference" aspect of the query, potentially capturing more nuanced semantic relationships than just a simple comparison.

2. **"국민의 의무에 대한 성별 차이를 분석한 연구는 어떤 내용을 담고 있나요?"** (What research analyzes gender differences in mandatory duties?)
    * This version emphasizes the "research" aspect, potentially retrieving documents that go beyond just a simple statement and include analysis or studies.

3. **"국민 의무에 대한 사회적 관점에서 남녀의 차이가 존재하는지 분석해 보세요."** (Analyze the social perspective on differences in mandatory duties between men and women.)
    * This version focuses on the "social perspective" aspect, potentially retrieving documents that discuss broader societal implications of gender-based differences.


These alternative questions are designed to:

* **Broaden the scope:** They move beyond a simple comparison of genders and delve into analysis, research, and social perspectives. 
* **Capture semantic nuances:**  They use synonyms and different phrasing to capture more complex meanings related to "mandatory duties" and "differences."
* **Encourage diverse document types:** They encourage retrieval of documents that go beyond just direct statements about gender differences in mandatory duties.


By using these alternative questions, you can potentially improve the accuracy and relevance of your search results in a vector database. 


INFO:langchain.retrievers.multi_query:Generated queries: ["Here are three alternative versions of the user's question, designed to improve retrieval in a vector database:", '1. **"남녀 간 의무에 대한 차이점은 무엇인가요?"** (What are the differences in mandatory duties between men and women?) ', '    * This version focuses on the "difference" aspect of the query, potentially capturing more nuanced semantic relationships than just a simple comparison.', '2. **"국민의 의무에 대한 성별 차이를 분석한 연구는 어떤 내용을 담고 있나요?"** (What research analyzes gender differences in mandatory duties?)', '    * This version emphasizes the "research" aspect, potentially retrieving documents that go beyond just a simple statement and include analysis or studies.', '3. **"국민 의무에 대한 사회적 관점에서 남녀의 차이가 존재하는지 분석해 보세요."** (Analyze the social perspective on differences in mandatory duties between men and women.)', '    * This version focuses on the "social perspective" aspect, potentially retrieving documents that discuss broader societal implications of gender-based differences.', 'These alternative questions are designed to:', '* **Broaden the scope:** They move beyond a simple comparison of genders and delve into analysis, research, and social perspectives. ', '* **Capture semantic nuances:**  They use synonyms and different phrasing to capture more complex meanings related to "mandatory duties" and "differences."', '* **Encourage diverse document types:** They encourage retrieval of documents that go beyond just direct statements about gender differences in mandatory duties.', 'By using these alternative questions, you can potentially improve the accuracy and relevance of your search results in a vector database.']


한국에서는 남녀 모두 국민의 의무를 수행해야 합니다.  하지만, 특정한 경우에는 남녀 간 차이점이 존재할 수 있습니다. 예를 들어, 여성은 임신 중이나 출산 후에 휴식을 취하는 시간이 필요하거나, 부모로서 아이 돌봄에 집중해야 할 때가 있기 때문에 일부 국민의 의무와 관련하여 특별한 경우 발생할 수 있습니다. 

그러나, 모든 국민에게 동일하게 적용되는 법률과 정책은 존재합니다.  국민의 의무는 남녀 모두에게 공평하게 부여되며, 이에 대한 차이점은 사회적 요인이나 개인적인 상황에 따라 다를 수 있습니다. 
답변 :  한국에서는 남녀 모두 국민의 의무를 수행해야 합니다.  하지만, 특정한 경우에는 남녀 간 차이점이 존재할 수 있습니다. 예를 들어, 여성은 임신 중이나 출산 후에 휴식을 취하는 시간이 필요하거나, 부모로서 아이 돌봄에 집중해야 할 때가 있기 때문에 일부 국민의 의무와 관련하여 특별한 경우 발생할 수 있습니다. 

그러나, 모든 국민에게 동일하게 적용되는 법률과 정책은 존재합니다.  국민의 의무는 남녀 모두에게 공평하게 부여되며, 이에 대한 차이점은 사회적 요인이나 개인적인 상황에 따라 다를 수 있습니다. 


사용된 문서:
14. 정당해산의 제소
15. 정부에 제출 또는 회부된 정부의 정책에 관계되는 청원의 심사
16. 검찰총장ㆍ합동참모의장ㆍ각군참모총장ㆍ국립대학교총장ㆍ대사 기타 법률이 정한 공무
원과 국영기업체관리자의 임명
17. 기타 대통령ㆍ국무총리 또는 국무위원이 제출한 사항
 
제90조 ①국정의 중요한 사항에 관한 대통령의 자문에 응하기 위하여 국가원로로 구성되는 국가
원로자문회의를 둘 수 있다.
한 동의권을 가진다.
 
제61조 ①국회는 국정을 감사하거나 특정한 국정사안에 대하여 조사할 수 있으며, 이에 필요한
서류의 제출 또는 증인의 출석과 증언이나 의견의 진술을 요구할 수 있다.
②국정감사 및 조사에 관한 절차 기타 필요한 사항은 법률로 정한다.
 
제62조 ①국무총리ㆍ국무위원 또는 정부위원은 국회나 그 위원회에 출석하여 국정처리상황을
보고하거나 의견을 진술하고 질문에 응답할 수 있다.
②국회나 그 위원회의 요구가 있을 때에는 국무총리ㆍ국무위원 또는 정부위원은 출석ㆍ답변
하여야 하며, 국무총리 또는 국무위원이 출석요구를 받은 때에는 국무위원 또는 정부위원으로
하여금 출석ㆍ답변하게 할 수 있다.
 
제63조 ①국회는 국무총리 또는 국무위원의 해임을 대통령에게 건의할 수 있다.
②제1항의 해임건의는 국회재적의원 3분의 1 이상의 발의에 의하여 국회재적의원 과반수의
찬성이 있어야 한다.
제67조 ①대통령은 국민의 보통ㆍ평등ㆍ직접ㆍ비밀선거에 의하여 선출한다.
②제1항의 선거에 있어서 최고득표자가 2인 이상인 때에는 국회의 재적의원 과반수가 출석한
공개회의에서 다수표를 얻은 자를 당선자로 한다.
③대통령후보자가 1인일 때에는 그 득표수가 선거권자 총수의 3분의 1 이상이 아니면 대통령
으로 당선될 수 없다.
④대통령으로 선거될 수 있는 자는 국회의원의 피선거권이 있고 선거일 현재 40세에 달하여야
한다.
④여자의 근로는 특별한 보호를 받으며, 고용ㆍ임금 및 근로조건에 있어서 부당한 차별을 받
지 아니한다.
⑤연소자의 근로는 특별한 보호를 받는다.
⑥국가유공자ㆍ상이군경 및 전몰군경의 유가족은 법률이 정하는 바에 의하여 우선적으로 근
로의 기회를 부여받는다.
 
제33조 ①근로자는 근로조건의 향상을 위하여 자주적인 단결권ㆍ단체교섭권 및 단체행동권을
가진다.
②공무원인 근로자는 법률이 정하는 자에 한하여 단결권ㆍ단체교섭권 및 단체행동권을 가진
다.
다.
③법률이 정하는 주요방위산업체에 종사하는 근로자의 단체행동권은 법률이 정하는 바에 의
하여 이를 제한하거나 인정하지 아니할 수 있다.
 
제34조 ①모든 국민은 인간다운 생활을 할 권리를 가진다.
②국가는 사회보장ㆍ사회복지의 증진에 노력할 의무를 진다.
③국가는 여자의 복지와 권익의 향상을 위하여 노력하여야 한다.
④국가는 노인과 청소년의 복지향상을 위한 정책을 실시할 의무를 진다.
법제처                                                            7                                                       국가법령정보센터
「대한민국헌법」
여야 한다.
②모든 국민은 근로의 의무를 진다. 국가는 근로의 의무의 내용과 조건을 민주주의원칙에 따
라 법률로 정한다.
③근로조건의 기준은 인간의 존엄성을 보장하도록 법률로 정한다.
②국회의원은 국가이익을 우선하여 양심에 따라 직무를 행한다.
③국회의원은 그 지위를 남용하여 국가ㆍ공공단체 또는 기업체와의 계약이나 그 처분에 의하
여 재산상의 권리ㆍ이익 또는 직위를 취득하거나 타인을 위하여 그 취득을 알선할 수 없다.
 
제47조 ①국회의 정기회는 법률이 정하는 바에 의하여 매년 1회 집회되며, 국회의 임시회는 대
통령 또는 국회재적의원 4분의 1 이상의 요구에 의하여 집회된다.
정할 수 있다.
⑦각급 선거관리위원회의 조직ㆍ직무범위 기타 필요한 사항은 법률로 정한다.
 
제115조 ①각급 선거관리위원회는 선거인명부의 작성등 선거사무와 국민투표사무에 관하여 관
계 행정기관에 필요한 지시를 할 수 있다.
②제1항의 지시를 받은 당해 행정기관은 이에 응하여야 한다.
 
제116조 ①선거운동은 각급 선거관리위원회의 관리하에 법률이 정하는 범위안에서 하되, 균등
한 기회가 보장되어야 한다.
②법률안에 이의가 있을 때에는 대통령은 제1항의 기간내에 이의서를 붙여 국회로 환부하고,
그 재의를 요구할 수 있다. 국회의 폐회중에도 또한 같다.
③대통령은 법률안의 일부에 대하여 또는 법률안을 수정하여 재의를 요구할 수 없다.
④재의의 요구가 있을 때에는 국회는 재의에 붙이고, 재적의원과반수의 출석과 출석의원 3분
의 2 이상의 찬성으로 전과 같은 의결을 하면 그 법률안은 법률로서 확정된다.
법제처                                                            5                                                       국가법령정보센터
「대한민국헌법」
⑦피고인의 자백이 고문ㆍ폭행ㆍ협박ㆍ구속의 부당한 장기화 또는 기망 기타의 방법에 의하
여 자의로 진술된 것이 아니라고 인정될 때 또는 정식재판에 있어서 피고인의 자백이 그에게
처분 또는 강제노역을 받지 아니한다.
②모든 국민은 고문을 받지 아니하며, 형사상 자기에게 불리한 진술을 강요당하지 아니한다.
③체포ㆍ구속ㆍ압수 또는 수색을 할 때에는 적법한 절차에 따라 검사의 신청에 의하여 법관이
발부한 영장을 제시하여야 한다. 다만, 현행범인인 경우와 장기 3년 이상의 형에 해당하는 죄
를 범하고 도피 또는 증거인멸의 염려가 있을 때에는 사후에 영장을 청구할 수 있다.
시정부의 법통과 불의에 항거한 419민주이념을 계승하고, 조국의 민주개혁과 평화적 통일의 사
명에 입각하여 정의인도와 동포애로써 민족의 단결을 공고히 하고, 모든 사회적 폐습과 불의를
타파하며, 자율과 조화를 바탕으로 자유민주적 기본질서를 더욱 확고히 하여 정치경제사회
문화의 모든 영역에 있어서 각인의 기회를 균등히 하고, 능력을 최고도로 발휘하게 하며, 자유
와 권리에 따르는 책임과 의무를 완수하게 하여, 안으로는 국민생활의 균등한 향상을 기하고 밖으
제20조 ①모든 국민은 종교의 자유를 가진다.
②국교는 인정되지 아니하며, 종교와 정치는 분리된다.
 
제21조 ①모든 국민은 언론ㆍ출판의 자유와 집회ㆍ결사의 자유를 가진다.
②언론ㆍ출판에 대한 허가나 검열과 집회ㆍ결사에 대한 허가는 인정되지 아니한다.
③통신ㆍ방송의 시설기준과 신문의 기능을 보장하기 위하여 필요한 사항은 법률로 정한다.
④언론ㆍ출판은 타인의 명예나 권리 또는 공중도덕이나 사회윤리를 침해하여서는 아니된다.
2. 선전ㆍ강화 기타 중요한 대외정책
3. 헌법개정안ㆍ국민투표안ㆍ조약안ㆍ법률안 및 대통령령안
4. 예산안ㆍ결산ㆍ국유재산처분의 기본계획ㆍ국가의 부담이 될 계약 기타 재정에 관한 중요사
항
5. 대통령의 긴급명령ㆍ긴급재정경제처분 및 명령 또는 계엄과 그 해제
6. 군사에 관한 중요사항
7. 국회의 임시회 집회의 요구
③국가는 주택개발정책등을 통하여 모든 국민이 쾌적한 주거생활을 할 수 있도록 노력하여야
한다.
 
제36조 ①혼인과 가족생활은 개인의 존엄과 양성의 평등을 기초로 성립되고 유지되어야 하며,
국가는 이를 보장한다.
②국가는 모성의 보호를 위하여 노력하여야 한다.
③모든 국민은 보건에 관하여 국가의 보호를 받는다.
 
제37조 ①국민의 자유와 권리는 헌법에 열거되지 아니한 이유로 경시되지 아니한다.
국회의 의결을 얻어야 한다.
 
제59조 조세의 종목과 세율은 법률로 정한다.
 
제60조 ①국회는 상호원조 또는 안전보장에 관한 조약, 중요한 국제조직에 관한 조약, 우호통상
항해조약, 주권의 제약에 관한 조약, 강화조약, 국가나 국민에게 중대한 재정적 부담을 지우는
조약 또는 입법사항에 관한 조약의 체결ㆍ비준에 대한 동의권을 가진다.
②국회는 선전포고, 국군의 외국에의 파견 또는 외국군대의 대한민국 영역안에서의 주류에 대
한 동의권을 가진다.
③사면ㆍ감형 및 복권에 관한 사항은 법률로 정한다.
 
제80조 대통령은 법률이 정하는 바에 의하여 훈장 기타의 영전을 수여한다.
 
제81조 대통령은 국회에 출석하여 발언하거나 서한으로 의견을 표시할 수 있다.
②헌법재판소는 법률에 저촉되지 아니하는 범위안에서 심판에 관한 절차, 내부규율과 사무처
리에 관한 규칙을 제정할 수 있다.
③헌법재판소의 조직과 운영 기타 필요한 사항은 법률로 정한다.
 
                    제7장 선거관리
 
제114조 ①선거와 국민투표의 공정한 관리 및 정당에 관한 사무를 처리하기 위하여 선거관리위
원회를 둔다.
②중앙선거관리위원회는 대통령이 임명하는 3인, 국회에서 선출하는 3인과 대법원장이 지명
발과 보전을 위하여 법률이 정하는 바에 의하여 그에 관한 필요한 제한과 의무를 과할 수 있다
.
 
제123조 ①국가는 농업 및 어업을 보호ㆍ육성하기 위하여 농ㆍ어촌종합개발과 그 지원등 필요
한 계획을 수립ㆍ시행하여야 한다.
②국가는 지역간의 균형있는 발전을 위하여 지역경제를 육성할 의무를 진다.
③국가는 중소기업을 보호ㆍ육성하여야 한다.
④국가는 농수산물의 수급균형과 유통구조의 개선에 노력하여 가격안정을 도모함으로써 농ㆍ
어민의 이익을 보호한다.
profile
Hello, I'm Terry! 👋 Enjoy every moment of your life! 🌱 My current interests are Signal processing, Machine learning, Python, Database, LLM & RAG, MCP & ADK, Multi-Agents, Physical AI, ROS2...

0개의 댓글