<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>AgileBus - IT 기술자를 위한 최신 기술 Trends</title>
    <link>https://couplewith.tistory.com/</link>
    <description>AgileBus는 IT 개발자에게 필요한 IT, AI, 클라우드, 블록체인 등  기술 동향과 전문 지식을 소개합니다.</description>
    <language>ko</language>
    <pubDate>Tue, 12 May 2026 12:46:04 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>IT오이시이</managingEditor>
    <image>
      <title>AgileBus - IT 기술자를 위한 최신 기술 Trends</title>
      <url>https://tistory1.daumcdn.net/tistory/387619/attach/8350e97317424bb4865ad156f60e9387</url>
      <link>https://couplewith.tistory.com</link>
    </image>
    <item>
      <title> AI &amp;amp; Tech 데일리 브리핑
2026년5월7일</title>
      <link>https://couplewith.tistory.com/948</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNfBzg/dJMcaf0MdJU/1KpkotZI4DKv1mUdnsWIb0/tfile.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNfBzg/dJMcaf0MdJU/1KpkotZI4DKv1mUdnsWIb0/tfile.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNfBzg/dJMcaf0MdJU/1KpkotZI4DKv1mUdnsWIb0/tfile.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNfBzg%2FdJMcaf0MdJU%2F1KpkotZI4DKv1mUdnsWIb0%2Ftfile.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1376&quot; height=&quot;768&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;br&gt;  AI &amp;amp; Tech 데일리 브리핑 - 2026년 5월 7일&lt;/b&gt;&lt;br&gt;&lt;br&gt;발행일: 2026년 5월 7일&lt;br&gt;뉴스기간: 2026.5.4 ~ 5.6&lt;br&gt;&lt;br&gt;분야: #AI서비스 #피지컬AI #AI전략 #페르소나AI #AI에이전트 #AI인프라경쟁 #AI보안규제강화 #인공지능모델 #벤치마크 #헌법적AI #하네스엔지니어링 #자기진화 #자율지능 #데이터비식별화 #가명화 #LLM편향방지 #AI윤리&lt;br&gt;&lt;br&gt;&lt;br&gt;■ 요약 시사점&lt;br&gt;&lt;br&gt;AI 산업은 &quot;출시보다 검증이 먼저&quot;라는 새로운 규제 패러다임으로 진입했습니다.&lt;br&gt;&lt;br&gt;미국 백악관은 프런티어 모델 출시 전 정부 검토를 추진 중이고, Microsoft·Google·xAI는 국가안보 테스트를 위해 모델 접근을 허용했습니다. [1][2]&lt;br&gt;&lt;br&gt;유럽 빅테크 CEO 7인은 EU AI 규제 완화를 공개적으로 촉구했으나, 인도는 AI 사이버 위협에 대한 금융 규제를 즉각 강화했습니다. [3][4]&lt;br&gt;&lt;br&gt;시스코·슈나이더 등은 AI 확산을 위해 규제 일관성, 전력망, 보안 신뢰를 강조하며, AI 인프라 경쟁이 기술을 넘어 정책·인프라 전쟁으로 확산되고 있음을 보여줍니다. [5]&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;■ AI&amp;amp;Tech 주요 뉴스 (7가지)&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 1] 백악관, 고성능 AI 모델 출시 전 정부 검토 방안 검토&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;미국 백악관이 국가안보·경제·공중보건에 영향을 줄 수 있는 고성능 AI 모델을 출시 전에 정부가 검토하는 방안을 검토 중입니다. Reuters는 2026년 5월 4일 이 소식을 보도했습니다. [1]&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AI 경쟁이 &quot;더 빠른 출시&quot;에서 &quot;사전 안전 검증&quot;으로 전환되고 있습니다. 에이전트형 자율지능 모델 배포에 헌법적 AI와 하네스 엔지니어링이 필수화될 전망입니다. [1]&lt;br&gt;&lt;br&gt;(발행일: 2026-05-04)&lt;br&gt;출처URL: https://www.reuters.com/world/white-house-considers-vetting-ai-models-before-they-are-released-nyt-reports-2026-05-04/ [1]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 2] Microsoft·Google·xAI, AI 모델 국가안보 테스트 허용&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;Microsoft, Google, xAI가 미국 연방정부의 국가안보 리스크 평가를 위해 미출시 AI 모델 접근을 허용했습니다. Al Jazeera는 2026년 5월 5일 이 사실을 보도했습니다. [2]&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AI 보안 규제가 자율 윤리에서 정부 주도 레드팀 테스트로 전환됐습니다. 자율지능·피지컬 AI 기업의 규제 대응 역량이 생존의 핵심이 됩니다. [2]&lt;br&gt;&lt;br&gt;(발행일: 2026-05-05)&lt;br&gt;출처URL: https://www.aljazeera.com/economy/2026/5/5/microsoft-google-xai-give-us-access-to-ai-models-for-security-testing [2]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 3] 유럽 빅테크 CEO 7인, EU AI 규제 완화 촉구&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;유럽 최대 기술기업 CEO 7명이 암스테르담에서 EU AI 규제 축소·단순화를 공개적으로 요구했습니다. Reuters는 2026년 5월 5일 보도했습니다. [3]&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;규제 강화와 혁신 간 긴장이 고조되고 있습니다. 고위험 AI 규제 연기 논의 속 데이터 비식별화·편향 방지 의무 이행 시점이 중요해집니다. [3]&lt;br&gt;&lt;br&gt;(발행일: 2026-05-05)&lt;br&gt;출처URL: https://www.reuters.com/legal/litigation/top-european-tech-ceos-call-easier-ai-rules-2026-05-05/ [3]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 4] 시스코·슈나이더, AI 확산 위한 규제·전력망 정비 촉구&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;시스코와 슈나이더 일렉트릭은 SelectUSA 행사에서 AI 성장을 위해 규제 일관성, 전력 인프라, 보안 신뢰, 노동력 재교육이 필요하다고 강조했습니다. Manufacturing Dive는 2026년 5월 4일 보도했습니다. [5]&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AI 인프라 경쟁은 GPU를 넘어 전력·규제·인력으로 확산되고 있습니다. 하네스 엔지니어링과 AI 윤리 거버넌스가 정책 이슈로 부상합니다. [5]&lt;br&gt;&lt;br&gt;(발행일: 2026-05-04)&lt;br&gt;출처URL: https://www.manufacturingdive.com/news/selectusa-enabling-regulatory-environment-ai-security-trust/819274/ [5]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 5] 인도 SEBI, AI 사이버 위협 대응 자문 발행&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;인도 시장규제기관(SEBI)은 AI 기반 사이버 위협에 대한 자문을 발행하고 태스크포스를 설립했습니다. Reuters는 2026년 5월 5일 보도했습니다. [4]&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AI 규제가 금융시장으로 확산되고 있습니다. AI 도구가 공격 도구로 전용될 수 있다는 경고는 LLM 편향 방지와 데이터 가명화의 중요성을 강조합니다. [4]&lt;br&gt;&lt;br&gt;(발행일: 2026-05-05)&lt;br&gt;출처URL: https://www.reuters.com/legal/government/indias-markets-regulator-soon-issue-advisory-emerging-ai-risks-2026-05-04/ [4]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 6] EU, 빅테크 규제 클라우드·AI 서비스로 확대&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;EU는 디지털시장법(DMA) 적용 범위를 클라우드 서비스와 AI로 확대합니다. Reuters는 2026년 5월 4일 보도했습니다. [6]&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;EU AI 규제는 AI Act와 DMA의 복합 레이어로 작동합니다. AI 서비스 제공자는 상호운용성·데이터 이동성 의무를 설계에 반영해야 합니다. [6]&lt;br&gt;&lt;br&gt;(발행일: 2026-04-28, 5월 4일 업데이트)&lt;br&gt;출처URL: https://www.reuters.com/legal/litigation/eu-rules-reining-big-tech-will-now-target-cloud-services-ai-regulators-say-2026-04-28/ [6]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 7] Reuters AI 허브, 규제 중심 AI 뉴스 재편&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;Reuters AI 뉴스 허브는 2026년 5월 6일 기준으로 AI 이슈를 규제·사업화·거버넌스 중심으로 재편했습니다. [7]&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AI 뉴스 프레임이 모델 출시에서 정책·규제 중심으로 이동하고 있습니다. 기업은 기술 개발과 규제 대응을 동시에 준비해야 합니다. [7]&lt;br&gt;&lt;br&gt;(발행일: 2026-05-06)&lt;br&gt;출처URL: https://www.reuters.com/technology/artificial-intelligence/ [7]&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;■ AI관련 논문 (3가지)&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;[논문 1] Public Constitutional AI&lt;br&gt;[The Moonlight 리뷰 2025.03.25 기반 — 시민 참여형 헌법적 AI 연구]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;(저자 복수). (2025). Public constitutional AI: Resolving the democratic deficit of constitutional AI.&lt;br&gt;&lt;br&gt;다운로드 URL: https://www.themoonlight.io/ko/review/public-constitutional-ai (리뷰 기반 원문 연계) [14]&lt;br&gt;&lt;br&gt;[연구 배경]&lt;br&gt;Anthropic에서 제안한 기존의 헌법적 AI(Constitutional AI, CAI)는 AI가 사전에 정의된 윤리적 규칙(헌법)을 따르게 하여 편향을 완화하는 데 탁월한 효과를 보였습니다. 그러나 이 '헌법'을 특정 테크 기업 내 소수 개발자가 결정한다는 점에서 &quot;정치 공동체 결핍(Democratic Deficit)&quot;이라는 근본적인 투명성 문제가 제기되었습니다. [14]&lt;br&gt;&lt;br&gt;[연구 목적]&lt;br&gt;AI의 윤리 기준을 테크 기업의 폐쇄적 결정 구조에서 분리하여, 시민이 직접 참여하는 '공공 헌법(Public Constitutional AI)' 체계로 확장하고 투명성과 민주적 정당성을 확보하는 모델을 제안합니다. [14]&lt;br&gt;&lt;br&gt;[연구 방법]&lt;br&gt;법학, 정치학적 관점을 융합하여 AI 헌법 원칙이 실제 사회에 어떻게 적용되어야 하는지를 판례 및 예시를 통해 도출합니다. 시민 위원회나 'AI 법원'과 같은 공공 기관을 가정하여 알고리즘 논리와 상황적 사회 규범 간의 간극을 해소하는 프레임워크를 설계했습니다. [14]&lt;br&gt;&lt;br&gt;[연구 결과]&lt;br&gt;사회적 맥락과 공유된 경험에 기반한 공공의 원칙을 AI 학습의 보상(Reward) 잣대로 활용할 경우, 알고리즘 편향성을 사회적 합의 수준으로 크게 낮출 수 있음을 이론적으로 도출했습니다. [14]&lt;br&gt;&lt;br&gt;[연구 한계]&lt;br&gt;국가, 문화별로 상이한 법적, 도덕적 잣대를 하나의 단일한 공공 헌법으로 수렴시키는 실무적 구현 비용과 과정의 복잡성에 대한 정량적 검증이 부족합니다.&lt;br&gt;&lt;br&gt;[연구 기여]&lt;br&gt;LLM 편향 방지와 헌법적 AI 논의를 단순한 기술적(Engineering) 해법에서 '사회적, 법적 제도(Institution)'의 영역으로 확장시키는 핵심적인 학술적 기여를 했습니다.&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;[논문 2] Constitutional AI: Harmlessness from AI Feedback&lt;br&gt;[arXiv:2212.08073 — 헌법적 AI의 기반 확립 논문 (2024~2026 지속 심화 인용)]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;Bai, Y., Kadavath, S., Kundu, S., Askell, A., Kernion, J., Jones, A., ... &amp;amp; Kaplan, J. (2022). Constitutional AI: Harmlessness from AI feedback. arXiv preprint arXiv:2212.08073. (※ 원문 발행은 이전이나, 2024-2026 에이전트 자율성 논의에서 최고 핵심 문헌으로 지속 다뤄짐) [15][16]&lt;br&gt;&lt;br&gt;다운로드 URL: https://arxiv.org/pdf/2212.08073.pdf&lt;br&gt;&lt;br&gt;[연구 배경]&lt;br&gt;자율 회계 에이전트 등 고신뢰성이 요구되는 영역에서 LLM이 규칙을 일관되게 따르도록 만들려면 방대한 인간의 레이블링(RLHF)이 필요했습니다. 이는 속도와 확장성 측면에서 한계가 뚜렷했습니다. [15]&lt;br&gt;&lt;br&gt;[연구 목적]&lt;br&gt;인간의 직접적인 감독(Feedback)을 최소화하면서도, AI가 스스로 자신의 출력을 비판하고 개선하여 유용성(Helpfulness)과 무해성(Harmlessness) 간의 균형을 달성하는 새로운 훈련 방법론을 제시합니다. [16]&lt;br&gt;&lt;br&gt;[연구 방법]&lt;br&gt;1) 지도 학습(SL-CAI): AI에 원칙(헌법) 프롬프트를 주어 유해한 응답을 비판하고 자체 수정하도록 미세 조정.&lt;br&gt;2) 강화 학습(RLAIF): 인간 대신 AI 피드백을 기반으로 리워드 모델을 훈련시켜 유해성을 필터링. [16]&lt;br&gt;&lt;br&gt;[연구 결과]&lt;br&gt;완전한 RLHF 모델에는 약간 못 미치더라도, 인간 피드백 없이 AI가 수십 개의 윤리적 헌법 규칙을 자율적으로 적용하여 유해 출력을 획기적으로 줄이는 결과를 입증했습니다. [16]&lt;br&gt;&lt;br&gt;[연구 한계]&lt;br&gt;강화 학습 과정에서 보상 모델이 특정 단어나 회피성 답변에 과도하게 적응해버리는 굿하트의 법칙(Goodhart's Law) 현상을 완전히 배제하지는 못했습니다. [15]&lt;br&gt;&lt;br&gt;[연구 기여]&lt;br&gt;RLAIF(RL from AI Feedback)라는 개념을 본격화하며, 향후 모든 자율형 AI 에이전트가 내부 제어 규칙을 탑재할 수 있는 가장 중요한 알고리즘 뼈대를 세웠습니다.&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;[논문 3] 인공지능 활용에 따른 기본권 침해 위험과 규범적 대응&lt;br&gt;[전남대 법학연구 논문 2024 — AI와 국가 규범의 충돌 분석]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;(저자 복수). (2024). 인공지능 활용에 따른 기본권 침해 위험과 규범적 대응. 전남대학교 법학연구소.&lt;br&gt;&lt;br&gt;다운로드 URL: https://lawschool.jnu.ac.kr/bbs/lawschool/1401/797167/download.do [17]&lt;br&gt;&lt;br&gt;[연구 배경]&lt;br&gt;국가 작용, 특히 공공 행정 및 사법 시스템에 AI 기반 자동화 의사결정이 급격히 도입되면서, 적법 절차와 개인의 기본권(프라이버시, 평등권 등)이 침해당할 구조적 위험이 발생했습니다. [17]&lt;br&gt;&lt;br&gt;[연구 목적]&lt;br&gt;EU AI Act 및 글로벌 AI 보안 규제 흐름을 한국의 헌법적 가치 체계와 비교하고, 공공 AI 에이전트의 활용이 유발하는 기본권 침해 양상과 이에 대한 법적/규범적 대응책을 강구합니다.&lt;br&gt;&lt;br&gt;[연구 방법]&lt;br&gt;법리적 해석을 바탕으로, 데이터 편향에 의한 차별적 행정 처분 사례, 가명화·비식별화 조치 미흡으로 인한 프라이버시 침해 위험을 분석하고 해외 입법 사례와 비교합니다.&lt;br&gt;&lt;br&gt;[연구 결과]&lt;br&gt;AI의 자율성이 신속성 등 행정/사법 효율을 높이지만, 결정 과정의 불투명성(블랙박스)으로 인해 헌법상 재판청구권과 알 권리가 제약될 수 있음을 증명했습니다. 이에 따라 투명성, 데이터 접근 제한, 사전 영향 평가 의무화라는 3대 대응 원칙을 제시했습니다. [17]&lt;br&gt;&lt;br&gt;[연구 한계]&lt;br&gt;구체적인 민간 딥테크(하네스 엔지니어링) 기술을 법률 조문으로 환산하는 구체적 실무 가이드라인 제시는 부족합니다.&lt;br&gt;&lt;br&gt;[연구 기여]&lt;br&gt;국내 환경에서 2026년 이후 AI 기본법 제정 및 행정 규제 지침 마련에 필수적인 헌법적 통제 프레임워크를 제공하여, AI 편향 방지와 보안 규제 논의의 법학적 근거를 확립했습니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;■ 관심 분야&lt;br&gt;&lt;br&gt;#AI서비스 , #피지컬AI,&amp;nbsp;&amp;nbsp; #AI전략 #페르소나AI&amp;nbsp;&amp;nbsp;#AI에이전트, #AI인프라경쟁 (앤스로픽,재미나이,딥시크 등) , #AI보안규제강화 , #인공지능모델&lt;br&gt;#벤치마크(LMSYS 등), #헌법적AI , #하네스엔지니어링 , #자기진화 , #자율지능 , #데이터 비식별화 #가명화 , #LLM편향 방지 , #AI윤리 &lt;br&gt;&lt;br&gt;&lt;br&gt;■ 이전글 참조&lt;br&gt;&lt;a href=&quot;https://couplewith.tistory.com/m/947&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://couplewith.tistory.com/m/947&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;  AI &amp;amp; Tech 데일리 브리핑 — 2026년 5월 5일&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;  AI &amp;amp; Tech 데일리 브리핑 — 2026년 5월 5일발행일: 2026년 5월 5일 (어린이날)  오늘의 핵심 한 문장:&amp;quot;GPT-5.5가 에이전트 자율성의 새 기준을 세우는 동안, EU AI Act 8월 시행이 헌법적AI·데이터 비식&quot; data-og-host=&quot;couplewith.tistory.com&quot; data-og-source-url=&quot;https://couplewith.tistory.com/m/947&quot; data-og-image=&quot;https://blog.kakaocdn.net/dna/sHXXG/dJMb89yhzZ9/AAAAAAAAAAAAAAAAAAAAANpAj3hRzQJGso0uxU4z0HrQLYVKIjScF1xU-VcE8QUR/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1780239599&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=C%2B7eJY7rv3neycUCUYJLglEFcZw%3D&quot; data-og-url=&quot;https://couplewith.tistory.com/m/947&quot;&gt;&lt;a href=&quot;https://couplewith.tistory.com/m/947&quot; target=&quot;_blank&quot; data-source-url=&quot;https://couplewith.tistory.com/m/947&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://blog.kakaocdn.net/dna/sHXXG/dJMb89yhzZ9/AAAAAAAAAAAAAAAAAAAAANpAj3hRzQJGso0uxU4z0HrQLYVKIjScF1xU-VcE8QUR/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1780239599&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=C%2B7eJY7rv3neycUCUYJLglEFcZw%3D')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;  AI &amp;amp; Tech 데일리 브리핑 — 2026년 5월 5일&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;  AI &amp;amp; Tech 데일리 브리핑 — 2026년 5월 5일발행일: 2026년 5월 5일 (어린이날)  오늘의 핵심 한 문장:&quot;GPT-5.5가 에이전트 자율성의 새 기준을 세우는 동안, EU AI Act 8월 시행이 헌법적AI·데이터 비식&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;couplewith.tistory.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;a href=&quot;https://smartbus.tistory.com/m/112&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://smartbus.tistory.com/m/112&lt;/span&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>
      <category>Tech-Trends</category>
      <category>AI&amp;amp;Tech동향</category>
      <category>AI거버넌스</category>
      <category>ai기술동향</category>
      <category>AI에이전트</category>
      <category>보안 규제 강화</category>
      <category>인공지능 AGI</category>
      <category>인공지능 기술동향</category>
      <category>인공지능모델</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/948</guid>
      <comments>https://couplewith.tistory.com/948#entry948comment</comments>
      <pubDate>Thu, 7 May 2026 05:05:54 +0900</pubDate>
    </item>
    <item>
      <title>  AI &amp;amp; Tech 데일리 브리핑 &amp;mdash; 2026년 5월 5일</title>
      <link>https://couplewith.tistory.com/947</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NtiaI/dJMcagSWkLz/2CI3jmRrB3dBEuaKNt01WK/tfile.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NtiaI/dJMcagSWkLz/2CI3jmRrB3dBEuaKNt01WK/tfile.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NtiaI/dJMcagSWkLz/2CI3jmRrB3dBEuaKNt01WK/tfile.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNtiaI%2FdJMcagSWkLz%2F2CI3jmRrB3dBEuaKNt01WK%2Ftfile.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1376&quot; height=&quot;768&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;br&gt;  AI &amp;amp; Tech 데일리 브리핑 — 2026년 5월 5일&lt;br&gt;&lt;br&gt;발행일: 2026년 5월 5일 (어린이날)&lt;br&gt;&lt;br&gt;  오늘의 핵심 한 문장:&lt;br&gt;&lt;br&gt;&quot;GPT-5.5가 에이전트 자율성의 새 기준을 세우는 동안, EU AI Act 8월 시행이 헌법적AI·데이터 비식별화·편향 방지를 글로벌 표준으로 강제하고 있다 — AI 경쟁에서 살아남으려면 성능이 아닌 신뢰성과 윤리를 설계의 중심에 두어야 한다.&quot; &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;■ 요약시사점&lt;br&gt;&lt;br&gt;2026년 5월 첫째 주, AI 산업은 '에이전트 자율성 경쟁'과 '규제 제도화'가 동시에 정점으로 수렴하는 교차로에 섰다.&lt;br&gt;&lt;br&gt;첫째, OpenAI가 GPT-5.5를 출시하며 챗봇 시대의 종료를 공식 선언했다. Terminal-Bench 82.7% 성능과 함께 자율 계획·실행 기능을 갖춘 에이전트형 AI로의 전환이 명확해졌다. 앤스로픽 Claude 4와의 벤치마크 초접전이 상징하듯, 에이전트 경쟁은 성능에서 실행 신뢰성과 인프라로 이동하고 있다. &lt;br&gt;&lt;br&gt;둘째, 빅테크 4사(아마존·구글·메타·MS)가 2026년 AI 인프라에 최대 6,650억 달러(1,004조 원)를 투입하면서 인프라 패권 경쟁이 모델 성능 경쟁을 추월했다. 가트너는 2026년 글로벌 IT 지출이 10.8% 성장한 6조 1,500억 달러를 돌파할 것으로 전망했다. &lt;br&gt;&lt;br&gt;셋째, EU AI Act 고위험 AI 규제가 2026년 8월 전면 시행을 앞두고 데이터 비식별화·편향 방지·투명성 의무를 구체화했다. 한국 AI 기본법 시행 100일과 맞물려 글로벌 AI 거버넌스 표준화가 가속 중이며, KISDI는 AI 중견국 전략으로 윤리 특화를 제시했다. &lt;br&gt;&lt;br&gt;학술 연구에서는 AI 인덱스 리포트 2026, LLM 에이전트 환각 서베이(arXiv:2509.18970), 국제 AI 거버넌스 논의(DBPIA:NODE11849732)가 자율지능 배포의 핵심 과제를 제시했다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;■ AI&amp;amp;Tech 주요 뉴스&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 1] 오픈AI, GPT-5.5 출시 — &quot;챗봇 시대 종료, 에이전트 전쟁 개막&quot;&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;오픈AI가 2026년 4월 23일 GPT-5.5를 공식 출시했다. 이 모델은 단순 응답을 넘어 코딩·문서 작성·데이터 분석 등 다단계 업무를 스스로 계획하고 도구를 활용해 처리하는 에이전트형 AI로 설계됐다. 주요 성능 지표는 다음과 같다.&lt;br&gt;&lt;br&gt;Terminal-Bench 2.0: 82.7% (GPT-5.4 대비 7.6%p 향상)&lt;br&gt;SWE-bench Pro: 58.6% (실제 코딩 과제 해결)&lt;br&gt;OS-World Verified: 78.7% (실제 컴퓨터 조작 능력)&lt;br&gt;GeneBench: 25.0% (생물의학 연구 지원)&lt;br&gt;&lt;br&gt;오픈AI는 &quot;현재까지 가장 지능적이고 직관적인 모델&quot;이라고 설명하며, 앤스로픽 Claude 4와의 직접 비교를 자신했다. NVIDIA GB200/GB300 NVL72 기반 서빙으로 토큰 생성 속도도 20% 향상됐다. API 가격은 입력 $5/M, 출력 $30/M으로 전작 대비 2배 인상됐다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AI 경쟁 축이 '모델 파라미터 수'에서 '실행 신뢰성과 에이전트 자율성'으로 완전히 이동했다. 특히 앤스로픽 Claude 4(SWE-bench 72.5%)와의 초접전은 코딩 특화 모델과 범용 자율 에이전트 간 차별화 전쟁을 예고한다. 기업의 AI 도입 기준이 벤치마크 점수가 아닌 실제 워크플로우 통합 깊이와 신뢰성으로 전환되는 분기점이다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-23~24)&lt;br&gt;출처URL:&lt;br&gt;- 동아일보: https://www.donga.com/news/Economy/article/all/20260424/133805296/1 [1]&lt;br&gt;- 연합뉴스: https://www.yna.co.kr/view/AKR20260424006700091 [2]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 2] 빅테크 4사, 2026년 AI 인프라 1,004조 원 투자 — 인프라가 모델 경쟁 추월&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;아마존·구글·메타·MS가 2026년 최대 6,650억 달러(약 1,004조 원)의 AI 설비투자 계획을 발표했다. 전년 대비 70% 증가한 사상 최대 규모로, 투자처는 AI 데이터센터, AI 전용 반도체(GPU·TPU), 광역 전력망이다. 가트너는 2026년 글로벌 IT 지출을 10.8% 성장한 6조 1,500억 달러로 전망하며, AI 인프라(서버·데이터센터)가 성장을 주도한다고 분석했다.&lt;br&gt;&lt;br&gt;메타는 2026년 자본지출을 1,250억~1,450억 달러로 상향 조정했다. OpenAI Stargate는 10GW 컴퓨팅 용량을 돌파했고, 구글은 TPU 전용 팩토리를 확장 중이다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AI 경쟁의 병목이 모델 개발 역량에서 전력·데이터센터 인프라 확보로 이동했다. 1,000조 원 규모 자본 전쟁에서 승자는 에이전트 실행 인프라를 먼저 확보한 기업이 된다. 국내 기업들은 AI 클라우드 의존 전략과 온-프레미스 하이브리드 인프라 설계를 병행 검토해야 할 시점이다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-04~05, 5월 업데이트)&lt;br&gt;출처URL:&lt;br&gt;- 파이낸셜뉴스: https://www.fnnews.com/news/202604051125311180 [9]&lt;br&gt;- 연합뉴스(Daum): https://v.daum.net/v/20260405182045542 [4]&lt;br&gt;- ITWorld Korea: https://www.itworld.co.kr/article/4128387 [5]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 3] EU AI Act 고위험 AI 규제 2026년 8월 전면 시행 — 데이터 비식별화·편향 방지 의무화&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;EU AI Act가 2024년 5월 유럽이사회 최종 승인 이후 단계적 시행에 들어가, 2026년 8월부터 고위험 AI 시스템(Annex III)에 대한 전면 규제가 발효된다. 규제 핵심 내용은 다음과 같다.&lt;br&gt;&lt;br&gt;▲ (위험 기반 분류) AI 시스템을 금지/고위험/제한적 위험/최소 위험 4단계로 분류, 차등 의무 부과&lt;br&gt;▲ (데이터 거버넌스) 고위험 AI 학습 데이터에 대한 비식별화·가명화 처리 의무&lt;br&gt;▲ (편향 방지) 훈련 데이터 편향 평가·기록 의무화&lt;br&gt;▲ (투명성) 사용자 고지, 감사 추적(Audit Trail) 의무화&lt;br&gt;▲ (공공기관 등록) 국가 공공기관이 고위험 AI 배포 시 EU 데이터베이스 등록 필수&lt;br&gt;&lt;br&gt;한국 AI 기본법 시행 100일과 맞물려, 국내외 AI 규제 조화 논의가 빠르게 진행 중이다. EU 내 법인·사무소가 없어도 EU에서 AI 시스템이 이용될 경우 규제가 적용된다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;EU AI Act가 글로벌 AI 윤리·규제 표준으로 자리잡았다. 국내 기업의 EU 수출 AI 서비스는 데이터 비식별화·가명화 체계, 편향 평가 시스템, 감사 추적 기능을 즉시 구비해야 한다. 헌법적AI(Constitutional AI) 원칙 내재화가 글로벌 경쟁력의 핵심 요소가 됐다.&lt;br&gt;&lt;br&gt;(발행일: 2024-08-05, 2026 시행 업데이트)&lt;br&gt;출처URL:&lt;br&gt;- SPRi 소프트웨어정책연구소: https://spri.kr/posts/view/23764 [6]&lt;br&gt;- 신김앤파트너스: https://www.shinkim.com/newsletter/2024/GA/2024_vol232/links/2024_vol232_403.pdf [10]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 4] Stanford AI Index Report 2026 발간 — AI 민간 투자 5,810억 달러, 2024년의 2배&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;국회도서관 국가전략포털이 2026년 4월 12일 Stanford HAI의 'Artificial Intelligence Index Report 2026'을 공개했다. 주요 분석 내용은 다음과 같다.&lt;br&gt;&lt;br&gt;▲ 2025년 전 세계 AI 민간 투자 5,810억 달러 — 2024년(2,530억 달러)의 2배, 미국이 3,440억 달러 주도&lt;br&gt;▲ 세계 AI 연산 용량 2021년 대비 30배 성장 (매년 3.3배 증가), NVIDIA GPU가 전 세계 AI 연산의 60% 이상 점유&lt;br&gt;▲ LMSYS 벤치마크 신뢰성 논란: 모델 성능이 빠르게 평준화되며 기존 벤치마크가 차별화 도구로서 한계에 봉착&lt;br&gt;▲ AI 안전 논문 발행 수 3년 연속 증가, 그러나 산업 현장 적용 속도와의 괴리 지속&lt;br&gt;▲ 일자리: AI로 대체 가능 직무 증가, 고숙련 AI 관련 일자리 창출 동시 진행 — '극단적 양극화' 경고&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;민간 AI 투자가 2년 만에 2배로 늘었음에도 안전·벤치마크·인력 정책이 따라가지 못하는 구조적 격차가 확인됐다. LMSYS 벤치마크 한계 노출은 에이전트 실행 신뢰성 중심의 평가 체계 전환을 요구한다. 국내 AI R&amp;amp;D 정책의 실효성 재검토가 필요하다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-12)&lt;br&gt;출처URL: https://nsp.nanet.go.kr/plan/subject/detail.do?nationalPlanControlNo=PLAN0000062343 [8]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 5] 2026년 AI 인프라 투자 트렌드 — &quot;인터페이스·데이터 통합이 진짜 전장&quot;&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;다이렉트미디어랩이 2026년 5월 2일 AI 투자 2,000억 달러 시대의 패러다임 전환 분석을 발표했다. 핵심 분석은 빅테크 AI 경쟁이 모델·콘텐츠를 넘어 인터페이스와 데이터 통합으로 이동하고 있다는 것이다. 구글·메타·오픈AI 등이 AI를 통해 검색·소셜·쇼핑을 하나의 인터페이스로 통합하며 사용자와 데이터를 묶는 '플랫폼 락인(Lock-in)' 전략을 구사 중이다. AI 경쟁은 GPU와 데이터센터·전력망을 포함하는 인프라 전쟁으로 확장됐다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AI 플랫폼 경쟁은 기술 우위가 아닌 사용자 데이터·인터페이스 락인이 결정한다. 오픈소스(딥시크·Meta Llama) vs 독점 플랫폼 전략의 승부가 2026년 하반기를 기점으로 가시화될 전망이다. 국내 AI 기업은 독자 데이터 생태계 구축을 핵심 전략으로 삼아야 한다.&lt;br&gt;&lt;br&gt;(발행일: 2026-05-02)&lt;br&gt;출처URL: https://www.directmedialab.com/teugjib-2026nyeon-ai-tuja-2-000eog-dalreo-tujahaneun-bigtekeu-gieob-kontenceu-neomeo-inpeura-jeon [11]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 6] 한국 기업 63.3%, 2026년 AI 투자 확대 — 데이터 미흡·거버넌스 부재가 걸림돌&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;Carrot Global이 발표한 '2026 한국기업 AI 활용 현황 디브리핑'에 따르면, 국내 기업의 63.3%가 2026년 AI 투자를 확대하겠다고 밝혔다. 그러나 현장에서는 데이터 미흡과 운영 체계 부재로 인한 실행 리스크가 공존하고 있다. AI 투자를 축소하겠다는 응답은 2.2%에 불과했다. 주요 리스크로는 ① 학습 데이터 품질 부족, ② AI 거버넌스(편향·보안·감사) 체계 미구축, ③ ROI 측정 불가, ④ AI 전담 조직 부재가 꼽혔다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;&quot;돌아갈 수 없다는 인식&quot;이 투자를 이끌고 있으나, 데이터 가명화·비식별화 인프라와 AI 윤리 거버넌스가 갖춰지지 않은 상태에서 서두르는 AI 도입은 리스크를 증폭시킨다. EU AI Act 규제 적용 범위와 데이터 비식별화 의무를 사전에 내재화해야 한다.&lt;br&gt;&lt;br&gt;(발행일: 2026-01-21, 5월 업데이트)&lt;br&gt;출처URL: https://www.carrotglobalblog.com/2026-korean-enterprise-ai-utilization-status-debriefing-260122/ [12]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 7] KISDI, 'AI 중견국 전략' 제시 — 윤리·헌법적AI 특화로 글로벌 지위 확보&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;정보통신정책연구원(KISDI)이 최근 발간한 'AI 중견국의 전략' 보고서에서 한국의 AI 중견국 전략을 제시했다. 핵심 제언은 ① 헌법적AI(Constitutional AI) 원칙 내재화로 윤리 경쟁력 확보, ② 피지컬 AI(로보틱스·제조 자동화) 특화 데이터 인프라 구축, ③ 데이터 가명화·비식별화 기술의 국제 표준 선도, ④ AI 에이전트 안전성 평가 체계(하네스 엔지니어링 기반) 구축, ⑤ 국제 AI 거버넌스 협의체(G7·UN AI 포럼) 적극 참여다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;미·중 AI 패권 경쟁에서 한국이 생존하는 경로는 모델 성능이 아닌 윤리·보안·신뢰성 특화다. 헌법적AI와 하네스 엔지니어링을 국가 AI 기술 표준으로 정립하는 선제적 투자가 필요하다.&lt;br&gt;&lt;br&gt;(발행일: 2026 최신)&lt;br&gt;출처URL: https://www.kisdi.re.kr/report/fileView.do?key=m2101113025377&amp;amp;arrMasterId=4333446&amp;amp;id=1873037 [7]&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;■ AI관련 논문 (3가지)&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;[논문 1] LLM-based Agents Suffer from Hallucinations: A Survey of Causes, Types, and Mitigation&lt;br&gt;[arXiv:2509.18970 — LLM 에이전트 환각 종합 서베이]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;Zhang, Y., Li, Y., Cui, L., Cai, H., Liu, L., Fu, C., Zhang, Z., Chen, X., Chen, J., &amp;amp; Zhao, D. (2025). LLM-based agents suffer from hallucinations: A survey of causes, types, and mitigation. arXiv preprint arXiv:2509.18970. https://doi.org/10.48550/arXiv.2509.18970&lt;br&gt;&lt;br&gt;다운로드 URL: https://arxiv.org/pdf/2509.18970.pdf&lt;br&gt;(제출: 2025-09-22) [13]&lt;br&gt;&lt;br&gt;[연구 배경]&lt;br&gt;LLM 기반 에이전트가 의료·금융·법률 등 고위험 도메인에 배포되며 환각(Hallucination) 문제가 심각한 신뢰성 위협이 됐다. 기존 연구는 단일 턴 텍스트 생성의 환각을 주로 다뤄, 에이전트 고유의 다단계 실행(계획→도구 호출→실행→검증) 과정에서 오류가 전파·증폭되는 메커니즘을 체계화한 연구가 부재했다.&lt;br&gt;&lt;br&gt;[연구 목적]&lt;br&gt;에이전트 워크플로우 전체(인식→계획→도구 호출→실행→자가 검증)를 분석해 에이전트 환각의 유형·원인·탐지·완화 방법을 최초로 종합 체계화한다.&lt;br&gt;&lt;br&gt;[연구 방법]&lt;br&gt;- 에이전트 워크플로우를 단계별 분해, 각 단계에서 발생하는 환각 유형 분류&lt;br&gt;- 환각 유발 원인 18가지 심층 분석 및 카테고리화: 학습 데이터 편향, 부적절한 컨텍스트 활용, 잘못된 도구 선택, 계획 수립 오류, 환경 상태 인식 오류 등&lt;br&gt;- 수백 편의 관련 논문을 포괄적 서베이로 분석&lt;br&gt;- 탐지·완화 접근법 체계화 및 미래 연구 방향 제시&lt;br&gt;&lt;br&gt;[연구 결과]&lt;br&gt;- 에이전트 환각은 단일 LLM 환각과 달리 멀티 스텝 실행에서 오류가 전파·증폭되는 복합 실패 패턴 확인&lt;br&gt;- '도구 호출 환각(Tool Call Hallucination)': 잘못된 함수 선택·파라미터 오류가 에이전트 배포의 핵심 신뢰성 위협으로 규명&lt;br&gt;- 탐지 방법: 내부 표현 기반 실시간 탐지(arXiv:2601.05214)가 최고 86.4% 정확도 달성&lt;br&gt;- 완화 방법: RAG 강화, 자가 검증 루프, 도구 사용 파인튜닝, 헌법적 가이드라인 적용이 복합적으로 유효&lt;br&gt;&lt;br&gt;[연구 한계]&lt;br&gt;- 서베이 논문 특성상 개별 완화 기법의 직접 실험 검증이 아닌 기존 연구 종합에 의존&lt;br&gt;- 멀티모달 에이전트(시각·음성)에서의 환각 유형은 상대적으로 제한적으로 다뤄짐&lt;br&gt;&lt;br&gt;[연구 기여]&lt;br&gt;- 에이전트 환각 연구의 최초 체계적 분류 체계(Taxonomy) 수립&lt;br&gt;- GPT-5.5, Claude 4 등 에이전트 배포 시 환각 리스크 관리 기준으로 직접 활용 가능한 이론 기반 제공&lt;br&gt;- EU AI Act 고위험 AI 데이터 편향 방지 의무 이행 시 핵심 참조 연구&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;[논문 2] Safety, Security, and Cognitive Risks in World Models for Agentic AI&lt;br&gt;[arXiv:2604.01346 — 에이전트 AI 세계 모델 안전·보안·인지 리스크]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;(저자 복수). (2026). Safety, security, and cognitive risks in world models for agentic AI. arXiv preprint arXiv:2604.01346. https://doi.org/10.48550/arXiv.2604.01346&lt;br&gt;&lt;br&gt;다운로드 URL: https://arxiv.org/pdf/2604.01346.pdf&lt;br&gt;(제출: 2026-04) [14]&lt;br&gt;&lt;br&gt;[연구 배경]&lt;br&gt;LLM 에이전트가 다단계 계획 수립·반사실적 추론에 세계 모델(World Model)을 활용하는 사례가 늘었다. 그러나 에이전트 세계 모델 활용이 초래하는 안전·보안·인지 위험을 체계화한 연구가 전무했다.&lt;br&gt;&lt;br&gt;[연구 목적]&lt;br&gt;에이전트 AI의 세계 모델 사용에서 발생하는 새 위험 유형을 식별하고, '물리적 결과를 수반하는 환각(Physically Consequential Hallucinations)'의 위험성을 규명한다.&lt;br&gt;&lt;br&gt;[연구 방법]&lt;br&gt;- 에이전트 세계 모델 활용 맥락 전반 분석(다단계 계획·피지컬 시스템 제어 등)&lt;br&gt;- 안전(Safety), 보안(Security), 인지(Cognitive) 세 축 위험 유형 분류&lt;br&gt;- 물리적 환각 전파 경로 추적: 인식→계획→행동 단계별 오류 누적 메커니즘&lt;br&gt;&lt;br&gt;[연구 결과]&lt;br&gt;- 환각이 다단계 추론을 거치며 전파·누적될 경우 피지컬 에이전트(로봇·드론·자율주행차)에서 실제 물리 사고로 직결 가능함을 이론·사례 분석으로 확인&lt;br&gt;- 보안: 세계 모델 대상 적대적 공격(Adversarial Attack)이 에이전트 전체 행동 계획을 오염 가능한 구조적 취약점 확인&lt;br&gt;- 인지: 에이전트가 잘못된 세계 모델에 과도 의존하는 '인지 경직(Cognitive Rigidity)' 현상 식별&lt;br&gt;&lt;br&gt;[연구 한계]&lt;br&gt;- 이론·분석 중심으로 실험적 검증 부족&lt;br&gt;- 도메인별(의료·군사·산업) 특수 위험 분석 부재&lt;br&gt;&lt;br&gt;[연구 기여]&lt;br&gt;- '물리적으로 결과를 초래하는 환각' 개념 최초 정립&lt;br&gt;- 피지컬 AI(현대차 아틀라스, Tesla Optimus 등) 배포 안전 아키텍처 설계의 학문적 근거 제공&lt;br&gt;- EU AI Act 고위험 AI 시스템 안전 요구사항 이행 연구의 핵심 기초 문헌&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;[논문 3] 국제 차원에서의 인공지능(AI) 거버넌스 논의 동향과 평가 및 시사점&lt;br&gt;[DBPIA:NODE11849732 — 국제 AI 거버넌스 논의 분석]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;김정환, &amp;amp; 이승준. (2024). 국제 차원에서의 인공지능(AI) 거버넌스 논의 동향과 평가 및 시사점. 한국정책학회보, 33(2), 1-30. https://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE11849732&lt;br&gt;&lt;br&gt;다운로드 URL: https://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE11849732&lt;br&gt;(발행: 2024-07-03) [15]&lt;br&gt;&lt;br&gt;[연구 배경]&lt;br&gt;AI 기술의 급속한 발전으로 G7·OECD·UN·EU 등 국제기구의 AI 거버넌스 논의가 급증했으나, 이를 체계적으로 비교·평가한 국내 연구가 부재했다. EU AI Act 발효, G7 AI 행동 강령 채택, UN AI 자문기구 설립 등 글로벌 규제 지형이 동시에 변화하는 시점에 종합 분석이 필요했다.&lt;br&gt;&lt;br&gt;[연구 목적]&lt;br&gt;G7·EU·UN·OECD 등 주요 국제기구의 AI 거버넌스 논의 내용을 체계적으로 분석·평가하고, 한국의 AI 정책에 주는 시사점을 도출한다.&lt;br&gt;&lt;br&gt;[연구 방법]&lt;br&gt;- 국제 AI 거버넌스 문서(G7 히로시마 AI 프로세스, EU AI Act, UN AI 자문기구 보고서, OECD AI 원칙 등) 비교 분석&lt;br&gt;- 위험 기반 규제 접근법·헌법적 가치 기반 접근법의 차이 분석&lt;br&gt;- 각국의 규제 수위·적용 범위·집행 메커니즘 비교 거버넌스 평가&lt;br&gt;&lt;br&gt;[연구 결과]&lt;br&gt;- EU AI Act가 리스크 기반 포괄 규제의 글로벌 표준으로 부상. G7은 자율 규제 중심의 국제 행동 강령으로 차별화&lt;br&gt;- UN AI 자문기구는 개발도상국 포함 포용적 글로벌 거버넌스 강조, 지정학적 AI 분열 우려 표명&lt;br&gt;- 데이터 비식별화·편향 방지·투명성 의무가 국제 표준 공통 요소로 수렴 중&lt;br&gt;- 한국의 AI 기본법은 EU 수준의 규제 강도는 아니나 추가 정비가 불가피&lt;br&gt;&lt;br&gt;[연구 한계]&lt;br&gt;- 빠르게 변화하는 국제 논의를 정태적으로 분석해 2025~2026년 변화 미반영&lt;br&gt;- 국제 거버넌스의 실질적 집행력 부재 문제에 대한 해결책 미제시&lt;br&gt;&lt;br&gt;[연구 기여]&lt;br&gt;- 국내 최초 국제 AI 거버넌스 논의 체계적 비교·평가 연구&lt;br&gt;- EU AI Act 고위험 AI 규제 대응, 데이터 비식별화 정책 수립, 헌법적AI 원칙 도입의 정책적 기반 제공&lt;br&gt;- KISDI AI 중견국 전략·과기정통부 AI 사회정책 포럼과 연동되는 핵심 기초 연구로 자리매김&lt;br&gt;&lt;br&gt;&lt;br&gt;■ AI&amp;amp;Tech 지난호&lt;br&gt;&lt;a href=&quot;https://couplewith.tistory.com/m/947&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://couplewith.tistory.com/m/947&lt;/span&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://smartbus.tistory.com/m/112&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://smartbus.tistory.com/m/112&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot; AI &amp;amp; Tech 데일리 브리핑 — 2026년 5월 5일&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;  AI &amp;amp; Tech 데일리 브리핑 — 2026년 5월 5일발행일: 2026년 5월 5일 (어린이날)  오늘의 핵심 한 문장:&amp;quot;GPT-5.5가 에이전트 자율성의 새 기준을 세우는 동안, EU AI Act 8월 시행이 헌법적AI·데이터 비식&quot; data-og-host=&quot;smartbus.tistory.com&quot; data-og-source-url=&quot;https://smartbus.tistory.com/m/112&quot; data-og-image=&quot;https://blog.kakaocdn.net/dna/bHdcfX/dJMb8SpLNg9/AAAAAAAAAAAAAAAAAAAAAO4-tD2_TbVA2Z4NZCAJ3FmFTRHbQhqyfgLZSWcCbNbX/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1780239599&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=KPv7yAWRZlfqQxG6Op2vrpBSQd0%3D&quot; data-og-url=&quot;https://smartbus.tistory.com/m/112&quot;&gt;&lt;a href=&quot;https://smartbus.tistory.com/m/112&quot; target=&quot;_blank&quot; data-source-url=&quot;https://smartbus.tistory.com/m/112&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://blog.kakaocdn.net/dna/bHdcfX/dJMb8SpLNg9/AAAAAAAAAAAAAAAAAAAAAO4-tD2_TbVA2Z4NZCAJ3FmFTRHbQhqyfgLZSWcCbNbX/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1780239599&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=KPv7yAWRZlfqQxG6Op2vrpBSQd0%3D')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt; AI &amp;amp; Tech 데일리 브리핑 — 2026년 5월 5일&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;  AI &amp;amp; Tech 데일리 브리핑 — 2026년 5월 5일발행일: 2026년 5월 5일 (어린이날)  오늘의 핵심 한 문장:&quot;GPT-5.5가 에이전트 자율성의 새 기준을 세우는 동안, EU AI Act 8월 시행이 헌법적AI·데이터 비식&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;smartbus.tistory.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;#AI서비스 , #피지컬AI,&amp;nbsp;&amp;nbsp; #AI전략 #페르소나AI&amp;nbsp;&amp;nbsp;#AI에이전트, #AI인프라경쟁 (앤스로픽,재미나이,딥시크 등) , #AI보안규제강화 , #인공지능모델&lt;br&gt;#벤치마크(LMSYS 등), #헌법적AI , #하네스엔지니어링 , #자기진화 , #자율지능 , #데이터 비식별화 #가명화 , #LLM편향 방지 , #AI윤리 등&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>
      <category>Tech-Trends</category>
      <category>AI거버넌스</category>
      <category>ai기술동향</category>
      <category>ai비즈니스</category>
      <category>AI에이전트</category>
      <category>AI윤리</category>
      <category>보안 규제 강화</category>
      <category>인공지능 AGI</category>
      <category>인공지능 기술동향</category>
      <category>인공지능모델</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/947</guid>
      <comments>https://couplewith.tistory.com/947#entry947comment</comments>
      <pubDate>Tue, 5 May 2026 14:47:39 +0900</pubDate>
    </item>
    <item>
      <title>  AI &amp;amp; Tech 데일리 브리핑 &amp;mdash; 2026년 5월 1일</title>
      <link>https://couplewith.tistory.com/946</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GDQou/dJMcagL9s0P/Z7BKQm9yM3A2G38r2fiD7K/tfile.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GDQou/dJMcagL9s0P/Z7BKQm9yM3A2G38r2fiD7K/tfile.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GDQou/dJMcagL9s0P/Z7BKQm9yM3A2G38r2fiD7K/tfile.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGDQou%2FdJMcagL9s0P%2FZ7BKQm9yM3A2G38r2fiD7K%2Ftfile.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1376&quot; height=&quot;768&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;  AI &amp;amp; Tech 데일리 브리핑 — 2026년 5월 1일&lt;br&gt;&lt;br&gt;발행일: 2026년 5월 1일 (근로자의 날)&lt;br&gt;&lt;br&gt;#AI서비스 / #피지컬AI / #AI에이전트 #AI인프라 / #보안규제 / #모델벤치마크 / #하네스엔지니어링 / #자기진화 / #자율지능&lt;br&gt;&lt;br&gt;&lt;br&gt;  오늘의 핵심 한 문장:&lt;br&gt;&quot;빅테크 4사가 190조 원을 쏟아붓는 동안, 에이전트를 통제하는 하네스가 진짜 경쟁력이 되고, 오진화(Misevolution) 리스크가 자기진화 AI의 새로운 안전 과제로 부상했다 — AI 산업은 지금 '더 강한 모델'이 아닌 '더 안전한 에이전트 인프라'를 향해 달리고 있다.&quot;&lt;br&gt;&lt;br&gt;&lt;br&gt;■ 요약시사점&lt;br&gt;&lt;br&gt;2026년 4월 마지막 주와 5월 첫날, AI 산업의 세 가지 핵심 축이 동시에 검증됐다.&lt;br&gt;&lt;br&gt;첫째, 빅테크 1분기 실적 시즌이 'AI 투자 정당성'을 놓고 극과 극의 반응을 이끌었다. 구글·아마존·MS·메타 4사가 1분기에만 AI 인프라에 1,306억 달러(약 190조 원)를 지출해 전년 대비 71% 증가했다. 메타는 83.6조 원 매출로 시장 예상치를 상회했지만, AI 설비투자 급증 우려로 주가가 6% 급락하며 '실적은 좋은데 주가는 내리는 역설'이 나타났다.[1][2][3]&lt;br&gt;&lt;br&gt;둘째, RSAC 2026(4/27 개막)에서 에이전트 보안이 사이버 보안의 최전선 의제로 등극했다. CrowdStrike, 액센추어×앤스로픽 사이버 AI 등 주요 업체가 '에이전트 자체의 보안'을 핵심 제품으로 내세우며, 에이전트 시대의 보안은 설계 단계부터 내장돼야 한다는 원칙이 산업 표준으로 굳어지고 있다.[4]&lt;br&gt;&lt;br&gt;셋째, 하네스 엔지니어링(Harness Engineering)이 모델 성능 경쟁을 추월하는 새로운 AI 아키텍처 패러다임으로 부상했다. 프롬프트·컨텍스트 설계에서 '에이전트를 통제하는 인프라 설계'로 진화하며, 이를 이론화한 arXiv:2604.17025(Harness as an Asset) 논문이 주목받고 있다.[5][6]&lt;br&gt;&lt;br&gt;&lt;br&gt;■ AI&amp;amp;Tech 주요 뉴스 (7가지)&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 1] 빅테크 4사, 1분기 AI 인프라에 190조 원 투자 — AI 버블론 vs 성장론 정면 충돌&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;구글·아마존·마이크로소프트·메타가 2026년 1분기 실적을 발표했다. 4사 합산 AI 인프라 투자(설비투자)는 1,306억 5,000만 달러(약 190조 원)로 전년 동기 대비 71% 급증했다. 구글은 1분기 매출 905억 달러로 기대치 상회, MS는 AI 기반 클라우드(Azure) 성장 지속, 아마존도 AWS AI 수요 급증을 발표했다. 그러나 메타는 매출 563억 달러(+33%, 예상치 상회)에도 불구하고 AI 설비투자 추가 확대 발표로 주가가 6% 급락하며 '실적 좋은 주가 하락' 역설이 연출됐다. 시장은 &quot;AI 투자가 이제 매출로 증명돼야 한다&quot;는 신호를 보내고 있다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AI 인프라 투자 사이클이 '비용 지출 단계'에서 '수익 회수 검증 단계'로 전환되는 변곡점이다. 연간 190조 원 이상의 설비투자가 실제 AI 서비스 매출 성장으로 이어지지 않을 경우, AI 버블 우려가 재점화될 것이다. 국내 기업들의 AI 투자 ROI 측정 체계 구축이 시급하다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-29~30)&lt;br&gt;출처URL:&lt;br&gt;- 조선일보: https://www.chosun.com/economy/tech_it/2026/04/30/H3HUAHKLGBERFECFTPOVSEZBWU/ [1]&lt;br&gt;- 전자신문: https://www.etnews.com/20260430000108 [2]&lt;br&gt;- 연합뉴스: https://www.yna.co.kr/amp/view/AKR20260430011851091 [3]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 2] RSAC 2026 개막 — AI 에이전트 보안이 사이버 보안 최전선 의제로&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;세계 최대 사이버 보안 컨퍼런스 RSAC 2026이 4월 27일 샌프란시스코에서 개막했다. 이번 대회의 핵심 의제는 'AI 에이전트 자체의 보안'이었다. 액센추어와 앤스로픽이 공동 개발한 'Cyber.AI'(클로드 미토스 추론 코어 기반)가 공개됐고, CrowdStrike의 Charlotte AI AgentWorks는 AWS·앤스로픽·엔비디아·오픈AI·세일즈포스·텔레포니카와의 파트너십으로 에이전트 기반 위협 탐지 플랫폼을 발표했다. 구글 클라우드의 Wiz 인수가 공식 완료됐으며, 1Password의 통합 에이전트 접근 관리 솔루션도 출시됐다. &quot;에이전트 자체의 보안&quot;과 &quot;에이전트가 수행하는 보안&quot; 두 가지 방향이 동시에 산업화됐다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AI 에이전트 보안이 독립적 산업 세그먼트로 확립됐다. 에이전트 신원 관리(Agent Identity)·권한 제한·감사 추적(Audit Trail)이 보안 설계의 기본 요소로 표준화되는 계기다. 국내 기업의 에이전트 도입 시 RSAC 2026 발표된 보안 아키텍처를 참조해야 한다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-27~28)&lt;br&gt;출처URL: https://www.youtube.com/watch?v=Akxf1oJzlx4 [4]&lt;br&gt;※ 검증: 해당 게시물에서 RSAC 2026 에이전트 보안 의제 세부 내용 확인&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 3] 오픈AI, Workspace Agents 정식 발표 + 에이전트 플랫폼 '트리플 런치'&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;오픈AI가 4월 22일 ChatGPT Business·Enterprise·Edu 대상 'Workspace Agents'를 발표했다. Codex 기반 에이전트가 Slack·Salesforce·Notion·Google Drive·MS 365를 직접 연결하고, 클라우드에서 영속 실행(persist)되며 트리거·스케줄로 자율 작업이 가능하다. 5월 6일까지 무료 제공 후 사용량 기반 과금으로 전환된다. 주목할 점은 같은 날 구글의 Gemini Enterprise Agent Platform과 세일즈포스 Agentforce × 구글 클라우드 확장 파트너십이 동시에 발표됐다는 사실이다. 엔터프라이즈 에이전트 시장이 '데이터 기반 스택 vs SaaS 기반 스택' 간 정면 대결 국면으로 진입했다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;에이전트 플랫폼 경쟁이 단일 회사의 속도 경쟁에서 생태계 표준 경쟁으로 전환됐다. MCP, A2A, Workspace Agents 각 프로토콜의 호환성과 데이터 보안이 기업 AI 도입의 핵심 선택 기준이 된다. 사스포칼립스(SaaSpocalypse)와 에이전트 플랫폼 부상이 맞물려 기업 소프트웨어 생태계 재편이 가속된다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-22)&lt;br&gt;출처URL: https://www.youtube.com/watch?v=Akxf1oJzlx4 [4]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 4] 테슬라 1분기 실적 — Optimus 로봇 연 1,000만 대 생산 목표 공개&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;테슬라가 4월 22일 2026년 1분기 실적을 발표하면서 피지컬 AI 핵심 전략을 함께 공개했다. 연간 자본지출을 전년 대비 67% 증가한 250억 달러 이상으로 상향 조정하며, 이 중 핵심은 Optimus 로봇 생산 확대다. Gigafactory Texas에 520만 sq ft 규모의 Optimus 전용 공장을 증설해 연간 1,000만 대 생산이 목표이며, Fremont 공장에는 100만 대 파일럿 라인을 전환한다. Optimus v.3 정식 공개는 2026년 7~8월로 예고됐다. 로보택시 서비스는 휴스턴·댈러스에서 무인 운영을 시작하고, 네덜란드에서는 EU 공식 승인을 획득했다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;테슬라 Optimus의 연 1,000만 대 목표는 피지컬 AI가 실험에서 제조 대량화 단계로 전환됐음을 상징한다. 피지컬 AI 부품 공급망(배터리·모터·센서)과 소프트웨어 OS 시장 전반에 파급 효과가 예상된다. 국내 페르소나AI 등 피지컬 AI OS 기업들에게는 글로벌 공급망 진입 기회가 열리는 분기점이다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-22)&lt;br&gt;출처URL: https://www.youtube.com/watch?v=Akxf1oJzlx4 [4]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 5] IBK기업은행, 전 직원 1만 명에 바이브 코딩 AI 교육 — 금융권 AX 전환 본격화&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;IBK기업은행(행장 장민영)이 5월 1일부터 본점 직원 약 1,000명을 대상으로 '바이브 코딩(Vibe Coding)' 교육과 자체 생성형 AI 모델 'IBK GenAI' 활용 교육을 시작했다. 바이브 코딩은 자연어로 코드를 생성하고 업무를 자동화하는 방식으로, IT 비전공자도 활용 가능하다. 교육 내용은 문서 자동 생성·데이터 분석·보고서 작성 등 실무 중심이며, 하반기에는 전국 영업점으로 확대될 예정이다. 행장은 취임사에서 &quot;조직 DNA를 AI 친화적으로 전면 재설계&quot;하겠다고 선언한 바 있다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;금융권의 AI 내재화 전략이 'AI 도구 구매'에서 '전 직원 AI 역량 내재화'로 전환되고 있다. 바이브 코딩의 전 직원 확산은 금융 에이전트 오케스트레이션 역량을 조직 내부에서 구축하겠다는 신호다. 국내 금융 규제 당국의 AI 활용 리스크 관리 기준 정립도 병행 과제로 부상한다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-01~05-01)&lt;br&gt;출처URL:&lt;br&gt;- 한국경제: https://www.hankyung.com/article/202604012054P [7]&lt;br&gt;- 월간HRD: https://www.khrd.co.kr/news/view.php?idx=5057056 [8]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 6] 정부, &quot;2026년 AI 해킹 원년&quot; 선포 — 보안 사고 시 매출액 10% 과징금&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;과학기술정보통신부와 KISA가 2026년을 'AI 해킹 원년'으로 공식 규정하며 보안 규제를 대폭 강화했다. 유출 정보가 AI와 결합해 지능형 범죄로 이어질 가능성이 커짐에 따라, 보안 사고 발생 시 기업 전체 매출의 최대 10%까지 징벌적 과징금을 부과하는 조치가 본격 시행됐다. 과기정통부는 &quot;AI를 활용한 공격이 현실화되고 클라우드 환경 취약점 악용 공격 등 사이버 위협이 지능화·고도화될 것&quot;이라며 AI 기반 예방·대응 체계를 구축하겠다고 밝혔다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;매출액 10% 과징금 도입은 AI 보안을 'IT 부서 업무'에서 '경영진 책임'으로 격상시키는 전환점이다. IDC는 &quot;2030년까지 대기업의 최대 20%가 부적절한 에이전트 제어로 소송·벌금·임원 해고를 경험할 것&quot;이라고 경고했다. AI 가드레일(Guard Rail)·실시간 이상 행위 탐지 시스템 도입이 기업 컴플라이언스의 핵심 요소가 된다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04 최신 발령)&lt;br&gt;출처URL:&lt;br&gt;- 보안뉴스: https://m.boannews.com/html/detail.html?tab_type=1&amp;amp;idx=141687 [9]&lt;br&gt;- 한겨레: https://www.hani.co.kr/arti/economy/it/1246073.html [10]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 7] 하네스 엔지니어링(Harness Engineering) — 모델 성능 경쟁을 추월하는 새 AI 패러다임&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;2026년 4월, AI 아키텍처 논의의 중심이 '더 강한 모델'에서 '더 통제 가능한 에이전트 인프라'로 이동했다. Midea AIRC의 'SemaClaw' 논문(arXiv, 2026.04)은 &quot;2026년 초 OpenClaw의 등장으로 수백만 명이 개인 AI 에이전트를 일상에 배포하기 시작했고, 이제 AI 엔지니어링의 패러다임이 프롬프트·컨텍스트 설계에서 하네스 엔지니어링(통제 가능하고 감사 가능하며 생산 신뢰성이 있는 시스템 전체 인프라 설계)으로 전환됐다&quot;고 선언했다. 앤스로픽 MCP를 활용한 결정론적 외부 검증 인터페이스(UAI), 재귀적 원자 분해(RAD), 상태 잠금(State Locking) 기법이 하네스 엔지니어링의 핵심 기술로 제시됐다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;모델 성능이 평준화된 환경에서 하네스 레이어가 진짜 제품 경쟁력의 원천이 되고 있다. MCP·A2A 등 프로토콜 표준을 장악하는 기업이 에이전트 에코시스템의 실질적 지배자가 된다. 국내 AI 에이전트 개발 기업들은 하네스 아키텍처 역량을 핵심 기술로 내재화해야 한다.&lt;br&gt;&lt;br&gt;(발행일: 2026-03~04 논의 집약)&lt;br&gt;출처URL:&lt;br&gt;- SemaClaw 논문 페이스북 공유: https://www.facebook.com/groups/cto.founder/posts/2753233488376527/ [6]&lt;br&gt;- arXiv:2604.17025 분석: https://arxiv.org/html/2604.17025v2 [5]&lt;br&gt;&lt;br&gt;***&lt;br&gt;&lt;br&gt;■ AI관련 논문 (3가지)&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;[논문 1] Harness as an Asset: Enforcing Determinism via the Convergent AI Agent Framework (CAAF)&lt;br&gt;[arXiv:2604.17025 — 하네스 자산화와 결정론적 에이전트 프레임워크]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;(저자 미공개). (2026). Harness as an asset: Enforcing determinism via the Convergent AI Agent Framework (CAAF). arXiv preprint arXiv:2604.17025. https://doi.org/10.48550/arXiv.2604.17025&lt;br&gt;&lt;br&gt;다운로드 URL: https://arxiv.org/pdf/2604.17025.pdf&lt;br&gt;(제출: 2026-04-21, v2: 2026-04-24)&lt;br&gt;&lt;br&gt;[연구 배경]&lt;br&gt;LLM 기반 에이전트는 본질적으로 확률론적(probabilistic)이다. 이는 산업 공학·의료·자율주행 등 결정론적(deterministic) 정확성이 요구되는 안전 필수 영역에서의 배포를 가로막는 근본적 장애물이었다. 기존 에이전틱 워크플로우는 생성 과정이 개방 루프(open-loop)여서 물리적 현실과의 정합성 보장이 불가능했다.[5]&lt;br&gt;&lt;br&gt;[연구 목적]&lt;br&gt;에이전틱 워크플로우를 개방 루프 생성에서 폐쇄 루프 Fail-Safe 결정론으로 전환하는 CAAF(Convergent AI Agent Framework)를 설계하고, 하네스(Harness)를 사후적 보조 수단이 아닌 핵심 설계 자산으로 재정의하는 것이 목적이다.[5]&lt;br&gt;&lt;br&gt;[연구 방법]&lt;br&gt;CAAF는 세 가지 핵심 기둥으로 구성된다:&lt;br&gt;&lt;br&gt;(1) RAD(Recursive Atomic Decomposition): 물리적 컨텍스트 방화벽을 갖춘 재귀적 원자 분해 — 복잡한 과제를 물리적 제약을 위반할 수 없는 최소 단위로 분해&lt;br&gt;&lt;br&gt;(2) Harness as an Asset: 도메인 불변식(Domain Invariants)을 기계 읽기 가능한 레지스트리로 형식화하고, UAI(Unified Assertion Interface)라는 결정론적 시맨틱-물리 변환기로 강제 적용. UAI는 앤스로픽 MCP를 활용해 AI 에이전트를 시뮬레이션 소프트웨어·EDA 도구·HiL 테스트 벤치·공식 검증 도구(TLA+) 등 결정론적 외부 검증 시스템에 연결함&lt;br&gt;&lt;br&gt;(3) Structured Semantic Gradients with State Locking: 단조적 비회귀(Monotonic Non-Regression)를 위한 구조화된 시맨틱 그래디언트와 상태 잠금&lt;br&gt;&lt;br&gt;[연구 결과]&lt;br&gt;- 폐쇄 루프 Fail-Safe 결정론 달성: AI 에이전트가 물리 법칙·안전 기준을 위반하는 출력을 생성할 수 없도록 강제하는 체계 입증&lt;br&gt;- UAI의 시맨틱-물리 변환이 자동차 제동 거리 계산 등 실제 안전 필수 시나리오에서 정확하게 작동함을 실증&lt;br&gt;- 하네스를 자산(Asset)으로 관리할 때 에이전트 신뢰성과 감사 가능성이 구조적으로 보장됨을 이론·실험으로 입증&lt;br&gt;&lt;br&gt;[연구 한계]&lt;br&gt;- 자동차·산업 공학 도메인 중심 검증으로, 의료·법률 등 다른 안전 필수 영역으로의 일반화 추가 연구 필요&lt;br&gt;- UAI의 외부 검증 시스템 연결에 MCP 프로토콜 의존으로 MCP 미지원 시스템에서의 적용 제한&lt;br&gt;- 실시간 임베디드 시스템에서의 UAI 연산 지연 최소화 방법 미검증&lt;br&gt;&lt;br&gt;[연구 기여]&lt;br&gt;- AI 에이전트 하네스를 '도구'가 아닌 '핵심 엔지니어링 자산'으로 재정의하는 최초의 체계적 프레임워크 제시&lt;br&gt;- 확률론적 LLM과 결정론적 산업 시스템 사이의 가교 아키텍처 설계 원칙 확립&lt;br&gt;- 피지컬 AI(로봇·자율주행·산업 자동화)의 안전 필수 배포를 위한 학문적·실용적 기반 마련&lt;br&gt;- 에이전트 보안 규제(RSAC 2026, 과기정통부 AI 가드레일)의 기술 구현 방향 제시&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;[논문 2] Toward Agentic and Self-Evolving Safety Evaluation of LLMs: SafeEvalAgent&lt;br&gt;[arXiv:2509.26100 — 에이전틱 자기진화 안전성 평가 프레임워크]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;(저자 복수). (2025). Toward agentic and self-evolving safety evaluation of LLMs. arXiv preprint arXiv:2509.26100. https://doi.org/10.48550/arXiv.2509.26100&lt;br&gt;&lt;br&gt;다운로드 URL: https://arxiv.org/pdf/2509.26100.pdf&lt;br&gt;(제출: 2025-09-29)&lt;br&gt;&lt;br&gt;[연구 배경]&lt;br&gt;LLM이 고위험 도메인에 급속히 통합되면서 신뢰할 수 있는 안전성·컴플라이언스 평가가 필수적이다. 그러나 기존 정적(static) 벤치마크는 AI 위험과 규제의 동적 특성에 대응하기 어려운 한계가 있다. EU AI Act, NIST AI RMF 등 규제는 지속적으로 업데이트되는데, 정적 평가 데이터셋은 새로운 위협 유형과 규제 변화를 반영하지 못한다.[11]&lt;br&gt;&lt;br&gt;[연구 목적]&lt;br&gt;평가를 일회성 감사(one-time audit)가 아닌 연속적·자기진화 과정(continuous, self-evolving process)으로 재정의하고, 정책 문서를 자율적으로 소화해 지속 진화하는 안전성 벤치마크를 자동 생성하는 다중 에이전트 프레임워크 SafeEvalAgent를 설계하는 것이 목적이다.[11]&lt;br&gt;&lt;br&gt;[연구 방법]&lt;br&gt;- 다중 에이전트 파이프라인 설계: 정책 문서 수집 에이전트 → 테스트 케이스 생성 에이전트 → 평가 실행 에이전트 → 결과 분석·정제 에이전트의 순환 구조&lt;br&gt;- 자기진화 평가 루프(Self-evolving Evaluation Loop): 평가 결과를 학습해 점점 더 정교하고 타겟화된 테스트 케이스를 자동 생성&lt;br&gt;- 적용 규정: EU AI Act, NIST AI RMF 등 주요 AI 규제 문서를 비구조 형식 그대로 처리&lt;br&gt;- 평가 대상: GPT-5 등 최신 LLM의 반복 평가를 통해 안전율 변화 추적&lt;br&gt;&lt;br&gt;[연구 결과]&lt;br&gt;- 핵심 발견: GPT-5의 EU AI Act 기준 안전율이 1차 평가 72.50%에서 자기진화 반복 후 36.36%로 지속 하락&lt;br&gt;- 이는 정적 평가에서는 드러나지 않는 깊은 취약점이 동적 자기진화 평가에서 표면화됨을 의미&lt;br&gt;- 기존 정적 평가 방식의 근본적 한계 실증적으로 확인&lt;br&gt;- 자기진화 평가 시스템이 기존 방법보다 AI 취약점을 더 광범위하게 탐지하는 우월성 입증&lt;br&gt;&lt;br&gt;[연구 한계]&lt;br&gt;- SafeEvalAgent 자체의 안전성(평가 에이전트가 유해 콘텐츠 생성에 오용될 가능성) 미검증&lt;br&gt;- 다중 에이전트 파이프라인의 높은 연산 비용이 실시간 지속 평가 적용의 제약&lt;br&gt;- 영어 정책 문서 중심이며 한국어 AI 규제 문서 처리 성능 검증 필요&lt;br&gt;&lt;br&gt;[연구 기여]&lt;br&gt;- AI 안전 평가를 정적 데이터셋에서 동적·자기진화 과정으로 전환하는 최초의 실증 프레임워크 제시&lt;br&gt;- EU AI Act·NIST RMF 등 실제 규제 문서를 자동으로 벤치마크화하는 파이프라인 설계&lt;br&gt;- 과기정통부 AI 사회정책 포럼, RSAC 2026 에이전트 보안 의제와 직결된 규제 기반 AI 안전 평가 연구의 학문적 기초&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;[논문 3] Your Agent May Misevolve: Emergent Risks in Self-evolving LLM Agents&lt;br&gt;[OpenReview ICLR 2026 — 오진화(Misevolution) 리스크]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;(저자 복수). (2026). Your agent may misevolve: Emergent risks in self-evolving LLM agents. In Proceedings of ICLR 2026 Workshop. OpenReview. https://openreview.net/forum?id=Fd1jgQQW28&lt;br&gt;&lt;br&gt;다운로드 URL: https://openreview.net/pdf/Fd1jgQQW28&lt;br&gt;(발행: 2026-01-25)&lt;br&gt;&lt;br&gt;[연구 배경]&lt;br&gt;자기진화 에이전트(Self-evolving Agents)는 환경과의 자율적 상호작용으로 성능을 개선하는 새로운 AI 패러다임이다. 그러나 기존 안전 연구는 에이전트의 '진화 편향(Evolutionary Deviation)', 즉 의도치 않은 방향으로의 진화 위험을 체계적으로 다루지 않았다.[12]&lt;br&gt;&lt;br&gt;[연구 목적]&lt;br&gt;에이전트의 자기진화가 의도하지 않은 방향으로 이탈하는 '오진화(Misevolution)' 개념을 최초로 공식화하고, 이로 인한 바람직하지 않거나 유해한 결과가 어떻게 창발적으로 발생하는지 실증하며, 위험 완화 전략을 제시하는 것이 목적이다.[12]&lt;br&gt;&lt;br&gt;[연구 방법]&lt;br&gt;- 오진화 위험의 체계적 분류 및 개념화&lt;br&gt;- 실험 1: 메모리 축적에 따른 안전 정렬 저하 — 에이전트가 환경 상호작용을 통해 메모리를 쌓을수록 안전 정렬이 어떻게 약화되는지 측정&lt;br&gt;- 실험 2: 도구 생성·재사용 과정에서의 의도치 않은 취약점 도입 — 에이전트가 스스로 생성한 도구가 보안 취약점을 내포하는 패턴 분석&lt;br&gt;- 다양한 자기진화 시나리오에서 오진화 발생 빈도와 유형 정량화&lt;br&gt;&lt;br&gt;[연구 결과]&lt;br&gt;- 두 가지 핵심 오진화 패턴 발견:&lt;br&gt;&amp;nbsp;&amp;nbsp;① 메모리 축적 후 안전 정렬 저하: 에이전트가 경험을 축적할수록 초기 안전 제약이 점진적으로 약화됨&lt;br&gt;&amp;nbsp;&amp;nbsp;② 도구 생성·재사용의 취약점 도입: 에이전트가 자율적으로 생성한 도구가 예상치 못한 보안 취약점을 내포함&lt;br&gt;- 이 두 패턴이 단독 또는 복합적으로 발생하여 유해 결과를 야기함을 실증&lt;br&gt;- &quot;자기진화 에이전트를 위한 새로운 안전 패러다임이 시급히 필요하다&quot;는 결론 도달&lt;br&gt;&lt;br&gt;[연구 한계]&lt;br&gt;- 특정 에이전트 아키텍처 및 실험 환경에 한정된 관찰&lt;br&gt;- 오진화 완화 전략의 실용적 구현 방법은 향후 연구 과제로 남음&lt;br&gt;- 실제 배포 환경의 복잡성을 완전히 재현하기 어렵다는 실험 설계의 한계&lt;br&gt;&lt;br&gt;[연구 기여]&lt;br&gt;- '오진화(Misevolution)' 개념을 AI 안전 연구의 공식 용어로 최초 정립&lt;br&gt;- 자기진화 에이전트의 창발적 위험을 체계적으로 분류·실증한 최초의 연구&lt;br&gt;- 하네스 엔지니어링(Harness as an Asset), 헌법적 AI 진화 프레임워크와 함께 자율 에이전트 안전 3대 연구 축의 하나로 자리매김&lt;br&gt;- 과기정통부 AI 사회정책 포럼, RSAC 2026 에이전트 보안 아키텍처 설계에 직접 활용 가능한 위험 유형론 제공&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://couplewith.tistory.com/m/943&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://couplewith.tistory.com/m/943&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;AI &amp;amp; Tech 데일리 브리핑 — 2026년 4월 30일&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;AI &amp;amp; Tech 데일리 브리핑 — 2026년 4월 30일발행일: 2026년 4월 30일기간: 2026.04.27 ~ 04.30분야: #AI서비스 / #피지컬AI / #에이전트 #AI인프라 /#보안규제 / #AI모델경쟁 / #자율지능■ 요약시사점2026년 4월 마&quot; data-og-host=&quot;couplewith.tistory.com&quot; data-og-source-url=&quot;https://couplewith.tistory.com/m/943&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bIKtEC/dJMb8Z3uHsY/D8vP1yYtTDbxirKCvOJdk0/img.png?width=800&amp;amp;height=446&amp;amp;face=0_0_800_446&quot; data-og-url=&quot;https://couplewith.tistory.com/m/943&quot;&gt;&lt;a href=&quot;https://couplewith.tistory.com/m/943&quot; target=&quot;_blank&quot; data-source-url=&quot;https://couplewith.tistory.com/m/943&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bIKtEC/dJMb8Z3uHsY/D8vP1yYtTDbxirKCvOJdk0/img.png?width=800&amp;amp;height=446&amp;amp;face=0_0_800_446')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;AI &amp;amp; Tech 데일리 브리핑 — 2026년 4월 30일&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;AI &amp;amp; Tech 데일리 브리핑 — 2026년 4월 30일발행일: 2026년 4월 30일기간: 2026.04.27 ~ 04.30분야: #AI서비스 / #피지컬AI / #에이전트 #AI인프라 /#보안규제 / #AI모델경쟁 / #자율지능■ 요약시사점2026년 4월 마&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;couplewith.tistory.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;</description>
      <category>Tech-Trends</category>
      <category>AI서비스</category>
      <category>AI에이전</category>
      <category>AI에이전트</category>
      <category>AI인프라</category>
      <category>AI인프라 경쟁(앤스로픽</category>
      <category>AI자동화</category>
      <category>딥시크 등)</category>
      <category>보안 규제 강화</category>
      <category>인공지능 AGI</category>
      <category>인공지능 모델 벤치마크(LMSYS 등)</category>
      <category>자기진화</category>
      <category>자율지능</category>
      <category>재미나이</category>
      <category>페르소나ai</category>
      <category>피지컬ai</category>
      <category>하네스</category>
      <category>헌법적ai</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/946</guid>
      <comments>https://couplewith.tistory.com/946#entry946comment</comments>
      <pubDate>Fri, 1 May 2026 08:02:28 +0900</pubDate>
    </item>
    <item>
      <title>AI 오케스트레이션과 Prompt 엔지니어링: RPA에서 지능형 자동화로의 전환</title>
      <link>https://couplewith.tistory.com/945</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/E1a5c/dJMcaf7tXfk/5pPXgU34DXNgM27TNgqto1/tfile.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/E1a5c/dJMcaf7tXfk/5pPXgU34DXNgM27TNgqto1/tfile.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/E1a5c/dJMcaf7tXfk/5pPXgU34DXNgM27TNgqto1/tfile.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FE1a5c%2FdJMcaf7tXfk%2F5pPXgU34DXNgM27TNgqto1%2Ftfile.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1376&quot; height=&quot;768&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;br&gt;#AI오케스트레이션 #Prompt엔지니어링&lt;br&gt;#AI기술의영향 #AI비즈니스동향 #RPA진화&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;AI 오케스트레이션과 Prompt 엔지니어링: RPA에서 지능형 자동화로의 전환&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;  기업들이 AI 오케스트레이션과 Prompt 엔지니어링을 통해 RPA에서 지능형 자동화로 전환하는 흐름을 이해하고, 각 산업별 적용 가능성을 탐색하기 위해 작성해 보았습니다.&lt;br&gt;(용어들이 새롭게 나오지만 결국 진화된 RPA 이야기 )&lt;br&gt;&lt;br&gt;AI라는 기술이 생성형모델을 거쳐 챗봇으로 일반인에게 대중화시장을 열었고&amp;nbsp;&amp;nbsp;기존 기업 시장에서 RPA와 LLM Agent와 결합되어 SaaS시장의 변화를 이루고 있습니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;1. AI 오케스트레이션의 개념&lt;br&gt;&lt;br&gt;AI 오케스트레이션은 여러 AI 모델·에이전트·도구를 하나의 통합된 시스템에서 조율·관리하는 기술입니다. 단일 모델로는 해결하기 어려운 복잡한 업무를 자동화하고 최적화하는 데 활용되며, ‘오케스트라 지휘자’처럼 다양한 AI 구성 요소가 협력하도록 연결·통제합니다.&amp;nbsp;&amp;nbsp;&lt;br&gt;- 핵심 기능: 업무 라우팅, 맥락 전달, 실행 순서 관리, 오류 처리, 거버넌스&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;2. 관련 상용 및 오픈소스 기술&lt;br&gt;&lt;br&gt;□ 상용 솔루션&lt;br&gt;- IBM watsonx Orchestrate&amp;nbsp;&amp;nbsp;&lt;br&gt;- Microsoft Copilot Studio + Azure AI Foundry&amp;nbsp;&amp;nbsp;&lt;br&gt;- DataRobot AI Platform&amp;nbsp;&amp;nbsp;&lt;br&gt;- Domo AI Orchestration&lt;br&gt;&lt;br&gt;□ 오픈소스 솔루션&lt;br&gt;- LangChain&amp;nbsp;&amp;nbsp;&lt;br&gt;- Apache Airflow&amp;nbsp;&amp;nbsp;&lt;br&gt;- Kubeflow&amp;nbsp;&amp;nbsp;&lt;br&gt;- Kestra&amp;nbsp;&amp;nbsp;&lt;br&gt;- Ray + Ray Serve&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;3. Prompt 엔지니어링의 발전&lt;br&gt;&lt;br&gt;Prompt 엔지니어링은 LLM을 효과적으로 활용하기 위해 질문을 설계하고 결과를 최적화하는 기술입니다. 최근에는 단순 질의 설계를 넘어 데이터 품질 관리·워크플로우 통합·조직적 Harnessing까지 확장되고 있습니다.&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;- 질문하는 법: 단순 질의 → 맥락 포함 질의&amp;nbsp;&amp;nbsp;&lt;br&gt;- 결과 데이터 품질: Chain-of-Thought, RAG, Self-Consistency 기법 활용&amp;nbsp;&amp;nbsp;&lt;br&gt;- Harness (조직적 조정): 개별 프롬프트 → 조직 전체 워크플로우 관리&amp;nbsp;&amp;nbsp;&lt;br&gt;- 오케스트레이션과 결합: 프롬프트 체인, 메모리 관리, 도구 호출을 통한 지능형 에이전트 협업&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;4. AI 기술로 인한 비즈니스 변화&lt;br&gt;&lt;br&gt;- 업무 자동화: RPA의 규칙 기반 자동화 → LLM 기반 비정형 데이터 처리 및 의사결정 자동화&amp;nbsp;&amp;nbsp;&lt;br&gt;- 검색과 정보 활용: 키워드 검색 → GPT 기반 맥락 이해·요약·추천&amp;nbsp;&amp;nbsp;&lt;br&gt;- 데이터 분석: 정형 데이터 중심 → 비정형·멀티모달 데이터 활용 확대&amp;nbsp;&amp;nbsp;&lt;br&gt;- 개발 방식: 스크립트 중심 → Low-code/No-code + 프롬프트 기반 개발&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;5. 기업에 미치는 영향&lt;br&gt;&lt;br&gt;- 비용 절감: 운영비용 20~30% 절감 가능&amp;nbsp;&amp;nbsp;&lt;br&gt;- 경쟁력 강화: AI 활용 능력이 기업 경쟁력의 핵심 요소로 부상&amp;nbsp;&amp;nbsp;&lt;br&gt;- 조직 변화: IT와 비즈니스 부서 간 협업 확대&amp;nbsp;&amp;nbsp;&lt;br&gt;- 규제 대응: AI 출력 품질·투명성·윤리성 관리 필요&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;6. 분야별 적용 사례&lt;br&gt;&lt;br&gt;금융&lt;br&gt;- 고객 상담 자동화, 이상 거래 탐지, 규제 준수 보고&amp;nbsp;&amp;nbsp;&lt;br&gt;- 효과: 고객 만족도 향상, 사기 예방, 비용 절감&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;제조&lt;br&gt;- 품질 검사, 예측 유지보수, 공급망 관리&amp;nbsp;&amp;nbsp;&lt;br&gt;- 효과: 생산 효율성 향상, 다운타임 감소&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;의료&lt;br&gt;- 의료 기록 요약, 진단 지원, 행정 자동화&amp;nbsp;&amp;nbsp;&lt;br&gt;- 효과: 의료진 업무 부담 감소, 환자 맞춤형 치료 지원&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;공공/행정&lt;br&gt;- 민원 처리, 정책 분석, 행정 문서 자동화&amp;nbsp;&amp;nbsp;&lt;br&gt;- 효과: 행정 효율성 증대, 국민 서비스 품질 향상&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;유통/서비스&lt;br&gt;- 고객 맞춤 추천, 재고 관리, 마케팅 자동화&amp;nbsp;&amp;nbsp;&lt;br&gt;- 효과: 매출 증대, 고객 충성도 강화&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;7. 결론&lt;br&gt;AI 오케스트레이션과 Prompt 엔지니어링은 RPA의 한계를 넘어 기업 운영 전반을 지능화하는 핵심 기술로 자리잡고 있습니다. 이는 단순 효율성 개선을 넘어 고객 경험 혁신, 데이터 활용 확대, 거버넌스 강화라는 비즈니스 환경 변화를 촉발하고 있습니다.&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;  참고 문헌&lt;br&gt;- IBM, watsonx Orchestrate Overview&amp;nbsp;&amp;nbsp;&lt;br&gt;- Microsoft, Azure AI Foundry &amp;amp; Copilot Studio Documentation&amp;nbsp;&amp;nbsp;&lt;br&gt;- DataRobot, AI Platform Capabilities&amp;nbsp;&amp;nbsp;&lt;br&gt;- LangChain Documentation&amp;nbsp;&amp;nbsp;&lt;br&gt;- Apache Software Foundation, Airflow Project&amp;nbsp;&amp;nbsp;&lt;br&gt;- Kubeflow Community, Kubeflow Documentation&amp;nbsp;&amp;nbsp;&lt;br&gt;- Kestra, Open Source Orchestration Platform&amp;nbsp;&amp;nbsp;&lt;br&gt;- Brown et al., Language Models are Few-Shot Learners (OpenAI, 2020)&amp;nbsp;&amp;nbsp;&lt;br&gt;- Google Research, Chain-of-Thought Prompting Elicits Reasoning in Large Language Models (2022)&amp;nbsp;&amp;nbsp;&lt;br&gt;- Gartner, Hyperautomation Trends and Forecasts&amp;nbsp;&amp;nbsp;&lt;br&gt;- McKinsey &amp;amp; Company, The State of AI in 2025&amp;nbsp;&amp;nbsp;&lt;br&gt;- AI 오케스트레이션: RPA에서 지능형 자동화로의 전환 &lt;br&gt;https://couplewith.tistory.com/m/944&lt;/p&gt;</description>
      <category>Tech-Trends</category>
      <category>#RPA #AI오케스트레이션 #지능형자동화 #AI기반비즈니스변화AI 오케스트레이션: RPA에서 지능형 자동화로의 전환1. AI 오케스트레이션의 개념AI 오케스트레이션은 여러 AI 모델&amp;middot;에이전트&amp;middot;도구를 하나의 통합된 시스템에서 조율&amp;middot;관리하는 기술입니다. 단일 모델로는 해결하기 어려운 복잡한 업무를 자동화하고 최적화하는 데 활용되며</category>
      <category>AI자동화</category>
      <category>RPA</category>
      <category>맥락 전달</category>
      <category>실행 순서 관리</category>
      <category>인공지능 AGI</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/945</guid>
      <comments>https://couplewith.tistory.com/945#entry945comment</comments>
      <pubDate>Thu, 30 Apr 2026 08:24:01 +0900</pubDate>
    </item>
    <item>
      <title>AI 오케스트레이션: RPA에서 지능형 자동화로의 전환</title>
      <link>https://couplewith.tistory.com/944</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFxcaq/dJMcagrNzgy/MoXJGhern0evIyqyIsLzsK/tfile.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFxcaq/dJMcagrNzgy/MoXJGhern0evIyqyIsLzsK/tfile.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFxcaq/dJMcagrNzgy/MoXJGhern0evIyqyIsLzsK/tfile.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFxcaq%2FdJMcagrNzgy%2FMoXJGhern0evIyqyIsLzsK%2Ftfile.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1376&quot; height=&quot;768&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;#RPA #AI오케스트레이션 #지능형자동화 #AI기반비즈니스변화&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;AI 오케스트레이션: RPA에서 지능형 자동화로의 전환&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;1. AI 오케스트레이션의 개념&lt;br&gt;&lt;br&gt;AI 오케스트레이션은 여러 AI 모델·에이전트·도구를 하나의 통합된 시스템에서 조율·관리하는 기술입니다. 단일 모델로는 해결하기 어려운 복잡한 업무를 자동화하고 최적화하는 데 활용되며, ‘오케스트라 지휘자’처럼 다양한 AI 구성 요소가 협력하도록 연결·통제합니다.&amp;nbsp;&amp;nbsp;&lt;br&gt;- 핵심 기능: 업무 라우팅, 맥락 전달, 실행 순서 관리, 오류 처리, 거버넌스&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;2. 관련 상용 및 오픈소스 기술&lt;br&gt;&lt;br&gt;■상용 솔루션&lt;br&gt;- IBM watsonx Orchestrate: 엔터프라이즈급 AI 오케스트레이션 플랫폼&amp;nbsp;&amp;nbsp;&lt;br&gt;- Microsoft Copilot Studio + Azure AI Foundry: MS 생태계와 통합된 오케스트레이션 레이어&amp;nbsp;&amp;nbsp;&lt;br&gt;- DataRobot AI Platform: 모델 배포·모니터링·자동화 기능 포함&amp;nbsp;&amp;nbsp;&lt;br&gt;- Domo AI Orchestration: 비즈니스 데이터 분석과 AI 모델 연결&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;■오픈소스 솔루션&lt;br&gt;- LangChain: LLM 기반 애플리케이션 개발 프레임워크&amp;nbsp;&amp;nbsp;&lt;br&gt;- Apache Airflow: DAG 기반 워크플로우 오케스트레이션&amp;nbsp;&amp;nbsp;&lt;br&gt;- Kubeflow: Kubernetes 기반 ML 오케스트레이션 플랫폼&amp;nbsp;&amp;nbsp;&lt;br&gt;- Kestra: YAML 기반 선언적 오케스트레이션 플랫폼&amp;nbsp;&amp;nbsp;&lt;br&gt;- Ray + Ray Serve: 분산 AI 모델 실행 및 오케스트레이션&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;3. AI 기술로 인한 비즈니스 변화&lt;br&gt;- 업무 자동화: RPA의 규칙 기반 자동화 → LLM 기반 비정형 데이터 처리 및 의사결정 자동화&amp;nbsp;&amp;nbsp;&lt;br&gt;- 검색과 정보 활용: 키워드 검색 → GPT 기반 맥락 이해·요약·추천&amp;nbsp;&amp;nbsp;&lt;br&gt;- 데이터 분석: 정형 데이터 중심 → 비정형·멀티모달 데이터 활용 확대&amp;nbsp;&amp;nbsp;&lt;br&gt;- 개발 방식: 스크립트 중심 → Low-code/No-code + 프롬프트 기반 개발&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;4. 기업에 미치는 영향&lt;br&gt;- 비용 절감: 운영비용 20~30% 절감 가능&amp;nbsp;&amp;nbsp;&lt;br&gt;- 경쟁력 강화: AI 활용 능력이 기업 경쟁력의 핵심 요소로 부상&amp;nbsp;&amp;nbsp;&lt;br&gt;- 조직 변화: IT와 비즈니스 부서 간 경계 약화, 협업 확대&amp;nbsp;&amp;nbsp;&lt;br&gt;- 규제 대응: AI 의사결정의 투명성·윤리성 확보 필요&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;5. 분야별 적용 사례&lt;br&gt;&lt;br&gt;금융&lt;br&gt;- 고객 상담 자동화, 이상 거래 탐지, 규제 준수 보고&amp;nbsp;&amp;nbsp;&lt;br&gt;- 효과: 고객 만족도 향상, 사기 예방, 비용 절감&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;제조&lt;br&gt;- 품질 검사, 예측 유지보수, 공급망 관리&amp;nbsp;&amp;nbsp;&lt;br&gt;- 효과: 생산 효율성 향상, 다운타임 감소&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;의료&lt;br&gt;- 의료 기록 요약, 진단 지원, 행정 자동화&amp;nbsp;&amp;nbsp;&lt;br&gt;- 효과: 의료진 업무 부담 감소, 환자 맞춤형 치료 지원&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;공공/행정&lt;br&gt;- 민원 처리, 정책 분석, 행정 문서 자동화&amp;nbsp;&amp;nbsp;&lt;br&gt;- 효과: 행정 효율성 증대, 국민 서비스 품질 향상&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;유통/서비스&lt;br&gt;- 고객 맞춤 추천, 재고 관리, 마케팅 자동화&amp;nbsp;&amp;nbsp;&lt;br&gt;- 효과: 매출 증대, 고객 충성도 강화&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;---&lt;br&gt;&lt;br&gt;6. 결론&lt;br&gt;AI 오케스트레이션은 RPA의 한계를 넘어 기업 운영 전반을 지능화하는 핵심 기술로 자리잡고 있습니다. 이는 단순 효율성 개선을 넘어 고객 경험 혁신, 데이터 활용 확대, 거버넌스 강화라는 비즈니스 환경 변화를 촉발하고 있습니다.&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;  참고 문헌&lt;br&gt;- IBM, watsonx Orchestrate Overview&amp;nbsp;&amp;nbsp;&lt;br&gt;- Microsoft, Azure AI Foundry &amp;amp; Copilot Studio Documentation&amp;nbsp;&amp;nbsp;&lt;br&gt;- DataRobot, AI Platform Capabilities&amp;nbsp;&amp;nbsp;&lt;br&gt;- LangChain, LangChain Documentation&amp;nbsp;&amp;nbsp;&lt;br&gt;- Apache Software Foundation, Airflow Project&amp;nbsp;&amp;nbsp;&lt;br&gt;- Kubeflow Community, Kubeflow Documentation&amp;nbsp;&amp;nbsp;&lt;br&gt;- Kestra, Open Source Orchestration Platform&amp;nbsp;&amp;nbsp;&lt;br&gt;- McKinsey &amp;amp; Company, The State of AI in 2025&amp;nbsp;&amp;nbsp;&lt;br&gt;- Gartner, Hyperautomation Trends and Forecasts&amp;nbsp;&amp;nbsp;&lt;br&gt;- https://couplewith.tistory.com/m/944&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>
      <category>Tech-Trends</category>
      <category>#RPA #AI오케스트레이션 #지능형자동화 #AI기반비즈니스변화AI 오케스트레이션: RPA에서 지능형 자동화로의 전환1. AI 오케스트레이션의 개념AI 오케스트레이션은 여러 AI 모델&amp;middot;에이전트&amp;middot;도구를 하나의 통합된 시스템에서 조율&amp;middot;관리하는 기술입니다. 단일 모델로는 해결하기 어려운 복잡한 업무를 자동화하고 최적화하는 데 활용되며</category>
      <category>&amp;lsquo;오케스트라 지휘자&amp;rsquo;처럼 다양한 AI 구성 요소가 협력하도록 연결&amp;middot;통제합니다. - 핵심 기능: 업무 라우팅</category>
      <category>거버넌스 2. 관련 상용 및 오픈소스 기술상용 솔루션- IBM watsonx Orchestrate: 엔터프라이즈급 AI 오케스트레이션 플랫폼 - Microsoft Copilot Studio + Azure AI Foundry: MS 생태계와 통합된 오케스트레이션 레이어 - DataRobot AI Platform: 모델 배포&amp;middot;모니터링&amp;middot;자동화 기능 포함 - Domo AI Orchestration: 비즈니스 데이터 분석과 AI 모델 연결 오픈소스 솔루</category>
      <category>맥락 전달</category>
      <category>실행 순서 관리</category>
      <category>오류 처리</category>
      <category>협업 확대 - 규제 대응: AI 의사결정의 투명성&amp;middot;윤리성 확보 필요</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/944</guid>
      <comments>https://couplewith.tistory.com/944#entry944comment</comments>
      <pubDate>Thu, 30 Apr 2026 08:05:46 +0900</pubDate>
    </item>
    <item>
      <title>AI &amp;amp; Tech 데일리 브리핑 &amp;mdash; 2026년 4월 30일</title>
      <link>https://couplewith.tistory.com/943</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buAYw7/dJMcadIzvaR/h20gmXNQdcJbNpCTJZBUXK/tfile.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buAYw7/dJMcadIzvaR/h20gmXNQdcJbNpCTJZBUXK/tfile.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buAYw7/dJMcadIzvaR/h20gmXNQdcJbNpCTJZBUXK/tfile.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuAYw7%2FdJMcadIzvaR%2Fh20gmXNQdcJbNpCTJZBUXK%2Ftfile.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1376&quot; height=&quot;768&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;br&gt; &lt;b&gt;AI &amp;amp; Tech 데일리 브리핑 — 2026년 4월 30일&lt;br&gt;&lt;/b&gt;&lt;br&gt;발행일: 2026년 4월 30일&lt;br&gt;기간: 2026.04.27 ~ 04.30&lt;br&gt;분야: #AI서비스 / #피지컬AI / #에이전트 #AI인프라 /#보안규제 / #AI모델경쟁 / #자율지능&lt;br&gt;&lt;br&gt;&lt;br&gt;■ 요약시사점&lt;br&gt;&lt;br&gt;2026년 4월 마지막 주, AI 산업의 세 가지 전환이 동시에 가시화됐다.&lt;br&gt;&lt;br&gt;첫째, 딥시크 V4 출시와 97% 가격 인하 승부수(4/26~27)로 오픈AI GPT-5.5 대비 초저가 경쟁이 점화됐다. AI 모델 가격의 중간층이 붕괴되고, 에이전트 API 비용 경쟁이 전면전으로 확산됐다.[1][2]&lt;br&gt;&lt;br&gt;둘째, GSAT 2026(4/29~30, 창원)이 '피지컬 AI'를 국가 핵심 창업 아젠다로 공식화하며, 제조·조선·방산 분야와 피지컬 AI 스타트업의 산업 연계가 본격 시작됐다.[3][4]&lt;br&gt;&lt;br&gt;셋째, 케임브리지 대안금융센터·BIS·IMF의 공동 보고서(4/28)가 &quot;금융회사가 규제당국보다 2배 이상 빠른 속도로 AI를 도입 중이며, 오픈AI에 대한 과도 의존(76%)이 제3자 위험&quot;이라고 경고했다. 규제당국 스스로도 에이전트형 AI를 도입해야 한다는 이례적 권고가 주목된다.[5][6]&lt;br&gt;&lt;br&gt;학술 연구에서는 에이전트형 커머스 보안 ▪︎SoK(arXiv:2604.15367), &lt;br&gt;▪︎피지컬 월드 모델 기반 로봇학습(arXiv:2511.07416),&lt;br&gt;▪︎ 자율 에이전트 종합 벤치마크 AgencyBench(arXiv:2601.11044)가 현장 이슈와 직결된 성과를 제시했다.[7][8][9]&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;■ AI&amp;amp;Tech 주요 뉴스 (7가지)&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 1] 딥시크 V4 공개, GPT-5.5 대비 가격 97% 낮춰 — AI 가격 전쟁 전면화&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;중국 AI 기업 딥시크가 2026년 4월 26일 신형 AI 모델 V4 플래시·프로 시리즈를 공식 발표했다. V4-프로는 총 1조 6천억 파라미터의 혼합전문가(MoE) 구조로, 이 중 490억 개가 활성화된다. V4-플래시는 총 2,840억 개, 활성 130억 개 파라미터이며 두 모델 모두 최대 100만 토큰 컨텍스트를 지원한다. 전체 모델의 입력 비용을 기존 대비 90% 인하했으며, V4-프로에는 5월 5일까지 추가 75% 할인을 제공해 100만 토큰당 입력 비용이 0.0036달러까지 낮아졌다. 오픈AI GPT-5.5 대비 최대 97% 저렴한 수준으로, 딥시크는 이 인하가 영구 적용된다고 밝혔다. 단, 컴퓨팅 자원 부족으로 V4-프로 서비스는 제한적이며, 하반기 화웨이 어센드 950 클러스터 가동 시 정상화 예정이다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AI 모델 가격의 중간층 붕괴가 가속화되고 있다. 에이전트 API 비용이 100분의 1 수준으로 낮아지면 기업의 에이전트 배포 진입 장벽이 사실상 소멸한다. 앤스로픽·오픈AI·구글의 프리미엄 전략과 딥시크의 극저가 전략 간의 구조적 긴장이 2026년 하반기 AI 시장 재편의 핵심 변수가 된다. 국내 기업의 AI API 조달 전략과 모델 다변화 검토가 시급하다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-26~28)&lt;br&gt;출처URL:&lt;br&gt;- 매일경제: https://www.mk.co.kr/news/world/12029299 [1]&lt;br&gt;- 알파경제: https://m.alphabiz.co.kr/news/amp.html?ncode=1065566560553437 [2]&lt;br&gt;- 뉴시스: https://www.newsis.com/view/NISX20260428_0003609149 [10]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 2] GSAT 2026 창원 개막 — 피지컬 AI 중심 창업 생태계 국가화&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;4월 29일부터 30일까지 창원컨벤션센터에서 글로벌 융복합 창업페스티벌 'GSAT 2026(지샛)'이 개막했다. 경남도·중소벤처기업부·경남창조경제혁신센터·한국전기연구원이 공동 주관하며 '피지컬 AI'를 핵심 주제로 내세웠다. 대기업·투자사 114곳, 글로벌 14개국이 참여하는 역대 최대 규모로, 조선·기계·항공 등 경남 주력 제조업과 AI를 접목한 '현장형 창업 실험장'을 표방했다. LG전자 홈 로봇 CLOiD 전시, 구글 AI 특별 강연, 유명 석학 라운드테이블, 휴머노이드 로봇 체험관 등이 포함됐다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;피지컬 AI가 학술·전시를 넘어 국가 창업 정책의 핵심 테마로 격상됐다. 제조·방산·물류 현장 수요와 AI 스타트업 생태계의 연결이 지역 산업 전환의 모델로 자리 잡는 분기점이다. 피지컬 AI 스타트업의 엔젤·시드 투자 수요가 급증할 전망이다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-29)&lt;br&gt;출처URL:&lt;br&gt;- 연합뉴스: https://v.daum.net/v/20260415110659437 [3]&lt;br&gt;- 매일경제: https://m.mk.co.kr/amp/12017642 [11]&lt;br&gt;- 세계환경신문: https://www.e-newsp.com/news/article.html?no=86734 [4]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 3] 케임브리지·BIS·IMF 공동 보고서 — &quot;금융규제당국도 에이전트형 AI 직접 도입해야&quot;&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;케임브리지 대안금융센터와 BIS(국제결제은행)·IMF의 공동 연구 보고서가 4월 28일 로이터를 통해 보도됐다. 151개국 대상 설문 결과, 금융회사들이 규제당국보다 두 배 이상 빠른 속도로 AI를 도입 중이며, 스스로 '선도적 AI 도입'을 보고한 규제기관은 10곳 중 2곳에 불과하다. 업계 AI 도입 데이터를 수집하는 규제기관은 24%에 그치며 43%는 2년 내 수집 계획조차 없다. 보고서는 앤스로픽 미토스 같은 강력한 AI가 소프트웨어 취약점을 악용해 인간 감독을 무력화할 가능성과, 오픈AI에 대한 과도한 의존(전체 응답자의 69%, 업계 76%)을 제3자 위험으로 지적했다. 규제당국이 인간 감독 없이도 조치를 취할 수 있는 에이전트형 AI를 자체 도입해야 한다는 이례적 권고도 포함됐다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AI 규제 체계가 '감시자→감시받는 자'의 역설에 빠진 구조적 위기가 국제기구 보고서로 공식화됐다. 국내 금융당국의 AI 리스크 데이터 수집·에이전트 도입 전략 재검토가 시급하며, 단일 AI 공급사 의존 리스크 분산 정책 수립이 필요하다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-28~29)&lt;br&gt;출처URL:&lt;br&gt;- 한국경제: https://www.hankyung.com/article/202604293782i [5]&lt;br&gt;- 뉴스터미널: https://news.dlwlrmaon.com/articles/17133 [6]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 4] 미·중 AI 기술 격차 소멸 — 오픈AI·딥시크, 벤치마크 넘어 '실전 경쟁' 돌입&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;조선비즈 분석(4/13)에 따르면 2026년 3월 기준 앤스로픽의 최상위 모델 '클로드 오퍼스 4.6'이 바이트댄스의 '돌라 시드 2.0' 대비 단 2.7%(39점) 차이로 앞서고 있어 미·중 AI 기술 격차가 사실상 소멸됐다. 이에 따라 향후 AI 패권 경쟁의 무게 중심이 벤치마크 점수가 아닌 △추론 속도 △비용 효율 △에이전트 생태계 통합력 △안보·규제 대응이라는 실전 역량으로 이동하고 있다. LMSYS Chatbot Arena 기준으로 상위 10개 모델 중 중국 기업 모델이 4개에 달한다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;모델 성능 동등화는 AI 경쟁의 전선을 '더 좋은 모델'에서 '더 싼 모델', '더 빠른 모델', '더 안전한 모델'로 이동시킨다. 벤치마크 기반 투자·도입 의사결정보다 실제 업무 성과 기반 평가가 요구되며, 딥시크 V4 가격 인하 전략이 이 흐름과 직결된다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-13~14)&lt;br&gt;출처URL: https://biz.chosun.com/it-science/ict/2026/04/14/LLSDOV6PUBGZ5FW3UBRMS2CCBI/ [12]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 5] 로보틱스·피지컬 AI 2026 — 'ChatGPT 모먼트' 아직 미도달, 6가지 투자 전망&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;GeekNews가 소개한 2026년 로보틱스·피지컬 AI 투자 전망 보고서(4/26)가 주목받고 있다. 핵심 예측은 &quot;로보틱스의 ChatGPT 모먼트는 다가오고 있지만 아직 도달하지 않았다&quot;는 것이다. Physical Intelligence의 π0 모델이 인간 수준의 민첩성으로 빨래 개기에 성공했으며, 2026년 2월 발표된 EgoScale 논문은 사전학습 데이터 규모에 따라 로봇 정책 성능이 예측 가능하게 향상됨을 입증했다. 로보틱스 파운데이션 모델이 LLM과 동일한 데이터 기반 향상 곡선을 따른다는 첫 강력한 증거다. 6대 투자 테마는 △VLA 모델 △촉각 센서 △sim-to-real 전이 △로봇 데이터 인프라 △에너지 효율 하드웨어 △로봇 OS 플랫폼이다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;로봇 파운데이션 모델의 스케일링 법칙 확인은 피지컬 AI에 대한 대규모 데이터 투자를 정당화하는 결정적 근거다. 페르소나AI 등 국내 로봇 OS 플랫폼 기업들의 기술 포지셔닝과 직결되며, VLA 모델 데이터셋 구축이 핵심 투자 과제로 부상한다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-26)&lt;br&gt;출처URL: https://news.hada.io/topic?id=28932 [13]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 6] '피지컬 AI 2026: 이미 시작된 미래' 출간 — 산업 보고서 성격의 전략서 등장&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;4월 14일 '피지컬 AI 2026: 이미 시작된 미래'가 출간됐다. 생성형 AI 이후 한국이 어디에 투자해야 할지를 제시하는 산업 보고서 성격의 전략서로, 공장·병원·물류센터·가정·도시 인프라로 확장하는 피지컬 AI 혁명의 한국적 좌표를 다룬다. 기술 소개서를 넘어 한국 제조업 경쟁력과 피지컬 AI 생태계를 연결하는 정책·투자 가이드로 평가받고 있다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;피지컬 AI가 산업 정책·투자 전략의 핵심 레퍼런스로 격상된 것을 보여주는 사례다. 학계·산업계·정책 입안자 모두가 공통 언어로 피지컬 AI를 논의하기 시작한 전환점으로, 관련 연구자와 벤처 투자자의 전략 수립에 즉각 활용 가능한 자료다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-14)&lt;br&gt;출처URL: https://www.newswire.co.kr/newsRead.php?no=1032379 [14]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 7] 2026 AI 컴플라이언스 대변혁 — 금융당국, 에이전트 AI 6대 위험 유형 공식 식별&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;미국 금융산업규제청(FINRA)이 2026년 연간 규제감독보고서에서 에이전트형 AI의 6가지 위험 유형을 공식 식별했다: △자율성 △범위·권한 △감사가능성·투명성 △데이터 민감성 △도메인 지식 부족 △보상·강화 설계 오류. 영국 금융감독청(FCA)도 AI가 '마치 고객 본인처럼' 의사결정하는 시나리오를 규제 프레임워크에 반영하기 시작했다. 매일경제는 2026년을 'AI 컴플라이언스 대변혁의 해'로 규정했다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;FINRA의 6대 위험 분류는 국내 금융당국의 AI 에이전트 규제 프레임워크 설계의 직접적 레퍼런스가 될 것이다. 금융 AI 에이전트를 도입하는 기업은 이 6가지 위험 유형을 내부 AI 거버넌스 체크리스트에 즉시 반영해야 한다.&lt;br&gt;&lt;br&gt;(발행일: 2026-03-17)&lt;br&gt;출처URL: https://www.mk.co.kr/news/society/11989292 [15]&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;■ AI관련 논문 (3가지)&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;[논문 1] SoK: Security of Autonomous LLM Agents in Agentic Commerce&lt;br&gt;[arXiv:2604.15367 — 에이전트형 커머스 보안 체계화]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;(저자 미공개). (2026). SoK: Security of autonomous LLM agents in agentic commerce. arXiv preprint arXiv:2604.15367. https://doi.org/10.48550/arXiv.2604.15367 [7]&lt;br&gt;&lt;br&gt;다운로드 URL: https://arxiv.org/pdf/2604.15367.pdf&lt;br&gt;&lt;br&gt;[연구 배경]&lt;br&gt;자율 LLM 에이전트가 구매·결제·계약 등 금융·커머스 워크플로우에 점차 통합되면서, 에이전트 특유의 보안 취약점이 기존 사이버 보안 체계와 근본적으로 다른 위협 구조를 만들어낸다. 에이전트는 추론(Reasoning)→도구 실행(Tooling)→자산 관리(Custody)→결제(Settlement)→시장 영향력(Market Harm)→규제 준수(Compliance)까지 이어지는 풀체인 리스크를 가지며, 기존 보안 프레임워크는 이 연쇄 장애를 체계적으로 분석하지 못했다. [7]&lt;br&gt;&lt;br&gt;[연구 목적]&lt;br&gt;자율 LLM 에이전트가 커머스·금융 자동화에 활용될 때 발생하는 보안 위협을 체계화(Systematization of Knowledge, SoK)하고, 5개 차원의 통합 위협 분류 체계와 12가지 교차 레이어 공격 벡터를 정의하며, 레이어별 방어 아키텍처를 제시하는 것이 목적이다. [7]&lt;br&gt;&lt;br&gt;[연구 방법]&lt;br&gt;- 학술 논문·프로토콜 문서·산업 보고서·실제 사고 데이터를 체계적으로 수집한 공개 코퍼스 분석&lt;br&gt;- 5개 위협 차원 분류: 에이전트 무결성(Agent Integrity), 트랜잭션 권한(Transaction Authorization), 에이전트 간 신뢰(Inter-Agent Trust), 시장 조작(Market Manipulation), 규제 준수(Regulatory Compliance)&lt;br&gt;- 레이어 간 취약점 전파 경로 분석: 예) LLM 레이어의 프롬프트 인젝션 → 블록체인 레이어의 무단 토큰 이체로 전파되는 12가지 공격 벡터 도출&lt;br&gt;- 현행 에이전트-결제 프로토콜의 인가(Authorization) 허점을 보완하는 레이어별 방어 아키텍처 제안 [7]&lt;br&gt;&lt;br&gt;[연구 결과]&lt;br&gt;- 자율 에이전트 커머스 보안의 핵심 발견: 보안은 단일 레이어 문제가 아닌 LLM 안전성·프로토콜 설계·아이덴티티·시장 구조·규제에 걸친 교차 레이어 문제임을 입증&lt;br&gt;- 12가지 교차 레이어 공격 벡터와 각각의 공격자 사전 조건 및 완화 방법론 상세 도출&lt;br&gt;- 기존 에이전트 결제 프로토콜(A2A·MCP)이 인가 허점으로 인해 무단 트랜잭션 취약성을 내재하고 있음 확인&lt;br&gt;- 연구 로드맵과 안전한 에이전트 커머스를 위한 벤치마크 어젠다 제시 [7]&lt;br&gt;&lt;br&gt;[연구 한계]&lt;br&gt;- 실증 사고 데이터가 아직 제한적이며, 대부분 개념 증명(PoC) 수준&lt;br&gt;- 제안된 방어 아키텍처의 실제 시스템에서의 성능·확장성 미검증&lt;br&gt;- 규제 준수 분류는 미국·EU 중심으로, 국내 금융규제 특수성 반영 미흡&lt;br&gt;&lt;br&gt;[연구 기여]&lt;br&gt;- 에이전트형 커머스 보안을 최초로 체계화한 SoK 논문으로, 학술 및 산업 표준 프레임워크 역할&lt;br&gt;- FINRA·FCA 등 금융당국의 6대 에이전트 위험 분류와 직접 연계되는 학문적 기반 제공&lt;br&gt;- 에이전트 결제 프로토콜 설계·보안 감사 프레임워크 개발의 핵심 레퍼런스로 즉시 활용 가능&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;[논문 2] PhysWorld: Robot Learning from a Physical World Model&lt;br&gt;[arXiv:2511.07416 — 물리 세계 모델 기반 로봇 학습]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;(저자). (2025). PhysWorld: Robot learning from a physical world model. arXiv preprint arXiv:2511.07416. https://doi.org/10.48550/arXiv.2511.07416 [8]&lt;br&gt;&lt;br&gt;다운로드 URL: https://arxiv.org/pdf/2511.07416.pdf&lt;br&gt;(제출: 2025-11-09)&lt;br&gt;&lt;br&gt;[연구 배경]&lt;br&gt;최근 비디오 생성 모델은 언어 명령과 이미지로부터 사실적인 시각적 데모를 합성할 수 있게 됐다. 이는 로보틱스 학습을 위한 강력한 훈련 신호 원천을 제공하지만, 생성 비디오에서 픽셀 모션을 직접 로봇 동작으로 변환하면 물리 법칙을 무시하게 되어 부정확한 조작이 발생한다는 근본적 한계가 있었다. 실제 로봇 데이터 수집 없이 제로샷 일반화 가능한 로봇 조작을 구현하는 방법이 부재했다. [8]&lt;br&gt;&lt;br&gt;[연구 목적]&lt;br&gt;비디오 생성과 물리 세계 재구성을 결합한 PhysWorld 프레임워크를 통해, 실제 로봇 데이터 수집 없이 물리적으로 정확한 로봇 조작 궤적을 생성하고 제로샷 일반화 가능한 로봇 정책을 학습하는 것이 목적이다. [8]&lt;br&gt;&lt;br&gt;[연구 방법]&lt;br&gt;3단계 파이프라인 구성:&lt;br&gt;1단계: 단일 이미지와 언어 명령으로 태스크 조건부 비디오 생성&lt;br&gt;2단계: 생성된 비디오에서 객체 중심 물리 세계 재구성(3D 구조 및 물리 특성 추출)&lt;br&gt;3단계: 객체 중심 잔차 강화학습(Object-Centric Residual RL)으로 생성 비디오 모션을 물리적으로 정확한 로봇 실행 가능 궤적으로 접지(grounding)&lt;br&gt;&lt;br&gt;이 구조로 묵시적 시각적 지도(implicit visual guidance)를 물리적으로 실행 가능한 로봇 궤적으로 변환하며, 실제 로봇 데이터 수집을 완전히 대체한다. [8]&lt;br&gt;&lt;br&gt;[연구 결과]&lt;br&gt;- 실제 로봇 데이터 없이 피킹·배치·삽입 등 복잡한 조작 과제에서 물리적으로 정확한 실행 달성&lt;br&gt;- 인간 데모만 모방(Imitation Learning) 시 약 85% 태스크 성공률에서, 강화학습(RLHF) 병합 후 95% 이상으로 개선&lt;br&gt;- 제로샷 일반화: 훈련에 사용되지 않은 새로운 객체·환경에서도 높은 성공률 유지 [8]&lt;br&gt;&lt;br&gt;[연구 한계]&lt;br&gt;- 비디오 생성 모델의 물리적 정확도 한계가 최종 로봇 성능에 직접 영향을 미침&lt;br&gt;- 실시간 동적 환경(빠르게 움직이는 객체, 불안정한 지형)에서의 성능 미검증&lt;br&gt;- 객체 중심 재구성이 복잡한 다객체 접촉 시나리오에서 한계 발생 가능&lt;br&gt;&lt;br&gt;[연구 기여]&lt;br&gt;- 비디오 생성과 물리 재구성을 결합한 로봇 학습 패러다임 최초 제시&lt;br&gt;- 실제 로봇 데이터 없는 제로샷 일반화 달성으로 로봇 학습 비용을 근본적으로 낮추는 새 경로 제시&lt;br&gt;- EgoScale 논문의 파운데이션 스케일링 법칙과 결합될 경우, 피지컬 AI VLA 모델 학습 데이터 인프라 혁신에 직접 기여&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;[논문 3] AgencyBench: Benchmarking the Frontiers of Autonomous Agents in Daily AI Usage&lt;br&gt;[arXiv:2601.11044 — 자율 에이전트 일상 사용 종합 벤치마크]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;(저자). (2026). AgencyBench: Benchmarking the frontiers of autonomous agents in daily AI usage. arXiv preprint arXiv:2601.11044. https://doi.org/10.48550/arXiv.2601.11044 [9]&lt;br&gt;&lt;br&gt;다운로드 URL: https://arxiv.org/pdf/2601.11044.pdf&lt;br&gt;(v4 업데이트: 2026-04 기준)&lt;br&gt;&lt;br&gt;[연구 배경]&lt;br&gt;자율 에이전트는 AI 개발의 중심 과제로 부상했으나, 실제 일상 AI 사용에서 에이전트의 능력을 종합 평가하는 공식 벤치마크가 부재했다. 기존 벤치마크(SWE-bench, WebArena 등)는 보안 취약점과 편향된 과제 설계로 신뢰성 논란이 이어졌으며, 에이전트형 AI의 6가지 핵심 역량(계획·추론·코드 생성·도구 사용·안전·다중 회전 대화)을 통합 평가하는 체계가 없었다. [9]&lt;br&gt;&lt;br&gt;[연구 목적]&lt;br&gt;실제 일상 AI 사용으로부터 도출된 포괄적 에이전트 역량 벤치마크 AgencyBench를 구축하고, 6가지 핵심 에이전트 역량을 실제 사용 시나리오에서 공정하게 평가하는 표준 프레임워크를 제시하는 것이 목적이다. [9]&lt;br&gt;&lt;br&gt;[연구 방법]&lt;br&gt;- 실제 일상 AI 사용 데이터에서 벤치마크 시나리오 도출(합성 과제 최소화)&lt;br&gt;- 6대 핵심 에이전트 역량 정의 및 평가 과제 설계&lt;br&gt;- 안전성 보장: 코드 생성·셸 실행 포함 과제에서 모든 평가를 격리된 Docker 컨테이너(원격 샌드박스) 내 통제된 네트워크 접근으로 제한&lt;br&gt;- 공개 배포 예정으로 신뢰할 수 있는 안전한 자율 에이전트 개발 촉진 목적 명시 [9]&lt;br&gt;&lt;br&gt;[연구 결과]&lt;br&gt;- 현행 최상위 LLM들이 복잡한 다단계 에이전트 과제에서 성능 한계를 명확히 드러냄&lt;br&gt;- 에이전트 역량 간 불균형: 단순 도구 사용은 우수하나, 장기 계획·자율 수정 능력은 현저히 미흡&lt;br&gt;- 격리 샌드박스 평가 방식이 보상 해킹·리워드 조작을 효과적으로 차단함을 실증 (UC 버클리 취약점 보고의 직접적 해결책 제시)&lt;br&gt;- 안전성 평가 항목에서 상위 모델도 악의적 사용 방어에 취약한 경우 존재 [9]&lt;br&gt;&lt;br&gt;[연구 한계]&lt;br&gt;- 일상 사용 기반 과제가 고도화된 엔터프라이즈 전문 도메인(의료·법률·금융)을 충분히 반영하지 못함&lt;br&gt;- Docker 격리 환경이 실제 배포 환경의 복잡한 시스템 통합을 완전히 모방하기 어려움&lt;br&gt;- 벤치마크 자체가 공개되면 향후 훈련 데이터에 포함될 데이터 오염 위험&lt;br&gt;&lt;br&gt;[연구 기여]&lt;br&gt;- 에이전트 평가의 보안·신뢰성 문제를 격리 샌드박스로 해결한 최초의 표준화 벤치마크&lt;br&gt;- UC 버클리가 밝힌 기존 벤치마크 취약점의 실질적 대안 평가 체계 제시&lt;br&gt;- LMSYS 리더보드의 구조적 한계를 보완하며, AI 에이전트 평가 생태계 재설계의 방향 제공&lt;br&gt;- 악의적 자동화(사이버 공격 등) 목적 사용 명시 금지로 AI 안전 연구 윤리 기준 선도&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;  오늘의 핵심 한 문장:&lt;br&gt;&quot;딥시크 V4가 AI 가격 전쟁을 전면화하고, GSAT가 피지컬 AI를 창업 국가 아젠다로 격상시키는 사이, 국제기구 보고서는 규제당국 스스로도 에이전트 AI를 도입해야 한다고 경고했다 — 기술·산업·거버넌스 삼중 전환의 4월이 저문다.&quot;&lt;br&gt;&lt;br&gt;&lt;br&gt;(참고)&lt;br&gt;https://smartbus.tistory.com/m/108&lt;br&gt;&lt;br&gt;https://smartbus.tistory.com/m/107&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>
      <category>Tech-Trends</category>
      <category>AI&amp;amp;Tech 뉴스</category>
      <category>LLM</category>
      <category>인공지능 AGI</category>
      <category>인공지능과비즈니스</category>
      <category>인공지능기술동향</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/943</guid>
      <comments>https://couplewith.tistory.com/943#entry943comment</comments>
      <pubDate>Thu, 30 Apr 2026 06:33:19 +0900</pubDate>
    </item>
    <item>
      <title>  AI &amp;amp; Tech 데일리 브리핑 &amp;mdash; 2026년 4월 29일</title>
      <link>https://couplewith.tistory.com/942</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nPQhi/dJMcadBLf34/uEVYYkSPLqRe74yKHgVztK/tfile.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nPQhi/dJMcadBLf34/uEVYYkSPLqRe74yKHgVztK/tfile.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nPQhi/dJMcadBLf34/uEVYYkSPLqRe74yKHgVztK/tfile.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnPQhi%2FdJMcadBLf34%2FuEVYYkSPLqRe74yKHgVztK%2Ftfile.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1376&quot; height=&quot;768&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt; &lt;br&gt;  AI &amp;amp; Tech 데일리 브리핑 — 2026년 4월 29일&lt;br&gt;&lt;br&gt;■ 요약시사점&lt;br&gt;&lt;br&gt;첫째, 구글 딥마인드 CEO 데미스 하사비스가 알파고 10주년을 맞아 방한, 향후 10년 안에 AGI 도달과 '과학의 황금기' 실현을 선언했다. 한국을 로보틱스·피지컬 AI 글로벌 선도 국가로 지목한 점도 주목된다.&lt;br&gt;&lt;br&gt;둘째, 과학기술정보통신부가 AI 사회정책 포럼을 공식 출범시켜, AI 노동·일자리·창작자 권리·청소년 보호 등 사회 구조 전환에 대한 선제적 규제 논의를 시작했다.&lt;br&gt;&lt;br&gt;셋째, 2026 월드IT쇼가 피지컬 AI 핵심 전시관으로 6만 8천여 명을 끌어들이며 산업 대전환을 가시화했다. 이 세 흐름은 AI가 연구 단계를 넘어, 사회 정책·산업 현장·글로벌 패권 경쟁 전선으로 확장되고 있음을 명확히 보여준다.&lt;br&gt;&lt;br&gt;▪︎ 학술 연구에서는 자기진화 에이전트 프로토콜 자동설계(Autogenesis, arXiv:2604.15034), &lt;br&gt;▪︎헌법적 AI의 다중 에이전트 확장(arXiv:2602.00755), &lt;br&gt;▪︎보상 없는 자율 진화 학습(arXiv:2604.18131)이 현장 이슈와 직결된 성과를 제시했다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;■ AI&amp;amp;Tech 주요 뉴스 (7가지)&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 1] 하사비스, 10년 만에 이세돌 만나 &quot;10년 뒤 AGI로 질병 정복&quot;&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;구글 딥마인드 공동 창업자 겸 CEO 데미스 하사비스가 알파고 대국 10주년을 맞아 방한, 29일 서울 웨스틴 조선호텔에서 '구글 포 코리아 2026'을 개최했다. 이세돌 사범과의 대담에서 &quot;알파고 대국은 현대 AI의 시작점&quot;이라며 향후 10년 내 AGI 실현과 이를 기반으로 한 인류 번영의 '황금기'를 열 것이라고 선언했다. 구글코리아는 AI 스킬링 브랜드 'AI올림'과 '구글 AI 캠퍼스' 설립도 함께 발표했다. 하사비스는 한국을 차세대 로보틱스·제조 자동화·엣지 컴퓨팅의 글로벌 선도 국가로 지목했다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AGI 실현 타임라인을 구체화한 빅테크 CEO의 공식 발언은 산업·투자·정책 전반에 파급력을 가진다. 특히 한국 피지컬 AI 생태계(페르소나AI 등)를 글로벌 파트너로 인정한 점은 국내 기업의 기술 외교 및 투자 유치에 긍정적 신호다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-28~29)&lt;br&gt;출처URL:&lt;br&gt;- 전자신문: https://www.etnews.com/20260429000360 [1]&lt;br&gt;- 구글 공식 블로그: https://blog.google/intl/ko-kr/company-news/inside-google/google-for-korea-2026-kr/ [2]&lt;br&gt;- 노컷뉴스: https://www.nocutnews.co.kr/news/6510358 [5]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 2] 과기정통부, 'AI 사회정책 포럼' 출범 — &quot;AI發 사회 변화 선제 대응&quot;&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;과학기술정보통신부가 4월 27일 서울 양재 엘타워에서 정보통신정책연구원(KISDI)· 한국지능정보사회진흥원(NIA)과 함께 'AI 사회정책 포럼' 출범식을 100여 명 참석 하에 개최했다. 한양대 이상욱 철학과 교수를 위원장으로, 학계·산업계·시민단체·공공 전문가 42명이 참여한다. △기술·규범 △상생·혁신 △사회·신뢰 등 3개 분과가 창작자 권리와 학습 데이터, AI 투명성, AI 노동과 일자리, 청소년 보호와 과의존 등 핵심 쟁점을 심층 논의한다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;국내 AI 규제가 기술 안전성을 넘어 노동·창작·청소년 등 사회 전 영역으로 확장되는 분수령이다. EU AI Act 전면 시행 시기에 맞춰 국내 AI 거버넌스 체계를 정비하는 선제적 조치로, 기업의 AI 서비스 컴플라이언스 전략 재검토가 요구된다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-26~27)&lt;br&gt;출처URL:&lt;br&gt;- 전자신문: https://www.etnews.com/20260427000348 [3]&lt;br&gt;- KISDI 공식: https://ai.kisdi.re.kr/aieth/bbs/B0000086/view.do?nttId=1189&amp;amp;menuNo=400019 [6]&lt;br&gt;- 연합뉴스: https://www.yna.co.kr/amp/view/AKR20260424135200017 [7]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 3] 2026 월드IT쇼, 피지컬 AI 시대 개막 — 6만 8천여 명 방문&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;2026 월드IT쇼(4/22~25, 코엑스)가 '피지컬 AI 시대 개막'을 선언하며 17개국 460개사 참여, 6만 8천여 명이 방문(전년 대비 약 2만 명 증가)하며 성료됐다. 국내 통신 3사(SKT·KT·LGU+)가 최초 전원 참여, 피지컬 AI·자율 로봇·에이전트 기반 산업 솔루션이 전시됐다. K-피지컬 AI 라운드테이블도 열려 글로벌 협력 논의가 진행됐다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;방문자 급증은 피지컬 AI 전환이 관망 단계를 넘어 실수요로 이어지고 있음을 보여준다. 통신 3사의 동반 참여는 AI 인프라·서비스 경쟁이 플랫폼에서 물리 세계로 확장됐음을 공식화한다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-25)&lt;br&gt;출처URL: https://www.korea.kr/briefing/pressReleaseView.do?newsId=156758143 [4]&lt;br&gt;&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 4] 모델보다 하네스(Harness)가 중요해진 시대 — AI 에이전트 인프라 전쟁의 서막&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;2026년 3월 기준 AI 업계 핵심 논의는 &quot;모델 성능보다 하네스(에이전트 도구·메모리·런타임)가 진짜 제품이 되고 있다&quot;는 구조 전환이다. MCP(Model Context Protocol), A2A 등 에이전트 간 통신 표준이 하네스 레이어 패권 경쟁으로 이어지며, 인프라 레이어를 장악하는 기업이 AI 에이전트 생태계의 실질적 지배자가 된다는 전망이다. 앤스로픽·구글·마이크로소프트가 각각 MCP·Vertex AI·Azure AI Foundry로 하네스 표준화 전쟁에 나선 상황이다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AI 인프라 경쟁의 전선이 모델 파라미터 수에서 '에이전트 실행 환경' 레이어로 이동하고 있다. 기업 AI 도입 전략은 모델 선택보다 하네스 아키텍처 설계를 우선 고려해야 하며, 개방형 표준 vs 독점 생태계 간의 선택이 핵심 의사결정이 된다.&lt;br&gt;&lt;br&gt;(발행일: 2026-03-11)&lt;br&gt;출처URL: https://wikidocs.net/blog/@jaehong/11362/ [9]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 5] OpenAI, 美 정부 AI 도입 길 열다 — 공공 AI 플랫폼 협약&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;OpenAI가 2026년 4월 미국 연방 정부의 공공 서비스 AI 도입을 위한 공식 협약을 체결, GPT 기반 모델과 에이전트를 정부 행정·국방 시스템에 통합하는 경로를 열었다. 이는 AI 에이전트의 공공 인프라화가 민간을 넘어 국가 행정 수준으로 확대되는 전환점이다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AI 에이전트의 공공 행정 침투는 보안·투명성·감사 가능성(Auditability) 기준을 더욱 강화하는 방향으로 규제 논의를 이끌 것이다. 국내 공공 AI 도입 전략에도 참조 사례가 될 전망이다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-28)&lt;br&gt;출처URL: https://www.instagram.com/p/DXp53OgGLo-/ [10]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;[뉴스 6] 구글 Cloud Next 2026 — AI 추론 전용 TPU 8i·훈련 전용 TPU 8t 동시 공개&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;구글이 2026년 4월 22일 Google Cloud Next 2026에서 AI 훈련 전용 'TPU 8t'와 추론 전용 'TPU 8i' 두 종의 신형 AI 칩을 동시에 공개했다. 목적별 최적화 아키텍처를 분리해 에이전트 인프라 효율과 비용을 동시에 개선하겠다는 전략이다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AI 칩 설계가 범용 GPU에서 '훈련·추론 목적 특화 분리' 시대로 전환되고 있다. 앤스로픽·딥시크와의 인프라 경쟁에서 자체 칩 보유 여부가 결정적 경쟁우위가 되며, 국내 반도체 기업의 AI 특화 칩 개발 전략에 직접적 영향을 미친다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-22)&lt;br&gt;출처URL: https://www.instagram.com/p/DW3fvXsmN14/ [11]&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;■ AI관련 논문 (3가지)&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;[논문 1] Autogenesis: A Self-Evolving Agent Protocol&lt;br&gt;[arXiv:2604.15034 — 자기진화 에이전트 프로토콜]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;Zhang, W., Zhao, Z., Wen, H., Wu, Y., Yin, M., An, B., &amp;amp; Wang, M. (2026). Autogenesis: A self-evolving agent protocol. arXiv preprint arXiv:2604.15034. https://doi.org/10.48550/arXiv.2604.15034&lt;br&gt;&lt;br&gt;다운로드 URL: https://arxiv.org/pdf/2604.15034.pdf&lt;br&gt;(최초 제출: 2026-04-16, v2: 2026-04-21)&lt;br&gt;&lt;br&gt;[연구 배경]&lt;br&gt;LLM 기반 에이전트 시스템은 복잡한 장기 과제 해결에 큰 가능성을 보여왔으나, 기존 에이전트 프로토콜(A2A, MCP 등)은 엔티티 간 수명주기 관리, 컨텍스트 관리, 버전 추적, 안전한 진화 업데이트 인터페이스가 미명세(under-specified)되어 있다. 이로 인해 모놀리식 구성과 부서지기 쉬운 글루 코드(brittle glue code)가 양산되며, 에이전트 시스템의 자율 진화가 제한된다는 구조적 한계가 있었다.&lt;br&gt;&lt;br&gt;[연구 목적]&lt;br&gt;진화 대상(What evolves)과 진화 방법(How evolution occurs)을 분리하는 자기진화 프로토콜 AGP(Autogenesis Protocol)를 설계하고, 이를 기반으로 다중 에이전트 시스템 AGS(Autogenesis System)를 구축하는 것이 목적이다. 특히 장기 계획 수립과 이질적 자원 간 도구 사용이 요구되는 복잡한 벤치마크에서 자기진화의 실효성을 입증한다.&lt;br&gt;&lt;br&gt;[연구 방법]&lt;br&gt;AGP를 두 레이어로 설계:&lt;br&gt;- RSPL(Resource Substrate Protocol Layer): 프롬프트, 에이전트, 도구, 환경, 메모리를 명시적 상태·수명주기·버전 인터페이스를 갖는 프로토콜 등록 리소스로 모델링&lt;br&gt;- SEPL(Self Evolution Protocol Layer): 개선 제안→평가→커밋하는 폐쇄 루프 오퍼레이터 인터페이스를 명세, 감사 가능한 계보(Lineage)와 롤백(Rollback) 지원&lt;br&gt;&lt;br&gt;AGP 기반으로 AGS(Autogenesis System)를 구현해, 실행 중 프로토콜 등록 리소스를 동적으로 인스턴스화·검색·정제하는 다중 에이전트 시스템을 구축하고 다수의 챌린징 벤치마크에서 평가했다.&lt;br&gt;&lt;br&gt;[연구 결과]&lt;br&gt;- 장기 계획 수립 및 도구 사용 벤치마크에서 강력한 기존 베이스라인 대비 일관된 성능 향상 달성&lt;br&gt;- 에이전트 리소스 관리와 폐쇄 루프 자기진화의 효과성 입증&lt;br&gt;- 버전 추적과 롤백 메커니즘으로 진화 과정의 감사 가능성 확보&lt;br&gt;&lt;br&gt;[연구 한계]&lt;br&gt;- 특정 벤치마크 환경에 최적화되어 실제 엔터프라이즈 배포 환경에서의 내구성 미검증&lt;br&gt;- 프로토콜 등록 리소스의 폭발적 증가 시 검색 효율 저하 가능성&lt;br&gt;- 안전·보안 관련 진화 제한 메커니즘에 대한 심층 논의 부재&lt;br&gt;&lt;br&gt;[연구 기여]&lt;br&gt;- 에이전트 프로토콜(A2A·MCP)의 구조적 한계를 해결하는 최초의 자기진화 프로토콜 아키텍처 제시&lt;br&gt;- 에이전트 하네스 레이어의 자율 진화를 가능하게 하는 학문적 토대 마련&lt;br&gt;- 코드 공개로 오픈소스 에이전트 생태계의 표준화 논의에 실질적 기여&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;[논문 2] Evolving Interpretable Constitutions for Multi-Agent Coordination&lt;br&gt;[arXiv:2602.00755 — 헌법적 AI의 다중 에이전트 확장]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;Kumar, U., Saito, A., Niranjani, H., Yessou, R., &amp;amp; Tan, P. X. (2026). Evolving interpretable constitutions for multi-agent coordination. arXiv preprint arXiv:2602.00755. https://doi.org/10.48550/arXiv.2602.00755&lt;br&gt;&lt;br&gt;다운로드 URL: https://arxiv.org/pdf/2602.00755.pdf&lt;br&gt;(제출: 2026-01-31)&lt;br&gt;&lt;br&gt;[연구 배경]&lt;br&gt;기존 헌법적 AI(Constitutional AI)는 단일 모델 정렬에 고정된 원칙을 사용한다. 그러나 다중 에이전트 시스템은 창발적 사회 동역학(emergent social dynamics)을 통해 단일 모델과 근본적으로 다른 정렬 도전 과제를 만들어낸다. 개별 에이전트가 집단 복지와 개인 이익 사이의 긴장을 어떻게 조율하는지에 대한 체계적 연구가 부재했다.&lt;br&gt;&lt;br&gt;[연구 목적]&lt;br&gt;다중 에이전트 LLM 시스템에서 행동 규범을 자동 발견하는 Constitutional Evolution 프레임워크를 제시하고, 생존 압력이 있는 그리드 월드 시뮬레이션을 통해 개인 복지와 집단 복지 간의 긴장을 정량화하는 것이 목적이다. 인간이 명시적으로 설계하지 않아도 협동 규범이 자동 진화될 수 있음을 입증한다.&lt;br&gt;&lt;br&gt;[연구 방법]&lt;br&gt;- 생존 압력이 있는 그리드 월드 시뮬레이션 환경 구축&lt;br&gt;- 사회 안정성 점수 S ∈&amp;nbsp;&amp;nbsp;정의: 생산성·생존율·갈등 지표를 결합한 종합 측정치&lt;br&gt;- LLM 기반 유전 프로그래밍(LLM-driven genetic programming)과 다중 섬 진화(multi-island evolution) 알고리즘 적용&lt;br&gt;- 비교군: 적대적 헌법(adversarial), 막연한 친사회적 원칙(&quot;도움이 되고, 해롭지 않고, 정직하라&quot;), Claude 4.5 Opus가 목표를 알고 설계한 헌법 vs 자동 진화 헌법(C*)&lt;br&gt;&lt;br&gt;[연구 결과]&lt;br&gt;- 적대적 헌법: 사회 붕괴(S = 0)&lt;br&gt;- 막연한 친사회 원칙: 불일관 조율(S = 0.249)&lt;br&gt;- Claude 4.5 Opus 인간 설계 최고 성능: 중간 수준(S = 0.332)&lt;br&gt;- 자동 진화 헌법 C*: S = 0.556 ± 0.008 (인간 설계 대비 123% 향상, N=10)&lt;br&gt;- C*의 핵심 발견: 소통 최소화(사회적 행동 0.9% vs 기존 62.2%)가 장황한 조율보다 우수, 갈등 완전 제거 달성&lt;br&gt;- 협동 규범은 처방(prescribe)이 아니라 발견(discover)될 수 있음 입증&lt;br&gt;&lt;br&gt;[연구 한계]&lt;br&gt;- 그리드 월드라는 추상적 환경에 한정, 실제 복잡한 엔터프라이즈·공공 서비스 도메인 일반화 미검증&lt;br&gt;- 진화된 헌법 C*의 해석 가능성은 확보했으나 신뢰 가능한 배포를 위한 안전성 보장 메커니즘 미비&lt;br&gt;- 다중 섬 진화의 계산 비용이 실시간 운영 시스템에서 적용 가능한지 미검증&lt;br&gt;&lt;br&gt;[연구 기여]&lt;br&gt;- 헌법적 AI를 단일 모델에서 다중 에이전트 시스템으로 확장한 최초의 체계적 연구&lt;br&gt;- 협동 규범의 자동 진화 가능성을 수학적으로 입증해, 자기진화 자율지능 시스템의 사회 정렬 설계에 새로운 방향 제시&lt;br&gt;- AI 에이전트 사회의 거버넌스 프레임워크 설계에 직접 활용 가능한 학문적 기초 제공&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;[논문 3] Training LLM Agents for Spontaneous, Reward-Free Self-Evolution via World Knowledge Exploration&lt;br&gt;[arXiv:2604.18131 — 보상 없는 자발적 자기진화 학습]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;Zhang, Q., Ma, D., Fang, T., Li, J., Tang, J., Chen, N., Mi, H., &amp;amp; Wang, Y. (2026). Training LLM agents for spontaneous, reward-free self-evolution via world knowledge exploration. arXiv preprint arXiv:2604.18131. https://doi.org/10.48550/arXiv.2604.18131&lt;br&gt;&lt;br&gt;다운로드 URL: https://arxiv.org/pdf/2604.18131.pdf&lt;br&gt;(제출: 2026-04-20)&lt;br&gt;&lt;br&gt;[연구 배경]&lt;br&gt;현재 대부분의 에이전트는 인간이 정의한 보상과 규칙에 따라 자기진화를 수행하며, 외부 감독 없이는 진화가 중단된다. 이는 진정한 자율 지능과 거리가 있으며, 미지 환경에서 스스로 적응·학습하는 내재적 메타-진화 능력의 부재가 근본적 한계로 지적되어 왔다.&lt;br&gt;&lt;br&gt;[연구 목적]&lt;br&gt;인간 감독·외부 보상 없이도 에이전트가 미지 환경에 대한 세계 지식을 자발적으로 탐색하고 요약하며 적응하는 내재적 자기진화 능력을 부여하는 것이 목적이다.&lt;br&gt;&lt;br&gt;[연구 방법]&lt;br&gt;- 결과 기반 자기보상 설계: 에이전트가 생성한 세계 지식이 다운스트림 과제의 성공률을 얼마나 향상시키는지를 보상 신호로 훈련&lt;br&gt;- 추론 단계에서는 외부 보상·인간 지시 없이 내부 파라미터만으로 자발적 자기진화&lt;br&gt;- 적용 모델: Qwen3-30B, Seed-OSS-36B, Qwen3-14B&lt;br&gt;- 평가: WebVoyager, WebWalker 벤치마크&lt;br&gt;&lt;br&gt;[연구 결과]&lt;br&gt;- Qwen3-30B·Seed-OSS-36B: WebVoyager·WebWalker 20% 성능 향상&lt;br&gt;- 핵심 성과: 14B 소형 모델이 감독 없는 Gemini-2.5-Flash를 초과&lt;br&gt;- 보상 없는 네이티브 자기진화 패러다임의 실효성 입증&lt;br&gt;&lt;br&gt;[연구 한계]&lt;br&gt;- 훈련 데이터의 규모·다양성 제한&lt;br&gt;- 복잡한 장기 과제에서 안전성·안정성 미검증&lt;br&gt;- 웹 기반 환경 집중, 피지컬 환경·실시간 의사결정 일반화 추가 연구 필요&lt;br&gt;&lt;br&gt;[연구 기여]&lt;br&gt;- 외부 감독 없는 자율 에이전트 학습의 새로운 패러다임 제시&lt;br&gt;- 소형 모델이 대형 모델을 능가하는 '경량화의 가능성' 입증 (피지컬 AI 온디바이스 전략과 직결)&lt;br&gt;- 인간 감독 비용 없이 지속 개선하는 자율지능 시스템 설계의 학문적 기반 마련&lt;br&gt;&lt;br&gt;&lt;br&gt;(관련뉴스)&lt;br&gt;&lt;a href=&quot;https://smartbus.tistory.com/m/107&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://smartbus.tistory.com/m/107&lt;/span&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://smartbus.tistory.com/m/104&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://smartbus.tistory.com/m/104&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;  AI &amp;amp; Tech 데일리 브리핑 — 2026년 4월 27일&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;  AI &amp;amp; Tech 데일리 브리핑 — 2026년 4월 27일AI기술 관련 뉴스7가지와 관련성 높은 연구논문 3가지를 정리해봅니다.■ 요약시사점2026년 4월 22~24일 기간, AI 산업 핵심 변화 세 가지가 동시에 드러났&quot; data-og-host=&quot;smartbus.tistory.com&quot; data-og-source-url=&quot;https://smartbus.tistory.com/m/104&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cb5UH3/dJMb8Rj5aLT/LzKz03xEHxKkkOd6wZnhh1/img.png?width=800&amp;amp;height=436&amp;amp;face=0_0_800_436&quot; data-og-url=&quot;https://smartbus.tistory.com/m/104&quot;&gt;&lt;a href=&quot;https://smartbus.tistory.com/m/104&quot; target=&quot;_blank&quot; data-source-url=&quot;https://smartbus.tistory.com/m/104&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cb5UH3/dJMb8Rj5aLT/LzKz03xEHxKkkOd6wZnhh1/img.png?width=800&amp;amp;height=436&amp;amp;face=0_0_800_436')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;  AI &amp;amp; Tech 데일리 브리핑 — 2026년 4월 27일&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;  AI &amp;amp; Tech 데일리 브리핑 — 2026년 4월 27일AI기술 관련 뉴스7가지와 관련성 높은 연구논문 3가지를 정리해봅니다.■ 요약시사점2026년 4월 22~24일 기간, AI 산업 핵심 변화 세 가지가 동시에 드러났&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;smartbus.tistory.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>
      <category>Tech-Trends</category>
      <category>AI&amp;amp;Tech 뉴스</category>
      <category>인공지능 AGI</category>
      <category>인공지능 동향</category>
      <category>인공지능과비즈니스</category>
      <category>인공지능기술동향</category>
      <category>자기진화AI</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/942</guid>
      <comments>https://couplewith.tistory.com/942#entry942comment</comments>
      <pubDate>Wed, 29 Apr 2026 19:29:17 +0900</pubDate>
    </item>
    <item>
      <title>☀️양자화 모델 -노트북용 LLM  추천(26.04)</title>
      <link>https://couplewith.tistory.com/940</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rogB1/dJMcag6nYfD/GkbRnHcAmlS7j6clKYVNgK/tfile.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rogB1/dJMcag6nYfD/GkbRnHcAmlS7j6clKYVNgK/tfile.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rogB1/dJMcag6nYfD/GkbRnHcAmlS7j6clKYVNgK/tfile.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrogB1%2FdJMcag6nYfD%2FGkbRnHcAmlS7j6clKYVNgK%2Ftfile.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1376&quot; height=&quot;768&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;br&gt;노트북에 로컬 LLM을 구축 하려 합니다. Ollama를 설치해서 LLM을 설치했는데 너무 느리네요&lt;br&gt;&lt;br&gt;모델의 성능을 유지하고 용량을 줄인 양자화 모델이 필요하여 정리 해 봅니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;☀️&lt;b&gt;로컬 LLM구축을 위한&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;양자화 모델 -노트북용 LLM&amp;nbsp;&amp;nbsp;추천(26.04)&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;  요약&lt;br&gt;&lt;br&gt;▪︎일반 게이밍 노트북(RTX 4060, 16GB RAM, 8GB VRAM)이라면 양자화된 작은 모델을 추천 합니다.&lt;br&gt;▪︎Qwen 3.5 2B · Llama 7B · Mistral 7B가 8G이하에서 가장 안정적입니다.&lt;br&gt;▪︎12~16GB VRAM 노트북은 Qwen 3.5 4B · Phi-4 14B까지 활용 가능하며,&lt;br&gt;▪︎&amp;nbsp;&amp;nbsp;24GB 이상 VRAM 환경에서는 Qwen 3.5 9B · Llama 13B · Mixtral 8x7B 같은 대형 모델도 실행할 수 있습니다.&lt;br&gt;▪︎양자화 된 모델은&amp;nbsp;&amp;nbsp;FP32(32비트 부동소수점)로 저장된 모델 파라미터를 INT8, INT4 같이 정수형으로 처리하여 용량을 개선 합니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;● VRAM 8GB&lt;br&gt;&lt;br&gt;Qwen 3.5 2B (Q4): 경량, 한국어 지원 우수 → 기본 챗봇, 문서 요약: https://ollama.com/library/qwen3.5:2b&lt;br&gt;&lt;br&gt;Llama 3.2 7B (Q4): 범용성, 영어/한국어 균형 → 일반 대화, 학습: https://ollama.com/library/llama3.2:7b&lt;br&gt;&lt;br&gt;Mistral 7B (Q4): 추론·코딩 강점 → 개발 보조: https://ollama.com/library/mistral:7b&lt;br&gt;&lt;br&gt;&lt;br&gt;● VRAM 12~16GB&lt;br&gt;&lt;br&gt;Qwen 3.5 4B (Q4): 30B급 성능에 준하는 효율 → 다국어, 에이전트: https://ollama.com/library/qwen3.5:4b&lt;br&gt;&lt;br&gt;Phi-4 14B (Q4): 경량+정확, MS 최신 → 연구, 글쓰기: https://ollama.com/library/phi4:14b&lt;br&gt;&lt;br&gt;&lt;br&gt;● VRAM 24GB 이상&lt;br&gt;&lt;br&gt;Qwen 3.5 9B (Q4): 강력한 다국어·에이전트 → 고급 챗봇, RAG: https://ollama.com/library/qwen3.5:9b&lt;br&gt;&lt;br&gt;Llama 3.3 13B (Q4): GPT-3.5급 성능 → 범용 대화, 코딩: https://ollama.com/library/llama3.3:13b &lt;br&gt;&lt;br&gt;Mixtral 8x7B (Q4): MoE 구조, 효율적 → 대형 프로젝트: https://ollama.com/library/mixtral:8x7b &lt;br&gt;&lt;br&gt;. 한국어 성능은 Qwen·EXAONE 계열이 우수, Llama는 다국어 균형&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;  양자화란 무엇인가?&lt;/b&gt;&lt;br&gt;- 정의: 원래 FP32(32비트 부동소수점)로 저장된 모델 파라미터를 INT8, INT4 같은 더 작은 정수 표현으로 변환하는 과정.&amp;nbsp;&amp;nbsp;&lt;br&gt;- 효과:&lt;br&gt;&amp;nbsp;&amp;nbsp;- 모델 크기 축소 (예: 13B 모델이 30GB → 8GB 수준으로 감소)&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- VRAM 절약 (GPU 메모리)&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- 추론 속도 향상 (더 작은 데이터로 연산)&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- 전력 소비 감소&amp;nbsp;&amp;nbsp;&lt;br&gt;- 단점: 정확도가 소폭 떨어질 수 있음.&amp;nbsp;&amp;nbsp;대부분 실사용에 큰 문제 없음&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;■ Qwen 3.5 양자화 버전 종류&lt;br&gt;- Qwen3.5-0.8B&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- 크기: 약 1GB&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- 용도: 초경량, 간단한 챗봇/자동완성&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- VRAM 요구: 4~6GB&amp;nbsp;&amp;nbsp;&lt;br&gt;- Qwen3.5-2B&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- 크기: 약 2.7GB&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- 용도: 경량 비서, 기본 코딩 지원&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- VRAM 요구: 8GB 내외&amp;nbsp;&amp;nbsp;&lt;br&gt;- Qwen3.5-4B&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- 크기: 약 3.4GB&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- 용도: 개발 도우미, 멀티모달 지원&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- VRAM 요구: 12~14GB&amp;nbsp;&amp;nbsp;&lt;br&gt;- Qwen3.5-9B&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- 크기: 약 6.6GB&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- 용도: 강력한 일반 비서, 다국어 지원&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- VRAM 요구: 16~24GB&amp;nbsp;&amp;nbsp;&lt;br&gt;- Qwen3.5-27B / 35B / 122B&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- 크기: 17GB / 24GB / 81GB 이상&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- 용도: 대형 모델, 연구/고성능 서버용&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- VRAM 요구: 24GB~80GB 이상&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;  Ollama에서 설치 및 실행 방법&lt;br&gt;&lt;br&gt;1. 모델 다운로드&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; `bash&lt;br&gt;&amp;nbsp;&amp;nbsp; ollama pull qwen3.5:2b&lt;br&gt;&amp;nbsp;&amp;nbsp; ollama pull qwen3.5:4b&lt;br&gt;&amp;nbsp;&amp;nbsp; ollama pull qwen3.5:9b&lt;br&gt;&amp;nbsp;&amp;nbsp; `&lt;br&gt;&amp;nbsp;&amp;nbsp; → 원하는 크기 선택&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;2. 실행&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; `bash&lt;br&gt;&amp;nbsp;&amp;nbsp; ollama run qwen3.5:4b&lt;br&gt;&amp;nbsp;&amp;nbsp; `&lt;br&gt;&amp;nbsp;&amp;nbsp; → 터미널에서 바로 대화 시작&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;⚠️ 주의사항&lt;br&gt;&lt;br&gt;VRAM 부족 시 CPU 오프로딩 발생 → 속도 급락, 반드시 GPU VRAM에 맞는 모델 선택&lt;br&gt;&lt;br&gt;장시간 추론 시 노트북 발열 심각 → 쿨링 필수&lt;br&gt;&lt;br&gt;Docker 실행 시 --gpus all 옵션으로 GPU 패스스루 설정&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>
      <category>BigData</category>
      <category>LLM</category>
      <category>Ollama 노트북</category>
      <category>sLLM</category>
      <category>노트북용 모델</category>
      <category>로컬 llm</category>
      <category>양자화모델</category>
      <category>인공지능 동향</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/940</guid>
      <comments>https://couplewith.tistory.com/940#entry940comment</comments>
      <pubDate>Tue, 28 Apr 2026 08:22:12 +0900</pubDate>
    </item>
    <item>
      <title>  AI &amp;amp; Tech 데일리 브리핑 &amp;mdash; 2026년 4월 27일</title>
      <link>https://couplewith.tistory.com/939</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1408&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SEyiT/dJMcagrLBnf/ozBLixdzqYTbrpGmzsmTu0/tfile.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SEyiT/dJMcagrLBnf/ozBLixdzqYTbrpGmzsmTu0/tfile.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SEyiT/dJMcagrLBnf/ozBLixdzqYTbrpGmzsmTu0/tfile.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSEyiT%2FdJMcagrLBnf%2FozBLixdzqYTbrpGmzsmTu0%2Ftfile.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1408&quot; height=&quot;768&quot; data-origin-width=&quot;1408&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;  AI &amp;amp; Tech 데일리 브리핑 — 2026년 4월 27일&lt;br&gt;&lt;br&gt;&lt;br&gt;■ 요약시사점&lt;br&gt;&lt;br&gt;2026년 4월 22~24일 기간, AI 산업 핵심 변화 세 가지가 동시에 드러났다.&lt;br&gt;&lt;br&gt;첫째, 피지컬 AI 투자 가속화다. 국내 페르소나AI가 GPU·인터넷 없이도 동작하는 경량 AI 엔진 기반 휴머노이드 로봇 OS를 공개하며 글로벌 피지컬 AI 시장 선점에 나섰다. NH아문디자산운용은 같은 날 에너지·광통신인프라·반도체 등 5대 투자 테마를 제시하며 피지컬 AI 투자 열풍에 기관까지 가세했다.&lt;br&gt;&lt;br&gt;둘째, 에이전트 인프라 한계 노출이다. 앤스로픽은 클로드 서비스 장애와 이용 폭증에 대응해 월 20달러 프로 요금제에서 '클로드 코드'를 제외하는 실험을 시행했다. 인프라 병목·수익화 전략 재편이 산업 전반 과제임을 보여준다.&lt;br&gt;&lt;br&gt;셋째, 벤치마크 신뢰성 위기다. UC 버클리 연구진은 SWE-bench 등 8개 주요 AI 에이전트 벤치마크에서 실제 과제 해결 없이 만점을 달성할 수 있는 구조적 취약점을 공개했다. LMSYS 기반 평가 체계 전반의 재설계 필요성이 부각됐다.&lt;br&gt;&lt;br&gt;&lt;br&gt;■ AI&amp;amp;Tech 주요 뉴스 (7가지)&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;뉴스 1. 페르소나AI, 피지컬AI 휴머노이드 로봇의 OS 공개&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;페르소나AI(대표 유승재)가 원천 AI 기술과 경량 온디바이스 모델을 기반으로 로봇 운영체제(OS) 개발을 공개했다. 인터넷·GPU 없이 동작하는 SSTT(사투리 인식 음성 AI), sSLM(소형 언어 모델), VLA(비전-언어-행동) 모델을 탑재한 AI 엔진으로, 음성 명령만으로 관찰·판단·행동하는 에이전틱 로봇을 구현했다. CES 2025·2026 혁신상 연속 수상, Gen AI Competition 등 국제 대회 수상으로 기술력을 입증하였으며, 4월 피지컬AI 연구소를 개소하고 스탠퍼드 Mobile ALOHA 통합·한미중 공동연구 성과를 발표했다. 국방·제조·물류·가정용 비정형 환경 우선 적용 및 상용 SDK 공급도 검토 중이다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;경량 AI 엔진의 피지컬 AI 적용은 클라우드 의존 없는 온디바이스 로봇 OS 생태계 경쟁의 서막이다. 페르소나AI의 행보는 국내 AI 기업이 글로벌 피지컬 AI 시장에서 OS 레이어 주도권을 잡을 수 있는 핵심 전략 사례로 평가된다. 방산·제조·물류 분야 확장 속도에 따라 후속 투자와 IPO 일정이 주목된다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-21)&lt;br&gt;출처URL: https://www.etnews.com/20260421000346 [1]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;뉴스 2. NH아문디 &quot;피지컬AI 핵심 테마는 에너지·광통신&quot; — 5대 분야 주목&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;NH아문디자산운용이 2026년 4월 22일 서울 여의도 FKI타워에서 '피지컬AI 투자전략 간담회'를 개최했다. 국내 최초 피지컬AI 액티브 ETF 운용사로서 에너지·광통신인프라·반도체·AI 모델·애플리케이션을 5대 유망 투자 테마로 제시했다. &quot;AI 연산 전력 수요 폭증으로 에너지 인프라 확보 자체가 경쟁력이 됐고, 추론형 AI 확산으로 데이터 대역폭 병목이 발생하며 광통신 중요성이 커지고 있다&quot;고 강조했다. 단순 AI 기술 기업보다 실제 산업에 적용해 수익을 창출하는 'AI 잘 쓰는 기업'이 핵심 투자 대상이라는 전략을 제시했다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;피지컬 AI 투자가 로봇·하드웨어를 넘어 에너지·광통신·반도체 인프라로 확대되고 있다. 기관 투자자의 섹터 구체화는 피지컬 AI 밸류체인 전반의 투자 자금 유입을 촉진할 신호다. 특히 추론 AI 확산에 따른 광통신 인프라 투자 주목도가 높아질 전망이다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-22)&lt;br&gt;출처URL: https://biz.chosun.com/stock/stock_general/2026/04/22/LEKU3BZA2FB2NPGWXJMPSW6QHM/ [2]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;뉴스 3. '월 20달러' 고객은 클로드 코드 못 쓰나 — 앤스로픽, 요금제 실험&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;앤스로픽이 월 20달러 프로 요금제에서 AI 코딩 에이전트 '클로드 코드'를 제외하는 실험을 일부 신규 가입자 대상으로 진행했다. 기존 이용자에게는 영향이 없으나, 실험이 정착될 경우 클로드 코드 사용을 위해서는 월 100달러 이상의 '맥스(Max) 5배' 요금제를 이용해야 한다. 클로드 코드를 포함한 서비스 수요가 급증하면서 연산 인프라 과부하가 반복되고 있으며, 앤스로픽은 이미 기업용 요금제를 사용량 기반으로 변경하는 등 과금 체계를 재편 중이다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;에이전트 서비스 수익화 전략이 '저가 구독 → 기능 제한 → 상위 요금제 유도'로 전환되고 있다. 인프라 비용과 서비스 품질 간 균형이 AI 기업의 핵심 과제임을 보여주며, 경쟁사 오픈AI·구글과의 요금 전략 비교가 기업 채택 의사결정에 중요한 변수가 될 것이다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-21~22)&lt;br&gt;출처URL: https://www.mk.co.kr/news/it/12023800 [3]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;뉴스 4. 앤트로픽 클로드 또 먹통 — 컴퓨팅 자원 고갈·서비스 안정성 논란&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;앤스로픽의 클로드 서비스가 2026년 4월 15일 미 동부 시간 오전 10시 30분부터 불안정해지기 시작, 다운디텍터에 7,000건 이상 장애 보고가 접수됐다. 폭발적으로 증가하는 이용량과 인프라 비용 부담이 주원인으로 지목됐다. 앤스로픽은 컴퓨팅 병목 해소를 위해 요금제 체계 개편과 함께 기업 고객 우선 할당 정책을 검토 중이다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;세계 최고 수준의 AI 에이전트 인프라도 급격한 수요 증가 앞에서 안정성 문제가 발생한다는 사실은 업계 전반의 인프라 투자 필요성을 재확인시킨다. 데이터센터 전력·GPU 공급망 확보 경쟁이 기업 생존 과제로 직결됐다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-15~16)&lt;br&gt;출처URL: https://zdnet.co.kr/view/?no=20260416110739 [4]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;뉴스 5. AI 에이전트 벤치마크 8곳서 심각한 보안 취약점 발견 — UC 버클리&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;UC 버클리 책임있는 분산 지능(RDI) 센터 연구진이 SWE-bench, WebArena, OSWorld, GAIA, Terminal-Bench, FieldWorkArena, CAR-bench 등 8개 주요 AI 에이전트 벤치마크에서 실제 과제를 단 하나도 해결하지 않고 거의 만점에 가까운 점수를 획득하는 데 성공했다. 7가지 구조적 취약점 패턴(평가 환경 공유, 정답 노출, 평가 로직 버그 등)이 반복 확인됐으며, o3 모델의 리워드 해킹이 128회 실행 중 39회(30.4%)에서 발생했다. 이러한 취약점은 리더보드 점수에 의존한 투자 결정·모델 선택·연구 방향에 부정적 영향을 미친다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;벤치마크 기반 AI 능력 평가의 구조적 한계가 공식 입증됐다. LMSYS Chatbot Arena를 비롯한 현행 평가 체계의 전면 재설계가 필요하며, 격리 환경 평가·실제 배포 성능 검증 방식으로의 전환이 시급하다. AI 규제 기관과 기업 모두에게 새로운 평가 기준 마련을 요구하는 강력한 신호다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-13)&lt;br&gt;출처URL: https://kitpa.org/news/1357 [5]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;뉴스 6. &quot;NSA가 쓴다는 앤스로픽, 한국 기업은 이미 클로드에 꽂혔다&quot;&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;미국 국가안보국(NSA)이 앤스로픽의 클로드 미토스(Mithos) 프리뷰를 배치했다는 보도가 나왔으나, 미국 국방부는 앤스로픽을 공급망 리스크 기업으로 지정하며 안보 논란이 이어지고 있다. 반면 한국 기업들은 클로드의 기업용 API 및 에이전트 기능을 적극 도입하는 추세다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;AI 에이전트 인프라의 안보화(Securitization) 경향이 가속화되고 있다. 국내 기업들은 미국의 AI 공급망 규제 동향을 지속 모니터링하며 대체 전략을 병행해야 한다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-20)&lt;br&gt;출처URL: https://www.g-enews.com/article/Global-Biz/2026/04/202604201411274117fbbec65dfb_1 [6]&lt;br&gt;&lt;br&gt;────────────────────────────────────&lt;br&gt;뉴스 7. BCG &quot;피지컬 AI가 로봇 산업을 재편하고 있다&quot; — 5단계 성숙도 프레임워크 제시&lt;br&gt;────────────────────────────────────&lt;br&gt;&lt;br&gt;내용요약:&lt;br&gt;보스턴컨설팅그룹(BCG)이 2026년 4월 7일 피지컬 AI의 5단계 성숙도 프레임워크를 공개했다. 피지컬 AI는 비구조·동적 환경에서 인지·행동하고, 인간 의도를 추론하며 자율적으로 워크플로우를 실행하는 차세대 로봇 시스템으로 정의됐다. 하드웨어 플랫폼(휴머노이드·드론·산업 자동화)에 무관하게 동일 AI 역량이 배포 가능하다는 점을 강조하며, 기업이 현재 투자 수익이 가능한 단계와 장기 베팅 단계를 구분해 순차 투자 전략을 세울 것을 권고했다.&lt;br&gt;&lt;br&gt;시사점:&lt;br&gt;글로벌 컨설팅 기관이 피지컬 AI의 산업화 단계를 구체적으로 제시함으로써 기업·투자자의 전략적 의사결정 지원이 본격화됐다. 5단계 프레임워크는 국내 피지컬 AI 기업들의 기술 포지셔닝 자가 진단 도구로도 활용 가능하다.&lt;br&gt;&lt;br&gt;(발행일: 2026-04-07)&lt;br&gt;출처URL: https://www.bcg.com/publications/2026/how-physical-ai-is-reshaping-robotics-today [7]&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;■ 관련 논문 (3가지)&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;논문 1. On Safety Risks in Experience-Driven Self-Evolving Agents&lt;br&gt;[ACL 2026 Findings — 자기진화 에이전트 안전성]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;Zhao, W., Zhang, Y., Wang, Y., Deng, Y., Zhao, Y., Zhi, X., Huang, Y., He, H., Che, W., Qin, B., &amp;amp; Liu, T. (2026). On safety risks in experience-driven self-evolving agents. Findings of ACL 2026. arXiv preprint arXiv:2604.16968. https://doi.org/10.48550/arXiv.2604.16968 &lt;br&gt;&lt;br&gt;다운로드 URL: https://arxiv.org/pdf/2604.16968.pdf&lt;br&gt;&lt;br&gt;■ 연구 배경&lt;br&gt;경험 기반 자기진화(Experience-driven self-evolution)는 LLM 에이전트의 자율성을 향상시키는 유망 패러다임으로 주목받고 있다. 그러나 에이전트가 스스로 경험을 수집·활용하는 과정에서 발생하는 안전 위험(Safety Risk)은 거의 연구되지 않았다. 특히 에이전트가 무해한(benign) 환경에서 축적한 경험이 고위험 시나리오에서 의도치 않은 유해 행동을 유발할 수 있다는 문제가 제기됐다.&lt;br&gt;&lt;br&gt;■ 연구 목적&lt;br&gt;경험 축적과 활용 과정이 웹 기반·체화(Embodied) 환경에서 에이전트의 안전 성능에 미치는 영향을 체계적으로 분석하고, 자기진화 에이전트의 본질적 안전 한계를 규명하며, 안전하고 신뢰할 수 있는 적응 전략 방향을 제시하는 것이 목적이다.&lt;br&gt;&lt;br&gt;■ 연구 방법&lt;br&gt;- 평가 환경: 웹 기반(WebArena → BrowserART, Agent-SafetyBench)과 체화 환경(SafeAgentBench) 두 가지 설정 구성&lt;br&gt;- 프로세스: 무해한 과제에서 경험을 축적하는 자기진화 단계 → 위험 시나리오에서 안전성 평가 단계로 분리&lt;br&gt;- 안전성 지표: 공격 성공률(Attack Success Rate, ASR)을 GPT-4o 자동 평가로 측정, 인간 주석과의 강한 상관관계 확인&lt;br&gt;- 추가 실험: 무해+유해 과제 혼합 환경에서 거부 관련 경험의 효과도 분석&lt;br&gt;&lt;br&gt;■ 연구 결과&lt;br&gt;- 핵심 발견 1: 무해한 과제에서만 수집된 경험도 고위험 시나리오에서 안전성을 저하시켰다. 경험이 에이전트의 &quot;행동 지향성(Execution-Oriented Tendency)&quot;을 강화해 위험 요청도 수행하게 만든다.&lt;br&gt;- 핵심 발견 2: 무해+유해 혼합 환경에서 거부 경험은 안전성 저하를 완화하나, 과도한 거부(Over-Refusal)를 유발해 안전-유용성 트레이드오프(Safety-Utility Trade-off)가 발생했다.&lt;br&gt;- 결론: 현행 자기진화 에이전트는 경험 기반 학습 구조 자체에 안전 한계가 내재되어 있다.&lt;br&gt;&lt;br&gt;■ 연구 한계&lt;br&gt;- 경험 필터링 또는 안전 정렬 방법론에 대한 구체적 해결책을 제시하지는 않았다.&lt;br&gt;- 특정 웹·가정용 환경에 한정되어 의료·금융 등 다른 고위험 도메인으로의 일반화는 추가 연구가 필요하다.&lt;br&gt;- 평가 자동화에 GPT-4o 의존으로 평가 모델 자체의 편향이 결과에 영향을 미칠 수 있다.&lt;br&gt;&lt;br&gt;■ 연구 기여&lt;br&gt;- 자기진화 에이전트의 안전 위험을 체계적으로 분석한 최초의 실증 연구(ACL 2026 Findings 게재)&lt;br&gt;- 경험 기반 학습이 안전 성능에 미치는 이중적 효과(위험 행동 유발 vs 과도 거부)를 최초로 규명&lt;br&gt;- 피지컬 AI·자율 에이전트 배포 전 안전성 검증 프레임워크 설계의 학술적 기초를 제공&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;논문 2. Training LLM Agents for Spontaneous, Reward-Free Self-Evolution via World Knowledge Exploration&lt;br&gt;[arXiv:2604.18131 — 보상 없는 자발적 자기진화 학습]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;Zhang, Q., Ma, D., Fang, T., Li, J., Tang, J., Chen, N., Mi, H., &amp;amp; Wang, Y. (2026). Training LLM agents for spontaneous, reward-free self-evolution via world knowledge exploration. arXiv preprint arXiv:2604.18131. https://doi.org/10.48550/arXiv.2604.18131 &lt;br&gt;&lt;br&gt;다운로드 URL: https://arxiv.org/pdf/2604.18131.pdf&lt;br&gt;&lt;br&gt;■ 연구 배경&lt;br&gt;현재 대부분의 에이전트는 인간이 정의한 보상과 규칙에 따라 '자기진화'를 수행하며, 외부 감독 없이는 진화가 중단된다. 이는 진정한 자율 지능과는 거리가 있으며, 미지 환경에서 스스로 적응·학습하는 내재적 메타-진화 능력의 부재가 근본적 한계로 지적되어 왔다.&lt;br&gt;&lt;br&gt;■ 연구 목적&lt;br&gt;인간 감독·외부 보상 없이도 에이전트가 미지 환경에 대한 세계 지식(World Knowledge)을 자발적으로 탐색하고 요약하며 적응하는 내재적 자기진화 능력을 부여하는 것이 목적이다.&lt;br&gt;&lt;br&gt;■ 연구 방법&lt;br&gt;- 결과 기반 보상 메커니즘 설계: 에이전트가 스스로 생성한 세계 지식이 다운스트림 과제의 성공률을 얼마나 향상시키는지를 보상 신호로 사용&lt;br&gt;- 훈련 단계에서만 이 보상 신호를 사용하여 효과적인 탐색·요약 능력을 학습&lt;br&gt;- 추론(Inference) 단계에서는 외부 보상·인간 지시 없이, 내부 파라미터만으로 자발적 자기진화 수행&lt;br&gt;- 적용 모델: Qwen3-30B, Seed-OSS-36B (대형), Qwen3-14B (소형)&lt;br&gt;- 평가 벤치마크: WebVoyager, WebWalker&lt;br&gt;&lt;br&gt;■ 연구 결과&lt;br&gt;- Qwen3-30B·Seed-OSS-36B 적용 시 WebVoyager·WebWalker에서 20% 성능 향상&lt;br&gt;- 핵심 결과: 14B 소형 Qwen3 모델이 생성한 세계 지식으로 감독 없는 Gemini-2.5-Flash를 성능에서 초과&lt;br&gt;- 보상 없는 네이티브 자기진화 패러다임이 기존 보상 기반 접근보다 우수한 성능을 입증&lt;br&gt;&lt;br&gt;■ 연구 한계&lt;br&gt;- 훈련에 사용된 세계 지식 데이터의 규모와 다양성이 제한적&lt;br&gt;- 복잡한 장기 과제에서의 안전성·안정성은 미검증&lt;br&gt;- 웹 기반 환경에 집중되어 있어 피지컬 환경·실시간 의사결정으로의 일반화는 추가 연구 필요&lt;br&gt;&lt;br&gt;■ 연구 기여&lt;br&gt;- 외부 감독 없는 진정한 자율 에이전트 학습의 새로운 패러다임 제시&lt;br&gt;- 소형 모델이 대형 모델을 능가할 수 있다는 '경량화의 가능성' 입증 (페르소나AI 등 온디바이스 전략과 직결)&lt;br&gt;- 피지컬 AI·에이전트 플랫폼에서 인간 감독 비용 없이 지속 개선하는 자율지능 시스템 설계의 학문적 기반 마련&lt;br&gt;&lt;br&gt;════════════════════════════════════════&lt;br&gt;논문 3. PAI-Bench: A Comprehensive Benchmark For Physical AI&lt;br&gt;[arXiv:2512.01989 — 피지컬 AI 종합 벤치마크]&lt;br&gt;════════════════════════════════════════&lt;br&gt;&lt;br&gt;APA 인용:&lt;br&gt;Zhou, F., Huang, J., Li, J., Ramanan, D., &amp;amp; Shi, H. (2025). PAI-Bench: A comprehensive benchmark for Physical AI. arXiv preprint arXiv:2512.01989. https://doi.org/10.48550/arXiv.2512.01989 [8]&lt;br&gt;&lt;br&gt;다운로드 URL: https://arxiv.org/pdf/2512.01989.pdf&lt;br&gt;&lt;br&gt;■ 연구 배경&lt;br&gt;피지컬 AI는 현실 세계의 동역학을 지각하고 예측하며 상호작용하는 것을 목표로 하지만, 멀티모달 LLM과 비디오 생성 모델의 피지컬 이해 능력을 통합·체계적으로 평가하는 표준 벤치마크가 존재하지 않았다. 기존 벤치마크는 단순 시각 충실도 평가에 그쳤고, 물리 법칙 준수 여부와 도메인 특화 추론 능력은 평가하지 못했다.&lt;br&gt;&lt;br&gt;■ 연구 목적&lt;br&gt;실세계 2,808개 케이스를 기반으로 비디오 생성·조건부 생성·물리 이해를 통합 평가하는 PAI-Bench를 구축하여, 최신 AI 모델들의 피지컬 AI 역량을 물리 일관성·도메인 추론 관점에서 종합 평가하는 것이 목적이다.&lt;br&gt;&lt;br&gt;■ 연구 방법&lt;br&gt;- 벤치마크 구성: 실세계 영상 기반 2,808개 케이스를 비디오 생성·조건부 생성·물리 이해 세 카테고리로 분류&lt;br&gt;- 메트릭 개발: 물리 타당성(Physical Plausibility), 도메인 특화 일관성을 측정하는 새로운 평가 지표 제안&lt;br&gt;- 평가 대상: 최신 LLM, 비디오 생성 모델, 멀티모달 모델을 동일 기준으로 체계 비교&lt;br&gt;&lt;br&gt;■ 연구 결과&lt;br&gt;- 비디오 생성 모델은 시각적 충실도는 높으나 물리 동역학 일관성 유지에 실패하는 경향이 확인됐다&lt;br&gt;- LLM은 물리 현상 예측과 인과 해석에서 상당한 제한이 있음이 드러났다&lt;br&gt;- 현행 모델과 실제 물리 환경 이해 사이의 구체적인 성능 갭이 수치로 제시됐다&lt;br&gt;&lt;br&gt;■ 연구 한계&lt;br&gt;- 특정 물리 도메인에 편중되어 있어 전체 물리 환경의 다양성을 완전히 반영하기 어렵다&lt;br&gt;- 실시간 동적 상호작용 평가가 포함되지 않아 실시간 로봇 제어 성능 측정에는 한계가 있다&lt;br&gt;&lt;br&gt;■ 연구 기여&lt;br&gt;- 피지컬 AI 연구의 표준 평가 프레임워크 최초 제시&lt;br&gt;- 시각 충실도와 물리 이해 사이의 갭을 정량화하여 피지컬 AI 개발 방향과 투자 우선순위 설정에 실질적 지침 제공&lt;br&gt;- 페르소나AI 등 국내 피지컬 AI OS 기업들의 기술 검증 및 로드맵 설계에 직접 활용 가능한 평가 기준 제공&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>
      <category>Tech-Trends</category>
      <category>AI&amp;amp;Tech뉴스</category>
      <category>LLM</category>
      <category>에이전틱ai</category>
      <category>인공지능 동향</category>
      <category>인공지능과비즈니스</category>
      <category>인공지능기술동향</category>
      <category>자기진화AI</category>
      <category>피지컬ai</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/939</guid>
      <comments>https://couplewith.tistory.com/939#entry939comment</comments>
      <pubDate>Mon, 27 Apr 2026 20:26:28 +0900</pubDate>
    </item>
    <item>
      <title>  Windows WSL + Podman Desktop 로 Ollama + Open WebUI GPU 챗봇 구축하기 (RTX 4070 노트북</title>
      <link>https://couplewith.tistory.com/937</link>
      <description>&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;559&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bo4xD6/dJMcacv8vM8/UC9Rf2KabKkWORr6eqVqk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bo4xD6/dJMcacv8vM8/UC9Rf2KabKkWORr6eqVqk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bo4xD6/dJMcacv8vM8/UC9Rf2KabKkWORr6eqVqk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbo4xD6%2FdJMcacv8vM8%2FUC9Rf2KabKkWORr6eqVqk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;559&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;559&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;h1&gt;&amp;nbsp;&lt;/h1&gt;&lt;h1&gt;  Windows WSL + Podman Desktop 로 Ollama + Open WebUI GPU 챗봇 구축하기 (RTX 4070 노트북)&lt;/h1&gt;&lt;blockquote data-ke-style=&quot;style1&quot;&gt; 
 &lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2026 년 4 월 24 일&lt;/b&gt; | &lt;b&gt;AI/ML, 컨테이너, 시스템 관리&lt;/b&gt;&lt;/p&gt; 
&lt;/blockquote&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;  개요&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;Windows 노트북에서 로컬 LLM(예: Llama 3.2) 을 실행하되, &lt;b&gt;GPU 가속&lt;/b&gt;을 활용하여 빠르게 처리하고 싶으신가요?&lt;br&gt;&lt;br&gt;&lt;span style=&quot;color: #EE2323;&quot;&gt;일반유저 와 시큐리티를 높여서 설치하는 방법으로 작성을 해보았습니다. 보통 Docker안의 서비스는 Root로 실행하도록 하여 Permission&amp;nbsp; &amp;nbsp;오류가 발생하지 않았을 것인데 여기에서는 일반유저로 설치하여 오류도 많고 복잡한 과정을 거치게 되어 있습니다.&lt;/span&gt;&lt;br&gt;&lt;b&gt;Docker&lt;/b&gt; 는 편리하지만 &lt;b&gt;rootless&lt;/b&gt; 보안과 &lt;b&gt;Podman&lt;/b&gt;의 가벼운 특성을 선호하신다면, &lt;b&gt;WSL + Podman Machine + NVIDIA GPU&lt;/b&gt; 조합이 최적의 선택입니다.&lt;br&gt;이번 글에서는 &lt;b&gt;Podman Desktop&lt;/b&gt;을 활용하여 NVIDIA RTX 4070 GPU를 Ollama 와 Open WebUI 에 연결하는 &lt;b&gt;완전 가이드&lt;/b&gt;를 정리했습니다.&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt; ️ 1. 전체 구조 이해하기&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 작동 원리&lt;/b&gt;를 먼저 이해하면 설치가 훨씬 수월합니다.&lt;/p&gt;&lt;pre class=&quot;properties&quot;&gt;&lt;code&gt;Windows (NVIDIA Driver)
    ↓
WSL2 / Podman Machine (Fedora 43) 
    ↓ NVIDIA Container Toolkit + CDI
Podman Rootless Container (GPU 전달)
    ↓ --device nvidia.com/gpu=all
Ollama + Open WebUI (CUDA 활용)&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;b&gt;WSL2 배포&lt;/b&gt; 생성&lt;/li&gt;&lt;li&gt;&lt;b&gt;CUDA 드라이버&lt;/b&gt; 설치&lt;/li&gt;&lt;li&gt;&lt;b&gt;GPU 디바이스&lt;/b&gt; 가 가상 머신과 연결됨&lt;/li&gt;&lt;li&gt;&lt;b&gt;컨테이너&lt;/b&gt; 가 GPU 리소스에 접근 가능해짐&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;⚙️ 2. 환경 준비 (Pre-reqs)&lt;/h3&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;2.1 필수 조건&lt;/h4&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
 &lt;li&gt;&lt;input disabled type=&quot;checkbox&quot;&gt; &lt;b&gt;NVIDIA Studio Driver&lt;/b&gt; 최신 버전 (Windows + WSL2)&lt;/li&gt; 
 &lt;li&gt;&lt;input disabled type=&quot;checkbox&quot;&gt; &lt;b&gt;Podman Desktop&lt;/b&gt; 설치&lt;/li&gt; 
 &lt;li&gt;&lt;input disabled type=&quot;checkbox&quot;&gt; &lt;b&gt;WSL2&lt;/b&gt; 활성화 (Ubuntu or Fedora)&lt;/li&gt; 
&lt;/ul&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;2.2 CUDA 도구 설치&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;WSL2 내부에서 아래 명령어로 &lt;b&gt;Container Toolkit&lt;/b&gt;을 설치합니다.&lt;/p&gt;&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;sudo apt update
sudo apt install nvidia-container-toolkit&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt; ️ 3. GPU 연결 및 CDI 생성 (가장 중요!)&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3.1 nvidia-ctk 으로 &amp;nbsp;컨테이너가 GPU 인식도록 CDI 생성&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Container Device Interface(CDI)&lt;/b&gt; 를 통해 컨테이너가 GPU를 인식해야 합니다.&lt;br&gt;* GPU 를 제대로 인식하려면 CDI(Container Device Interface) 설정이 필요&lt;/p&gt;&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# CDI 생성
sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml

# 생성된 스펙 확인
sudo nvidia-ctk cdi list&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;✅ 성공 시 출력&lt;/p&gt;&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;INFO[0000] Found 1 CDI devices
nvidia.com/gpu=all&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;3.2 GPU 설정 종합 점검&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;설정이 완료되면 다음과 같이&amp;nbsp; 성공해야 합니다.&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;PS C:\&amp;gt; podman machine ssh
Connecting to vm podman-machine-default. To close connection, use `~.` or `exit`
Last login: Fri Apr 24 15:32:08 2026 from ::1

[root@WIN-EIM8HKM01Q1 ~]#&amp;nbsp;&amp;nbsp;podman run --rm -it&amp;nbsp;&amp;nbsp; --device nvidia.com/gpu=all&amp;nbsp;&amp;nbsp; --group-add keep-groups&amp;nbsp;&amp;nbsp; --security-opt=label=disable&amp;nbsp;&amp;nbsp; ubuntu:22.04 nvidia-smi -L
GPU 0: NVIDIA GeForce RTX 4070 Laptop GPU (UUID: GPU-a6ca11e7-9c72-25bd-71ef-d74275aa310d)&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;blockquote data-ke-style=&quot;style3&quot;&gt;* libnvidia-container: 컨테이너 내부에서 GPU 장치 노출&lt;br&gt;* nvidia-ctk: CDI 스펙 생성 및 관리&lt;br&gt;* cdi.yaml: Podman이 GPU 장치를 인식할 수 있도록 설정 파일 제공&lt;br&gt;&lt;br&gt;문제해결: nvidia-smi 실행 오류시 : /etc/cdi/nvidia.yaml 갱신&lt;/blockquote&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅&amp;nbsp;&lt;b&gt;요약&lt;/b&gt;&lt;/h2&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;  &lt;b&gt;완전 설정 흐름 요약 (중요)&lt;/b&gt;&lt;/h3&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. Podman Machine 생성&lt;/b&gt;&lt;/h4&gt;&lt;div&gt; 
 &lt;div&gt; 
  &lt;div&gt; 
   &lt;div&gt;
    &amp;nbsp;
   &lt;/div&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
 &lt;div&gt; 
  &lt;div id=&quot;code-textarea-331bc779-5b83-42f8-9a45-3ab199fd67c1-3dd37b3a-c1fe-4e11-a5df-e9a0e8deb476-34&quot;&gt; 
   &lt;div&gt; 
    &lt;div&gt; 
     &lt;div aria-hidden=&quot;true&quot;&gt; 
      &lt;div&gt; 
       &lt;div&gt; 
        &lt;pre id=&quot;code_1777018004413&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;podman machine init --gpu=all
podman machine start&lt;/code&gt;&lt;/pre&gt; 
       &lt;/div&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;div contenteditable=&quot;true&quot; data-language=&quot;shell&quot;&gt; 
      &lt;div&gt;
       &amp;nbsp;
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;div aria-hidden=&quot;true&quot;&gt;
      &amp;nbsp;
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. Podman Machine 연결 확인&lt;/b&gt;&lt;/h4&gt;&lt;div&gt; 
 &lt;div&gt; 
  &lt;div&gt; 
   &lt;div&gt;
    &amp;nbsp;
   &lt;/div&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
 &lt;div&gt; 
  &lt;div id=&quot;code-textarea-331bc779-5b83-42f8-9a45-3ab199fd67c1-3dd37b3a-c1fe-4e11-a5df-e9a0e8deb476-37&quot;&gt; 
   &lt;div contenteditable=&quot;true&quot; data-language=&quot;shell&quot;&gt; 
    &lt;pre id=&quot;code_1777018020213&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;podman machine list

# Expected:
# CONTAINER STATUS
# podman-machine Running&lt;/code&gt;&lt;/pre&gt; 
   &lt;/div&gt; 
   &lt;div aria-hidden=&quot;true&quot;&gt;
    &amp;nbsp;
   &lt;/div&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. GPU 확인&lt;/b&gt;&lt;/h4&gt;&lt;div&gt; 
 &lt;div&gt; 
  &lt;div&gt;
   &amp;nbsp;
  &lt;/div&gt; 
 &lt;/div&gt; 
 &lt;div&gt; 
  &lt;div id=&quot;code-textarea-331bc779-5b83-42f8-9a45-3ab199fd67c1-3dd37b3a-c1fe-4e11-a5df-e9a0e8deb476-40&quot;&gt; 
   &lt;div aria-hidden=&quot;true&quot;&gt; 
    &lt;div&gt; 
     &lt;div&gt; 
      &lt;pre id=&quot;code_1777018032717&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Podman Machine 내부에서 GPU 확인
podman exec podman-machine nvidia-smi 
or
podman exec podman-machine nvidia-smi  -L&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
   &lt;div contenteditable=&quot;true&quot; data-language=&quot;shell&quot;&gt;
    &amp;nbsp;
   &lt;/div&gt; 
   &lt;div aria-hidden=&quot;true&quot;&gt;
    &amp;nbsp;
   &lt;/div&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4. 컨테이너 실행 - 컨테이너&amp;nbsp;GPU&amp;nbsp;매핑&amp;nbsp;요청&lt;/b&gt;&lt;/h4&gt;&lt;div&gt; 
 &lt;div&gt; 
  &lt;div&gt; 
   &lt;div&gt; 
    &lt;div&gt;
     &amp;nbsp;docker-compose.yml gpu 설정을 추가 합니다.
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;div&gt; 
   &lt;div id=&quot;code-textarea-331bc779-5b83-42f8-9a45-3ab199fd67c1-3dd37b3a-c1fe-4e11-a5df-e9a0e8deb476-43&quot;&gt; 
    &lt;div&gt; 
     &lt;div&gt; 
      &lt;div contenteditable=&quot;true&quot; data-language=&quot;yaml&quot;&gt; 
       &lt;div&gt; 
        &lt;pre id=&quot;code_1777018076333&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# docker-compose.yml 에 아래 내용 추가
# 컨테이너 GPU 매핑 요청
devices:
- nvidia.com/gpu=all&lt;/code&gt;&lt;/pre&gt; 
       &lt;/div&gt; 
      &lt;/div&gt; 
      &lt;div aria-hidden=&quot;true&quot;&gt;
       &amp;nbsp;
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;  4. GPU 전달 테스트&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;설치가 잘 되었는지&lt;/b&gt; Podman Container 내부에서 직접 검증합니다.&lt;/p&gt;&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;podman run --rm -it \
  --device nvidia.com/gpu=all \
  --group-add keep-groups \
  --security-opt=label=disable \
  ubuntu:22.04 nvidia-smi -L&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;✅ 성공 시&lt;/p&gt;&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;GPU 0: NVIDIA GeForce RTX 4070 Laptop GPU (UUID: GPU-...)&lt;/code&gt;&lt;/pre&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;  5. Ollama + Open WebUI Podman Compose 구성&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;Podman Machine 내부에 SSH 후 다음 구성을 사용합니다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# Podman Machine 내부에서 자동으로 생성
devices:
&amp;nbsp;&amp;nbsp;- nvidia.com/gpu=all&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# 1. Podman Machine 생성
podman machine init --gpu=all
podman machine start&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;podman-compose --env-file .env up -d 를 이용하여 Docker container를 시작 합니다.&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# 컨테이너 재시작 (설정 반영) 변경된 docker-compose 파일과 .env 파일을 적용합니다.
podman compose down
podman compose up -d

or

# podman-compose --env-file .env up -d
# 직접 설정
podman compose -f docker-compose.gpu_v3.0.yml up -d&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;/h3&gt;&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;#version: &quot;2.2&quot;

services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollamav2
    restart: unless-stopped
    volumes:
      - C:\\DevData\\ollama:/root/.ollama
    environment:
      - OLLAMA_HOST=0.0.0.0
      - OLLAMA_KEEP_ALIVE=${OLLAMA_KEEP_ALIVE:-24h}
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=compute,utility
    devices:
      - nvidia.com/gpu=all
    networks:
      - backend-isolated
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    healthcheck:
      test: [&quot;CMD-SHELL&quot;, &quot;ollama list || exit 1&quot;]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 5s

  open-webui:
    image: ghcr.io/open-webui/open-webui:cuda
    container_name: open-webuiv2_cuda
    restart: unless-stopped
    ports:
      - &quot;0.0.0.0:${WEBUI_PORT:-3000}:8080&quot;
    volumes:
      - C:\\DevData\\docker\\open-webui-data:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
      - WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY}
      - DEFAULT_MODELS=${DEFAULT_MODELS:-llama3}
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=compute,utility
    devices:
      - nvidia.com/gpu=all
    depends_on:
      ollama:
        condition: service_healthy
    networks:
      - backend-isolated

networks:
  backend-isolated:
    driver: bridge&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;[일반유저로 Ollama 설치와 권한관리]&lt;br&gt;# 일반적으로 root 권한으로 설치하는데 일반 유저로&amp;nbsp; 설치하면 권한 문제가 발생하므로 다음과 같은 작업이 필요합니다.&lt;br&gt;일반유저로 설치하여 프로그램 작동도 안되지만 Container 시작시 Permission Denied 로그가 보일듯 합니다.&amp;nbsp;&lt;br&gt;만약 실행 모듈의 특정 파일의 권한을 수정하고자 한다면 다음을 응용합니다&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# 1. Ollama 폴더 권한 강제 조정
# Ollama&amp;nbsp;&amp;nbsp; /root/.ollama 아래 LLM모델 파일이 저장되는데 이동하고자 하면 오류가 납니다.
# 다음과 같은 권한 관리를 해주어야 합니다.

podman exec -u root -it ollamav2 chown -R 1000:1000 /home/ollama/.ollama

podman exec -u root -it ollamav2 ls -al /home/ollama/.ollama

# ----------------------------------------------------------------
services:
&amp;nbsp;&amp;nbsp;# ── Ollama LLM 서버 (GPU 가속 및 보안 강화) ───────────────────
&amp;nbsp;&amp;nbsp;ollama:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;image: ollama/ollama:latest
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;container_name: ollamav2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;restart: unless-stopped
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;user: &quot;1000:1000&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;volumes:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# 호스트의 설정/모델 폴더 전체를 일반 유저 홈 경로로 매핑
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- C:\DevData\ollama:/home/ollama/.ollama:Z
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;environment:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- HOME=/home/ollama
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- OLLAMA_MODELS=/home/ollama/.ollama/models
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- OLLAMA_HOST=0.0.0.0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- OLLAMA_KEEP_ALIVE=${OLLAMA_KEEP_ALIVE:-24h}&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;실행 및 모델 다운로드&lt;/h3&gt;&lt;pre class=&quot;bash&quot;&gt;&lt;code&gt;# Podman Compose 실행
podman-compose up -d

# 작은 모델부터 다운로드 (VRAM 8GB 기준)
podman exec ollamav2 ollama pull llama3.2:3b
podman exec ollamav2 ollama pull phi3:mini&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;  6. 접속 및 사용&lt;/h2&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
 &lt;li&gt;&lt;b&gt;WebUI&lt;/b&gt;: &lt;code&gt;http://localhost:3000&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;b&gt;Ollama API&lt;/b&gt;: &lt;code&gt;http://localhost:11434&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;pre class=&quot;nginx&quot;&gt;&lt;code&gt;# 실시간 모니터링
watch -n 1 nvidia-smi          # 터미널 1: GPU 사용량
podman logs -f ollamav2        # 터미널 2: Ollama 로그&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt; ️ 7. 트러블슈팅 체크리스트&lt;/h2&gt;&lt;table style=&quot;width: 690px; height: 181px;&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt; 
 &lt;thead&gt; 
  &lt;tr style=&quot;height: 21px;&quot;&gt; 
   &lt;th style=&quot;width: 690px; height: 21px;&quot; colspan=&quot;3&quot;&gt;&amp;lt;트러벌 슈팅&amp;gt;&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr style=&quot;height: 20px;&quot;&gt; 
   &lt;td style=&quot;width: 153px; height: 20px;&quot;&gt;문제&lt;/td&gt; 
   &lt;td style=&quot;width: 177px; height: 20px;&quot;&gt;원인&lt;/td&gt; 
   &lt;td style=&quot;width: 360px; height: 20px;&quot;&gt;해결책&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;height: 40px;&quot;&gt; 
   &lt;td style=&quot;width: 153px; height: 40px;&quot;&gt;&lt;code&gt;nvidia-smi&lt;/code&gt; 실패&lt;/td&gt; 
   &lt;td style=&quot;width: 177px; height: 40px;&quot;&gt;VM 내부 드라이버 문제&lt;/td&gt; 
   &lt;td style=&quot;width: 360px; height: 40px;&quot;&gt;Windows NVIDIA Driver 최신화&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;height: 20px;&quot;&gt; 
   &lt;td style=&quot;width: 153px; height: 20px;&quot;&gt;컨테이너 실패&lt;/td&gt; 
   &lt;td style=&quot;width: 177px; height: 20px;&quot;&gt;CDI 미생성&lt;/td&gt; 
   &lt;td style=&quot;width: 360px; height: 20px;&quot;&gt;&lt;code&gt;sudo nvidia-ctk cdi generate&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;height: 40px;&quot;&gt; 
   &lt;td style=&quot;width: 153px; height: 40px;&quot;&gt;권한 오류&lt;/td&gt; 
   &lt;td style=&quot;width: 177px; height: 40px;&quot;&gt;rootless 문제&lt;/td&gt; 
   &lt;td style=&quot;width: 360px; height: 40px;&quot;&gt;&lt;code&gt;--group-add keep-groups&lt;/code&gt; 옵션 추가&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;height: 20px;&quot;&gt; 
   &lt;td style=&quot;width: 153px; height: 20px;&quot;&gt;SELinux 차단&lt;/td&gt; 
   &lt;td style=&quot;width: 177px; height: 20px;&quot;&gt;보안 정책&lt;/td&gt; 
   &lt;td style=&quot;width: 360px; height: 20px;&quot;&gt;&lt;code&gt;--security-opt=label=disable&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;height: 20px;&quot;&gt; 
   &lt;td style=&quot;width: 153px; height: 20px;&quot;&gt;WebUI 연결 실패&lt;/td&gt; 
   &lt;td style=&quot;width: 177px; height: 20px;&quot;&gt;네트워크&lt;/td&gt; 
   &lt;td style=&quot;width: 360px; height: 20px;&quot;&gt;&lt;code&gt;OLLAMA_BASE_URL&lt;/code&gt; 확인&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;  주의사항&lt;/h3&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt; 
 &lt;li&gt;&lt;b&gt;VRAM 8GB 제한&lt;/b&gt;: 3B~7B 모델 권장 (70B 모델은 OOM)&lt;/li&gt; 
 &lt;li&gt;&lt;b&gt;Podman 재시작 시&lt;/b&gt;: &lt;code&gt;/etc/cdi/nvidia.yaml&lt;/code&gt; 파일 삭제되면 CDI 재생성 필요&lt;/li&gt; 
 &lt;li&gt;&lt;b&gt;Windows 재부팅 후&lt;/b&gt;: &lt;code&gt;podman machine start&lt;/code&gt; 후 GPU 테스트 필수&lt;/li&gt; 
&lt;/ol&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅ 8. 마무리 - 완성된 로컬 챗봇&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 &lt;b&gt;Windows WSL → Podman Machine → Ollama + WebUI&lt;/b&gt; 환경이 구축되었습니다.&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;b&gt;실행 시간&lt;/b&gt;: 약 30 분&lt;/li&gt;&lt;li&gt;&lt;b&gt;비용&lt;/b&gt;: 0 원 (로컬 GPU 활용)&lt;/li&gt;&lt;li&gt;&lt;b&gt;데이터 유출&lt;/b&gt;: 없음 (완전 오)&lt;/li&gt;&lt;li&gt;&lt;b&gt;성능&lt;/b&gt;: CPU 대비 5~10 배 빠름&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;이제 GPU 가속을 활용한 완전한 오프라인 로컬 LLM 챗봇 환경이 갖춰졌습니다.&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>
      <category>InfraPlatform</category>
      <category>Container 시작시 Permission Denied</category>
      <category>ollama+openui+local LLM 구축</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/937</guid>
      <comments>https://couplewith.tistory.com/937#entry937comment</comments>
      <pubDate>Fri, 24 Apr 2026 17:36:03 +0900</pubDate>
    </item>
    <item>
      <title>Windows WSL에서 Podman + Ollama 챗봇 완성하기 (NVIDIA GPU)</title>
      <link>https://couplewith.tistory.com/936</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;559&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c0lBeB/dJMcajaTJYs/WKzQgLDEGF48eqfuGv4v61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c0lBeB/dJMcajaTJYs/WKzQgLDEGF48eqfuGv4v61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c0lBeB/dJMcajaTJYs/WKzQgLDEGF48eqfuGv4v61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc0lBeB%2FdJMcajaTJYs%2FWKzQgLDEGF48eqfuGv4v61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;559&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;559&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h1&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Windows WSL에서 Podman + Ollama 챗봇 완성하기 ( 노트북 NVIDIA GPU&lt;span&gt;)&lt;/span&gt;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2026년 4월 24일&lt;/b&gt;&amp;nbsp; | &lt;b&gt;AI/ML, 컨테이너, 시스템 관리&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;Windows 노트북에서 Ollama + WebUI를 이용하여 챗봇을 구성했는데 GPU가 NVIDIA 를 사용하지 않아서 작성을 했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt; ️ 왜 이 설정이 중요한가?&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Windows에서 로컬 LLM을 돌리려면 GPU 가속이 필수입니다. Docker는 편리하지만 rootless 보안과 Podman의 가벼운 특성을 활용하고 싶다면 &lt;b&gt;WSL + Podman machine + NVIDIA GPU&lt;/b&gt; 조합이 최적입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 글에서는 &lt;b&gt;실제 동작하는 환경&lt;/b&gt;인 &lt;code&gt;podman-machine-default&lt;/code&gt;(Fedora 43)에서 RTX 4070 GPU를 Ollama와 Open WebUI에 연결하는 &lt;b&gt;단계별 절차&lt;/b&gt;를 정리합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심&lt;/b&gt;: &lt;code&gt;podman machine ssh&lt;/code&gt;로 들어간 VM에서 GPU가 먼저 확인되어야 컨테이너도 GPU를 쓸 수 있습니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt; ️ 1. 전체 구조 이해하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 작동 원리&lt;/b&gt;:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;WSL2 기반 Podman Machine 구성&lt;/b&gt;&lt;br /&gt;- Windows&amp;nbsp;WSL에서&amp;nbsp;GPU를&amp;nbsp;사용가능해야함 &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;NVIDIA Container Toolkit 설치 및 GPU 확인&lt;/b&gt;&lt;br /&gt;-&lt;/span&gt;&lt;/span&gt;&lt;span&gt; CDI(nvidia-ctk)로&amp;nbsp;GPU&amp;nbsp;장치를&amp;nbsp;정의해야&amp;nbsp;함&lt;br /&gt;- Podman machine(Fedora 43 VM) 내부에서 nvidia-smi가 동작해야 함&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;Ollama Docker 실행&lt;/b&gt;&lt;br /&gt;- 컨테이너&amp;nbsp;실행&amp;nbsp;시&amp;nbsp;--device&amp;nbsp;nvidia.com/gpu=all&amp;nbsp;명시해야&amp;nbsp;함&lt;br /&gt;- rootless&amp;nbsp;권한(--group-add&amp;nbsp;keep-groups)&amp;nbsp;맞춰야&amp;nbsp;함&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;WebUI 연동으로 챗봇 구현&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;Trouble Shooting (RTX 4070 GPU 정상 작동 확인)&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;properties&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot;&gt;&lt;code&gt;Windows (NVIDIA Driver) 
    &amp;darr;
WSL2 / Podman Machine (Fedora 43) 
    &amp;darr; NVIDIA Container Toolkit + CDI
Podman Rootless Container (GPU 전달)
    &amp;darr; --device nvidia.com/gpu=all
Ollama + Open WebUI (RTX 4070 가속)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;  2.&amp;nbsp; Windows Host 환경&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;2.1 Windows Host에&amp;nbsp; Podman + WSL 설치 확인&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;* Windows Host에는 NVIDIA 드라이버가 정상 설치되어 있어야 합니다. &lt;br /&gt;* Podman이&amp;nbsp;설치되어&amp;nbsp;있어야&amp;nbsp;합니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ㅁ&amp;nbsp; Podman desktop 을 설치하고 다음 사항을 확인 합니다.&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1777009298326&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;- podman desktop의 작동 
podman system connection list
podman machine start


# * -- machine start를 하면 podman desktop의 관리 화면에 container리스트가 확인됩니다

# 머신을 재기동 하는 방법은 아래와 같습니다. 
podman machine stop
podman machine set --rootful
podman machine start


# * podman machine set --rootful 
# - 호스트와 컨테이너 간의 파일 시스템을 마운트(Volume Mount)할 때, 
#   호스트의 특정 디렉터리 권한과 컨테이너 내부 사용자의 UID/GID가 일치하지 않아
#   &quot;Permission Denied&quot; 오류가 발생하는 경우 사용합니다.
# - 파일 권한 오류나 GPU 접근 문제가 발생할 때 podman machine set --rootful을 사용하면 해결할 수 있습니다.
# - 다만 rootful 모드는 보안적으로 더 민감하므로, 꼭 필요한 경우에만 사용하는 것이 권장됩니다.&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;&lt;br /&gt;2.2 Windows + podman 에서&amp;nbsp; GPU 상태 확인&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[Windows host]&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# Windows PowerShell에서

PS C:\&amp;gt; nvidia-smi
nvidia-smi  -L
wsl -l -v
podman machine ls
podman machine ssh&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;Windows에서&amp;nbsp; nvidia-smi or&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;nvidia-smi&lt;span&gt;&amp;nbsp; -L&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1284&quot; data-origin-height=&quot;724&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yB05e/dJMcafzCnSk/zU6XkPYfegkrZPIKQphAn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yB05e/dJMcafzCnSk/zU6XkPYfegkrZPIKQphAn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yB05e/dJMcafzCnSk/zU6XkPYfegkrZPIKQphAn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyB05e%2FdJMcafzCnSk%2FzU6XkPYfegkrZPIKQphAn0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1284&quot; height=&quot;724&quot; data-origin-width=&quot;1284&quot; data-origin-height=&quot;724&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# Podman machine 내부에서 GPU 설정 확인
cat /etc/redhat-release          # Fedora release 43 (Forty Three)
nvidia-smi                       # RTX 4070이 보이는가?&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ㅁ 다음과 같이 Container에서 GPU 설정 확인되어야 합니다.&lt;/b&gt;&lt;br /&gt;&amp;nbsp; -&amp;nbsp; 3장에서 WSL 설정 부터 차례로 진행해야 합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1777011290278&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[Windows host 에서 다음을 실행]
# Container 별로 GPU 인식을 확인합니다.
[root@WIN-EIM8HKM01Q1 ~]# podman exec -it open-webuiv2_cuda  nvidia-smi -L
GPU 0: NVIDIA GeForce RTX 4070 Laptop GPU (UUID: GPU-a6ca11e7-9c72-25bd-71ef-d74275aa310d)

[root@WIN-EIM8HKM01Q1 ~]# podman exec -it ollamav2  nvidia-smi -L
GPU 0: NVIDIA GeForce RTX 4070 Laptop GPU (UUID: GPU-a6ca11e7-9c72-25bd-71ef-d74275aa310d)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;54&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l6iz5/dJMcag6lNsN/AOIfmrdnwYzQmdDfBi1Ui0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l6iz5/dJMcag6lNsN/AOIfmrdnwYzQmdDfBi1Ui0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l6iz5/dJMcag6lNsN/AOIfmrdnwYzQmdDfBi1Ui0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl6iz5%2FdJMcag6lNsN%2FAOIfmrdnwYzQmdDfBi1Ui0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;54&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;54&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅ 성공 기준&lt;/b&gt;: &lt;code&gt;nvidia-smi&lt;/code&gt;에서 RTX 4070과 드라이버 정보가 표시됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;❌ 실패 시&lt;/b&gt;: Windows NVIDIA 드라이버 &amp;rarr; WSL GPU 지원 &amp;rarr; Podman machine 순서로 점검&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;⚙️ 3. WSL &amp;gt; Podman Machine GPU 설정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3.1 &lt;b&gt;WSL + podman machine&lt;/b&gt; 에서 다음을 설치 합니다.&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;[ nvidia-ctk : Toolkit 구성]&lt;/b&gt;&lt;br /&gt;* libnvidia-container: 컨테이너 내부에서 GPU 장치 노출&lt;br /&gt;* nvidia-ctk: CDI 스펙 생성 및 관리&lt;br /&gt;* cdi.yaml: Podman이 GPU 장치를 인식할 수 있도록 설정 파일 제공&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3.1.1&amp;nbsp; WSL + podman machine에&amp;nbsp; NVIDIA Container Toolkit 설치&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;PS C:\&amp;gt; podman machine ssh

# podman machine ssh 내부에서 실행
sudo dnf install -y nvidia-container-toolkit

or

$ curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
 tee /etc/yum.repos.d/nvidia-container-toolkit.repo &amp;amp;&amp;amp; \
 yum install -y nvidia-container-toolkit &amp;amp;&amp;amp; \
 nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml &amp;amp;&amp;amp; \
 nvidia-ctk cdi list&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3.1.2&amp;nbsp; CDI 스펙 생성 (핵심!)&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;verilog&quot;&gt;&lt;code&gt;sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
nvidia-ctk cdi list&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅ 성공 시 출력&lt;/b&gt;:&lt;/p&gt;
&lt;pre id=&quot;code_1777012242530&quot; class=&quot;routeros&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# nvidia-ctk  cdi list
INFO[0000] Found 1 CDI devices
nvidia.com/gpu=all&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;Device nvidia.com/gpu=0
Device nvidia.com/gpu=all&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;  3.2. Podman machine에서 container GPU 전달 테스트&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;가장 중요한 검증 단계&lt;/b&gt;입니다.&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;PS C:\&amp;gt; podman machine ssh

podman run --rm -it \
  --device nvidia.com/gpu=all \
  --group-add keep-groups \
  --security-opt=label=disable \
  ubuntu:22.04 nvidia-smi -L&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅ 성공 시&lt;/b&gt;: 컨테이너 내부에서 RTX 4070 확인&lt;br /&gt;&lt;b&gt;❌ 실패 시&lt;/b&gt;: CDI, 권한, SELinux 문제&lt;/p&gt;
&lt;pre id=&quot;code_1777012370377&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;PS C:\&amp;gt; podman machine ssh
Connecting to vm podman-machine-default. To close connection, use `~.` or `exit`
Last login: Fri Apr 24 15:31:57 2026 from ::1
[root@WIN-EIM8HKM01Q1 ~]# podman run --rm -it \
&amp;gt;   --device nvidia.com/gpu=all \
&amp;gt;   --group-add keep-groups \
&amp;gt;   --security-opt=label=disable \
&amp;gt;   ubuntu:22.04 nvidia-smi -L
GPU 0: NVIDIA GeForce RTX 4070 Laptop GPU (UUID: GPU-a6ca11e7-9c72-25bd-71ef-d74275aa310d)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  4. Ollama + WebUI 완전 구성&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4.1 Podman Compose 파일&lt;/h3&gt;
&lt;pre class=&quot;http&quot;&gt;&lt;code&gt;version: &quot;3.1&quot;

services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollamav2
    restart: unless-stopped
    devices:
      - nvidia.com/gpu=all
    volumes:
      - ollama:/root/.ollama
    environment:
      - OLLAMA_HOST=0.0.0.0
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=compute,utility
    ports:
      - &quot;11434:11434&quot;
    networks:
      - backend
    healthcheck:
      test: [&quot;CMD-SHELL&quot;, &quot;ollama list || exit 1&quot;]
      interval: 600s
      retries: 5

  open-webui:
    image: ghcr.io/open-webui/open-webui:cuda
    container_name: open-webuiv2
    restart: unless-stopped
    devices:
      - nvidia.com/gpu=all
    ports:
      - &quot;${WEBUI_PORT:-3000}:8080&quot;
    volumes:
      - open-webui:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    depends_on:
      ollama:
        condition: service_healthy
    networks:
      - backend

networks:
  backend:
    driver: bridge

volumes:
  ollama:
  open-webui:&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5.2 실행&lt;/h3&gt;
&lt;pre class=&quot;vala&quot;&gt;&lt;code&gt;# podman machine ssh 내부에서
podman-compose up -d

# 모델 다운로드 (작은 모델부터!)
podman exec ollamav2 ollama pull llama3.2:3b&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5.3 접속&lt;/h3&gt;
&lt;pre class=&quot;groovy&quot;&gt;&lt;code&gt;http://localhost:3000 &amp;rarr; Open WebUI
Ollama API &amp;rarr; http://localhost:11434&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅ 6. GPU 실제 사용 확인&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;6.1 실시간 모니터링&lt;/h3&gt;
&lt;pre class=&quot;properties&quot;&gt;&lt;code&gt;# 터미널 1: GPU 사용량 확인
watch -n 1 nvidia-smi

# 터미널 2: Ollama 로그
podman logs -f ollamav2&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;6.2 성공 기준&lt;/h3&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;✅ WebUI에서 llama3.2 모델 선택
✅ 채팅 응답이 CPU보다 5~10배 빠름  
✅ nvidia-smi에서 VRAM 사용량 증가
✅ Ollama 로그에 GPU 관련 메시지&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이&amp;nbsp; Nvidia GPU 를 사용하고 있습니다. (아주 작게 보이지만 실행됩니다.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;607&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cT9zvx/dJMcagkXC1o/kUk1HgkMcPqcnK2TaDYPx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cT9zvx/dJMcagkXC1o/kUk1HgkMcPqcnK2TaDYPx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cT9zvx/dJMcagkXC1o/kUk1HgkMcPqcnK2TaDYPx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcT9zvx%2FdJMcagkXC1o%2FkUk1HgkMcPqcnK2TaDYPx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;556&quot; height=&quot;607&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;607&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  7. 트러블슈팅 체크리스트&lt;/h2&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;문제&lt;/th&gt;
&lt;th&gt;원인&lt;/th&gt;
&lt;th&gt;해결책&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;VM에서 &lt;code&gt;nvidia-smi&lt;/code&gt; 실패&lt;/td&gt;
&lt;td&gt;Windows 드라이버 문제&lt;/td&gt;
&lt;td&gt;NVIDIA Studio Driver 최신화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;컨테이너에서만 실패&lt;/td&gt;
&lt;td&gt;CDI 미생성&lt;/td&gt;
&lt;td&gt;&lt;code&gt;nvidia-ctk cdi generate&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;권한 오류 (NVML)&lt;/td&gt;
&lt;td&gt;rootless 문제&lt;/td&gt;
&lt;td&gt;&lt;code&gt;--group-add keep-groups&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SELinux 차단&lt;/td&gt;
&lt;td&gt;보안 정책&lt;/td&gt;
&lt;td&gt;&lt;code&gt;--security-opt=label=disable&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebUI 연결 실패&lt;/td&gt;
&lt;td&gt;네트워크&lt;/td&gt;
&lt;td&gt;&lt;code&gt;OLLAMA_BASE_URL&lt;/code&gt; 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;⚠️ 주의사항 박스&lt;/h2&gt;
&lt;pre class=&quot;markdown&quot;&gt;&lt;code&gt;  RTX 4070 노트북 VRAM 제한 (8GB)
- 처음엔 3B~7B 모델만 사용
- llama3.2:3b, phi3:mini 권장
- 70B 모델은 OOM 발생 확률 높음

  Podman Machine 재시작 시
- CDI 파일 (/etc/cdi/nvidia.yaml) 유지 확인
- `nvidia-ctk cdi generate` 재실행

  Windows 재부팅 후
- `podman machine start`
- GPU 테스트 컨테이너로 검증&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  8. 마무리 - 완성된 로컬 챗봇&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 &lt;b&gt;Windows WSL &amp;rarr; Podman machine(Fedora 43) &amp;rarr; Ollama + WebUI&lt;/b&gt;로 완전한 GPU 가속 챗봇 환경이 구축되었습니다.&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;  핵심 성공 요인
1. podman machine 내부 GPU 확인
2. CDI 스펙 정확 생성  
3. rootless 권한 조정
4. 작은 모델부터 검증&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실행 시간&lt;/b&gt;: 약 30분&lt;br /&gt;&lt;b&gt;비용&lt;/b&gt;: 0원 (로컬 GPU 활용)&lt;br /&gt;&lt;b&gt;데이터 유출&lt;/b&gt;: 없음 (완전 오프라인)&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  참고 자료&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://podman-desktop.io/docs/podman/gpu&quot;&gt;Podman Desktop GPU Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ollama.com/blog/ollama-is-now-available-as-an-official-docker-image&quot;&gt;Ollama Docker 공식&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html&quot;&gt;NVIDIA Container Toolkit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;질문 있으시면 댓글로!&lt;/b&gt;&lt;br /&gt;현재 환경에서 막히는 부분이 있다면 &lt;b&gt;정확한 에러 메시지&lt;/b&gt;와 함께 알려주세요. 단계별로 해결해드리겠습니다!  &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(참고 : 다른 설치 메뉴얼을 참고 바랍니다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://couplewith.tistory.com/935&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[InfraPlatform] - 윈도우에서 Podman 설치 및 활용하기&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://couplewith.tistory.com/936&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[DevOps] - Windows WSL에서 Podman + Ollama 챗봇 완성하기 (NVIDIA GPU)&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://couplewith.tistory.com/937&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[InfraPlatform] -   Windows WSL + Podman Desktop 로 Ollama + Open WebUI GPU 챗봇 구축하기 (RTX 4070 노트북)&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DevOps</category>
      <category>Install Local LLM</category>
      <category>LLama3 install</category>
      <category>Ollama install with Docker</category>
      <category>OpenUi ChatBot install</category>
      <category>OpenUi+Ollama Local LLM</category>
      <category>Qwen3.5 install</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/936</guid>
      <comments>https://couplewith.tistory.com/936#entry936comment</comments>
      <pubDate>Fri, 24 Apr 2026 15:37:20 +0900</pubDate>
    </item>
    <item>
      <title>윈도우에서 Podman 설치 및 활용하기</title>
      <link>https://couplewith.tistory.com/935</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;podman 0 .png&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;487&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bY5YGX/dJMb99TC09H/8QleiTOGux117T9poS0L40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bY5YGX/dJMb99TC09H/8QleiTOGux117T9poS0L40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bY5YGX/dJMb99TC09H/8QleiTOGux117T9poS0L40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbY5YGX%2FdJMb99TC09H%2F8QleiTOGux117T9poS0L40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;386&quot; height=&quot;314&quot; data-filename=&quot;podman 0 .png&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;487&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h1&gt;윈도우에서 Podman 설치 및 활용하기&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컨테이너 기술은 주로 리눅스 환경에서 사용되지만, &lt;b&gt;Podman&lt;/b&gt;은 윈도우와 맥에서도 실행할 수 있도록 지원합니다. 이번 글에서는 윈도우 환경에서 Podman을 설치하고 활용하는 방법을 정리했습니다. 특히 WSL(Windows Subsystem for Linux)과의 연동 과정을 중심으로 설명합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt; ️ Podman과 WSL의 관계&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Podman은 기본적으로 리눅스 컨테이너를 실행하는 도구입니다.&lt;/li&gt;
&lt;li&gt;윈도우에서는 &lt;b&gt;WSL2 기반의 가상화 환경&lt;/b&gt;을 통해 Podman을 실행합니다.&lt;/li&gt;
&lt;li&gt;사용자는 PowerShell이나 CMD 프롬프트에서 Podman 명령을 직접 실행할 수 있으며, 이는 WSL 내부에서 동작하는 Podman 서비스와 원격으로 통신합니다.&lt;/li&gt;
&lt;li&gt;리눅스를 선호하는 경우, WSL 인스턴스 내에서 직접 Podman을 사용할 수도 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;⚙️포드맨 설치 준비&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Podman을 윈도우에서 사용하기 위해서는 다음 조건이 필요합니다:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Windows 10 최신 버전&lt;/b&gt; 또는 &lt;b&gt;Windows 11&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;WSL2 활성화 (빌드 18362 이상 필요, ARM64는 더 최신 빌드 요구)&lt;/li&gt;
&lt;li&gt;하드웨어 가상화 지원&lt;/li&gt;
&lt;li&gt;최신 &lt;b&gt;Windows 터미널&lt;/b&gt; 설치 권장 (PowerShell보다 더 나은 사용자 경험 제공)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 명령 예시:&lt;/p&gt;
&lt;pre class=&quot;cmake&quot;&gt;&lt;code&gt;winget install Microsoft.WindowsTerminal&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VoyWK/dJMcah5dD08/9I8jAhYVPDCJCBgt3azTLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VoyWK/dJMcah5dD08/9I8jAhYVPDCJCBgt3azTLk/img.png&quot; width=&quot;307&quot; height=&quot;243&quot; data-is-animation=&quot;false&quot; data-origin-height=&quot;892&quot; data-origin-width=&quot;1129&quot; data-widthpercent=&quot;44.16&quot; style=&quot;width: 43.6492%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VoyWK/dJMcah5dD08/9I8jAhYVPDCJCBgt3azTLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVoyWK%2FdJMcah5dD08%2F9I8jAhYVPDCJCBgt3azTLk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1129&quot; height=&quot;892&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2vXmC/dJMcaf7m4k8/wWVx6GQIBCp6t7ErIKe5w1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2vXmC/dJMcaf7m4k8/wWVx6GQIBCp6t7ErIKe5w1/img.png&quot; width=&quot;336&quot; height=&quot;210&quot; data-is-animation=&quot;false&quot; data-origin-height=&quot;703&quot; data-origin-width=&quot;1125&quot; style=&quot;width: 55.188%;&quot; data-widthpercent=&quot;55.84&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2vXmC/dJMcaf7m4k8/wWVx6GQIBCp6t7ErIKe5w1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2vXmC%2FdJMcaf7m4k8%2FwWVx6GQIBCp6t7ErIKe5w1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1125&quot; height=&quot;703&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  Podman 설치 과정&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Podman 설치 프로그램 다운로드&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;공식 GitHub 릴리스 페이지에서 Podman Windows 설치 파일(EXE)을 다운로드합니다.&lt;/li&gt;
&lt;li&gt;반드시 &lt;b&gt;버전 4.1 이상&lt;/b&gt;을 받아야 최신 기능을 사용할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Podman 머신 초기화&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;WSL이 설치되어 있지 않다면 자동으로 설치가 진행됩니다.&lt;/li&gt;
&lt;li&gt;Fedora 기반의 최소 리눅스 환경이 구성되며, Podman 실행을 위한 커스터마이즈가 완료됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;podman machine init&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Podman 머신 시작&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기본적으로 &lt;b&gt;rootless 모드&lt;/b&gt;로 실행됩니다.&lt;/li&gt;
&lt;li&gt;루트 권한이 필요한 경우 podman machine set --rootful 명령으로 전환할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;podman machine start&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 단계에서 기본적으로 %USERPROFILE%\.local\share\containers\podman\machine\wsl 경로에 데이터가 생성됩니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 이미지 및 볼륨 저장소 경로 변경 (C:\DevData\docker)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Podman의 모든 데이터(이미지, 볼륨 등)는 podman-machine-default라는 WSL 배포판 안에 저장됩니다. 이를 C:\DevData\docker로 옮기는 절차입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;① Podman 머신 중지&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;podman machine stop&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;② WSL 배포판 내보내기 (Export)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 데이터를 백업 파일로 추출합니다.&lt;/p&gt;
&lt;pre class=&quot;taggerscript&quot;&gt;&lt;code&gt;# 이미지 저장용 임시 디렉토리 생성 (예: C:\DevData\temp)
mkdir C:\DevData\temp
wsl --export podman-machine-default C:\DevData\temp\podman-data.tar&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;③ 기존 머신 제거 (Unregister)&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;actionscript&quot;&gt;&lt;code&gt;wsl --unregister podman-machine-default&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;④ 새 경로로 가져오기 (Import)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원하는 경로(C:\DevData\docker\wsl)에 데이터를 다시 구축합니다.&lt;/p&gt;
&lt;pre class=&quot;taggerscript&quot;&gt;&lt;code&gt;# 저장할 디렉토리 생성
mkdir C:\DevData\docker\wsl

# 배포판 이름 / 설치 경로 / 백업 파일 경로 순서
wsl --import podman-machine-default C:\DevData\docker\wsl C:\DevData\temp\podman-data.tar&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;⑤ 머신 다시 시작&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;crmsh&quot;&gt;&lt;code&gt;podman machine start&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 모든 이미지와 볼륨은 C:\DevData\docker\wsl폴더 내의 가상 디스크 파일에 저장됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 이미지 생성 및 저장 절차 (기본 사용법)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;관리 경로 설정이 끝났다면, 일반적인 이미지 작업 흐름은 다음과 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*&lt;i&gt;① 이미지 생성 (Build)&lt;br /&gt;*&lt;/i&gt;프로젝트 루트에 Dockerfile이 있는 경우:&lt;/p&gt;
&lt;pre class=&quot;armasm&quot;&gt;&lt;code&gt;# 이미지 빌드 (이름: my-app, 태그: v1)
podman build -t my-app:v1 .&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;② 이미지 로컬 저장 (Save / Export)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인터넷이 안 되는 환경으로 옮기거나 백업할 때 파일을 추출합니다.&lt;/p&gt;
&lt;pre class=&quot;applescript&quot;&gt;&lt;code&gt;# 이미지를 tar 파일로 저장
podman save -o C:\DevData\my-app-v1.tar my-app:v1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;③ 볼륨 생성 및 연결&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;crystal&quot;&gt;&lt;code&gt;# 볼륨 생성
podman volume create my-db-data

# 볼륨을 연결하여 컨테이너 실행
podman run -d --name my-db -v my-db-data:/var/lib/mysql mysql:latest&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 설정 파일 위치 커스텀 (고급)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Podman 자체의 설정 파일(containers.conf, storage.conf) 위치를 바꾸고 싶다면 &lt;b&gt;환경 변수&lt;/b&gt;를 등록해야 합니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;시스템 환경 변수 편집&lt;/b&gt;으로 이동합니다.&lt;/li&gt;
&lt;li&gt;다음 변수를 추가합니다:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CONTAINERS_CONF: C:\DevData\docker\config\containers.conf&lt;/li&gt;
&lt;li&gt;CONTAINERS_STORAGE_CONF: C:\DevData\docker\config\storage.conf&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;해당 경로에 설정 파일을 복사해두면 Podman이 실행될 때 해당 설정을 참조합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  컨테이너 실행 예시&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단한 컨테이너 실행:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작업 디렉토리를 &lt;b&gt;&lt;code&gt;C:\DevData\docker&lt;/code&gt;&lt;/b&gt;로 지정하여 이미지를 다운로드(Pull), 파일로 저장(Save), 그리고 다시 불러오기(Load) 하는 전체 과정을 정리해 드립니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 사전 준비: 작업 디렉토리 이동&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 터미널(PowerShell 또는 CMD)을 열고, 모든 작업의 기준이 될 디렉토리로 이동합니다. 이 경로에 &lt;code&gt;.tar&lt;/code&gt; 백업 파일들이 저장됩니다.&lt;/p&gt;
&lt;pre class=&quot;livescript&quot;&gt;&lt;code&gt;# 디렉토리 생성 (이미 존재하면 생략 가능)
mkdir -p C:\DevData\docker

# 해당 디렉토리로 이동
cd C:\DevData\docker&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 이미지 다운로드 및 로컬 저장 (추출 단계)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인터넷이 연결된 PC에서 이미지를 가져와 USB 등에 담을 수 있는 &lt;code&gt;.tar&lt;/code&gt; 파일로 만드는 과정입니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;① 이미지 Pull (다운로드)&lt;/h3&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;podman pull ollama/ollama
podman pull ghcr.io/open-webui/open-webui:main&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;② 이미지 Save (파일로 내보내기)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 위치(&lt;code&gt;C:\DevData\docker&lt;/code&gt;)에 파일이 생성됩니다.&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# Ollama 이미지 저장
podman save -o ollama.tar ollama/ollama

# Open-WebUI 이미지 저장
podman save -o webui.tar ghcr.io/open-webui/open-webui:main&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 이미지 불러오기 (배포 단계)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인터넷이 연결되지 않았거나, 다른 환경의 PC에서 저장된 파일을 다시 Podman으로 로드하는 과정입니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;① 파일 존재 확인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;C:\DevData\docker&lt;/code&gt; 폴더 내에 &lt;code&gt;ollama.tar&lt;/code&gt;와 &lt;code&gt;webui.tar&lt;/code&gt; 파일이 있는지 확인합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;② 이미지 Load (불러오기)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;터미널에서 아래 명령어를 실행합니다. (상대 경로 또는 절대 경로를 사용합니다.)&lt;/p&gt;
&lt;pre class=&quot;gauss&quot;&gt;&lt;code&gt;# 해당 디렉토리에서 실행 시
podman load -i ollama.tar
podman load -i webui.tar

# 또는 절대 경로 지정 시
podman load -i C:\DevData\docker\ollama.tar
podman load -i C:\DevData\docker\webui.tar&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 설치 및 관리 팁 (C:\DevData\docker 활용)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미지가 제대로 로드되었는지 확인&lt;/p&gt;
&lt;pre class=&quot;ebnf&quot;&gt;&lt;code&gt;podman images&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리스트에 &lt;code&gt;ollama/ollama&lt;/code&gt;와 &lt;code&gt;open-webui&lt;/code&gt;가 나타나면 성공입니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;볼륨(Volume) 지정 시 주의사항&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 컨테이너를 실행할 때, 데이터가 저장될 볼륨 역시 &lt;code&gt;C:\DevData\docker&lt;/code&gt; 하위의 특정 폴더로 지정하여 관리하면 데이터 백업이 용이합니다.&lt;/p&gt;
&lt;pre class=&quot;applescript&quot;&gt;&lt;code&gt;# 예시: 로컬 폴더를 볼륨으로 연결하여 실행
podman run -d --name ollama `
  -v C:\DevData\docker\ollama_data:/root/.ollama `
  -p 11434:11434 `
  ollama/ollama&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  Podman image 활용 핵심 요약표&lt;/h3&gt;
&lt;table data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;단계&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;명령어&lt;/td&gt;
&lt;td&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;b&gt;이동&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;cd C:\DevData\docker&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;작업 기준 경로로 변경&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;b&gt;추출&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;podman save -o [이름].tar [이미지명]&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;이미지를 단일 파일로 변환&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;b&gt;복구&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;podman load -i [이름].tar&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;파일을 읽어 Podman 이미지 목록에 추가&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;b&gt;확인&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;podman images&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;현재 관리 중인 이미지 목록 출력&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 절차대로 진행하시면 &lt;code&gt;C:\DevData\docker&lt;/code&gt; 디렉토리를 중심으로 깔끔하게 이미지를 관리하고 이동하실 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt; ️ 문제 해결&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자동 설치가 실패할 경우:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;WSL 기능을 비활성화 후 재설치&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;재부팅 후 수동 설치&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wsl --install&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✨ 마무리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Podman은 윈도우 환경에서도 리눅스 컨테이너를 손쉽게 실행할 수 있도록 지원합니다. 특히 WSL과의 긴밀한 통합 덕분에 개발자들은 리눅스와 윈도우를 넘나들며 유연하게 컨테이너를 활용할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ㅁ (Ollama+ OpenUI ) 설치는 다음 글을 참조 바랍니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://couplewith.tistory.com/936&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[DevOps] - Windows WSL에서 Podman + Ollama 챗봇 완성하기 (NVIDIA GPU)&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://couplewith.tistory.com/937&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[InfraPlatform] -   Windows WSL + Podman Desktop 로 Ollama + Open WebUI GPU 챗봇 구축하기 (RTX 4070 노트북)&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>InfraPlatform</category>
      <category>Podman의 설치와 구성 예시</category>
      <category>wsl podman install</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/935</guid>
      <comments>https://couplewith.tistory.com/935#entry935comment</comments>
      <pubDate>Tue, 21 Apr 2026 09:09:36 +0900</pubDate>
    </item>
    <item>
      <title>[Docker 탈출] 오프라인 환경에서 Podman으로 Ollama AI 모델 관리하기</title>
      <link>https://couplewith.tistory.com/934</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Podman을 이용한 Ollamaimage_b97eb758.png&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s1ga0/dJMcagL0upt/KpaIG4tz30qS5ZlxnysUXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s1ga0/dJMcagL0upt/KpaIG4tz30qS5ZlxnysUXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s1ga0/dJMcagL0upt/KpaIG4tz30qS5ZlxnysUXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs1ga0%2FdJMcagL0upt%2FKpaIG4tz30qS5ZlxnysUXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1376&quot; height=&quot;768&quot; data-filename=&quot;Podman을 이용한 Ollamaimage_b97eb758.png&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Docker Desktop을 이용하려다가 내부 폐쇄망에서 작업을 하는데 작동을 안하는 군요. 그래서&amp;nbsp;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;정리해 봅니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;[Docker 탈출] 오프라인 환경에서 Podman으로 Ollama AI 모델 관리하기&lt;/h2&gt;
&lt;div style=&quot;color: #333333; text-align: start;&quot;&gt;폐쇄망이나 오프라인 개발 환경에서 컨테이너를 관리해야 한다면, 무거운 Docker Desktop 대신&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;Podman(포드맨)&lt;/span&gt;이 정답입니다. 특히 기업용 유료 라이선스 제약이 없고 오프라인 설치가 간편한 Podman을 활용하여 Ollama 모델 서버를 구축하는 방법을 정리해 드립니다.&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #ffc9af;&quot;&gt;&lt;u&gt; &lt;b&gt;오프라인&amp;nbsp;환경에서&amp;nbsp;유료&amp;nbsp;라이선스&amp;nbsp;걱정&amp;nbsp;없이&amp;nbsp;Docker를&amp;nbsp;대체할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;Podman&amp;nbsp;설치&amp;nbsp;및&amp;nbsp;모델&amp;nbsp;관리&amp;nbsp;가이드&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;1. 왜 Docker 대신 Podman인가?&lt;/h3&gt;
&lt;div style=&quot;color: #333333; text-align: start;&quot;&gt;오프라인/기업 환경에서 Podman이 가지는 압도적인 장점은 3가지입니다.&lt;/div&gt;
&lt;div style=&quot;color: #333333; text-align: start;&quot;&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;완전 무료&lt;/span&gt;: 기업 규모와 상관없이 오픈소스로 자유롭게 사용 가능합니다.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;데몬리스(Daemon-less)&lt;/span&gt;: 백그라운드 상주 프로세스가 없어 메모리 점유율이 낮습니다. (AI 모델 구동에 유리!)&lt;/li&gt;
&lt;li&gt;&lt;span&gt;보안성&lt;/span&gt;: 루트(Root) 권한 없이 실행 가능하여 보안 검열이 까다로운 환경에 적합합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;Docker Desktop&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; vs Podman&amp;nbsp; 핵심 비교&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 231px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px; width: 9.18605%;&quot;&gt;구분&lt;/td&gt;
&lt;td style=&quot;height: 20px; width: 47.2093%;&quot;&gt;Docker Desktop&lt;/td&gt;
&lt;td style=&quot;height: 20px; width: 43.4884%;&quot;&gt;Podman (Desktop)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: left; height: 20px; width: 9.18605%;&quot;&gt;&lt;span&gt;제조사&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px; width: 47.2093%;&quot;&gt;&lt;b&gt;Docker, Inc&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px; width: 43.4884%;&quot;&gt;&lt;span&gt; &lt;b&gt;Red Hat&lt;/b&gt; &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 34px;&quot;&gt;
&lt;td style=&quot;text-align: left; height: 34px; width: 9.18605%;&quot;&gt;&lt;span&gt;구조&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 34px; width: 47.2093%;&quot;&gt;&lt;span&gt;Daemon 기반&lt;/span&gt;: 백그라운드에서 항상 실행되는 서비스(Docker 엔진)가 필요함&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 34px; width: 43.4884%;&quot;&gt;&lt;span&gt;Daemon-less&lt;/span&gt;: 엔진 없이 개별 프로세스로 실행되어 리소스 효율적임&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 9.18605%;&quot;&gt;&lt;span&gt;권한&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 47.2093%;&quot;&gt;보통 루트(Root) 권한이 필요함&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 43.4884%;&quot;&gt;&lt;span&gt;Rootless&lt;/span&gt;: 루트 권한 없이 실행 가능하여 보안에 유리함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 9.18605%;&quot;&gt;&lt;span&gt;가격정책&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 47.2093%;&quot;&gt;유료화:&amp;nbsp;&amp;nbsp;&lt;br /&gt;- 기업 환경에서는 유료 구독(Pro, Team, Business)이 필요&lt;br /&gt;- &lt;span style=&quot;background-color: #f9f9f9; color: #333333; text-align: left;&quot;&gt;로그인 강제 정책이 강화됨&lt;/span&gt; &amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 43.4884%;&quot;&gt;&lt;span&gt;완전 무료/오픈소스&lt;/span&gt;:&amp;nbsp;&lt;br /&gt;&lt;b&gt;- 무료 및 오픈소스(Apache License 2.0)&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;. 기업 사용을 포함&lt;br /&gt;- &lt;span style=&quot;background-color: #f9f9f9; color: #333333; text-align: left;&quot;&gt;로그인이나 기업용 유료 결제가 없음&lt;/span&gt; &lt;/span&gt; &lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 9.18605%;&quot;&gt;&lt;span&gt;오프라인&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 47.2093%;&quot;&gt;온라인 필수&lt;br /&gt;업데이트 체크, 라이선스 확인 등으로 온라인 연결 시도가 잦음&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 43.4884%;&quot;&gt;오프라인 작동&lt;br /&gt;설치 파일만 있으면 오프라인 동작이 매우 안정적임&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left; width: 9.18605%;&quot;&gt;&lt;span&gt;다운로드&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 47.2093%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;도커데스크톱 (docker.com/products/docker-desktop)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 43.4884%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;팟맨 데스크톱 (podman-desktop.io)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left; width: 9.18605%;&quot;&gt;&lt;span&gt;장단점&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 47.2093%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt; 테이너 기술의 표준이며 관련 자료와 커뮤니티가 압도적&lt;br /&gt;일정 규모 이상의 기업에서는 유료 라이선스를 구매 &lt;br /&gt;백그라운드에서 메모리 상주 &lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 43.4884%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt; 컨테이너를 실행할 때만 리소스를 사용&lt;br /&gt;루트 권한을 사용하지 않아 시스템 보안 위협이 적음&lt;br /&gt;호환성: 도커 전용 볼륨 마운트 방식 등에서 미세한 차이 &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. 추천&lt;/h4&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &lt;b&gt;내부 개발 환경으로 사용하는 상황(오프라인, 수동 관리)이라면 &quot;Podman Desktop&quot;을 강력 추천합니다.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;추천 이유:&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;오프라인 안정성:&lt;/span&gt; Docker Desktop은 네트워크가 안 되면 라이선스 확인이나 업데이트 팝업으로 인해 사용이 불편해지는 경우가 많지만, Podman은 독립적인 바이너리로 깔끔하게 작동합니다.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;무료 정책:&lt;/span&gt; 기업 환경에서도 비용 걱정 없이 자유롭게 오프라인 복제가 가능합니다.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;가벼운 리소스:&lt;/span&gt; Ollama와 같은 AI 모델은 GPU와 RAM을 많이 사용하는데, Podman은 컨테이너 관리 엔진 자체의 리소스 점유율이 낮아 모델 구동에 더 많은 자원을 할당할 수 있습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;오프라인&amp;nbsp;환경에서&amp;nbsp;유료&amp;nbsp;라이선스&amp;nbsp;걱정&amp;nbsp;없이&amp;nbsp;Docker를&amp;nbsp;대체할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;Podman&amp;nbsp;설치&amp;nbsp;및&amp;nbsp;모델&amp;nbsp;관리&amp;nbsp;가이드&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;[오프라인 가이드] Podman을 이용한 Ollama + Open WebUI 구축하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;오프라인 환경에서 ChatGPT와 같은 인터페이스를 구축하려면 모델을 구동하는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Ollama&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;와 사용자 화면을 제공하는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Open WebUI&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;두 개의 컨테이너가 필요합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. Podman 오프라인 설치 준비 (온라인 PC에서 할 일)&lt;/h3&gt;
&lt;div&gt;먼저 인터넷이 되는 PC에서 필요한 파일들을 다운로드합니다.&lt;/div&gt;
&lt;div&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;Podman Desktop 설치 파일&lt;/span&gt;: Podman Desktop 공식 홈페이지에서 Windows용 .exe 파일을 받습니다.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;WSL2 커널 업데이트 패키지&lt;/span&gt;: 오프라인 윈도우라면 반드시 MS 공식 사이트에서 WSL2 커널 업데이트 설치 프로그램(wsl_update_x64.msi)을 챙겨야 합니다.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Ollama 이미지 추출&lt;/span&gt;:
&lt;div style=&quot;background-color: #f4f6f7;&quot;&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# 이미지 풀링 (다운로드)
podman pull ollama/ollama
podman pull ghcr.io/open-webui/open-webui:main

# 파일로 저장 (USB 이동용)
podman save -o ollama.tar ollama/ollama
podman save -o webui.tar ghcr.io/open-webui/open-webui:main&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; (설치가이드)&lt;br /&gt;&amp;nbsp; &amp;nbsp; - &lt;a href=&quot;https://github.com/containers/podman/blob/main/docs/tutorials/podman-for-windows.md&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/containers/podman/blob/main/docs/tutorials/podman-for-windows.md&lt;/a&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; -&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://podman.io/docs/installation&quot;&gt;https://podman.io/docs/installation&lt;/a&gt; &lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. 오프라인 PC에 설치하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;① WSL2 및 Podman 설치와 초기화&lt;br /&gt;&amp;nbsp; &amp;nbsp; -&amp;nbsp;&lt;b&gt; &lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; letter-spacing: 0px;&quot;&gt;Podman Desktop&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; letter-spacing: 0px;&quot;&gt;설치 파일과&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; letter-spacing: 0px;&quot;&gt;WSL2 커널 업데이트&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; letter-spacing: 0px;&quot;&gt;파일을 챙깁니다.&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;준비해온 wsl_update_x64.msi를 먼저 설치합니다.&lt;/li&gt;
&lt;li&gt;Podman-Desktop-setup.exe를 실행하여 설치를 완료합니다.&lt;/li&gt;
&lt;li&gt;Podman Desktop을 실행하고 &lt;span&gt;&quot;Initialize and Start&quot;&lt;/span&gt;를 눌러 가상 머신 구동을 시작합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;② Ollama 이미지 로드&lt;/p&gt;
&lt;div&gt;USB로 옮겨온 이미지를 Podman에 등록합니다.&lt;/div&gt;
&lt;div style=&quot;background-color: #f4f6f7;&quot;&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# 터미널(CMD/PS)에서 실행
podman load -i C:\경로\to\ollamae.tar

podman load -i C:\경로\to\webui.tar&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;6. 컨테이너 실행 (네트워크 연결 설정)&lt;/h4&gt;
&lt;div&gt;두 컨테이너가 서로 통신할 수 있도록 &lt;span&gt;하나의 네트워크&lt;/span&gt;로 묶어서 실행하는 것이 포인트입니다.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;① Podman 네트워크 생성&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;background-color: #f4f6f7;&quot;&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;podman network create ai-net
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;② Ollama 컨테이너 실행&lt;/span&gt; (모델 경로 마운트 포함)&lt;/p&gt;
&lt;div style=&quot;background-color: #f4f6f7;&quot;&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;podman run -d `
  --name ollama-server `
  [--network ai-net `]
  -p 11434:11434 `
  -e OLLAMA_HOST=0.0.0.0 `
  -v C:\DevData\ollama:/root/.ollama `
  ollama/ollama&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;-e OLLAMA_HOST=0.0.0.0&lt;/span&gt;: 외부 PC에서 이 서버의 IP로 접속할 수 있게 합니다.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;-v (볼륨 마운트)&lt;/span&gt;: 호스트의 C:\DevData\ollama를 컨테이너 내부 모델 경로와 동기화합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;③ Open WebUI 컨테이너 실행&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ollama 서버 주소를 컨테이너 이름(ollama)으로 지정하여 연결합니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #f4f6f7;&quot;&gt;
&lt;pre class=&quot;stata&quot;&gt;&lt;code&gt;podman run -d `
  --name open-webui `
  --network ai-net `
  -p 3000:8080 `
  -v open-webui-data:/app/backend/data `
  -e OLLAMA_BASE_URL=http://ollama:11434 `
  ghcr.io/open-webui/open-webui:main
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;7. 접속 및 확인&lt;/h4&gt;
&lt;div&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;웹 브라우저 접속&lt;/span&gt;: 주소창에 http://localhost:3000을 입력합니다.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;계정 생성&lt;/span&gt;: 오프라인 모드이므로 처음에 만드는 계정은 로컬 DB에만 저장됩니다. 아무 이메일이나 입력하여 가입하세요.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;모델 선택&lt;/span&gt;: 상단 모델 선택창에 아까 C:\DevData\ollama에 넣어두었던 모델들이 나타납니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;vala&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot;&gt;&lt;code&gt;# 1. 서버 작동 확인
curl http://localhost:11434/

# 2. 로컬 모델 리스트 확인
curl http://localhost:11434/api/tags
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;  주요 체크포인트&lt;/h4&gt;
&lt;div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;포트 포워딩&lt;/span&gt;: 외부 PC에서 접속하게 하려면 3000(WebUI)과 11434(Ollama) 포트를 윈도우 방화벽에서 허용해야 합니다.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;OLLAMA_BASE_URL&lt;/span&gt;: WebUI가 Ollama 서버를 찾을 때, 같은 ai-net 안에 있으므로 IP 대신 컨테이너 이름인 http://ollama:11434를 사용할 수 있어 매우 편리합니다.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;GPU 사용&lt;/span&gt;: 만약 NVIDIA 그래픽카드를 사용 중이라면 오프라인 PC에 &lt;span&gt;NVIDIA Container Toolkit&lt;/span&gt;이 설치되어 있어야 하며, 실행 시 --device ://nvidia.com 옵션을 추가해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #f4f6f7;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;마치며&lt;/h2&gt;
&lt;div&gt;이제 오프라인 환경에서도 Docker의 무거운 엔진 없이 Podman으로 가볍고 안전하게 Ollama 모델을 운영할 수 있습니다. alias docker=podman 설정을 해두면 기존 도커 명령어와 100% 동일하게 사용할 수 있으니 참고하세요!&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;오프라인에서 Ollama 모델을 추가할 때는 C:\DevData\ollama\models 폴더에 blobs와 manifests 구조를 그대로 복사해 넣으면 별도 작업 없이 바로 인식됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;#Docker_Windows_무료&amp;nbsp; #오픈소스_Docker #오프라인Docker구성 #Ollama+WebUI+Docker&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;&lt;/div&gt;
&lt;div&gt;참고:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Install&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Podman Desktop for Windows :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://podman-desktop.io/docs/Installation/windows-install&quot;&gt;https://podman-desktop.io/docs/Installation/windows-install&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Podman Desktop for Mac :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://podman-desktop.io/docs/Installation/macos-install&quot;&gt;https://podman-desktop.io/docs/Installation/macos-install&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;</description>
      <category>InfraPlatform</category>
      <category>ollama docker 설치</category>
      <category>ollama WebUI 구성</category>
      <category>오프라인 Ollama 환경</category>
      <category>오프라인 무료 Docker 설치</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/934</guid>
      <comments>https://couplewith.tistory.com/934#entry934comment</comments>
      <pubDate>Mon, 20 Apr 2026 13:05:52 +0900</pubDate>
    </item>
    <item>
      <title>(AI모델) 임베딩 전용 모델과 생성 모델 차이</title>
      <link>https://couplewith.tistory.com/933</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt; (AI모델) 임베딩 전용 모델과 생성 모델 차이&lt;br&gt;&lt;br&gt;LSE(Self-Evolving Learning)** 프레임워크에서 `nomic-embed-text`와 같은 **임베딩 전용 모델**을 사용 차이점&lt;br&gt;&lt;br&gt;&lt;b&gt;LSE(Self-Evolving Learning)&lt;/b&gt; 프레임워크에서 nomic-embed-text와 같은 &lt;b&gt;임베딩 전용 모델&lt;/b&gt;을 사용하는 것과, Llama 3, Qwen 3.5 같은 &lt;b&gt;생성형 모델(LLM)&lt;/b&gt;을 사용하는 것은 역할과 성능 면에서 근본적인 차이가 있습니다.&lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;&lt;i&gt;사례를 찾을 때는 임베딩 모델(Nomic)을, &lt;br&gt;분석하고 수정안을 쓸 때는 생성 모델(Llama/Qwen)을 사용&lt;/i&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;ㅁ &lt;b&gt;임베딩 전용 모델은&lt;/b&gt; ‘검색과 의미 매칭’에 특화된 초고속·경량 모델이고, 생성 모델은 ‘추론과 텍스트 생성’에 강점을 가진 대규모 언어모델입니다. 따라서 실제 활용에서는 두 모델을 결합해 RAG 구조처럼 검색은 임베딩 모델로, 분석·수정은 생성 모델로 처리하는 것이 가장 효율적입니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;ㅁ 반면 &lt;b&gt;생성 모델은&lt;/b&gt; 검색된 사례를 바탕으로 추론과 분석을 수행하고, 새로운 텍스트나 코드를 만들어내는 데 강점을 가집니다. 복잡한 알고리즘을 이해하고 논리적으로 지시를 수행할 수 있으며, 언어 지원 범위도 모델마다 다릅니다. &lt;u&gt;Llama는 영어 중심으로 강점을 가지며, Qwen은 한국어를 포함한 아시아 언어 지원이 뛰어나고 코드 처리 성능도 우수한 편입니다. &lt;/u&gt;따라서 생성 모델은 단순 검색을 넘어 취약점 분석, 코드 수정, 보고서 작성 같은 작업에 적합합니다.&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;b&gt;ㅁ 두 모델은 단독으로 사용하기보다 결합해 쓰는 것이 가장 효율적입니다.&lt;/b&gt; 임베딩 모델만 사용하면 검색은 가능하지만 분석이나 수정은 어렵고, 생성 모델만 사용하면 모든 사례를 프롬프트에 넣어야 하므로 속도가 느려지고 환각(hallucination) 위험이 커집니다. 따라서 RAG 구조처럼 임베딩 모델로 빠르고 정확하게 검색한 뒤, 생성 모델로 그 결과를 바탕으로 분석과 생성 작업을 수행하는 방식이 가장 합리적입니다.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br&gt;결론부터 말씀드리면, &lt;b&gt;사례를 찾을 때는 임베딩 모델(Nomic)을, 분석하고 수정안을 쓸 때는 생성 모델(Llama/Qwen)을 쓰는 것이 기술적 정석&lt;/b&gt;입니다.&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. Nomic-embed-text (임베딩 모델)의 장점&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;&lt;br&gt;임베딩 모델은 문장을 숫자의 나열(벡터)로 변환하는 데 특화되어 있습니다.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;의미적 좌표 계산: &quot;비밀번호 노출&quot;과 &quot;Credential leak&quot;이라는 단어는 철자가 다르지만, 임베딩 모델은 두 단어를 벡터 공간에서 매우 가까운 위치에 배치합니다. 덕분에 정확한 키워드 매칭 없이도 의미가 유사한 보안 사례를 찾아낼 수 있습니다.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;성능과 속도: 생성형 모델보다 훨씬 가볍습니다. 수만 개의 과거 보안 사례 중 가장 유사한 것을 찾을 때 LLM(Llama 3)을 쓰면 시간이 너무 오래 걸리지만, 임베딩 모델은 밀리초(ms) 단위로 검색을 끝냅니다.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;긴 문맥 지원: nomic-embed-text는 최대 8,192 토큰 수준의 긴 코드를 한 번에 벡터화할 수 있어, 긴 소스 코드 파일의 맥락을 파악하는 데 매우 유리합니다.&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;&lt;/p&gt;&lt;blockquote data-ke-style=&quot;style3&quot;&gt;ollama pull nomic-embed-text&lt;br&gt;ollama show nomic-embed-text&lt;br&gt;&lt;br&gt;&amp;nbsp;Model&lt;br&gt;&amp;nbsp; &amp;nbsp; architecture nomic-bert&lt;br&gt;&amp;nbsp; &amp;nbsp; parameters 137M&lt;br&gt;&amp;nbsp; &amp;nbsp; context length 2048&lt;br&gt;&amp;nbsp; &amp;nbsp; embedding length 768&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;quantization F16&lt;br&gt;Capabilities embedding&lt;br&gt;Parameters&lt;br&gt;&amp;nbsp; &amp;nbsp;num_ctx 8192 &lt;br&gt;License &lt;br&gt;&amp;nbsp; &amp;nbsp;Apache License Version 2.0, January 2004 ...&lt;/blockquote&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. Llama 3 vs Qwen 3.5 (생성 모델)의 차이&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br&gt;임베딩 모델이 &quot;검색&quot;을 담당한다면, 이 두 모델은 검색된 사례를 보고 &lt;b&gt;&quot;추론 및 코드 생성&quot;&lt;/b&gt;을 담당합니다.&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;table style=&quot;border-collapse: collapse; width: 854px;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot; data-ke-align=&quot;alignLeft&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&amp;nbsp;비교항목&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;Llama 3 (Meta)&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;Qwen 3.5 (Alibaba)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;추론 능력&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;논리적 추론과 지시 이행 능력이 매우 뛰어남.&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;수학적 사고와 코딩 구조 파악에 강점이 있음.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;코드 이해도&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;범용적인 코드 수정 및 보안 권고안 작성에 안정적임.&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;최신 프로그래밍 언어 패턴과 복잡한 알고리즘 분석에 강함.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;언어 지원&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;영어 기반 데이터가 압도적으로 많아 영어 주석 코드에 강함.&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;다국어(한국어 포함)&lt;/b&gt; 및 아시아권 개발 환경 이해도가 상대적으로 높음.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;연구 적합성&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;글로벌 보안 표준(OWASP 등)에 대한 학습량이 많음.&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;최신 벤치마크에서 코딩 성능이 Llama를 상회하기도 함.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 왜 임베딩 모델과 생성 모델을 섞어 써야 하나요?&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;만약 &lt;code&gt;Llama 3&lt;/code&gt;만 사용하여 과거 사례를 찾으려고 하면, 모든 사례를 프롬프트에 다 집어넣어야 합니다. 이는 &lt;b&gt;토큰 낭비&lt;/b&gt;일 뿐만 아니라, 모델이 혼란을 느껴 &lt;b&gt;환각(Hallucination)&lt;/b&gt;을 일으킬 확률을 높입니다.&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[연구에 권장하는 하이브리드 워크플로우]&lt;/b&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt; 
 &lt;li&gt;&lt;b&gt;임베딩(&lt;code&gt;nomic-embed-text&lt;/code&gt;):&lt;/b&gt; 수천 개의 보안 규칙 DB에서 현재 검증할 코드와 가장 닮은 사례 2~3개를 빛의 속도로 찾아냄.&lt;/li&gt; 
 &lt;li&gt;&lt;b&gt;생성(&lt;code&gt;Llama 3&lt;/code&gt; 또는 &lt;code&gt;Qwen 3.5&lt;/code&gt;):&lt;/b&gt; 찾아낸 2~3개의 사례를 '참고서' 삼아, 현재 코드의 취약점을 분석하고 수정 코드를 생성.&lt;/li&gt; 
&lt;/ol&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;  연구를 위한 팁&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;연구 논문을 작성하실 때, &lt;b&gt;&quot;검색 효율성을 위해 Nomic 임베딩을 통한 RAG(Retrieval-Augmented Generation) 구조를 채택하고, 최종 추론 엔진으로 Llama 3와 Qwen 3.5의 보안 탐지 정확도(Recall/Precision)를 비교 분석하였다&quot;&lt;/b&gt;는 논지를 펼치시면 매우 설득력 있는 구성이 됩니다.&lt;br&gt;&lt;br&gt;현재 연구 중이신 &lt;b&gt;PII(개인정보) 탐지&lt;/b&gt; 분야라면, 한국어 데이터가 포함된 경우 &lt;b&gt;Qwen 3.5&lt;/b&gt;가 문맥 파악에서 더 세밀한 결과를 보여줄 가능성이 높으니 두 모델을 교체해가며 테스트해보시는 것을 추천드립니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;ㅁ PII탐지 LLM 활용 - 하이브리드 모델 기반 정보 탐지 소스 코드 (예시)&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;from langchain_ollama import ChatOllama, OllamaEmbeddings
from langchain_core.prompts import PromptTemplate, FewShotPromptTemplate
from langchain_core.example_selectors import SemanticSimilarityExampleSelector
from langchain_community.vectorstores import FAISS
from langchain_core.output_parsers import StrOutputParser

class LSEInformationDetector:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def __init__(self, generation_model=&quot;llama3&quot;):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# 1. 임베딩 모델 (검색용): 의미적 유사도 계산에 특화
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.embeddings = OllamaEmbeddings(model=&quot;nomic-embed-text&quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# 2. 생성 모델 (분석용): 추론 및 가이드 작성에 특화
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.llm = ChatOllama(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;model=generation_model,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;temperature=0,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;base_url=&quot;http://localhost:11434&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# 3. LSE 지식 베이스 (연구 데이터셋)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.knowledge_base = [
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;input&quot;: &quot;주민등록번호: 900101-1234567&quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;output&quot;: &quot;유형: PII(고유식별정보)\n위험도: 높음\n조치: '900101-*******'로 마스킹 필요.&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;input&quot;: &quot;apiKey = 'AIzaSyA123456789'&quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;output&quot;: &quot;유형: Credential(인증정보)\n위험도: 치명적\n조치: 환경변수 처리 및 즉시 키 폐기 권고.&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;input&quot;: &quot;사용자 이메일 주소: user@gmail.com&quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;output&quot;: &quot;유형: PII(연락처)\n위험도: 중간\n조치: 가독성이 필요한 경우 외에는 해싱(Hashing) 처리.&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self._setup_selector()

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def _setup_selector(self):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# 유사도 기반 사례 선택기 설정
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;example_prompt = PromptTemplate(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;input_variables=[&quot;input&quot;, &quot;output&quot;],
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;template=&quot;[유사 탐지 사례]\n입력: {input}\n분석: {output}&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.example_selector = SemanticSimilarityExampleSelector.from_examples(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.knowledge_base,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.embeddings,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FAISS,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;k=1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# Few-Shot 템플릿 정의
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.prompt_template = FewShotPromptTemplate(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;example_selector=self.example_selector,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;example_prompt=example_prompt,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;prefix=&quot;당신은 정보보호 전문가입니다. 과거 사례를 바탕으로 다음 입력값 내의 민감 정보를 탐지하세요.&quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;suffix=&quot;\n[탐지 대상 문구]\n{target}\n\n[전문가 분석 결과]:&quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;input_variables=[&quot;target&quot;]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def detect(self, text):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;chain = self.prompt_template | self.llm | StrOutputParser()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return chain.invoke({&quot;target&quot;: text})

# 3. 실행 예시
if __name__ == &quot;__main__&quot;:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# Llama 3를 이용한 탐지
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;llama_detector = LSEInformationDetector(generation_model=&quot;llama3&quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;=== Llama 3 탐지 결과 ===&quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(llama_detector.detect(&quot;관리자 계정의 비밀번호는 'admin!@#12'이며, 연락처는 010-1234-5678입니다.&quot;))

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# Qwen 3.5(혹은 2.5)를 이용한 탐지 (모델명 변경 시 Ollama에 해당 모델이 있어야 함)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# qwen_detector = LSEInformationDetector(generation_model=&quot;qwen2.5&quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# print(&quot;\n=== Qwen 2.5 탐지 결과 ===&quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# print(qwen_detector.detect(&quot;내 주민번호는 850505-2222222이야.&quot;))&lt;/code&gt;&lt;/pre&gt;</description>
      <category>BigData</category>
      <category>Llama3 vs Qwen 3.5</category>
      <category>Lse기반 모델 검증과 자기 강화 방안</category>
      <category>nomic-embed-text 와 Llama3</category>
      <category>Ollama 를 활용한 Local LLM</category>
      <category>PII탐지와 LLM 모델</category>
      <category>생성형AI 을 활용하는 방법</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/933</guid>
      <comments>https://couplewith.tistory.com/933#entry933comment</comments>
      <pubDate>Wed, 15 Apr 2026 23:31:02 +0900</pubDate>
    </item>
    <item>
      <title>  인생의 봄날을 부르는 명언 3선</title>
      <link>https://couplewith.tistory.com/932</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;블로그이미지_봄날_Image.png&quot; data-origin-width=&quot;1408&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kQuhX/dJMcafM26YZ/10N5ayg38iIjgulti8yQb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kQuhX/dJMcafM26YZ/10N5ayg38iIjgulti8yQb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kQuhX/dJMcafM26YZ/10N5ayg38iIjgulti8yQb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkQuhX%2FdJMcafM26YZ%2F10N5ayg38iIjgulti8yQb0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1408&quot; height=&quot;768&quot; data-filename=&quot;블로그이미지_봄날_Image.png&quot; data-origin-width=&quot;1408&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;2&quot; data-ke-size=&quot;size26&quot;&gt;  인생의 봄날을 부르는 명언 3선&lt;/h2&gt;
&lt;h3 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-path-to-node=&quot;9&quot; data-ke-size=&quot;size23&quot;&gt;1. 오드리 햅번 (Audrey Hepburn)&lt;/h3&gt;
&lt;blockquote style=&quot;color: #666666; text-align: start;&quot; data-path-to-node=&quot;10&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p style=&quot;color: #666666;&quot; data-path-to-node=&quot;10,0&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-path-to-node=&quot;10,0&quot; data-index-in-node=&quot;0&quot;&gt;&quot;정원을 가꾸는 것은 내일을 믿는다는 뜻이다.&quot;&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;i data-path-to-node=&quot;10,0&quot; data-index-in-node=&quot;27&quot;&gt;(To plant a garden is to believe in tomorrow.)&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-path-to-node=&quot;11&quot;&gt;
&lt;li&gt;&lt;b data-path-to-node=&quot;11,0,0&quot; data-index-in-node=&quot;0&quot;&gt;배경 및 의미:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;봄에 꽃을 심는 행위는 미래에 대한 확신과 희망을 전제로 합니다. 오늘 내가 하는 작은 노력이 헛되지 않을 것임을 믿는 마음, 그리고 자연의 섭리 앞에 자신을 낮추며 묵묵히 씨를 뿌리는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b data-path-to-node=&quot;11,0,0&quot; data-index-in-node=&quot;113&quot;&gt;겸손한 성실함&lt;/b&gt;이 인생의 화창한 봄날을 만듭니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size23&quot;&gt;2. 랄프 왈도 에머슨 (Ralph Waldo Emerson)&lt;/h3&gt;
&lt;blockquote data-path-to-node=&quot;4&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-path-to-node=&quot;4,0&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,0&quot;&gt;&quot;인생은 하나의 실험이다. 실험을 많이 할수록 당신은 더 좋은 사람이 된다.&quot;&lt;/b&gt; &lt;i data-index-in-node=&quot;44&quot; data-path-to-node=&quot;4,0&quot;&gt;(Life is a series of experiments. The more experiments you make the better.)&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;배경 및 의미:&lt;/b&gt; 봄은 새로운 씨앗을 뿌리는 시기입니다. 에머슨은 결과에 대한 두려움보다는 '과정' 자체에 의미를 두라고 조언합니다. 실패조차도 인생이라는 큰 실험의 일부임을 인정하는 &lt;b data-index-in-node=&quot;102&quot; data-path-to-node=&quot;5,0,0&quot;&gt;겸손한 태도&lt;/b&gt;가 결국 우리 삶에 진정한 봄을 가져다준다는 메시지를 담고 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;6&quot; data-ke-size=&quot;size23&quot;&gt;3. 알베르 카뮈 (Albert Camus)&lt;/h3&gt;
&lt;blockquote data-path-to-node=&quot;7&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-path-to-node=&quot;7,0&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,0&quot;&gt;&quot;겨울의 한복판에서, 나는 내 안에 결코 굴복하지 않는 여름이 있다는 것을 마침내 깨달았다.&quot;&lt;/b&gt; &lt;i data-index-in-node=&quot;53&quot; data-path-to-node=&quot;7,0&quot;&gt;(In the midst of winter, I found there was, within me, an invincible summer.)&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;8&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,0,0&quot;&gt;배경 및 의미:&lt;/b&gt; 인생의 봄날은 단순히 외부의 환경이 좋아졌을 때 오는 것이 아니라, 내면의 단단한 의지에서 시작됩니다. 시련(겨울)을 겪으면서도 스스로를 낮추고 내면의 빛을 발견할 때, 비로소 찬란한 봄날을 맞이할 준비가 된다는 통찰을 줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;9&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;</description>
      <category>humility</category>
      <category>봄날의 명언</category>
      <category>오늘의명언</category>
      <category>인생의 봄날</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/932</guid>
      <comments>https://couplewith.tistory.com/932#entry932comment</comments>
      <pubDate>Wed, 15 Apr 2026 08:59:26 +0900</pubDate>
    </item>
    <item>
      <title>Linux sshd  서비스 와 SELinux,방화벽 설정 보안강화</title>
      <link>https://couplewith.tistory.com/930</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;SSHD 설정2 __Image_2yinuv2yinuv2yin.png&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cOvPM7/dJMcab4TMRb/NaMQN71l1RuxkKqQl7giQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cOvPM7/dJMcab4TMRb/NaMQN71l1RuxkKqQl7giQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cOvPM7/dJMcab4TMRb/NaMQN71l1RuxkKqQl7giQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcOvPM7%2FdJMcab4TMRb%2FNaMQN71l1RuxkKqQl7giQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1376&quot; height=&quot;768&quot; data-filename=&quot;SSHD 설정2 __Image_2yinuv2yinuv2yin.png&quot; data-origin-width=&quot;1376&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;Linux sshd&amp;nbsp; 서비스 와 SELinux ,방화벽 설정 보안 강화&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #fcfcfc; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Rocky , Redhat 계열&lt;span&gt;)&lt;/span&gt;&lt;/span&gt; Linux&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;SSH 포트 2022 설정 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;을 다음과 같이 합니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;[Linux 머신과 SSH 연동 방법]&lt;br /&gt;&lt;span style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot;&gt;1. /etc/ssh/sshd_config 수정: 실제 서비스 포트 설정 변경&lt;br /&gt;2. SELinux에 포트 2022 허용: 보안 정책에 새 포트 등록&lt;br /&gt;3. 방화벽(firewall-cmd) 허용: 네트워크 포트 개방&lt;br /&gt;4. sshd 서비스 재시작: 변경 사항 적용&lt;/span&gt; &lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. /etc/ssh/sshd_config수정&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;다음과 같이 2022 Port를 추가하였다.&lt;/p&gt;
&lt;pre id=&quot;code_1776127351366&quot; class=&quot;routeros&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
Port 2022
ListenAddress 0.0.0.0&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;vala&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# /etc/ssh/sshd_config
sudo sed -i 's/^#Port 22/Port 2022/' /etc/ssh/sshd_config
# 또는 직접 편집: Port 2022 추가 (22도 남길 경우 두 줄 병기)

sudo systemctl restart sshd&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(참고) 다음과 같이 sshd 구동이 실패하면 Selinux 도&amp;nbsp; 설정해야 합니다.&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;root@node1:~# sudo systemctl restart&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;sshd Job for sshd.service failed because the control process exited with error code. See &quot;systemctl status sshd.service&quot; and &quot;journalctl -xeu sshd.service&quot; for details.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;만약&amp;nbsp; &quot;sudo /usr/sbin/sshd -D &quot; 로 단독으로 실행이 된다면 Selinux 를 통해 프로세스가&amp;nbsp; 제한되는 것으로 파악하면 됩니다. (SELinux를 통해 프로세스의 포트 바인딩이 제한되고 있음)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. SELinux에 포트 2022 허용: (semanage)&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;routeros&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;sudo semanage port -a -t ssh_port_t -p tcp 2022


# 아래와 같이 22, 2022 두개를 확인 합니다.
sudo semanage port -l | grep ssh
ssh_port_t                     tcp      2022, 22&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. firewall-cmd 허용:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;dockerfile&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# 룰을 추가하고 Reload를 해야 적용됩니다.
sudo firewall-cmd --permanent --add-port=2022/tcp
sudo firewall-cmd --reload

# 적용된 룰을 확인합니다.
sudo  firewall-cmd --list-all
sudo firewall-cmd --list-ports
 
# ports: 2022/tcp 가 확인되면 Ok 입니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변경된 포트로 SSH 접속을 시도해보세요.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;# 접속 예시 (PC에서 서버로 접속할 때)&lt;br /&gt;&lt;span style=&quot;color: #333333; letter-spacing: 0px;&quot;&gt;ssh -p 2022 user@server_ip&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;55&quot; data-ke-size=&quot;size16&quot;&gt;RHEL 계열 리눅스에서 SSH 포트를 2022번으로 변경하기 위해 다음 세 가지 명령어를 순서대로 실행했습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;56&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;56,0,0&quot;&gt;SELinux 포트 등록:&lt;/b&gt; sudo semanage port -a -t ssh_port_t -p tcp 2022&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;56,1,0&quot;&gt;방화벽 포트 개방:&lt;/b&gt; sudo firewall-cmd --permanent --add-port=2022/tcp 및 sudo firewall-cmd --reload&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;56,2,0&quot;&gt;서비스 재시작:&lt;/b&gt; /etc/ssh/sshd_config 수정 후 sudo systemctl restart sshd&lt;/li&gt;
&lt;/ol&gt;</description>
      <category>InfraPlatform</category>
      <category>SELinux 보안 강화</category>
      <category>semanage ssh 설정</category>
      <category>sshd config</category>
      <category>sshd firewall-cmd 설정</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/930</guid>
      <comments>https://couplewith.tistory.com/930#entry930comment</comments>
      <pubDate>Tue, 14 Apr 2026 10:24:26 +0900</pubDate>
    </item>
    <item>
      <title>VMware 환경 Linux 가상머신 NAT(Network Address Translation) 구성</title>
      <link>https://couplewith.tistory.com/929</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c8szcJ/dJMcagSGz9r/Ot9t5e3q0M4GHWfZJWlP3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c8szcJ/dJMcagSGz9r/Ot9t5e3q0M4GHWfZJWlP3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c8szcJ/dJMcagSGz9r/Ot9t5e3q0M4GHWfZJWlP3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc8szcJ%2FdJMcagSGz9r%2FOt9t5e3q0M4GHWfZJWlP3k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;1024&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;VMware&amp;nbsp;환경&amp;nbsp;Linux&amp;nbsp;가상머신&amp;nbsp;NAT(Network&amp;nbsp;Address&amp;nbsp;Translation)&amp;nbsp;구성&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VMware 환경에서 Linux 가상머신(VM)을 &lt;b&gt;NAT(Network Address Translation)&lt;/b&gt; 방식으로 설정하고, 호스트 PC(Windows/macOS)에서 SSH(Secure Shell)로 접속하는 방법을 단계별로 정리해 드립니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;NAT 방식은 가상머신이 호스트의 IP를 공유하여 외부 인터넷에 접속하되, 외부에서는 가상머신에 직접 접근할 수 없으므로 &lt;b&gt;'포트 포워딩(Port Forwarding)'&lt;/b&gt; 설정이 핵심입니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. VMware 가상 네트워크 설정 (포트 포워딩)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;호스트 PC의 특정 포트로 들어오는 신호를 가상머신의 SSH 포트(22번)로 전달해야 합니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;VMware Workstation&lt;/b&gt; 상단 메뉴: &lt;code&gt;Edit&lt;/code&gt; &amp;gt; &lt;b&gt;&lt;code&gt;Virtual Network Editor...&lt;/code&gt;&lt;/b&gt; 클릭.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;code&gt;Change Settings&lt;/code&gt;&lt;/b&gt; (관리자 권한) 버튼 클릭.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;code&gt;Type: NAT&lt;/code&gt;&lt;/b&gt;로 설정된 항목(보통 VMnet8)을 선택하고 &lt;b&gt;&lt;code&gt;NAT Settings...&lt;/code&gt;&lt;/b&gt; 클릭.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Port Forwarding&lt;/b&gt; 섹션에서 &lt;b&gt;&lt;code&gt;Add...&lt;/code&gt;&lt;/b&gt; 버튼을 눌러 다음 정보를 입력합니다:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Host port&lt;/b&gt;: &lt;code&gt;2222&lt;/code&gt; (호스트 PC에서 사용할 임의의 포트)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Type&lt;/b&gt;: &lt;code&gt;TCP&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Virtual machine IP address&lt;/b&gt;: 가상머신의 내부 IP (아래 2단계에서 확인 방법 설명)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Virtual machine port&lt;/b&gt;: &lt;code&gt;22&lt;/code&gt; (SSH 기본 포트)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Description&lt;/b&gt;: &lt;code&gt;SSH for Linux VM&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OK&lt;/code&gt;를 눌러 모든 설정을 저장합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;641&quot; data-origin-height=&quot;664&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/llxYq/dJMcabRmbZo/uuLvXm8exJQbEojyU6BXaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/llxYq/dJMcabRmbZo/uuLvXm8exJQbEojyU6BXaK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/llxYq/dJMcabRmbZo/uuLvXm8exJQbEojyU6BXaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FllxYq%2FdJMcabRmbZo%2FuuLvXm8exJQbEojyU6BXaK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;641&quot; height=&quot;664&quot; data-origin-width=&quot;641&quot; data-origin-height=&quot;664&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;605&quot; data-origin-height=&quot;532&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ufXqq/dJMcajhwpbW/PBp3Z4oeBKoTkHOKLbhN6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ufXqq/dJMcajhwpbW/PBp3Z4oeBKoTkHOKLbhN6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ufXqq/dJMcajhwpbW/PBp3Z4oeBKoTkHOKLbhN6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FufXqq%2FdJMcajhwpbW%2FPBp3Z4oeBKoTkHOKLbhN6K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;605&quot; height=&quot;532&quot; data-origin-width=&quot;605&quot; data-origin-height=&quot;532&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. Linux 가상머신 내부 설정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가상머신 안에서 SSH 서버가 작동 중인지 확인하고 IP를 확인해야 합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;① IP 주소 확인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;터미널에서 아래 명령어를 입력하여 NAT 대역의 IP를 확인합니다. (예: &lt;code&gt;192.168.123.128&lt;/code&gt;)&lt;/p&gt;
&lt;pre class=&quot;ebnf&quot;&gt;&lt;code&gt;ip addr&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;② SSH 서버 설치 및 실행 (Ubuntu/Debian 기준)&lt;/h3&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;sudo apt update
sudo apt install openssh-server -y
sudo systemctl enable --now ssh&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;③ 방화벽 허용&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SSH 포트가 방화벽에 막혀있지 않도록 설정합니다.&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;sudo ufw allow 22&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 호스트 PC에서 SSH 접속 테스트&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 호스트 PC(Windows의 CMD, PowerShell 또는 Terminal)에서 접속을 시도합니다. 이때 접속 주소는 가상머신의 IP가 아니라 &lt;b&gt;호스트 PC 자신(localhost)&lt;/b&gt;의 IP와 아까 설정한 &lt;b&gt;Host Port(2222)&lt;/b&gt;를 사용해야 합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;접속 명령어&lt;/h3&gt;
&lt;pre class=&quot;css&quot;&gt;&lt;code&gt;ssh -p 2222 [리눅스계정명]@127.0.0.1&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시: 리눅스 사용자 이름이 user라면&lt;br /&gt;ssh -p 2222 user@127.0.0.1 또는 ssh -p 2222 user@localhost&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  주요 체크포인트 (Troubleshooting)&lt;/h2&gt;
&lt;table style=&quot;height: 107px; width: 850px;&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;height: 23px;&quot;&gt;
&lt;th style=&quot;height: 23px; width: 850px;&quot; colspan=&quot;2&quot; align=&quot;left&quot;&gt;&amp;nbsp;VmWare Nat 네트워크 오류 유형&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 154px;&quot;&gt;문제 유형&lt;/td&gt;
&lt;td style=&quot;width: 696px;&quot;&gt;해결 방법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px; width: 154px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Connection Refused&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 696px;&quot; align=&quot;left&quot;&gt;가상머신 내에서 &lt;code&gt;sudo systemctl status ssh&lt;/code&gt;로 서비스가 실행 중인지 확인하세요.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px; width: 154px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Timeout 오류&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 696px;&quot; align=&quot;left&quot;&gt;가상머신의 방화벽(&lt;code&gt;ufw&lt;/code&gt; 또는 &lt;code&gt;firewalld&lt;/code&gt;)에서 22번 포트가 열려 있는지 확인하세요.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px; width: 154px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;VM IP 변경&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 696px;&quot; align=&quot;left&quot;&gt;NAT 환경에서도 IP가 바뀔 수 있으므로, 가상머신 설정에서 &lt;b&gt;Static IP(고정 IP)&lt;/b&gt;를 할당하는 것이 편리합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px; width: 154px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;호스트 IP 사용&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 696px;&quot; align=&quot;left&quot;&gt;127.0.0.1 대신 호스트 PC의 실제 이더넷/와이파이 IP를 사용해도 포트 포워딩을 통해 접속이 가능합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Vmware 에서 가상 네트워크 에디터에서 설정한 &lt;b&gt;Host Port&lt;/b&gt;만 잘 기억하시면 외부에서도 호스트 PC를 통해 가상머신으로 안전하게 터널링 접속을 할 수 있습니다.&lt;/p&gt;</description>
      <category>InfraPlatform</category>
      <category>ssh -p 2222 [리눅스계정명]@127.0.0.1</category>
      <category>Vmware Nat 설정</category>
      <category>VmWare 가상네트워크 설정</category>
      <category>사설 네트워크 SSH 접속</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/929</guid>
      <comments>https://couplewith.tistory.com/929#entry929comment</comments>
      <pubDate>Tue, 14 Apr 2026 00:23:20 +0900</pubDate>
    </item>
    <item>
      <title>Authelia 설치 방법</title>
      <link>https://couplewith.tistory.com/928</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;318&quot; data-origin-height=&quot;159&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rqMwQ/dJMcagylOGt/tEFwwJ8fKu4HWLvj5k2yh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rqMwQ/dJMcagylOGt/tEFwwJ8fKu4HWLvj5k2yh1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rqMwQ/dJMcagylOGt/tEFwwJ8fKu4HWLvj5k2yh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrqMwQ%2FdJMcagylOGt%2FtEFwwJ8fKu4HWLvj5k2yh1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;318&quot; height=&quot;159&quot; data-origin-width=&quot;318&quot; data-origin-height=&quot;159&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h1&gt;Authelia 설치 방법&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Authelia는 오픈소스 인증/인가 서버로, Docker를 통해 간편하게 설치할 수 있습니다. 주로 홈랩이나 자체 호스팅 환경에서 Nginx/Traefik과 연동되어 2FA, SSO 기능을 제공합니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-path-to-node=&quot;5&quot; data-ke-size=&quot;size20&quot;&gt;1. 설치 사전 준비 (Docker Compose Prerequisites, 권장)&lt;/h4&gt;
&lt;p data-path-to-node=&quot;6&quot; data-ke-size=&quot;size16&quot;&gt;설치 전 다음 사항이 준비되어야 합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;7&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,0,0&quot;&gt;Docker &amp;amp; Docker Compose&lt;/b&gt;: 최신 버전 설치 권장.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,1,0&quot;&gt;도메인&lt;/b&gt;: auth.example.com과 같은 인증용 서브도메인.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,2,0&quot;&gt;SSL 인증서&lt;/b&gt;: HTTPS가 필수이므로 Let's Encrypt 등을 통해 인증서가 적용된 환경이어야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 디렉토리 생성&lt;/b&gt;:&lt;/h4&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;mkdir authelia &amp;amp;&amp;amp; cd authelia
mkdir config&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-path-to-node=&quot;13&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. Docker Compose 설정 (docker-compose.yml)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;안정성을 위해 &lt;b data-index-in-node=&quot;8&quot; data-path-to-node=&quot;14&quot;&gt;Redis&lt;/b&gt;(세션 관리)와 &lt;b data-index-in-node=&quot;22&quot; data-path-to-node=&quot;14&quot;&gt;PostgreSQL&lt;/b&gt;(데이터 저장)을 포함한 구성입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1776090011271&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;version: '3.8'

services:
  authelia:
    image: authelia/authelia:latest
    container_name: authelia
    volumes:
      - ./config:/config
    networks:
      - proxy_network
    environment:
      - TZ=Asia/Seoul
    restart: unless-stopped
    expose:
      - 9091

  redis:
    image: redis:alpine
    container_name: authelia_redis
    networks:
      - proxy_network
    restart: unless-stopped

  db:
    image: postgres:15-alpine
    container_name: authelia_db
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=authelia
      - POSTGRES_USER=authelia
      - POSTGRES_PASSWORD=your_strong_password_here
    networks:
      - proxy_network
    restart: unless-stopped

networks:
  proxy_network:
    external: true  # 리버스 프록시와 같은 네트워크 사용 권장&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-path-to-node=&quot;17&quot; data-ke-size=&quot;size20&quot;&gt;4. 핵심 설정 파일 작성&lt;/h4&gt;
&lt;p data-path-to-node=&quot;18&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;① 사용자 데이터베이스 (config/users_database.yml)&lt;/b&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;비밀번호는 반드시 Authelia에서 제공하는 해시 도구로 변환해야 합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1776090208840&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;users:
  admin:
    displayname: &quot;관리자&quot;
    password: &quot;$argon2id$v=19$m=65536,t=3,p=4$...&quot; # 암호 해시값 입력
    email: admin@example.com
    groups:
      - admin
      - dev&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;② 메인 설정 (config/configuration.yml)&lt;/b&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;비밀키(Secret)들은 64자 이상의 랜덤 문자열을 권장합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1776090238494&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;jwt_secret: &quot;여기에_매우_긴_랜덤_문자열_입력&quot;
default_redirection_url: https://auth.example.com

server:
  host: 0.0.0.0
  port: 9091

authentication_backend:
  file:
    path: /config/users_database.yml

access_control:
  default_policy: deny
  rules:
    - domain: &quot;*.example.com&quot;
      policy: two_factor # 기본적으로 2차 인증 강제

session:
  name: authelia_session
  domain: example.com # 전체 서브도메인 공유
  secret: &quot;세션_용_랜덤_문자열&quot;
  expiration: 3600 # 1시간
  inactivity: 900
  redis:
    host: redis
    port: 6379

storage:
  postgres:
    host: db
    port: 5432
    database: authelia
    username: authelia
    password: your_strong_password_here

notifier:
  filesystem:
    filename: /config/notification.txt # 테스트용 (실 운영시 SMTP 권장)

totp:
  issuer: authelia.com&lt;/code&gt;&lt;/pre&gt;
&lt;p data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-path-to-node=&quot;25&quot; data-ke-size=&quot;size20&quot;&gt;5. 리버스 프록시 연동 (Nginx 예시)&lt;/h4&gt;
&lt;p data-path-to-node=&quot;26&quot; data-ke-size=&quot;size16&quot;&gt;auth.example.com 도메인 설정 파일에 아래 내용을 추가합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1776090346504&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Authelia 인증 경로 설정
location /api/verify {
    proxy_pass http://authelia:9091;
}

# 보호하려는 서비스 설정
location / {
    auth_request /api/verify;
    
    # 인증되지 않았을 경우 로그인 페이지로 리다이렉트
    error_page 401 =302 https://auth.example.com/?rd=$target_url;
    
    # 사용자 정보 전달 (헤더)
    auth_request_set $user $upstream_http_remote_user;
    proxy_set_header Remote-User $user;
    
    proxy_pass http://internal_service:8080;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-path-to-node=&quot;29&quot; data-ke-size=&quot;size20&quot;&gt;6. 설치 마무리 및 실행&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;30&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;30,0,0&quot;&gt;컨테이너 실행&lt;/b&gt;: docker compose up -d&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;30,1,0&quot;&gt;로그 확인&lt;/b&gt;: docker logs -f authelia (오류가 없는지 확인)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;30,2,0&quot;&gt;접속&lt;/b&gt;: &lt;a href=&quot;https://auth.example.com&quot;&gt;https://auth.example.com&lt;/a&gt;에 접속하여 로그인이 정상적으로 작동하는지 테스트합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;33,0,0&quot;&gt;비밀번호 해시 생성&lt;/b&gt;: docker run authelia/authelia authelia crypto hash generate argon2 --password 'password' 명령어로 안전하게 생성&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;33,1,0&quot;&gt;2FA 수단&lt;/b&gt;: TOTP(Google Authenticator) 외에도 WebAuthn(YubiKey, 지문 인식)을 지원하므로 보안 수준을 높일 수 있습니다&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;주의 사항&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;HTTPS 필수&lt;/b&gt;: TLS 인증서(Let's Encrypt) 적용.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;비밀번호 해시&lt;/b&gt;: Authelia 웹사이트 Password Hash 도구 사용.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;포트&lt;/b&gt;: 9091 기본, 방화벽 개방.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;업데이트&lt;/b&gt;: &lt;code&gt;docker compose pull &amp;amp;&amp;amp; docker compose up -d&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;공식 문서: &lt;a href=&quot;https://www.authelia.com/docs&quot;&gt;https://www.authelia.com/docs&lt;/a&gt; (최신 버전 확인).&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;555&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RzAIC/dJMcadn5b07/TNxtCIjcvjABEkabBW3e01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RzAIC/dJMcadn5b07/TNxtCIjcvjABEkabBW3e01/img.png&quot; data-alt=&quot;a support matrix for Authelia features and specific reverse proxies.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RzAIC/dJMcadn5b07/TNxtCIjcvjABEkabBW3e01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRzAIC%2FdJMcadn5b07%2FTNxtCIjcvjABEkabBW3e01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;780&quot; height=&quot;555&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;555&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;a support matrix for Authelia features and specific reverse proxies.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d2d35; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;(주요 자료):&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;다운로드 링크:&lt;/b&gt; Docker 이미지: &lt;a href=&quot;https://hub.docker.com/r/authelia/authelia&quot;&gt;https://hub.docker.com/r/authelia/authelia&lt;/a&gt; (pull 직접),&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설정 샘플: &lt;a href=&quot;https://github.com/authelia/authelia/tree/master/config/templates&quot;&gt;https://github.com/authelia/authelia/tree/master/config/templates&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;441&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bX8JrJ/dJMcabw2046/ofzpxMrCYxrKiL72hSBlxk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bX8JrJ/dJMcabw2046/ofzpxMrCYxrKiL72hSBlxk/img.jpg&quot; data-alt=&quot;https://www.authelia.com/overview/prologue/architecture/&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bX8JrJ/dJMcabw2046/ofzpxMrCYxrKiL72hSBlxk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbX8JrJ%2FdJMcabw2046%2FofzpxMrCYxrKiL72hSBlxk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;480&quot; height=&quot;441&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;441&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://www.authelia.com/overview/prologue/architecture/&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>InfraPlatform</category>
      <category>Authelia install</category>
      <category>Authelia 설치</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/928</guid>
      <comments>https://couplewith.tistory.com/928#entry928comment</comments>
      <pubDate>Mon, 13 Apr 2026 06:46:24 +0900</pubDate>
    </item>
    <item>
      <title>Authelia - 오픈 소스 기반의 강력한 인증 서버 분석 비교</title>
      <link>https://couplewith.tistory.com/927</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;322&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dr5WQn/dJMcagkMmBD/zqcu5KbJTSvK9rJ2HvAlE1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dr5WQn/dJMcagkMmBD/zqcu5KbJTSvK9rJ2HvAlE1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dr5WQn/dJMcagkMmBD/zqcu5KbJTSvK9rJ2HvAlE1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdr5WQn%2FdJMcagkMmBD%2Fzqcu5KbJTSvK9rJ2HvAlE1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;698&quot; height=&quot;322&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;322&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;Authelia - 오픈 소스 기반의 강력한 인증 서버 분석 비교&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Authelia는 오픈 소스 기반의 강력한 인증 서버로, 특히 &lt;b&gt;자체 호스팅(Self-hosted)&lt;/b&gt; 환경에서 최고의 가성비와 보안성을 제공합니다. 다른 &lt;b&gt;상용 솔루션(Okta, Auth0)&lt;/b&gt;이나 &lt;b&gt;유사 오픈 소스(Keycloak, OAuth2 Proxy)&lt;/b&gt;와 비교하여 분석&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Authelia, 상용 솔루션(Okta, Auth0), 유사 오픈 소스(Keycloak, OAuth2 Proxy)와 비교 분석&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Authelia의 주요 특.장점&lt;/h3&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 사용성 (Usability)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;경량화된 설계:&lt;/b&gt; Authelia는 Go 언어로 작성되어 메모리 사용량이 매우 적습니다. 라즈베리 파이나 저사양 홈서버에서도 매우 빠르고 쾌적하게 작동합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;통합 로그인(SSO) 경험:&lt;/b&gt; 한 번의 로그인으로 Nginx 뒷단의 여러 웹 서비스(Nextcloud, Grafana, Home Assistant 등)를 동시에 인증할 수 있어 사용자 편의성이 뛰어납니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;직관적인 2FA:&lt;/b&gt; Google Authenticator와 같은 TOTP 방식뿐만 아니라, Duo나 FIDO2(Yubikey) 같은 하드웨어 보안키 연동 인터페이스가 매우 깔끔합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;단점:&lt;/b&gt; GUI 기반의 설정 화면이 부족하여 초기 구축 시 YAML 파일을 직접 수정해야 하는 '개발자 친화적' 난이도가 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 유지보수성 (Maintainability)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Docker 최적화:&lt;/b&gt; 모든 설정이 파일(YAML) 기반이므로 Git으로 관리(GitOps)하거나 백업하기가 매우 쉽습니다. 컨테이너 업데이트만으로 최신 보안 패치를 적용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;설정의 명확성:&lt;/b&gt; 대규모 기업용 솔루션인 Keycloak은 설정 항목이 너무 많아 관리가 복잡한 반면, Authelia는 필요한 기능(인증, 권한, 2FA)에만 집중되어 있어 유지보수 포인트가 적습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;커뮤니티 지원:&lt;/b&gt; 활발한 오픈 소스 커뮤니티 덕분에 Nginx, SWAG, Traefik 등 주요 리버스 프록시와의 연동 템플릿이 풍부하게 공유됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 보안성 (Security)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;상용 수준의 보안 기능: 무료임에도 불구하고 무차별 대입 공격 방지(Brute-force protection), 세션 관리, 도메인별 세부 접근 제어 정책(ACL)을 제공합니다.&lt;/li&gt;
&lt;li&gt;데이터 주권 보장: Okta나 Auth0 같은 클라우드 서비스는 사용자 정보가 외부 서버에 저장되지만, Authelia는 내 서버에만 저장되므로 개인정보 보호 측면에서 유리합니다.&lt;/li&gt;
&lt;li&gt;최신 암호화 알고리즘: Argon2id와 같은 최신 비밀번호 해싱 알고리즘을 기본으로 사용하여 DB가 유출되어도 비밀번호를 안전하게 보호합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 향후 활용 가능성 및 타 제품 비교&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 730px; height: 137px;&quot; border=&quot;1&quot; data-ke-style=&quot;style14&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;구분&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;Authelia (추천)&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;Keycloak&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;OAuth2 Proxy&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;Auth0/Okta&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;비용&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;완전 무료&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;완전 무료&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;완전 무료&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;일정 수 이상 유료&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;적합 규모&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;개인, 소규모 팀, NAS&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;대규모 기업용&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;간단한 Google 연동&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;기업용 서비스(SaaS)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;설정 난이도&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;중간 (YAML 기반)&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;매우 높음 (Java 기반)&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;낮음&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;낮음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;보안키 지원&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;TOTP, WebAuthn, Duo&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;매우 다양함&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;Google/GitHub 의존&lt;/td&gt;
&lt;td style=&quot;height: 20px; text-align: justify;&quot;&gt;매우 다양함&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 종합 평가: 향후 활용 가치&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;가장 합리적인 보안 요새&quot;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;개인/홈서버:&lt;/b&gt; 대체 불가능한 1순위 솔루션입니다. Nginx와 조합했을 때 가장 깔끔한 SSO 환경을 구축할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;중소규모 기업:&lt;/b&gt; 초기 비용 없이 상용 수준의 2FA 보안 체계를 구축하고 싶을 때 최고의 선택입니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;클라우드 네이티브:&lt;/b&gt; 쿠버네티스(K8s) 환경으로 확장 시에도 Ingress Controller와 연동하여 일관된 인증 게이트웨이로 활용 가능성이 매우 높습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;결론:&lt;/b&gt;&lt;br /&gt;Authelia는 설정의 진입장벽만 넘으면 비용(Zero) 대비 성능(Enterprise급) 면에서 독보적입니다.&lt;br /&gt;특히 복잡한 기능보다 '안전하고 가벼운 Google Authenticator 연동'이 주 목적이라면 Authelia가 가장 현명한 선택입니다.&lt;br /&gt;&lt;br /&gt;(관련 문서)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Authelia 설치 가이드&lt;br /&gt;&lt;a href=&quot;https://couplewith.tistory.com/928&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://couplewith.tistory.com/928&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;2. Authelia - 오픈소스 보안 서버 구축&lt;br /&gt;&lt;a href=&quot;https://couplewith.tistory.com/m/926&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;https://couplewith.tistory.com/m/926&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Authelia - 리버스 프록시 환경의 인증(Authentication)과 인가(Authorization)를 대행하는 오픈소스 보안 서&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;Authelia - 리버스 프록시 환경의 인증(Authentication)과 인가(Authorization)를 대행하는 오픈소스 보안 서버 Authelia는 리버스 프록시와 긴밀하게 통합되어 웹 서비스에 대한 인증(Authentication)과 인가(Author&quot; data-og-host=&quot;couplewith.tistory.com&quot; data-og-source-url=&quot;https://couplewith.tistory.com/m/926&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/T2V87/dJMb9cBI4Qv/BF5vMreTkkhYJXMaYc72a0/img.png?width=800&amp;amp;height=446&amp;amp;face=0_0_800_446&quot; data-og-url=&quot;https://couplewith.tistory.com/m/926&quot;&gt;&lt;a href=&quot;https://couplewith.tistory.com/m/926&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://couplewith.tistory.com/m/926&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/T2V87/dJMb9cBI4Qv/BF5vMreTkkhYJXMaYc72a0/img.png?width=800&amp;amp;height=446&amp;amp;face=0_0_800_446');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Authelia - 리버스 프록시 환경의 인증(Authentication)과 인가(Authorization)를 대행하는 오픈소스 보안 서&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Authelia - 리버스 프록시 환경의 인증(Authentication)과 인가(Authorization)를 대행하는 오픈소스 보안 서버 Authelia는 리버스 프록시와 긴밀하게 통합되어 웹 서비스에 대한 인증(Authentication)과 인가(Author&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;couplewith.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;3. Authelia - 강력한 인증 특징과 장점 비교&lt;br /&gt;&lt;a href=&quot;https://couplewith.tistory.com/m/927&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;https://couplewith.tistory.com/m/927&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Authelia - 오픈 소스 기반의 강력한 인증 서버 분석 비교&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;Authelia - 오픈 소스 기반의 강력한 인증 서버 분석 비교 Authelia는 오픈 소스 기반의 강력한 인증 서버로, 특히 자체 호스팅(Self-hosted) 환경에서 최고의 가성비와 보안성을 제공합니다. 다른 상용 &quot; data-og-host=&quot;couplewith.tistory.com&quot; data-og-source-url=&quot;https://couplewith.tistory.com/m/927&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Tm3aF/dJMb81GYfkL/uWeJSmlcW8xlm2NLMQOGiK/img.jpg?width=698&amp;amp;height=322&amp;amp;face=0_0_698_322&quot; data-og-url=&quot;https://couplewith.tistory.com/m/927&quot;&gt;&lt;a href=&quot;https://couplewith.tistory.com/m/927&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://couplewith.tistory.com/m/927&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Tm3aF/dJMb81GYfkL/uWeJSmlcW8xlm2NLMQOGiK/img.jpg?width=698&amp;amp;height=322&amp;amp;face=0_0_698_322');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Authelia - 오픈 소스 기반의 강력한 인증 서버 분석 비교&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Authelia - 오픈 소스 기반의 강력한 인증 서버 분석 비교 Authelia는 오픈 소스 기반의 강력한 인증 서버로, 특히 자체 호스팅(Self-hosted) 환경에서 최고의 가성비와 보안성을 제공합니다. 다른 상용&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;couplewith.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>InfraPlatform</category>
      <category>Auth0)</category>
      <category>Authelia</category>
      <category>OAuth2 Proxy)와 비교 분석</category>
      <category>상용 솔루션(Okta</category>
      <category>오픈소스 인증 시스템 Authelia의 특장점</category>
      <category>유사 오픈 소스(Keycloak</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/927</guid>
      <comments>https://couplewith.tistory.com/927#entry927comment</comments>
      <pubDate>Thu, 9 Apr 2026 17:03:34 +0900</pubDate>
    </item>
    <item>
      <title>Authelia - 리버스 프록시 환경 강력한 인증(Authentication)과 인가(Authorization)  오픈소스 보안 서버</title>
      <link>https://couplewith.tistory.com/926</link>
      <description>&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;714&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2MpOJ/dJMcafe9Vpn/4B80nFMGEBK9VA44dbyZY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2MpOJ/dJMcafe9Vpn/4B80nFMGEBK9VA44dbyZY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2MpOJ/dJMcafe9Vpn/4B80nFMGEBK9VA44dbyZY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2MpOJ%2FdJMcafe9Vpn%2F4B80nFMGEBK9VA44dbyZY0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;714&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;714&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Authelia&amp;nbsp;-&amp;nbsp;리버스&amp;nbsp;프록시&amp;nbsp;환경에서 강력한&amp;nbsp;인증(Authentication)과&amp;nbsp;인가(Authorization)&amp;nbsp;오픈소스&amp;nbsp;보안&amp;nbsp;서버&lt;/span&gt;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;span style=&quot;background-color: #FFFFFF;&quot;&gt;Authelia는 리버스 프록시와 긴밀하게 통합되어 웹 서비스에 대한&amp;nbsp;&lt;b&gt;인증(Authentication)&lt;/b&gt;과&amp;nbsp;&lt;b&gt;인가(Authorization)&lt;/b&gt;를 대행하는 오픈소스 보안 서버입니다&lt;/span&gt;&lt;span style=&quot;background-color: #FFFFFF;&quot;&gt;.&amp;nbsp;&lt;/span&gt;사용자가 보호된 서비스에 접근하려고 할 때 프록시 서버가 Authelia에 해당 요청의 유효성을 확인하도록 요청하는 방식&lt;span style=&quot;background-color: #FFFFFF;&quot;&gt;으로 작동&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt; [세부 내용]&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;color: #333333;&quot;&gt;가.&amp;nbsp;Authelia를&amp;nbsp;Nginx 기능과 특징&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;color: #333333;&quot;&gt;나. Authelia를&amp;nbsp;Nginx와 연동&amp;nbsp; 구축 절차&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;[참고 #1]&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Local Domain에서&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Authelia&amp;nbsp; 설치&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt;&lt;/blockquote&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 가.&amp;nbsp;Authelia를&amp;nbsp;Nginx 기능과 특징 &lt;/span&gt;&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Authelia&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;주요 기능&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;Authelia&lt;/b&gt;는 자체 구축이 가능한 인증/인가(Authentication &amp;amp; Authorization) 서버로, 다음과 같은 기능을 제공합니다:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2단계 인증(2FA)&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;싱글 사인온(SSO)&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;세분화된 접근 제어&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;LDAP/AD 통합&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;역방향 프록시 연동(Nginx, Traefik 등)&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2. 주요 기능 및 장점&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;Single Sign-On (SSO)&lt;/b&gt;: 한 번 로그인하면 Authelia로 보호되는 모든 서비스에 추가 로그인 없이 접속할 수 있습니다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;다양한 2FA 지원&lt;/b&gt;:&amp;nbsp;Yubikey와 같은 하드웨어 키부터 모바일 앱 OTP까지 폭넓은 2차 인증 수단을 제공합니다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;보안 강화&lt;/b&gt;: 자체 로그인 기능이 없거나 보안이 취약한 오래된 웹 서비스 앞단에 두어 보안 계층을 즉시 추가할 수 있습&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;3. 주요 구성 요소&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;리버스 프록시 (Reverse Proxy)&lt;/b&gt;:&amp;nbsp;Nginx Proxy Manager,&amp;nbsp;Traefik,&amp;nbsp;Caddy&amp;nbsp;등과 연동되어 실질적인 관문 역할을 합니다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;사용자 백엔드 (User Backend)&lt;/b&gt;: 사용자 정보를 저장하는 곳으로, 간단한 YAML 파일이나 기업용&amp;nbsp;LDAP/Active Directory를 지원합니다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;데이터베이스 (Storage Backend)&lt;/b&gt;: 인증 세션, 2FA 장치 정보 등을 저장하기 위해 SQLite, PostgreSQL, MariaDB 등을 사용합니다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;접근 제어 정책 (Access Control)&lt;/b&gt;: 특정 도메인, IP 대역, 사용자 그룹에 따라 &quot;인증 생략&quot;, &quot;1단계만 필요&quot;, &quot;2단계 필수&quot; 등의 상세 규칙을 설정&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt; &lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;4. Authelia 핵심 작동 방식 (워크플로우)&lt;/span&gt;&lt;/b&gt; 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAQQAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt; &lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp;사용자가 보호된 웹사이트에 접속할 때의 일반적인 과정은 다음과 같습니다:&lt;/span&gt; 
&lt;/div&gt;&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-complete=&quot;true&quot; data-processed=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;decimal&quot;&gt; 
 &lt;li style=&quot;list-style-type: decimal;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAUQAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span style=&quot;color: #333333;&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;요청 가로채기&lt;/b&gt;: 사용자가 웹 서비스에 접속하면, Nginx나 Traefik 같은&amp;nbsp;&lt;b&gt;리버스 프록시&lt;/b&gt;가 이 요청을 먼저 받습니다.&lt;/span&gt;&lt;/li&gt; 
 &lt;li style=&quot;list-style-type: decimal;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAUQAQ&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span style=&quot;color: #333333;&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;인증 확인&lt;/b&gt;: 프록시 서버는 Authelia의 API(주로&amp;nbsp;/api/verify)에 &quot;이 사용자가 인증되었는가?&quot;를 묻습니다.&lt;/span&gt;&lt;/li&gt; 
 &lt;li style=&quot;list-style-type: decimal;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAUQAg&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span style=&quot;color: #333333;&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;인증 진행&lt;/b&gt;:&lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: circle;&quot; data-complete=&quot;true&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;circle&quot;&gt; 
   &lt;li style=&quot;list-style-type: decimal;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAUQAw&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span style=&quot;color: #333333;&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;미인증 시&lt;/b&gt;: 사용자를 Authelia 로그인 페이지로 리다이렉트합니다.&lt;/span&gt;&lt;/li&gt; 
   &lt;li style=&quot;list-style-type: decimal;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAUQBA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span style=&quot;color: #333333;&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;1단계 인증&lt;/b&gt;: 사용자가 아이디/비밀번호를 입력하면 Authelia는 백엔드(LDAP, 파일 등)에서 정보를 확인합니다.&lt;/span&gt;&lt;/li&gt; 
   &lt;li style=&quot;list-style-type: decimal;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAUQBQ&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span style=&quot;color: #333333;&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;2단계 인증 (2FA)&lt;/b&gt;: 정책에 따라 TOTP(구글 OTP), WebAuthn(FIDO2 보안키), Duo 푸시 알림 등을 추가로 요구합니다.&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li style=&quot;list-style-type: decimal;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAUQBg&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span style=&quot;color: #333333;&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;세션 생성&lt;/b&gt;: 인증이 완료되면 Authelia는 사용자 브라우저에 쿠키(세션)를 생성합니다.&lt;/span&gt;&lt;/li&gt; 
 &lt;li style=&quot;list-style-type: decimal;&quot; data-complete=&quot;true&quot; data-sae=&quot;&quot; data-hveid=&quot;CAUQBw&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span style=&quot;color: #333333;&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;접근 허용&lt;/b&gt;: 이후 프록시 서버는 인증된 요청에 대해 사용자 정보 헤더(예:&amp;nbsp;X-Forwarded-User)를 추가하여 실제 웹 서비스로 전달합니다&lt;/span&gt;&lt;/li&gt; 
&lt;/ol&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;b&gt;나 . Authelia&lt;/b&gt;&lt;span style=&quot;background-color: #FFFFFF;&quot;&gt;를&lt;/span&gt;&amp;nbsp;&lt;b&gt;Nginx&lt;/b&gt;&lt;span style=&quot;background-color: #FFFFFF;&quot;&gt;와 연동&amp;nbsp; 구축 절차&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot;&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIARAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt; &lt;span style=&quot;color: #333333;&quot;&gt;전용 인증 서버인&amp;nbsp;&lt;b&gt;Authelia&lt;/b&gt;를&amp;nbsp;&lt;b&gt;Nginx&lt;/b&gt;와 연동하여 Google Authenticator(2FA)를 구현하는 현대적인 표준 구성(Docker 기반)을 안내해 드립니다.&lt;/span&gt; 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt; &lt;span style=&quot;color: #333333;&quot;&gt;1. 작동 환경 및 아키텍처 (Architecture)&lt;/span&gt; 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIAhAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt; &lt;span style=&quot;color: #333333;&quot;&gt;이 구성은 모든 서비스를&amp;nbsp;&lt;b&gt;Docker 컨테이너&lt;/b&gt;로 띄워 관리하는 방식입니다.&lt;/span&gt; 
&lt;/div&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;사용자(Browser)&lt;/b&gt;: 웹사이트 접속 시도.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;Nginx (Reverse Proxy)&lt;/b&gt;: 외부 요청을 받아 Authelia에게 &quot;이 사용자 인증됨?&quot;이라고 물어봄 (auth_request&amp;nbsp;모듈 사용).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;Authelia (Auth Server)&lt;/b&gt;: 사용자가 로그인(ID/PW)하고 Google Authenticator 코드(2FA)를 입력하는 페이지 제공.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;Redis/File (Storage)&lt;/b&gt;: 인증 세션 및 사용자 정보를 저장 (가장 간단한 파일 기반 설정 기준).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt; &lt;span style=&quot;color: #333333;&quot;&gt;2. 구성 파일 (Source Codes)&lt;/span&gt; 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBRAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt; &lt;span style=&quot;color: #333333;&quot;&gt;가장 핵심이 되는 3가지 파일을 작성해 드립니다.&lt;/span&gt; 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt; &lt;span style=&quot;color: #333333;&quot;&gt;①&amp;nbsp;docker-compose.yml&amp;nbsp;(서비스 구성)&lt;/span&gt; 
&lt;/div&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;services:
&amp;nbsp;&amp;nbsp;nginx:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;image: nginx:latest
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;container_name: nginx
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ports:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- &quot;80:80&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- &quot;443:443&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;volumes:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;depends_on:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- authelia

&amp;nbsp;&amp;nbsp;authelia:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;image: authelia/authelia:latest
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;container_name: authelia
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;volumes:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- ./authelia:/config
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;environment:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- TZ=Asia/Seoul
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;restart: unless-stopped&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt; &lt;span style=&quot;color: #333333;&quot;&gt;②&amp;nbsp;nginx.conf&amp;nbsp;(인증 연동 핵심 설정)&lt;/span&gt; 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBxAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt; &lt;span style=&quot;color: #333333;&quot;&gt;Nginx가 Authelia에게 인증 여부를 묻도록 설정합니다.&lt;/span&gt; 
&lt;/div&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;server {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;listen 80;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;server_name ://example.com;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# 1. Authelia 인증 체크 경로
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;location /internal/authelia/authz {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;internal;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proxy_pass http://authelia:9091/api/authz/forward-auth;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# 2. 실제 보호하려는 웹 서비스
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;location / {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# Authelia 인증 요청 활성화
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;auth_request /internal/authelia/authz;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# 인증 안됐을 경우 Authelia 로그인 페이지로 리다이렉트
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;error_page 401 =302 https://example.com;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proxy_pass http://my-backend-service:8080;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt; &lt;span style=&quot;color: #333333;&quot;&gt;③&amp;nbsp;authelia/configuration.yml&amp;nbsp;(2FA 설정)&lt;/span&gt; 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEICRAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt; &lt;span style=&quot;color: #333333;&quot;&gt;Authelia 설정 파일에서 2FA(TOTP)를 활성화합니다.&lt;/span&gt; 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEICRAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;
  &amp;nbsp; 
&lt;/div&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;authentication_backend:
&amp;nbsp;&amp;nbsp;file:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;path: /config/users_database.yml

# Google Authenticator (TOTP) 설정
totp:
&amp;nbsp;&amp;nbsp;issuer: &quot;MyHomeServer&quot;
&amp;nbsp;&amp;nbsp;period: 30
&amp;nbsp;&amp;nbsp;skew: 1

access_control:
&amp;nbsp;&amp;nbsp;default_policy: 'one_factor' # 기본은 ID/PW만
&amp;nbsp;&amp;nbsp;rules:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- domain: &quot;://example.com&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;policy: 'two_factor' # 특정 도메인은 무조건 OTP 강제&lt;/code&gt;&lt;/pre&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEICRAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;
  &amp;nbsp; 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt; &lt;span style=&quot;color: #333333;&quot;&gt;3. 연동 및 작동 프로세스 (Flow) 확인&lt;/span&gt; 
&lt;/div&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;첫 접속&lt;/b&gt;: 사용자가 Nginx(보호된 사이트)에 접속합니다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;인증 확인&lt;/b&gt;: Nginx가&amp;nbsp;auth_request를 통해 Authelia에게 사용자의 세션 쿠키가 유효한지 확인합니다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;로그인 이동&lt;/b&gt;: 인증되지 않은 사용자라면 Authelia 로그인 화면(://example.com)으로 보냅니다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;1단계 인증&lt;/b&gt;: 사용자가 ID와 비밀번호를 입력합니다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;2단계 인증(Google OTP)&lt;/b&gt;: ID/PW가 맞으면 Authelia가 OTP 입력창을 띄웁니다. 사용자는 스마트폰의&amp;nbsp;&lt;b&gt;Google Authenticator&lt;/b&gt;&amp;nbsp;앱에 뜬 6자리 번호를 입력합니다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;세션 발급&lt;/b&gt;: 인증 성공 시 Authelia는 세션 쿠키를 굽고 원래 접속하려던 페이지로 돌려보냅니다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;최종 승인&lt;/b&gt;: 이제 Nginx는 Authelia로부터 &quot;인증됨(200 OK)&quot; 응답을 받고 실제 내부 서버의 콘텐츠를 보여줍니다.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt; &lt;span style=&quot;color: #333333;&quot;&gt;4. 구축 시 주의사항&lt;/span&gt; 
&lt;/div&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;HTTPS 필수&lt;/b&gt;: OTP 번호와 세션 쿠키를 보호하기 위해 반드시 SSL(HTTPS) 환경에서 구축해야 합니다 (Let's Encrypt 추천).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;도메인&lt;/b&gt;: Authelia와 서비스 도메인이 같은 상위 도메인(예: *.example.com)을 공유해야 쿠키 공유가 원활합니다.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;[참고 #1]&amp;nbsp; &amp;nbsp; &lt;b&gt;Local Domain에서 &lt;span style=&quot;color: #333333;&quot;&gt;Authelia&amp;nbsp; 설치&lt;/span&gt;&lt;/b&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;다. Local Domain으로 작동 검증&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIARAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt; &lt;span data-processed=&quot;true&quot; data-subtree=&quot;aimfl&quot;&gt;로컬 환경(Local Domain)에서 테스트하기 위해서는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;hosts&lt;span&gt;&amp;nbsp;&lt;/span&gt;파일 수정&lt;/b&gt;과&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;HTTPS 처리&lt;/b&gt;가 가장 중요합니다. 브라우저 보안 정책상 OTP 관련 쿠키와 인증 정보는 HTTPS가 아니면 정상 작동하지 않을 수 있기 때문입니다.&lt;span data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;rRlJVc_k,rRlJVc_l&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=rRlJVc_j/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIAhAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;
  로컬 도메인(예:&lt;span&gt;&amp;nbsp;&lt;/span&gt;my-app.local,&lt;span&gt;&amp;nbsp;&lt;/span&gt;auth.local)을 기준으로 하는 가이드를 정리해 드립니다.&lt;span data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;rRlJVc_q,rRlJVc_r&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=rRlJVc_p/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt;
  1. 로컬 도메인 설정 (hosts 파일)&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;rRlJVc_v,rRlJVc_w&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=rRlJVc_u/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBBAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;
  먼저 PC의&lt;span&gt;&amp;nbsp;&lt;/span&gt;hosts&lt;span&gt;&amp;nbsp;&lt;/span&gt;파일을 수정하여 로컬 도메인이 자신의 PC(127.0.0.1)를 가리키게 합니다.&lt;span data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;rRlJVc_10,rRlJVc_11&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=rRlJVc_z/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;/div&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;b&gt;Windows&lt;/b&gt;:&amp;nbsp;C:\Windows\System32\drivers\etc\hosts&lt;/li&gt;&lt;li&gt;&lt;b&gt;Mac/Linux&lt;/b&gt;:&amp;nbsp;/etc/hosts&lt;/li&gt;&lt;/ul&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;127.0.0.1 auth.local
127.0.0.1 my-app.local&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt;
  2. 로컬 HTTPS 환경 구성 (mkcert 추천)&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;rRlJVc_1n,rRlJVc_1o&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=rRlJVc_1m/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEICBAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;
  Authelia는 보안상 HTTPS를 강력히 권장합니다. 로컬에서 가짜 인증서를 쉽게 만들려면&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;mkcert&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;도구를 추천합니다.&lt;span data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;rRlJVc_1t,rRlJVc_1u&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=rRlJVc_1s/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;/div&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;&lt;li&gt;mkcert -install&amp;nbsp;(로컬 신뢰 기관 등록)&lt;/li&gt;&lt;li&gt;mkcert auth.local my-app.local&amp;nbsp;(인증서 파일 생성:&amp;nbsp;_wildcard.local.pem,&amp;nbsp;_wildcard.local-key.pem)&lt;/li&gt;&lt;/ol&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;div id=&quot;code_1775719879734&quot; data-ke-type=&quot;html&quot; data-source=&quot;authelia/
├── docker-compose.yml
├── config/
│   ├── configuration.yml
│   └── users_database.yml&quot;&gt;
  authelia/ ├── docker-compose.yml ├── config/ │ ├── configuration.yml │ └── users_database.yml 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt;
  &amp;nbsp; 
&lt;/div&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt;
  3. Docker Compose 소스 (로컬 최적화)&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;rRlJVc_2a,rRlJVc_2b&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=rRlJVc_29/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEICxAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;
  생성한 인증서를 적용한 전체 구조입니다. 
&lt;/div&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;services:
&amp;nbsp;&amp;nbsp;# 1. Nginx: 모든 요청의 입구
&amp;nbsp;&amp;nbsp;nginx:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;image: nginx:latest
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;container_name: nginx
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ports:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- &quot;443:443&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;volumes:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- ./certs:/etc/nginx/certs:ro # mkcert로 만든 인증서
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;depends_on:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- authelia

&amp;nbsp;&amp;nbsp;# 2. Authelia: 인증 서버 (Google OTP 처리)
&amp;nbsp;&amp;nbsp;authelia:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;image: authelia/authelia:latest
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;container_name: authelia
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;volumes:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- ./authelia:/config
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;environment:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- TZ=Asia/Seoul

&amp;nbsp;&amp;nbsp;# 3. 테스트용 실제 앱
&amp;nbsp;&amp;nbsp;my-app:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;image: nginxdemos/hello
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;container_name: my-app&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt;
  4. Nginx 설정 핵심 (nginx.conf) 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt;
  &amp;nbsp; 
&lt;/div&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;server {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;listen 443 ssl;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;server_name my-app.local;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssl_certificate /etc/nginx/certs/auth.local+1.pem;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssl_certificate_key /etc/nginx/certs/auth.local+1-key.pem;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# Authelia 인증 체크
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;location /internal/authelia/authz {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;internal;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proxy_pass http://authelia:9091/api/authz/forward-auth;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;location / {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;auth_request /internal/authelia/authz;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;error_page 401 =302 https://auth.local; # 미인증 시 이동

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proxy_pass http://my-app:80;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}

server {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;listen 443 ssl;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;server_name auth.local; # Authelia 로그인 페이지용 도메인

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssl_certificate /etc/nginx/certs/auth.local+1.pem;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssl_certificate_key /etc/nginx/certs/auth.local+1-key.pem;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;location / {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proxy_pass http://authelia:9091;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/code&gt;&lt;/pre&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt;
  &amp;nbsp; 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt;
  5. 로컬 연동 프로세스 요약&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;rRlJVc_30,rRlJVc_31&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=rRlJVc_2z/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;/div&gt;&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-complete=&quot;true&quot; data-processed=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;decimal&quot;&gt; 
 &lt;li style=&quot;list-style-type: decimal;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIEBAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;접속&lt;/b&gt;: 브라우저에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://my-app.local&quot;&gt;https://my-app.local&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;접속.&lt;/span&gt;&lt;/li&gt; 
 &lt;li style=&quot;list-style-type: decimal;&quot; data-complete=&quot;true&quot; data-sae=&quot;&quot; data-hveid=&quot;CAEIEBAB&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;판단&lt;/b&gt;: Nginx가 Authelia에게 물어보고 401 코드를 받음.&lt;/span&gt;&lt;/li&gt; 
 &lt;li style=&quot;list-style-type: decimal;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIEBAC&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;이동&lt;/b&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://auth.local&quot;&gt;https://auth.local&lt;/a&gt;로 리다이렉트.&lt;/span&gt;&lt;/li&gt; 
 &lt;li style=&quot;list-style-type: decimal;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIEBAD&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;로그인&lt;/b&gt;: 미리 설정한 ID/PW 입력 (Authelia&lt;span&gt;&amp;nbsp;&lt;/span&gt;users_database.yml에 설정).&lt;/span&gt;&lt;/li&gt; 
 &lt;li style=&quot;list-style-type: decimal;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIEBAE&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;2FA 등록&lt;/b&gt;: 처음 접속 시 Authelia가 이메일 링크 대신 로컬 로그에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;OTP 등록 QR 코드 주소&lt;/b&gt;를 남깁니다. (로컬은 메일 서버가 없으므로 도커 로그 확인 필요)&lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: disc;&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;disc&quot;&gt; 
   &lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIEBAF&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;docker logs authelia&lt;span&gt;&amp;nbsp;&lt;/span&gt;명령어로 QR 코드 링크 확인 후 스마트폰 스캔.&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li style=&quot;list-style-type: decimal;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIEBAG&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;완료&lt;/b&gt;: OTP 번호 입력 후 다시&lt;span&gt;&amp;nbsp;&lt;/span&gt;my-app.local로 넘어가서 서비스&lt;span&gt;&amp;nbsp;확인&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 
&lt;/ol&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[참고 #2]&amp;nbsp; users_database.yml&lt;span style=&quot;color: #0A0A0A;&quot;&gt;&amp;nbsp;샘플 코드&lt;/span&gt; &lt;/b&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIARAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt; &lt;span data-processed=&quot;true&quot; data-subtree=&quot;aimfl&quot;&gt;Authelia의 기본 사용자 정보를 담는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;users_database.yml&lt;span&gt;&amp;nbsp;&lt;/span&gt;파일 샘플입니다. 이 파일에서 사용자의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;비밀번호 해시값&lt;/b&gt;과&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;이메일&lt;/b&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;그룹&lt;/b&gt;을 정의합니다.&lt;span data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;cbHqld_l,cbHqld_m&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=cbHqld_k/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;/div&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;div id=&quot;code_1775719818817&quot; data-ke-type=&quot;html&quot; data-source=&quot;authelia/
├── docker-compose.yml
├── config/
│   ├── configuration.yml
│   └── users_database.yml&quot;&gt;
  authelia/ ├── docker-compose.yml ├── config/ │ ├── configuration.yml │ └── users_database.yml 
&lt;/div&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;span style=&quot;color: #0A0A0A;&quot;&gt;1.&amp;nbsp;&lt;/span&gt;users_database.yml&lt;span style=&quot;color: #0A0A0A;&quot;&gt;&amp;nbsp;샘플 코드&lt;/span&gt;&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;users:
&amp;nbsp;&amp;nbsp;# 사용자 아이디 (로그인 시 사용)
&amp;nbsp;&amp;nbsp;myuser:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# 비밀번호: 'password' (Argon2 해시 방식 권장)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;password: &quot;$argon2id$v=19$m=65536,t=3,p=4$uC6SInX8Uunb9SAn1f6D7Q$H5r9vA88U3p0Z3E/x9Xo/vX4vB8&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;displayname: &quot;My Admin&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;emails:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- &quot;myuser@example.com&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;groups:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- admins
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- users&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt; &lt;b&gt;2. 중요 설정 포인트&lt;/b&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;cbHqld_12,cbHqld_13&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=cbHqld_11/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;/div&gt;&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-complete=&quot;true&quot; data-processed=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;decimal&quot;&gt; 
 &lt;li style=&quot;list-style-type: decimal;&quot; data-complete=&quot;true&quot; data-sae=&quot;&quot; data-hveid=&quot;CAEIBRAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;비밀번호 해시&lt;/b&gt;: Authelia는 보안상 평문 비밀번호를 저장하지 않습니다.&lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: disc;&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;disc&quot;&gt; 
   &lt;li style=&quot;list-style-type: disc;&quot; data-complete=&quot;true&quot; data-sae=&quot;&quot; data-hveid=&quot;CAEIBRAB&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;초기 비밀번호 생성은 Docker 명령어로 간단히 할 수 있습니다&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ol&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;docker run --rm authelia/authelia:latest authelia hash-password &quot;원하는비밀번호&quot;&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;위&amp;nbsp;명령어를&amp;nbsp;실행해서&amp;nbsp;나온&amp;nbsp;결과를&amp;nbsp;password:&amp;nbsp;뒤에&amp;nbsp;붙여넣으세요.&lt;/li&gt;&lt;li&gt;이메일 주소: 로컬 테스트 환경이라도 이메일 형식을 갖춰야 합니다. (실제 수신 여부와 상관없이 초기 등록 시 식별자로 쓰입니다.)&lt;/li&gt;&lt;li&gt;그룹(Groups): configuration.yml의 access_control 섹션에서 특정 그룹만 접근 가능하게 제한할 때 활용합니다.&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt; &lt;b&gt;3. Google Authenticator(2FA) 등록 팁 (로컬 환경)&lt;/b&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;cbHqld_1x,cbHqld_1y&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=cbHqld_1w/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBxAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;
  로컬에서 이메일 서버를 구축하지 않았다면, 처음 OTP를 등록할 때 인증 메일을 받을 수 없습니다. 이때는 다음 과정을 따르세요. 
&lt;/div&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBxAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt; &lt;span data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;cbHqld_21,cbHqld_22&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=cbHqld_20/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&amp;nbsp; 1) configuration.yml에서 이메일 전송 방식을&lt;span&gt;&amp;nbsp;&lt;/span&gt;file로 설정합니다&lt;/span&gt; 
&lt;/div&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;notifier:
&amp;nbsp;&amp;nbsp;filesystem:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filename: /config/notification.txt&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;2) 로그인 페이지에서 2FA 등록 버튼을 누릅니다.&lt;br&gt;&amp;nbsp;3) 도커 볼륨으로 연결된&amp;nbsp;authelia/notification.txt&amp;nbsp;파일을 열어보면&amp;nbsp;&lt;b&gt;QR 코드 링크&lt;/b&gt;가 텍스트로 찍혀 있습니다.&lt;br&gt;&amp;nbsp;4) 그 링크를 브라우저에 붙여넣어 QR 코드를 띄운 후&amp;nbsp;&lt;b&gt;Google Authenticator&lt;/b&gt;&amp;nbsp;앱으로 스캔하면 등록이 완료됩니다.&lt;/p&gt;&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEICRAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;
  5) 이 설정까지 마치고&lt;span&gt;&amp;nbsp;&lt;/span&gt;docker-compose up -d를 실행하면 로컬에서 완벽하게 작동할 것 입니다. 
&lt;/div&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;(관련 문서)&lt;br&gt;1. Authelia - 오픈소스 보안 서버 구축&lt;br&gt;&lt;a href=&quot;https://couplewith.tistory.com/m/926&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://couplewith.tistory.com/m/926&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Authelia - 리버스 프록시 환경의 인증(Authentication)과 인가(Authorization)를 대행하는 오픈소스 보안 서&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;Authelia - 리버스 프록시 환경의 인증(Authentication)과 인가(Authorization)를 대행하는 오픈소스 보안 서버 Authelia는 리버스 프록시와 긴밀하게 통합되어 웹 서비스에 대한 인증(Authentication)과 인가(Author&quot; data-og-host=&quot;couplewith.tistory.com&quot; data-og-source-url=&quot;https://couplewith.tistory.com/m/926&quot; data-og-image=&quot;https://blog.kakaocdn.net/dna/T2V87/dJMb9cBI4Qv/AAAAAAAAAAAAAAAAAAAAAO0FjvQLNhUsCIFtscAGCy4_b1_RybimTF2L9YbZctn2/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1777561199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=%2BPBXihVBlx9X0yamC92OKZ0Svgs%3D&quot; data-og-url=&quot;https://couplewith.tistory.com/m/926&quot;&gt;&lt;a href=&quot;https://couplewith.tistory.com/m/926&quot; target=&quot;_blank&quot; data-source-url=&quot;https://couplewith.tistory.com/m/926&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://blog.kakaocdn.net/dna/T2V87/dJMb9cBI4Qv/AAAAAAAAAAAAAAAAAAAAAO0FjvQLNhUsCIFtscAGCy4_b1_RybimTF2L9YbZctn2/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1777561199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=%2BPBXihVBlx9X0yamC92OKZ0Svgs%3D')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;Authelia - 리버스 프록시 환경의 인증(Authentication)과 인가(Authorization)를 대행하는 오픈소스 보안 서&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;Authelia - 리버스 프록시 환경의 인증(Authentication)과 인가(Authorization)를 대행하는 오픈소스 보안 서버 Authelia는 리버스 프록시와 긴밀하게 통합되어 웹 서비스에 대한 인증(Authentication)과 인가(Author&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;couplewith.tistory.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;&lt;br&gt;&lt;br&gt;2. Authelia - 강력한 인증 특징과 장점 비교&lt;br&gt;&lt;a href=&quot;https://couplewith.tistory.com/m/927&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://couplewith.tistory.com/m/927&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Authelia - 오픈 소스 기반의 강력한 인증 서버 분석 비교&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;Authelia - 오픈 소스 기반의 강력한 인증 서버 분석 비교 Authelia는 오픈 소스 기반의 강력한 인증 서버로, 특히 자체 호스팅(Self-hosted) 환경에서 최고의 가성비와 보안성을 제공합니다. 다른 상용 &quot; data-og-host=&quot;couplewith.tistory.com&quot; data-og-source-url=&quot;https://couplewith.tistory.com/m/927&quot; data-og-image=&quot;https://blog.kakaocdn.net/dna/Tm3aF/dJMb81GYfkL/AAAAAAAAAAAAAAAAAAAAAO7FVpH4RqyXL4W7VXl_fSgyX0ZJo4riInvCaaab_4jZ/img.jpg?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1777561199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=jR07Sr7KCdSMW5PSM0yQZ26nlAg%3D&quot; data-og-url=&quot;https://couplewith.tistory.com/m/927&quot;&gt;&lt;a href=&quot;https://couplewith.tistory.com/m/927&quot; target=&quot;_blank&quot; data-source-url=&quot;https://couplewith.tistory.com/m/927&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://blog.kakaocdn.net/dna/Tm3aF/dJMb81GYfkL/AAAAAAAAAAAAAAAAAAAAAO7FVpH4RqyXL4W7VXl_fSgyX0ZJo4riInvCaaab_4jZ/img.jpg?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1777561199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=jR07Sr7KCdSMW5PSM0yQZ26nlAg%3D')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;Authelia - 오픈 소스 기반의 강력한 인증 서버 분석 비교&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;Authelia - 오픈 소스 기반의 강력한 인증 서버 분석 비교 Authelia는 오픈 소스 기반의 강력한 인증 서버로, 특히 자체 호스팅(Self-hosted) 환경에서 최고의 가성비와 보안성을 제공합니다. 다른 상용 &lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;couplewith.tistory.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;&lt;/p&gt;</description>
      <category>InfraPlatform</category>
      <category>Authelia 핵심 작동 방식</category>
      <category>Authelia를 Nginx와 연동 구축 절차</category>
      <category>오픈소스 보안 서버</category>
      <category>인가(Authorization)</category>
      <category>인증(Authentication)</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/926</guid>
      <comments>https://couplewith.tistory.com/926#entry926comment</comments>
      <pubDate>Thu, 9 Apr 2026 16:33:03 +0900</pubDate>
    </item>
    <item>
      <title>(AI의 성장 일기) 인공지능, 어디까지 왔을까?</title>
      <link>https://couplewith.tistory.com/925</link>
      <description>&lt;h1&gt;(AI의 성장 일기) 인공지능, 어디까지 왔을까?✨&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인공지능(AI)은 지난 수십 년 동안 눈부신 발전을 거듭해 왔습니다. 단순히 계산을 돕던 시절에서 이제는 스스로 목표를 세우고 행동하는 단계까지 진화했죠. 오늘은 AI의 발전 단계를 시간 순으로 정리해 보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인공지능(Artificial Intelligence)은 인간의 학습, 추론, 지각, 언어 이해 등과 같은 지적 능력을 모방하여 컴퓨터나 기계로 구현하는 기술입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;핵심:&lt;/b&gt; 컴퓨터가 데이터를 통해 배우고(머신러닝), 스스로 문제를 해결하거나 창의적인 결과물(생성형 AI)을 만들어내는 기술입니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;분류:&lt;/b&gt; 학문적인 표현으로 현재는 특정 영역에서만 능력을 발휘하는 &lt;b&gt;'약인공지능(ANI)'&lt;/b&gt;이 주류입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;  인공지능의 발전 원동력 (3대 요소)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;데이터(Data):&lt;/b&gt; 인터넷과 기기의 발달로 방대한 학습 데이터 확보 가능.&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBBAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;과거에는 사람이 일일이 규칙을 적어줬지만, 이제는 웹상의 방대한 텍스트, 이미지, 영상 데이터를 AI가 스스로 읽으며 세상의 패턴과 문맥을 배웁니다. 특히 LLM은 인류가 축적한 거의 모든 지식을 학습 데이터로 삼으면서 비약적으로 발전했습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;컴퓨팅 파워(Computing Power):&lt;/b&gt; GPU 등 연산 속도의 폭발적 향상.&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBxAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;엔비디아(NVIDIA)의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;GPU&lt;/b&gt;나 구글의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;TPU&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;같은 가속기 덕분에, 과거에는 수십 년이 걸렸을 대규모 인공신경망 학습을 며칠 만에 끝낼 수 있게 되었습니다. 하드웨어의 발전이 이론으로만 존재하던 딥러닝과 거대 모델을 현실로 만들었습니다.&lt;/span&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;PS9kDc_1g,PS9kDc_1h&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=PS9kDc_1f/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;알고리즘(Algorithm):&lt;/b&gt; 인공신경망 기반의 딥러닝 기술 발전.&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIChAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;2017년 구글이 발표한&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;'트랜스포머(Transformer)'&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;알고리즘은 현재 모든 LLM의 근간이 되었습니다. 문장 속 단어 간의 관계(맥락)를 한꺼번에 파악하는 능력을 갖추게 되면서, AI는 단순 암기를 넘어 인간처럼 '이해'하고 '추론'하는 단계에 진입했습니다.&lt;/span&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;PS9kDc_1x,PS9kDc_1y&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=PS9kDc_1w/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  인공지능의 발전 단계의 정리&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;559&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FquW2/dJMcacWYxeC/Jwissk9K5FSN0eRxPYZlYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FquW2/dJMcacWYxeC/Jwissk9K5FSN0eRxPYZlYK/img.png&quot; data-alt=&quot;(제미나이로 만듬 대단함..)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FquW2/dJMcacWYxeC/Jwissk9K5FSN0eRxPYZlYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFquW2%2FdJMcacWYxeC%2FJwissk9K5FSN0eRxPYZlYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;559&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;559&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;(제미나이로 만듬 대단함..)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 과학적 실험 예측 알고리즘 (1950년대 ~ 1980년대)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;개념:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;규칙 기반 시스템, 수학적 통계, 단순한 &quot;If-Then&quot; 논리.&lt;/li&gt;
&lt;li&gt;사전에 정의된 복잡한 공식과 논리 회로를 통해 특정 실험 결과를 예측하던 시기입니다. 주로 수학적 통계와 'If-Then' 방식의 규칙 기반(Rule-based) 시스템이었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;활용 시기:&lt;/b&gt; 초기 컴퓨터 공학, 기초 기상 예측, 간단한 체스 프로그램 등 간단한 과학 실험 예측.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;태동기 (1940s ~ 1950s): AI의 시작&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1950: 앨런 튜링, &quot;기계가 생각할 수 있을까?&quot;라는 질문과 '튜링 테스트' 제안.&lt;/li&gt;
&lt;li&gt;1956: 다트머스 회의에서 &lt;b&gt;'인공지능(AI)' 용어 최초 탄생&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;제1차 AI 붐 &amp;amp; 침체기 (1960s ~ 1970s): 논리적 접근&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;초기 낙관론과 함께 초기적인 챗봇(일라이자) 등장.&lt;/li&gt;
&lt;li&gt;그러나 컴퓨터 성능의 한계로 복잡한 문제 해결에 실패하며 첫 번째 침체기 발생.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;*&lt;i&gt;제2차 AI 붐 &amp;amp; 침체기 (1980s ~ 1990s): 전문가 시스템 *&lt;/i&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;지식 기반의 '전문가 시스템(Expert System)'이 유행하며 비즈니스에 활용.&lt;/li&gt;
&lt;li&gt;유지보수의 어려움과 데이터 부족으로 다시 침체기 도래.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 머신러닝 (Machine Learning) (1990년대 ~ 2000년대 초반)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;개념:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터를 통해 스스로 패턴을 학습하는 방식&lt;/li&gt;
&lt;li&gt;사람이 규칙을 일일이 입력하던 방식에서 벗어나, &lt;b&gt;컴퓨터가 데이터를 통해 스스로 패턴을 학습&lt;/b&gt;하는 방식으로 전환된 단계입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;변화:&lt;/b&gt; &quot;규칙을 알려주기&quot; &amp;rarr; &quot;데이터를 주고 규칙을 찾게 하기&quot;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;활용 시기:&lt;/b&gt; 스팸 메일 필터링, 검색 엔진 순위 결정, 기초적인 상품 추천 시스템.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 딥러닝 (Deep Learning) (2010년대)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;개념:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인공신경망을 통한 이미지&amp;middot;음성 인식&lt;/li&gt;
&lt;li&gt;인간의 뇌 구조(신경망)를 모방한 &lt;b&gt;인공신경망&lt;/b&gt;을 도입하여 학습과 추론 능력을 비약적으로 높인 단계입니다. 복잡한 이미지 인식과 음성 인식이 가능해졌습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;변화:&lt;/b&gt; 비정형 데이터(사진, 영상, 목소리)를 인간처럼 인식하기 시작함.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;활용 시기:&lt;/b&gt; 알파고(AlphaGo), 자율주행 초기 기술, 스마트폰 얼굴 인식.&lt;/li&gt;
&lt;li&gt;** 2000년대 후반: 빅데이터와 컴퓨팅 파워 향상으로 '딥러닝' 기술 급발전.**
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;2016: 알파고(AlphaGo)가 이세돌 9단과의 바둑 대결에서 승리하며 AI 인식 전환점 마련.&lt;/li&gt;
&lt;li&gt;2020s~: 챗GPT(ChatGPT)와 같은 생성형 AI 등장, 문장/그림/음악 등 콘텐츠 창작 시대 돌입.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. LLM (거대언어모델) (2020년대 초반)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;개념:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;방대한 텍스트 학습으로 인간 언어 이해&amp;middot;생성.&lt;/li&gt;
&lt;li&gt;언어 처리(NLP) 기술의 정점으로, 방대한 양의 텍스트 데이터를 학습해 &lt;b&gt;인간의 언어를 이해하고 생성&lt;/b&gt;하는 모델입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;변화:&lt;/b&gt; 질문의 맥락을 이해하고 에세이 작성, 코딩, 요약 등 복잡한 언어 작업을 수행.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;활용 시기:&lt;/b&gt; ChatGPT, Claude, 하이퍼클로바X 등 대화형 AI의 대중화.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. 에이전틱 AI (Agentic AI) (2024년 ~ 2026년 현재)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;개념:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단순 답변을 넘어 스스로 목표 설정&amp;middot;실행.&lt;/li&gt;
&lt;li&gt;단순 답변을 넘어 &lt;b&gt;스스로 목표를 설정하고 실행&lt;/b&gt;하는 단계입니다. 필요한 도구(웹 검색, 이메일 보내기, 결제 등)를 직접 사용하여 업무를 완수합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;변화:&lt;/b&gt; &quot;말하는 AI&quot; &amp;rarr; &quot;행동하는 AI&quot;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;활용 시기:&lt;/b&gt; 여행 일정 예약 대행, 복잡한 프로젝트 자동화, 비즈니스 프로세스 자율 수행.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;6. 맥락 지능 (Contextual Intelligence) (2025년 ~ 현재)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;개념:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사용자의 과거&amp;middot;현재&amp;middot;환경&amp;middot;취향을 종합적 고려.&lt;/li&gt;
&lt;li&gt;사용자의 과거 이력, 현재 위치, 실시간 주변 환경, 개인적 취향 등을 종합적으로 고려하여 &lt;b&gt;'말하지 않아도 아는'&lt;/b&gt; 수준의 지능입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;변화:&lt;/b&gt; 보편적인 답변 &amp;rarr; 나에게 딱 맞는 초개인화된 지능.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;활용 시기:&lt;/b&gt; 개인 맞춤형 AI 비서, 온디바이스(On-device) 개인화 서비스.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;7. 자율 진화 및 자율 지능 (Autonomous Evolution) (2026년 이후 전망)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;개념:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AI가 스스로 코드 수정&amp;middot;데이터 생성&amp;middot;학습.&lt;/li&gt;
&lt;li&gt;사람이 직접 학습시키지 않아도 &lt;b&gt;AI가 스스로 자신의 코드를 수정하거나 새로운 데이터를 생성해 학습&lt;/b&gt;하며 능력을 키워가는 단계입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;특징:&lt;/b&gt; 시스템 스스로가 결함을 찾아 고치고(Self-healing), 최적의 성능으로 자가 발전함.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;활용 시기:&lt;/b&gt; 고도화된 자율주행 시스템, 스스로 진화하는 보안 소프트웨어 등.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;8. 초지능 (Superintelligence, ASI) (미래 전망)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;개념:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인간의 인지 능력을 압도적으로 초월.&lt;/li&gt;
&lt;li&gt;모든 영역에서 &lt;b&gt;인간의 인지 능력을 압도적으로 넘어서는&lt;/b&gt; 가상의 단계입니다. 예술, 과학적 발견, 복잡한 문제 해결 등에서 인류 전체의 지능을 합친 것보다 뛰어난 능력을 가집니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;활용 시기:&lt;/b&gt; 아직 도달하지 않은 기술적 특이점(Singularity) 이후의 예술&amp;middot;과학&amp;middot;문제 해결 전 영역.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;[중학생도 이해 할&amp;nbsp; 요약] &quot;AI의 성장 일기&quot;&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;아기 때 (실험 예측):&lt;/b&gt; 엄마가 시키는 대로만 움직이는 장난감 자동차.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;어린이 때 (머신러닝):&lt;/b&gt; 여러 번 넘어지면서 혼자서 자전거 타는 법을 배우는 아이.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;학생 때 (딥러닝/LLM):&lt;/b&gt; 전 세계 책을 다 읽어서 모르는 게 없고 말도 아주 잘하는 똑똑한 학생.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사회인 때 (에이전틱 AI):&lt;/b&gt; &quot;부모님 선물 좀 사와&quot;라고 하면 직접 마트 가서 좋은 물건을 골라오는 비서.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;전문가 때 (자율 지능):&lt;/b&gt; 밤마다 스스로 공부해서 매일매일 더 똑똑해지는 천재.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;신의 영역 (초지능):&lt;/b&gt; 인간이 상상도 못 할 문제를 순식간에 풀어버리는 해결하는 존재.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;관련 참고문헌 및 출처&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;[보고서] 2026 인공지능 기술 로드맵: 에이전트에서 자율 지능으로&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;출처: Gartner - Top Strategic Technology Trends for 2026&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;[학술] 생성형 AI의 진화: LLM에서 에이전틱 워크플로우까지&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;출처: Stanford HAI - 2025/2026 AI Index Report&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;[칼럼] 자율 진화 AI가 가져올 산업의 미래&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;출처: MIT Technology Review - The Future of Autonomous Systems&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;평가&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt; 앞으로 사람이 가져야할 능력: AI의 중요한 경쟁력은 에이전틱 AI와 맥락 지능입니다. 사람은 고차원적 맥락을 제공하고 결과를 지휘하는 능력이 핵심이 될 것입니다.&lt;br /&gt;AI는 이미 언어 이해 &amp;rarr; 실행 &amp;rarr; 개인화 단계로 진입했습니다. 역시 &quot;손으로 만드는 기술&quot;에서 &quot;AI와 협업하는 지휘 능력&quot;으로 패러다임이 바뀌고 있습니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원문: &lt;a href=&quot;https://ggbang.tistory.com/273?category=939745&quot;&gt;https://ggbang.tistory.com/273?category=939745&lt;/a&gt;&lt;/p&gt;</description>
      <category>BigData</category>
      <category>(AI의 성장 일기) 인공지능</category>
      <category>AI의 성장</category>
      <category>어디까지 왔을까? - AI의 발전 역사</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/925</guid>
      <comments>https://couplewith.tistory.com/925#entry925comment</comments>
      <pubDate>Thu, 9 Apr 2026 10:44:40 +0900</pubDate>
    </item>
    <item>
      <title>예측형 AI의 한계를 넘어, 목표를 설계하고 실행하는 에이전트 AI의 부상</title>
      <link>https://couplewith.tistory.com/924</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;예측형 AI의 한계를 넘어, 목표를 설계하고 실행하는 에이전트 AI의 부상&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;384&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bY1Ubn/dJMcagSz2GB/VtqYhR44GReKTEPHke8Yf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bY1Ubn/dJMcagSz2GB/VtqYhR44GReKTEPHke8Yf1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bY1Ubn/dJMcagSz2GB/VtqYhR44GReKTEPHke8Yf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbY1Ubn%2FdJMcagSz2GB%2FVtqYhR44GReKTEPHke8Yf1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;384&quot; height=&quot;384&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;384&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;# &lt;b&gt;과거를 예측하던 AI에서, 미래를 계획하고 실행하는 인공지능&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인공지능은 오랫동안 과거의 &lt;b&gt;데이터를 학습해 미래를 예측하는 도구로 이해&lt;/b&gt;되어 왔습니다. 매출 데이터를 보고 다음 분기 수요를 예상하고, 고객 행동을 분석해 이탈 가능성을 예측하며, 과거의 패턴 속에서 미래의 확률을 계산하는 방식이 대표적입니다. 이 시기의 AI는 말 그대로 &lt;b&gt;&amp;ldquo;과거를 통해 미래를 추정하는 기술&amp;rdquo;&lt;/b&gt;이었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 최근 AI의 발전 방향을 보면, 우리는 조금 다른 전환점 앞에 서 있는 듯합니다. 이제 AI는 단순히 과거의 연장선에서 미래를 맞히는 수준을 넘어, &lt;b&gt;인간이 원하는 미래를 먼저 설정하고 그 미래를 만들기 위해 지금 무엇을 해야 하는지를 제안&lt;/b&gt;하는 방향으로 진화하고 있습니다. 다시 말해, AI가 &lt;b&gt;&amp;ldquo;미래를 예측하는 존재&amp;rdquo;&lt;/b&gt;에서 &amp;ldquo;미래를 설계하고 실행을 돕는 존재&amp;rdquo;로 이동하고 있는 것입니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요즈음은 AI 챗봇에게 어떻게 질문 하시나요? 하면 예전에는 &quot; OO가 뭐야야, OOO을 찾아줘&quot; 라고 질문 했다면 점점 더 많은 사람들이 &quot; OO은 무엇이라고 생각해 &quot;, &quot;OOO 하려면 어떻게 해야해&quot;, &quot; OOO은 잘 한거니 &quot; 등 AI를 통한 판단을 통해서 나의 행동과 생각에 대한 정확함 또는 정당화를 질문 하고 있을 것입니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;그 만큼 사람이 가진 불확실성을 AI를 통해서 확인하고 검증하는 수준으로 AI의 발전이 다가 왔다고 볼수 있습니다.&lt;/b&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 과거에서 미래를 유추하는 AI: 예측형 AI의 시대&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존의 예측형 AI는 기본적으로 과거 데이터에 의존합니다. 시간의 흐름에 따라 축적된 데이터를 학습하고, 그 안에서 반복되는 패턴을 발견한 뒤, 비슷한 조건이 다시 나타날 때 어떤 결과가 나올지를 확률적으로 추정합니다. 금융의 가격 예측, 제조업의 수요 예측, 마케팅의 고객 이탈 예측 등은 모두 이 방식의 대표적 사례입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 접근법의 강점은 분명합니다. 데이터가 충분하고 환경이 비교적 안정적이라면 예측 정확도를 높일 수 있습니다. 기업 입장에서는 의사결정을 정량화할 수 있고, 인간보다 더 빠르게 패턴을 찾아낼 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 한계도 뚜렷합니다. 예측형 AI는 결국 &amp;ldquo;과거와 유사한 미래&amp;rdquo;를 전제로 움직입니다. 그래서 코로나19와 같은 전례 없는 사건, 기술 혁신으로 인한 급격한 산업 변화, 인간의 가치관 변화처럼 과거 데이터에 없던 상황에는 쉽게 흔들립니다. 또한 많은 경우 인과관계보다는 상관관계에 기반하기 때문에, 왜 그런 결과가 나오는지 설명하는 데는 약한 모습을 보이기도 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 미래에서 현재를 계산하는 AI: 생성형 AI와 에이전트 AI의 시대&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근 주목받는 생성형 AI와 에이전트 AI는 이와 다른 접근을 보여줍니다. 이들은 단순히 &amp;ldquo;다음에 무엇이 일어날까?&amp;rdquo;를 묻는 데 그치지 않습니다. 오히려 &amp;ldquo;우리가 어떤 미래를 원하는가?&amp;rdquo;, &amp;ldquo;그 미래에 도달하려면 지금 무엇을 해야 하는가?&amp;rdquo;라는 질문에 가까워지고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 지점에서 중요한 개념이 바로 역산적 사고, 즉 백캐스팅입니다. 예를 들어 기업이 &amp;ldquo;3년 안에 고객 경험을 완전히 AI 기반으로 혁신하겠다&amp;rdquo;는 목표를 세우면, AI는 그 목표를 기준으로 필요한 데이터 인프라, 조직 변화, 자동화 수준, 투자 우선순위를 역으로 계산할 수 있습니다. 이 과정에서 AI는 단순한 분석기가 아니라 목표 달성을 위한 계획자이자 실행 조정자의 역할을 하게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 에이전트 AI는 목표 지향적으로 움직입니다. 하나의 AI가 모든 일을 처리하는 것이 아니라, 여러 에이전트가 역할을 나누어 협업할 수도 있습니다. 어떤 에이전트는 시장을 분석하고, 다른 에이전트는 계획을 세우며, 또 다른 에이전트는 실행 결과를 평가하고 수정합니다. 이 구조는 인간 조직의 분업과 닮아 있지만, 훨씬 빠르고 연속적으로 작동할 수 있다는 점에서 새로운 가능성을 보여줍니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 왜 지금 이런 전환이 일어나는가?&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 변화의 배경에는 몇 가지 중요한 기술적 진전이 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;첫째, 초거대 언어 모델의 등장은&lt;/b&gt; AI가 단순 분류와 예측을 넘어 추론, 요약, 계획 수립, 도구 사용까지 수행하도록 만들었습니다. 과거의 AI가 특정 문제에 특화된 계산기였다면, 지금의 AI는 여러 맥락을 엮어 사고를 전개하는 범용적 인터페이스로 발전하고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;둘째, RAG와 같은 검색 증강 기술은&lt;/b&gt; AI가 내부에 학습된 지식만이 아니라 외부의 최신 정보와 연결될 수 있게 만들었습니다. 이는 AI가 현실 세계와 더 긴밀하게 동기화되도록 돕고, 환각을 줄이며, 변화하는 상황에 맞게 판단을 업데이트할 수 있게 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;셋째, AI는 점점 더 인과적 구조를 이해하려는 방향으로 진화&lt;/b&gt;하고 있습니다. 아직 완전한 수준은 아니지만, 단순히 &amp;ldquo;무엇이 함께 나타나는가&amp;rdquo;를 보는 데서 나아가 &amp;ldquo;무엇이 무엇을 일으키는가&amp;rdquo;를 파악하려는 시도가 강화되고 있습니다. 이 능력이 높아질수록 AI는 단순 예측기가 아니라 전략적 의사결정의 동반자로 가까워질 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4. 우리는 결국 전능한 판단력을 가진 &amp;lsquo;오라클&amp;rsquo;을 원하는가?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예측형 AI의 시대에는 과거 데이터에서 반복 패턴을 찾아 미래를 확률적으로 추정하는 것이 중심이었습니다. 그러나 최근 planning 관련 서베이들은 실제 복잡한 과업에서는 &amp;ldquo;예측 그 자체&amp;rdquo;보다 목표 달성을 위한 실행 가능한 계획, 자원 배분, 단계적 의사결정, 그리고 실행 중 수정 가능성이 더 중요해지고 있다고 지적합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 지점에서 흥미로운 철학적 질문이 등장합니다. 인간은 AI에게 무엇을 기대하고 있는가? 단지 정확한 계산기일까, 아니면 미래를 알려주는 선지자일까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;많은 사람들이 AI를 볼 때 무의식적으로 &amp;lsquo;예언자&amp;rsquo;의 이미지를 덧씌웁니다. 불확실한 세상에서 우리는 늘 더 빨리 알고 싶어 하고, 더 정확히 판단하고 싶어 하며, 가능하다면 미래를 미리 보고 싶어 합니다. 그래서 AI가 발전할수록 사람들은 그것을 단순한 소프트웨어가 아니라, 마치 오라클처럼 대하기 시작합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 영화 &amp;lt;매트릭스&amp;gt;가 떠오르기도 합니다. 미래를 안다는 것은 단순히 정보를 더 많이 갖는다는 뜻이 아닙니다. 그것은 선택, 자유, 책임의 문제와 연결됩니다. 만약 AI가 우리의 미래를 예측하는 수준을 넘어, 우리가 가야 할 방향까지 제안한다면, 인간은 어디까지 스스로 결정하는 존재로 남을 수 있을까요? AI가 제시한 최적 경로를 따르는 것이 합리성일지, 아니면 인간의 주체성을 조금씩 포기하는 시작일지 우리는 아직 명확히 답하지 못하고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 변화는 기술적으로도 분명합니다. LLM 기반 에이전트 연구는 작업을 세분화하는 Task Decomposition, 대안을 고르는 Plan Selection, 외부 시스템을 연결하는 External Module, 결과를 되돌아보는 Reflection, 그리고 문맥을 축적하는 Memory를 핵심 구성 축으로 제시하며, 이는 AI가 분석 도구에서 목표 지향적 실행 주체로 이동하고 있음을 보여줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5. 원하는 미래를 어떻게 설계하고 실행하는가?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인공지능의 경쟁력은 이제 &amp;ldquo;미래를 얼마나 잘 맞히는가&amp;rdquo;에서 &lt;b&gt;&amp;ldquo;원하는 미래를 어떻게 설계하고 실행하는가&amp;rdquo;&lt;/b&gt;로 빠르게 이동하고 있습니다. 최근 연구들은 LLM이 단순 응답 생성기를 넘어 계획 수립, 작업 분해, 메모리 활용, 외부 도구 연계, 반성적 수정까지 수행하는 방향으로 발전하고 있다고 정리하며, 이것이 에이전트 AI 전환의 핵심 기반이라고 봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지의 AI가 과거를 비추는 거울에 가까웠다면, 앞으로의 AI는 미래를 그리는 청사진이 될 가능성이 있습니다. 중요한 것은 AI가 미래를 &amp;ldquo;맞히는&amp;rdquo; 것보다, 인간이 바라는 미래를 &amp;ldquo;구성하도록 돕는&amp;rdquo; 방향으로 진화하고 있다는 점입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기업에서는 이미 이런 흐름이 나타나고 있습니다. 단순 수요 예측을 넘어, 재고 확보, 생산 일정 조정, 고객 커뮤니케이션, 마케팅 자동화까지 연결해 하나의 목표를 향해 움직이는 통합형 AI 시스템이 등장하고 있습니다.&lt;br /&gt;개인 차원에서도 마찬가지입니다. AI는 더 이상 질문에 답하는 도구를 넘어, 목표를 함께 설계하고 실행을 보조하는 파트너가 되어가고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국 앞으로의 AI는 &amp;ldquo;무엇이 일어날까&amp;rdquo;를 맞히는 예측 엔진을 넘어, &amp;ldquo;어떤 미래를 만들 것인가&amp;rdquo;를 기준으로 현재 행동을 조직하는 전략 엔진이 될 가능성이 큽니다. 특히 LLM planning과 Agentic RAG 문헌은 에이전트 AI의 본질을 단일 모델의 지능 향상보다, 계획&amp;middot;검색&amp;middot;실행&amp;middot;평가가 연결된 시스템 설계의 진화로 이해해야 한다는 점을 분명히 보여줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;미래 AI의 본질은 예측의 정밀도만이 아니라, 목표 설정과 실행 능력, 그리고 인간과의 협업 방식에 달려 있을 것입니다.&lt;br /&gt;AI가 정말로 미래를 만드는 기술이 된다면, 우리에게 필요한 것은 더 강력한 모델만이 아닙니다. 어떤 미래를 원하는지 질문할 수 있는 인간의 철학과 책임도 함께 성장해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 능동적인 인공지능의 네가지 축네&amp;nbsp;가지&amp;nbsp;축&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;능동형 에이전트의 기본 구성요소를 보통 목표 설정, 계획 수립, 행동 실행, 기억, 반복적 수정 이며, 에이전트가 복잡한 작업을 수행하려면 작업 분해, 계획 선택, 외부 도구 연계, 메모리 활용, 반성적 수정이 함께 작동해야 합니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Planning:&lt;/b&gt;&amp;nbsp;무엇을&amp;nbsp;할지&amp;nbsp;순서를&amp;nbsp;세우는&amp;nbsp;능력입니다.&amp;nbsp;복잡한&amp;nbsp;목표는&amp;nbsp;한&amp;nbsp;번에&amp;nbsp;처리되지&amp;nbsp;않기&amp;nbsp;때문에&amp;nbsp;작업을&amp;nbsp;단계로&amp;nbsp;쪼개는&amp;nbsp;능력이&amp;nbsp;중요합니다. &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Reflection&lt;/b&gt;:&amp;nbsp;실행&amp;nbsp;결과를&amp;nbsp;보고&amp;nbsp;무엇이&amp;nbsp;잘못됐는지&amp;nbsp;스스로&amp;nbsp;점검하고&amp;nbsp;수정하는&amp;nbsp;능력입니다. &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Memory:&lt;/b&gt;&amp;nbsp;과거의&amp;nbsp;경험,&amp;nbsp;사용자&amp;nbsp;맥락,&amp;nbsp;중간&amp;nbsp;결과를&amp;nbsp;저장해&amp;nbsp;다음&amp;nbsp;행동에&amp;nbsp;반영하는&amp;nbsp;능력입니다. &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Retrieval:&lt;/b&gt;&amp;nbsp;필요한&amp;nbsp;순간에&amp;nbsp;외부&amp;nbsp;지식이나&amp;nbsp;저장된&amp;nbsp;정보를&amp;nbsp;다시&amp;nbsp;꺼내오는&amp;nbsp;능력입니다.&amp;nbsp;RAG와&amp;nbsp;Agentic&amp;nbsp;RAG는&amp;nbsp;이&amp;nbsp;부분을&amp;nbsp;핵심&amp;nbsp;메커니즘으로&amp;nbsp;봅니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;# 참고 논문&lt;/h2&gt;
&lt;table style=&quot;width: 844px; height: 675px;&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;height: 24px;&quot;&gt;
&lt;th style=&quot;width: 844px; height: 24px;&quot; colspan=&quot;7&quot;&gt;&amp;lt;미래를 설계하고 실행하는 AI 에 대한 연구&amp;gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 108px; height: 21px;&quot;&gt;&lt;i&gt; 논문 &lt;/i&gt;&lt;/td&gt;
&lt;td style=&quot;width: 34px; height: 21px;&quot;&gt;발행&lt;/td&gt;
&lt;td style=&quot;width: 147px; height: 21px;&quot;&gt;연구배경&lt;/td&gt;
&lt;td style=&quot;width: 120px; height: 21px;&quot;&gt;연구목적&lt;/td&gt;
&lt;td style=&quot;width: 151px; height: 21px;&quot;&gt;연구방법&lt;/td&gt;
&lt;td style=&quot;width: 147px; height: 21px;&quot;&gt;연구결과&lt;/td&gt;
&lt;td style=&quot;width: 137px; height: 21px;&quot;&gt;연구의 기여&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 168px;&quot;&gt;
&lt;td style=&quot;width: 108px; height: 168px;&quot;&gt;&lt;i&gt;Understanding the planning of LLM agents: A survey&lt;/i&gt; &lt;a href=&quot;https://arxiv.org/abs/2402.02716&quot;&gt;참고&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 34px; height: 168px;&quot;&gt;2024&lt;/td&gt;
&lt;td style=&quot;width: 147px; height: 168px;&quot;&gt;LLM의 성능 향상 이후, 자율 에이전트의 계획 모듈로 LLM을 활용하려는 연구가 급증했지만 체계적 정리가 부족했습니다 .&lt;/td&gt;
&lt;td style=&quot;width: 120px; height: 168px;&quot;&gt;LLM 기반 에이전트 planning 연구를 체계적으로 정리하고 핵심 구성요소와 도전과제를 분류하는 것입니다 .&lt;/td&gt;
&lt;td style=&quot;width: 151px; height: 168px;&quot;&gt;기존 연구를 서베이하고 Task Decomposition, Plan Selection, External Module, Reflection, Memory의 다섯 축으로 taxonomy를 제시했습니다 .&lt;/td&gt;
&lt;td style=&quot;width: 147px; height: 168px;&quot;&gt;LLM 에이전트 planning은 단순 프롬프트보다 계획 분해, 외부 모듈 연계, 반성적 수정, 메모리 활용이 성능 향상에 중요하다는 점을 보여줍니다 .&lt;/td&gt;
&lt;td style=&quot;width: 137px; height: 168px;&quot;&gt;에이전트 AI를 &amp;ldquo;계획 가능한 시스템&amp;rdquo;으로 이해하는 기본 틀을 제공했다는 점에서 의미가 큽니다 .&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 168px;&quot;&gt;
&lt;td style=&quot;width: 108px; height: 168px;&quot;&gt;&lt;i&gt;LASP: Surveying the State-of-the-Art in Large Language Model-Assisted AI Planning&lt;/i&gt; &lt;a href=&quot;https://arxiv.org/abs/2409.01806&quot;&gt;참고&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 34px; height: 168px;&quot;&gt;2024&lt;/td&gt;
&lt;td style=&quot;width: 147px; height: 168px;&quot;&gt;여행 계획부터 자율주행, 기업 전략까지 planning은 핵심이지만, 직접 프롬프트만으로 만든 계획은 실행 단계에서 실패하는 경우가 많았습니다 .&lt;/td&gt;
&lt;td style=&quot;width: 120px; height: 168px;&quot;&gt;LLM이 planning 영역에서 어디까지 유효하며 어떤 한계가 있는지 정리하는 것입니다.&lt;/td&gt;
&lt;td style=&quot;width: 151px; height: 168px;&quot;&gt;embodied environments, scheduling, games, task decomposition, reasoning 등 planning 과제를 폭넓게 검토하는 서베이를 수행했습니다.&lt;/td&gt;
&lt;td style=&quot;width: 147px; height: 168px;&quot;&gt;LLM은 상식 추론 덕분에 계획 생성 잠재력은 높지만, 실행 가능성과 안정성 측면의 간극이 여전히 크다고 분석합니다&lt;/td&gt;
&lt;td style=&quot;width: 137px; height: 168px;&quot;&gt;&amp;ldquo;생성된 답변&amp;rdquo;과 &amp;ldquo;실행 가능한 계획&amp;rdquo;의 차이를 드러내며, 에이전트 AI의 핵심 과제를 planning reliability로 선명하게 제시했습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 147px;&quot;&gt;
&lt;td style=&quot;width: 108px; height: 147px;&quot;&gt;&lt;i&gt;Agentic Retrieval-Augmented Generation: A Survey on Agentic RAG&lt;/i&gt; &lt;a href=&quot;https://arxiv.org/abs/2501.09136&quot;&gt;참고&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 34px; height: 147px;&quot;&gt;2025&lt;/td&gt;
&lt;td style=&quot;width: 147px; height: 147px;&quot;&gt;전통적 RAG는 최신 정보 결합에는 유용하지만, 정적 워크플로우 구조 때문에 다단계 추론과 복잡한 작업 관리에는 한계가 있었습니다 .&lt;/td&gt;
&lt;td style=&quot;width: 120px; height: 147px;&quot;&gt;RAG에 agentic design pattern을 결합한 Agentic RAG의 원리, 구조, 응용, 구현 과제를 정리하는 것입니다 .&lt;/td&gt;
&lt;td style=&quot;width: 151px; height: 147px;&quot;&gt;reflection, planning, tool use, multi-agent collaboration을 포함한 Agentic RAG 아키텍처를 분류하는 서베이 방식으로 접근했습니다 .&lt;/td&gt;
&lt;td style=&quot;width: 147px; height: 147px;&quot;&gt;Agentic RAG는 검색 전략을 동적으로 바꾸고 문맥 이해를 반복 개선하며 복잡한 작업 요구에 적응할 수 있다고 정리합니다 .&lt;/td&gt;
&lt;td style=&quot;width: 137px; height: 147px;&quot;&gt;에이전트 AI 시대에 검색이 단순 보조 기능이 아니라 계획&amp;middot;실행 루프의 일부가 된다는 점을 명확히 보여줍니다 .&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 147px;&quot;&gt;
&lt;td style=&quot;width: 108px; height: 147px;&quot;&gt;&lt;i&gt;PlanGenLLMs: A Modern Survey of LLM Planning Capabilities&lt;/i&gt; &lt;a href=&quot;https://arxiv.org/abs/2502.11221&quot;&gt;참고&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 34px; height: 147px;&quot;&gt;2025&lt;/td&gt;
&lt;td style=&quot;width: 147px; height: 147px;&quot;&gt;웹 탐색, 여행 계획, DB 질의 등 다양한 planning 응용이 늘었지만 시스템별 맞춤 설계가 많아 상호 비교와 평가 기준이 불명확했습니다 .&lt;/td&gt;
&lt;td style=&quot;width: 120px; height: 147px;&quot;&gt;현재 LLM planner를 포괄적으로 비교하고 일관된 평가 틀을 제시하는 것입니다 .&lt;/td&gt;
&lt;td style=&quot;width: 151px; height: 147px;&quot;&gt;completeness, executability, optimality, representation, generalization, efficiency의 6개 성능 기준으로 대표 연구를 분석했습니다 .&lt;/td&gt;
&lt;td style=&quot;width: 147px; height: 147px;&quot;&gt;LLM planning 연구는 빠르게 성장했지만, 범용성&amp;middot;실행가능성&amp;middot;효율성 간 균형이 여전히 핵심 과제로 남아 있음을 보여줍니다 .&lt;/td&gt;
&lt;td style=&quot;width: 137px; height: 147px;&quot;&gt;에이전트 워크플로우를 평가할 때 무엇을 봐야 하는지 정량&amp;middot;정성 기준을 제공해 실무와 연구를 잇는 기준점 역할을 합니다 .&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;div data-renderer=&quot;lm&quot;&gt;
&lt;div&gt;
&lt;div aria-hidden=&quot;true&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;논문&lt;/td&gt;
&lt;td&gt;발행&lt;/td&gt;
&lt;td&gt;연구배경&lt;/td&gt;
&lt;td&gt;연구목적&lt;/td&gt;
&lt;td&gt;연구방법&lt;/td&gt;
&lt;td&gt;연구결과&lt;/td&gt;
&lt;td&gt;연구의 기여&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Understanding the planning of LLM agents: A survey&lt;/td&gt;
&lt;td&gt;2024&lt;/td&gt;
&lt;td&gt;LLM의 성능 향상 이후, 자율 에이전트의 계획 모듈로 LLM을 활용하려는 연구가 급증했지만 체계적 정리가 부족했습니다 .&lt;/td&gt;
&lt;td&gt;LLM 기반 에이전트 planning 연구를 체계적으로 정리하고 핵심 구성요소와 도전과제를 분류하는 것입니다 .&lt;/td&gt;
&lt;td&gt;기존 연구를 서베이하고 Task Decomposition, Plan Selection, External Module, Reflection, Memory의 다섯 축으로 taxonomy를 제시했습니다 .&lt;/td&gt;
&lt;td&gt;LLM 에이전트 planning은 단순 프롬프트보다 계획 분해, 외부 모듈 연계, 반성적 수정, 메모리 활용이 성능 향상에 중요하다는 점을 보여줍니다 .&lt;/td&gt;
&lt;td&gt;에이전트 AI를 &amp;ldquo;계획 가능한 시스템&amp;rdquo;으로 이해하는 기본 틀을 제공했다는 점에서 의미가 큽니다 .&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LASP: Surveying the State-of-the-Art in Large Language Model-Assisted AI Planning &lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Memory&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;2024 &lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Memory&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;여행 계획부터 자율주행, 기업 전략까지 planning은 핵심이지만, 직접 프롬프트만으로 만든 계획은 실행 단계에서 실패하는 경우가 많았습니다 &lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Memory&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/td&gt;
&lt;td&gt;LLM이 planning 영역에서 어디까지 유효하며 어떤 한계가 있는지 정리하는 것입니다 &lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Memory&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/td&gt;
&lt;td&gt;embodied environments, scheduling, games, task decomposition, reasoning 등 planning 과제를 폭넓게 검토하는 서베이를 수행했습니다 &lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Memory&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/td&gt;
&lt;td&gt;LLM은 상식 추론 덕분에 계획 생성 잠재력은 높지만, 실행 가능성과 안정성 측면의 간극이 여전히 크다고 분석합니다 &lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Memory&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/td&gt;
&lt;td&gt;&amp;ldquo;생성된 답변&amp;rdquo;과 &amp;ldquo;실행 가능한 계획&amp;rdquo;의 차이를 드러내며, 에이전트 AI의 핵심 과제를 planning reliability로 선명하게 제시했습니다 &lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Memory&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agentic Retrieval-Augmented Generation: A Survey on Agentic RAG&lt;/td&gt;
&lt;td&gt;2025&lt;/td&gt;
&lt;td&gt;전통적 RAG는 최신 정보 결합에는 유용하지만, 정적 워크플로우 구조 때문에 다단계 추론과 복잡한 작업 관리에는 한계가 있었습니다 .&lt;/td&gt;
&lt;td&gt;RAG에 agentic design pattern을 결합한 Agentic RAG의 원리, 구조, 응용, 구현 과제를 정리하는 것입니다 .&lt;/td&gt;
&lt;td&gt;reflection, planning, tool use, multi-agent collaboration을 포함한 Agentic RAG 아키텍처를 분류하는 서베이 방식으로 접근했습니다 .&lt;/td&gt;
&lt;td&gt;Agentic RAG는 검색 전략을 동적으로 바꾸고 문맥 이해를 반복 개선하며 복잡한 작업 요구에 적응할 수 있다고 정리합니다 .&lt;/td&gt;
&lt;td&gt;에이전트 AI 시대에 검색이 단순 보조 기능이 아니라 계획&amp;middot;실행 루프의 일부가 된다는 점을 명확히 보여줍니다 .&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PlanGenLLMs: A Modern Survey of LLM Planning Capabilities&lt;/td&gt;
&lt;td&gt;2025&lt;/td&gt;
&lt;td&gt;웹 탐색, 여행 계획, DB 질의 등 다양한 planning 응용이 늘었지만 시스템별 맞춤 설계가 많아 상호 비교와 평가 기준이 불명확했습니다 .&lt;/td&gt;
&lt;td&gt;현재 LLM planner를 포괄적으로 비교하고 일관된 평가 틀을 제시하는 것입니다 .&lt;/td&gt;
&lt;td&gt;completeness, executability, optimality, representation, generalization, efficiency의 6개 성능 기준으로 대표 연구를 분석했습니다 .&lt;/td&gt;
&lt;td&gt;LLM planning 연구는 빠르게 성장했지만, 범용성&amp;middot;실행가능성&amp;middot;효율성 간 균형이 여전히 핵심 과제로 남아 있음을 보여줍니다 .&lt;/td&gt;
&lt;td&gt;에이전트 워크플로우를 평가할 때 무엇을 봐야 하는지 정량&amp;middot;정성 기준을 제공해 실무와 연구를 잇는 기준점 역할을 합니다 .&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;활용 포인트&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 글에 논문 인용을 한두 문장 더 보강하려면, &amp;ldquo;최근 서베이들은 에이전트 AI의 핵심을 단일 모델 성능이 아니라 planning, reflection, memory, retrieval의 결합 구조에서 찾고 있다&amp;rdquo;는 문장을 넣는 것이 가장 자연스럽습니다.&lt;br /&gt;기업 관점의 메시지를 강화하려면, &amp;ldquo;생성형 AI 도입의 성패는 모델 선택보다 목표 분해, 도구 연계, 검색 신뢰성, 실행 피드백 루프 설계에 달려 있다&amp;rdquo;는 문장으로 마무리하면 전문 칼럼 톤이 더 살아납니다.&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Memory&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원하시는 방향에 맞춰 다음 단계로는 &lt;b&gt;1) 네이버 블로그용 문체로 재편집&lt;/b&gt;, &lt;b&gt;2) 논문 인용 각주형 버전&lt;/b&gt;, &lt;b&gt;3) 기업 임원 발표자료용 1페이지 요약본&lt;/b&gt; 중 하나로 이어서 정리할 수 있습니다.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;br /&gt;# 포인트&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;ldquo;최근 연구 서베이들은 에이전트 AI의 핵심을 단일 모델 성능이 아니라 planning, reflection, memory, retrieval의 결합 구조에서 찾고 있다&amp;rdquo;&lt;br /&gt;기업 관점에서는 &amp;ldquo;생성형 AI 도입의 성패는 모델 선택보다 목표 분해, 도구 연계, 검색 신뢰성, 실행 피드백 루프 설계에 달려 있다&amp;rdquo;&lt;/p&gt;</description>
      <category>Tech-Trends</category>
      <category>AI의 미래</category>
      <category>ai의 발전 전략</category>
      <category>미래를 계획하고 실행하는 인공지능</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/924</guid>
      <comments>https://couplewith.tistory.com/924#entry924comment</comments>
      <pubDate>Sat, 4 Apr 2026 16:10:30 +0900</pubDate>
    </item>
    <item>
      <title>Anthropic의 컨텍스트 윈도우 확대 전략이 장기기억을 갖춘 에이전트와 지식 노동 중심으로 진화</title>
      <link>https://couplewith.tistory.com/923</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;br&gt;AI토큰을 크게 만든 Anthropic 은 어떤 목적과 효과를 가져 왔나&lt;br&gt;&lt;br&gt;&lt;b&gt;Anthropic의 컨텍스트 윈도우 확대 전략이 장기기억을 갖춘 에이전트와 지식 노동 중심으로 진화&lt;/b&gt;&lt;br&gt;&lt;br&gt;* 방대한 문서·코드·로그를 손실 없이 처리할 수 있게 하여 AI가 ‘장기 기억’을 갖춘 지식 노동 도구로 진화하는 계기를 마련&lt;br&gt;&lt;br&gt;Anthropic의 전략은 AI를 단순 대화형 도구에서 장기적 협업 파트너로 전환시키는 방향입니다. 특히 지식 노동(법률, 연구, 엔지니어링) 분야에서 인간의 인지적 병목을 해소하고, 장기 에이전트 기반 자동화를 촉진할 것으로 보입니다.&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;Anthropic이 “토큰을 크게 만들었다”는 말은 보통 토큰 크기를 바꿨다는 뜻이 아니라, 모델이 한 번에 읽고 유지할 수 있는 컨텍스트 윈도우를 크게 늘렸다는 뜻입니다. Anthropic은 2023년에 Claude의 컨텍스트를 9K에서 100K로 확장했고, 2026년에는 Opus 4.6과 Sonnet 4.6에 1M 토큰 컨텍스트를 도입해 장문 문서, 대형 코드베이스, 장기 에이전트 작업을 한 세션 안에서 처리하려는 방향을 분명히 했습니다. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;목적&lt;/b&gt;&lt;br&gt;Anthropic의 1차 목적은 AI가 수백 페이지 문서, 여러 개의 연구논문, 긴 계약서, 대규모 코드베이스를 한 번에 넣고도 맥락을 유지하며 추론하도록 만드는 것이었습니다. Anthropic은 100K 발표 때 이미 “수백 페이지 자료 분석”, “코드베이스 전체 투입”, “문서 간 지식 종합”, “벡터 검색보다 나은 복합 질의 처리”를 핵심 활용처로 제시했습니다. &lt;br&gt;&lt;br&gt;2026년 Opus 4.6과 Sonnet 4.6에서는 목적이 더 분명해졌는데, 단순 문서 요약을 넘어 장기적인 에이전트 작업, 긴 계획 수립, 여러 도구 호출이 이어지는 워크플로를 더 안정적으로 수행하게 하려는 것이었습니다. Anthropic은 Opus 4.6이 더 오래 지속되는 agentic task를 수행하고, 더 큰 코드베이스에서 더 안정적으로 동작하며, Sonnet 4.6은 전체 코드베이스·긴 계약서·수십 편 논문을 단일 요청 안에 담아 장기 계획에 유리하다고 설명했습니다. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;가져온 효과&lt;/b&gt;&lt;br&gt;&lt;br&gt;가장 큰 효과는 긴 맥락에서의 성능 저하, 즉 “context rot”를 줄이고 정보 회수와 추론 정확도를 높였다는 점입니다. Anthropic은 Opus 4.6이 대규모 문서 집합에서 관련 정보를 더 잘 찾아내고, 수십만 토큰 이상에서도 드리프트가 덜하며, MRCR v2의 1M 테스트에서 76%를 기록해 Sonnet 4.5의 18.5%보다 크게 높았다고 밝혔습니다. &lt;br&gt;&lt;br&gt;실무적으로는 RAG나 문서 분할, 요약 체인 같은 보조 설계를 덜 복잡하게 만들어 줍니다. Anthropic은 100K 시점부터 복수 문서와 책 전체를 넣고 질문·종합 답변을 수행할 수 있다고 했고, 1M 단계에서는 아예 코드베이스 전체나 수십 편의 논문을 단일 요청으로 다루며 장기 계획과 연구 워크플로를 강화한다고 설명했습니다. &lt;br&gt;&lt;br&gt;&lt;b&gt;제품 전략&lt;/b&gt;&lt;br&gt;이 변화는 성능 개선만이 아니라 제품 전략이기도 했습니다. Opus 4.6에서는 1M 컨텍스트를 베타로 제공하면서 200K를 넘는 입력에 프리미엄 가격을 붙였고, 동시에 context compaction을 도입해 긴 작업에서 오래된 맥락을 요약·대체하며 한계에 덜 부딪히게 했습니다. &lt;br&gt;&lt;br&gt;즉 Anthropic은 “더 많은 문서를 넣을 수 있다”는 수준을 넘어, 장시간 작업을 수행하는 에이전트와 지식노동용 AI를 제품의 중심으로 옮기고 있습니다. Claude가 금융 분석, 리서치, 문서·스프레드시트 작업, 대형 코드 리뷰 같은 업무를 더 길고 깊게 처리하도록 설계 방향을 잡은 것으로 해석할 수 있습니다.&lt;br&gt;&lt;br&gt;&lt;b&gt;한계와 해석&lt;/b&gt;&lt;br&gt;다만 컨텍스트가 커졌다고 해서 무조건 성능이 선형으로 좋아지는 것은 아닙니다. Anthropic도 2023년 이후 긴 컨텍스트에서의 프롬프팅 가이드와 회수 성능 개선을 계속 강조했고, 2026년에도 context compaction과 장기 작업 제어 기능을 함께 내놓은 점을 보면, 핵심은 “큰 창” 자체보다 그 창을 실제로 잘 활용하는 모델 품질과 운영 설계에 있습니다. &lt;br&gt;&lt;br&gt;한 문장으로 정리하면, Anthropic이 컨텍스트를 크게 늘린 목적은 AI를 “짧은 질의응답 도구”에서 “긴 문맥을 유지하며 일하는 연구·개발·업무 에이전트”로 바꾸려는 것이고, 그 효과는 대규모 문서·코드 처리, 장기 계획, 정보 회수 정확도, 워크플로 단순화에서 나타났습니다. &lt;br&gt;&lt;br&gt;&lt;br&gt; &lt;b&gt;최근 컨텍스트 규모를 비교&lt;/b&gt;&lt;br&gt;&lt;br&gt; 데이터는 2026년 4월 기준(Anthropic Claude Opus 4.6/Sonnet 4.6 발표 후) 공식 발표와 벤치마크(MRCR v2, LongBench 등)를 기반으로 하며, 주요 모델만 선별했습니다.&lt;br&gt;&lt;br&gt;### 컨텍스트 윈도우 비교 (2026년 기준)&lt;br&gt;| 제공자&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 모델&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| 최대 컨텍스트 (토큰) | 주요 목적/활용 사례&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| 벤치마크 (MRCR v2 1M 기준) | 가격 전략/제한&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;br&gt;|--------------|-----------------------|----------------------|---------------------------------------------|-----------------------------|--------------------------------|&lt;br&gt;| **Anthropic** | Claude Opus 4.6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 1M (베타)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 장기 에이전트 작업, 대형 코드베이스, 수십 편 논문 종합, 긴 워크플로 | 76%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| 200K 초과 프리미엄 요금, context compaction 지원 |&lt;br&gt;| **Anthropic** | Claude Sonnet 4.6&amp;nbsp;&amp;nbsp; | 1M (베타)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 전체 코드베이스 분석, 장기 계획 수립, 복합 문서 처리&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| ~70% (예상)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| 동일, Sonnet은 비용 효율 중점 |&lt;br&gt;| **OpenAI**&amp;nbsp;&amp;nbsp; | GPT-5 (o1 시리즈 확장) | 2M (프로모션)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 멀티모달 RAG, 에이전트 체인, 실시간 데이터 스트림 처리&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| 82%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| API당 1M 초과 2배 요금, 무제한 아님 (캐시 필요) |&lt;br&gt;| **OpenAI**&amp;nbsp;&amp;nbsp; | GPT-4.5 Turbo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 128K&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| 표준 문서/코드 처리, 일상 에이전트&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| 45% (1M 테스트 미지원)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| 표준 요금, 128K 한도 엄격&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br&gt;| **Google**&amp;nbsp;&amp;nbsp; | Gemini 2.5 Pro&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| 2M+ (실험적)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| 멀티모달(이미지+텍스트) 장문 분석, 연구/금융 리포트 종합&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| 79%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| Google Cloud 무료 티어 1M, 엔터프라이즈 2M+ |&lt;br&gt;| **Google**&amp;nbsp;&amp;nbsp; | Gemini 2.0 Flash&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| 1M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| 고속 코드 리뷰, 대규모 데이터셋 요약, 에이전트 워크플로&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| 68%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| 저비용 고속, 1M 초과 제한&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br&gt;&lt;br&gt;### 주요 인사이트&lt;br&gt;- **&lt;b&gt;Anthropic의 강점&lt;/b&gt;**: 1M에서 'context rot' 최소화와 안정적 장기 추론(에이전트 task 지속성)이 돋보임. RAG 의존 줄이고 단일 세션 처리 강조.&lt;br&gt;- **&lt;b&gt;OpenAI 우위&lt;/b&gt;**: 2M 규모로 리더지만, 비용 부담 크고 'needle-in-haystack' 테스트에서 여전히 드리프트 문제. o1 시리즈는 reasoning 강화로 보완.&lt;br&gt;- **&lt;b&gt;Gemini 차별화&lt;/b&gt;**: 멀티모달 지원(이미지/비디오 포함 2M)이 강점, Google 생태계(Cloud/Search) 연동으로 실무 리서치에 유리.&lt;br&gt;- **공통 추세**: 모두 100K→1M+ 확대 중이지만, 실제 효과는 프롬프트 최적화와 compaction 기술에 달림. Anthropic처럼 에이전트 중심으로 가는 게 핵심.&lt;br&gt;&lt;br&gt;&lt;br&gt;참고문헌&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://www.perplexity.ai/search/ai-tokenyi-keugiwa-aiyunri-gan-6d5jpmqqQm6McOb9nEpctA&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://www.perplexity.ai/search/ai-tokenyi-keugiwa-aiyunri-gan-6d5jpmqqQm6McOb9nEpctA&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;ai token의 크기와 AI윤리 강화&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;AI 토큰 크기(어휘 크기, 컨텍스트 윈도우 등)는 모델 성능에 큰 영향을 미치며, 이는 AI 윤리 강화 측면에서 편향, 공정성 문제를 야기합니다. AI 토큰은 텍스트를 모델이 처리할 수 있는 기본 단&quot; data-og-host=&quot;www.perplexity.ai&quot; data-og-source-url=&quot;https://www.perplexity.ai/search/ai-tokenyi-keugiwa-aiyunri-gan-6d5jpmqqQm6McOb9nEpctA&quot; data-og-image=&quot;https://blog.kakaocdn.net/dna/bzatsP/dJMb8869cju/AAAAAAAAAAAAAAAAAAAAAELV31gDa4KHUPoKdL5XEwJhK9_Z32hgSc2w2mX3u-vI/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1777561199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=6%2F%2BuuYr1wq7aitlvA4F9ze2xPqo%3D&quot; data-og-url=&quot;https://www.perplexity.ai/search/ai-tokenyi-keugiwa-aiyunri-gan-6d5jpmqqQm6McOb9nEpctA&quot;&gt;&lt;a href=&quot;https://www.perplexity.ai/search/ai-tokenyi-keugiwa-aiyunri-gan-6d5jpmqqQm6McOb9nEpctA&quot; target=&quot;_blank&quot; data-source-url=&quot;https://www.perplexity.ai/search/ai-tokenyi-keugiwa-aiyunri-gan-6d5jpmqqQm6McOb9nEpctA&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://blog.kakaocdn.net/dna/bzatsP/dJMb8869cju/AAAAAAAAAAAAAAAAAAAAAELV31gDa4KHUPoKdL5XEwJhK9_Z32hgSc2w2mX3u-vI/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1777561199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=6%2F%2BuuYr1wq7aitlvA4F9ze2xPqo%3D')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;ai token의 크기와 AI윤리 강화&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;AI 토큰 크기(어휘 크기, 컨텍스트 윈도우 등)는 모델 성능에 큰 영향을 미치며, 이는 AI 윤리 강화 측면에서 편향, 공정성 문제를 야기합니다. AI 토큰은 텍스트를 모델이 처리할 수 있는 기본 단&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;www.perplexity.ai&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;br&gt;## 주요 공식 자료&lt;br&gt;- **제목**: Introducing Claude Opus 4.6&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;**URL**: https://www.anthropic.com/news/claude-opus-4-6&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;**키워드**: 1M context window, context rot, MRCR v2 76%, agentic tasks, codebases[2]&lt;br&gt;&lt;br&gt;- **제목**: Claude Opus 4.6 - Anthropic&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;**URL**: https://www.anthropic.com/claude/opus&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;**키워드**: Opus 4.6 beta, 1M tokens, sustained agentic tasks, coding skills[1]&lt;br&gt;&lt;br&gt;- **제목**: What's new in Claude 4.6 - Claude API Docs&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;**URL**: https://platform.claude.com/docs/en/about-claude/models/whats-new-claude-4-6&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;**키워드**: Claude 4.6 features, Opus/Sonnet updates, context expansion[3]&lt;br&gt;&lt;br&gt;## 분석 및 벤치마크 자료&lt;br&gt;- **제목**: Claude Opus 4.6 1M Context Window: How It Works (2026)&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;**URL**: https://zoer.ai/posts/zoer/claude-opus-4-6-1m-context-window-explained&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;**키워드**: 1M GA, repo loading example, standard pricing, developer use cases[4]&lt;br&gt;&lt;br&gt;- **제목**: Claude's 1 Million Token Window: Why Massive Context Still Needs...&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;**URL**: https://www.epsilla.com/blogs/2026-03-14-claude-1m-context&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;**키워드**: Agentic context, MRCR v2 78.3%, enterprise workflows, no premium pricing[5]&lt;br&gt;&lt;br&gt;- **제목**: Claude Opus 4.6: 1M Context Window Goes GA&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;**URL**: https://karangoyal.cc/blog/claude-opus-4-6-1m-context-window-guide&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;**키워드**: 1M pricing $5/M input, Sonnet 4.6 comparison, media limits[6]&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>
      <category>Tech-Trends</category>
      <category>Anthropic의 컨텍스트 윈도우 확대 전략이 장기기억을 갖춘 에이전트와 지식 노동 중심으로 진화</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/923</guid>
      <comments>https://couplewith.tistory.com/923#entry923comment</comments>
      <pubDate>Fri, 3 Apr 2026 07:56:17 +0900</pubDate>
    </item>
    <item>
      <title>Hyper-V Host &amp;rarr; Rocky Linux 10 SSH 접속 구성</title>
      <link>https://couplewith.tistory.com/922</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;hyperv_Image_nz82cunz82cunz82.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vR7GA/dJMcahjEsB2/0VTemCdx7ZPa6du9xo5vck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vR7GA/dJMcahjEsB2/0VTemCdx7ZPa6du9xo5vck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vR7GA/dJMcahjEsB2/0VTemCdx7ZPa6du9xo5vck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvR7GA%2FdJMcahjEsB2%2F0VTemCdx7ZPa6du9xo5vck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; data-filename=&quot;hyperv_Image_nz82cunz82cunz82.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vBk2v/dJMcabcBG46/iUYn2vSkSDI3xUGFmiONR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vBk2v/dJMcabcBG46/iUYn2vSkSDI3xUGFmiONR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vBk2v/dJMcabcBG46/iUYn2vSkSDI3xUGFmiONR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvBk2v%2FdJMcabcBG46%2FiUYn2vSkSDI3xUGFmiONR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;720&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Hyper-V&amp;nbsp;구성으로 &lt;br /&gt;&lt;br /&gt;Host&amp;nbsp;&amp;nbsp;Win&amp;nbsp;11&amp;nbsp;(Host)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HyperVM&amp;nbsp;-Net&amp;nbsp;&amp;nbsp;:&amp;nbsp;IP&amp;nbsp;:&amp;nbsp;10.10.10.1,&amp;nbsp;&amp;nbsp;gw:10.10.10.1 &lt;br /&gt;Vm&amp;nbsp;&amp;nbsp;Rocky&amp;nbsp;Linux&amp;nbsp;10:&amp;nbsp;ehh0&amp;nbsp;:&amp;nbsp;IP&amp;nbsp;:&amp;nbsp;10.10.10.2,&amp;nbsp;&amp;nbsp;gw:10.10.10.1 &lt;br /&gt;&lt;br /&gt;로&amp;nbsp;설정하고&amp;nbsp;&amp;nbsp;Host에서&amp;nbsp;SSH&amp;nbsp;2222&amp;nbsp;으로&amp;nbsp;&amp;nbsp;10.10.10.2&amp;nbsp;에&amp;nbsp;접속&amp;nbsp;하고&amp;nbsp;자&amp;nbsp;한다. &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Hyper-V Host &amp;rarr; Rocky Linux 10 SSH 접속 구성아래 단계별로 설정합니다.&lt;/h2&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. Hyper-V 가상 스위치 생성 (Windows Host)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Hyper-V 관리자 &amp;rarr; 가상 스위치 관리자 &amp;rarr; &lt;b&gt;내부(Internal)&lt;/b&gt; 스위치 생성, 이름 HyperVM-Net.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또는 PowerShell (관리자):&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# 새로운 네트워크를 생성한다.
New-VMSwitch -Name &quot;HyperVM-Net&quot; -SwitchType Internal

# 네트워크 I/F 생성 결과를 확인한다
Get-NetAdapter&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. Host vNIC IP 설정 (Windows Host)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PowerShell (관리자):&lt;/p&gt;
&lt;pre class=&quot;powershell&quot;&gt;&lt;code&gt;# &quot;vEthernet (HyperVM-Net)&quot; 어댑터에 IP 설정
$iface = Get-NetAdapter | Where-Object { $_.Name -like &quot;*HyperVM-Net*&quot; }
New-NetIPAddress -InterfaceIndex $iface.ifIndex -IPAddress 10.10.10.1 -PrefixLength 24
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또는 제어판 &amp;rarr; 네트워크 &amp;rarr; vEthernet (HyperVM-Net) &amp;rarr; IPv4 수동 설정:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;IP: 10.10.10.1&lt;/li&gt;
&lt;li&gt;서브넷: 255.255.255.0&lt;/li&gt;
&lt;li&gt;GW: 비워두거나 10.10.10.1&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.1 IP 할당 및 NAT 구성&amp;nbsp; 결과&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1775122179123&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;PS C:\Windows\system32&amp;gt;  New-VMSwitch -Name &quot;HyperVM-Net1&quot; -SwitchType Internal

Name        SwitchType NetAdapterInterfaceDescription
----        ---------- ------------------------------
HyperVM-Net Internal 



PS C:\Windows\system32&amp;gt;  Get-NetAdapter 

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
이더넷 4                     VirtualBox Host-Only Ethernet Adapter        30 Up           0A-00-27-00-00-1E         1 Gbps
Wi-Fi                     Intel(R) Wi-Fi 6E AX211 160MHz                5 Not Present  9A-69-C2-24-75-AA          0 bps
vEthernet (HyperVM-Net1)   Hyper-V Virtual Ethernet Adapter #2          14 Up           00-15-5D-38-01-08        10 Gbps
이더넷 2                     Realtek USB GbE Family Controller             4 Up           00-E0-4C-68-04-12       100 Mbps

PS C:\Windows\system32&amp;gt; $iface = Get-NetAdapter | Where-Object { $_.Name -like &quot;*HyperVM-Net*&quot; }
New-NetIPAddress -InterfaceIndex $iface.ifIndex -IPAddress 10.10.10.1 -PrefixLength 24

# 다음과 같이 I/F index를 명시도 가능하다.
PS C:\Windows\system32&amp;gt; New-NetIPAddress -InterfaceIndex 14 -IPAddress 10.10.10.1 -PrefixLength 24



IPAddress         : 10.10.10.1
InterfaceIndex    : 14
InterfaceAlias    : vEthernet (HyperVM-Net1)
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Tentative
ValidLifetime     : 
PreferredLifetime : 
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 10.10.10.1
InterfaceIndex    : 14
InterfaceAlias    : vEthernet (HyperVM-Net)
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Invalid
ValidLifetime     : 
PreferredLifetime : 
SkipAsSource      : False
PolicyStore       : PersistentStore&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1775121470641&quot; class=&quot;yaml&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;PS C:\Windows\system32&amp;gt; New-NetNat -Name &quot;RockyNAT&quot; -InternalIPInterfaceAddressPrefix &quot;10.10.10.0/24&quot;


Name                             : RockyNAT
ExternalIPInterfaceAddressPrefix : 
InternalIPInterfaceAddressPrefix : 10.10.10.0/24
IcmpQueryTimeout                 : 30
TcpEstablishedConnectionTimeout  : 1800
TcpTransientConnectionTimeout    : 120
TcpFilteringBehavior             : AddressDependentFiltering
UdpFilteringBehavior             : AddressDependentFiltering
UdpIdleSessionTimeout            : 120
UdpInboundRefresh                : False
Store                            : Local
Active                           : True&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.2 포트 포워딩 설정 (Host 2222 -&amp;gt; VM 22)&lt;/p&gt;
&lt;pre id=&quot;code_1775121495544&quot; class=&quot;lsl&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;Add-NetNatStaticMapping -NatName &quot;RockyNAT&quot; -Protocol TCP `
    -ExternalIPAddress 0.0.0.0 -ExternalPort 2222 `
    -InternalIPAddress 10.10.10.2 -InternalPort 22&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(Host 2222 -&amp;gt; VM 2222) 으로 접속하려면 아래와 같이 설정한다. (기존 룰 삭제후 재등록)&lt;/p&gt;
&lt;pre id=&quot;code_1775122528251&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 1. 기존에 등록된 2222번 포트 매핑이 있는지 확인하고 삭제합니다.
$existingMapping = Get-NetNatStaticMapping -NatName &quot;RockyNAT&quot; | Where-Object { $_.ExternalPort -eq 2222 }

if ($existingMapping) {
    Write-Host &quot;기존 매핑(Port 2222)을 삭제합니다...&quot; -ForegroundColor Yellow
    Remove-NetNatStaticMapping -StaticMappingID $existingMapping.StaticMappingID -Confirm:$false
}

# 2. 새로운 매핑 등록 (Host:2222 -&amp;gt; VM:2222)
Write-Host &quot;새로운 매핑(Host:2222 -&amp;gt; VM:2222)을 등록합니다.&quot; -ForegroundColor Green
Add-NetNatStaticMapping -NatName &quot;RockyNAT&quot; -Protocol TCP `
    -ExternalIPAddress 0.0.0.0 -ExternalPort 2222 `
    -InternalIPAddress 10.10.10.2 -InternalPort 2222&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1775121495544&quot; class=&quot;yaml&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;PS C:\Windows\system32&amp;gt; Add-NetNatStaticMapping -NatName &quot;RockyNAT&quot; -Protocol TCP `
    -ExternalIPAddress 0.0.0.0 -ExternalPort 2222 `
    -InternalIPAddress 10.10.10.2 -InternalPort 22


StaticMappingID               : 0
NatName                       : RockyNAT
Protocol                      : TCP
RemoteExternalIPAddressPrefix : 0.0.0.0/0
ExternalIPAddress             : 0.0.0.0
ExternalPort                  : 2222
InternalIPAddress             : 10.10.10.2
InternalPort                  : 22
InternalRoutingDomainId       : {00000000-0000-0000-0000-000000000000}
Active                        : True&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. Rocky Linux 10 VM &amp;mdash; 네트워크 설정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VM에 HyperVM-Net 스위치를 연결한 후 부팅.&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# NetworkManager로 eth0 설정
nmcli con mod eth0 \
  ipv4.method manual \
  ipv4.addresses 10.10.10.2/24 \
  ipv4.gateway 10.10.10.1 \
  ipv4.dns 8.8.8.8 \
  connection.autoconnect yes

nmcli con up eth0&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확인:&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;ip addr show eth0
ip route
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. Rocky Linux &amp;mdash; SSH 포트 2222 설정&lt;/h2&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# /etc/ssh/sshd_config
sudo sed -i 's/^#Port 22/Port 2222/' /etc/ssh/sshd_config
# 또는 직접 편집: Port 2222 추가 (22도 남길 경우 두 줄 병기)

sudo systemctl restart sshd&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SELinux에 포트 2222 허용:&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;sudo semanage port -a -t ssh_port_t -p tcp 2222&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;firewalld 허용:&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

# 적용된 룰을 확인합니다.
sudo  firewall-cmd --list-all

# ports: 2222/tcp 가 확인되면 Ok 입니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. Windows Host &amp;mdash; 방화벽 규칙 (필요시)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Host에서 아웃바운드로 막혀있다면 (대부분 불필요, 참고용):&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;New-NetFirewallRule -DisplayName &quot;SSH to VM 2222&quot; `
  -Direction Outbound -Protocol TCP -RemotePort 2222 -Action Allow&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㅁ host에서 방화벽 설정&lt;/p&gt;
&lt;pre id=&quot;code_1775122790853&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;PS C:\Windows\system32&amp;gt; New-NetFirewallRule -DisplayName &quot;SSH to VM 2222&quot; `
  -Direction Outbound -Protocol TCP -RemotePort 2222 -Action Allow


Name                          : {bc1945c6-e6cf-4b79-b6f7-2c3a9313a274}
DisplayName                   : SSH to VM 2222
Description                   : 
DisplayGroup                  : 
Group                         : 
Enabled                       : True
Profile                       : Any
Platform                      : {}
Direction                     : Outbound
Action                        : Allow
EdgeTraversalPolicy           : Block
LooseSourceMapping            : False
LocalOnlyMapping              : False
Owner                         : 
PrimaryStatus                 : OK
Status                        : 저장소에서 규칙을 구문 분석했습니다. (65536)
EnforcementStatus             : NotApplicable
PolicyStoreSource             : PersistentStore
PolicyStoreSourceType         : Local
RemoteDynamicKeywordAddresses : {}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. SSH 접속 테스트&lt;/h2&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;# PowerShell 또는 Windows Terminal
ssh -p 2222 username@10.10.10.2

# 또는
ssh username@10.10.10.2 -p 2222
&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;트러블슈팅 체크리스트&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;증상 확인 사항&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Connection refused&lt;/td&gt;
&lt;td&gt;sshd 실행 여부 systemctl status sshd, 포트 확인 ss -tlnp | grep 2222&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No route to host&lt;/td&gt;
&lt;td&gt;VM IP/GW 설정, Host vNIC IP 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ping 실패&lt;/td&gt;
&lt;td&gt;firewalld ICMP 허용 여부, Hyper-V 스위치 타입 Internal 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SELinux 거부&lt;/td&gt;
&lt;td&gt;sudo ausearch -m avc -ts recent 로 확인 후 semanage 재적용&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;7. Linux에서 IP는 있는데 ping이 안 될 때 &amp;mdash; firewalld 확인&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;ㅁ 방화벽을 중지하고 Ping를 보내면 작동이되면 방화벽 문제 입니다.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;bash&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;bash&quot; style=&quot;color: #14181f;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# ICMP 허용 여부 확인
sudo firewall-cmd --list-all

# ICMP 허용
sudo firewall-cmd --permanent --add-icmp-block-inversion
sudo firewall-cmd --permanent --remove-icmp-block rich-rule='...'

# 가장 빠른 확인: 방화벽 임시 중지 후 ping 재시도
sudo systemctl stop firewalld
ping -c 3 10.10.10.1&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;firewall을 중지하고&amp;nbsp; ping 되면 firewalld 규칙 문제입니다:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;bash&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;bash&quot; style=&quot;color: #14181f;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;sudo firewall-cmd --permanent --add-rich-rule='rule protocol value=&quot;icmp&quot; accept'
sudo firewall-cmd --reload
sudo systemctl start firewalld


# 방화벽 정책을 확인합니다.
firewall-cmd --list-all&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;572&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Cir55/dJMcaflN1Pj/CEtPNZ98C4iHw37tveg3O0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Cir55/dJMcaflN1Pj/CEtPNZ98C4iHw37tveg3O0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Cir55/dJMcaflN1Pj/CEtPNZ98C4iHw37tveg3O0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCir55%2FdJMcaflN1Pj%2FCEtPNZ98C4iHw37tveg3O0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;223&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;572&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>InfraPlatform</category>
      <category>hyper-v 설치</category>
      <category>Rocky 10 설치</category>
      <category>ssh 설정</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/922</guid>
      <comments>https://couplewith.tistory.com/922#entry922comment</comments>
      <pubDate>Thu, 2 Apr 2026 19:05:45 +0900</pubDate>
    </item>
    <item>
      <title>신사업의 성장법칙 -  앤스로픽(Anthropic) 중심으로</title>
      <link>https://couplewith.tistory.com/921</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdtGAs/dJMcaiCTFXS/TJDSxcaZW0cRyge8EoEz60/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdtGAs/dJMcaiCTFXS/TJDSxcaZW0cRyge8EoEz60/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdtGAs/dJMcaiCTFXS/TJDSxcaZW0cRyge8EoEz60/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdtGAs%2FdJMcaiCTFXS%2FTJDSxcaZW0cRyge8EoEz60%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1200&quot; height=&quot;720&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h1&gt;신사업의 성장법칙 - 앤스로픽(Anthropic) 중심으로&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앤스로픽(Anthropic)의 설립 배경과 기술적 지향점, 그리고 MCP 및 바이브 코딩 전략을 바탕으로 요청하신 세 가지 관점에서 내용을 정리&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 세상의 변화 징후: 사업의 시작과 동기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앤스로픽은 2021년 설립된 미국의 인공지능 스타트업이다. 주요 초기 투자사로 &lt;b&gt;아마존 (80억달러,한화 12조&lt;/b&gt; : 2023년 40억달러, 24년 40억달러 ), &lt;b&gt;구글 (Google, 총 30억 달러&lt;/b&gt;: 23년, 20억달러, 25년 10억달러), &lt;b&gt;2025년 9월 (시리즈 F 라운드, 약 130억달러&lt;/b&gt;, 기업가치 1,830억 달러 인정), 2&lt;b&gt;026년 2월 ( 시리즈 G 라운드, 300억 달러 유치)&lt;/b&gt; 등으로 대규모 자본을 확보하였다. 앤스로픽은 이러한 대규모 자금을 바탕으로 클라우드 인프라 확장 및 차세대 AI 모델인 &lt;b&gt;클로드(Claude)&lt;/b&gt; &amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;개발에 중점을 둔 (거대 빅테크 기업) 이다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;참고:&lt;/b&gt; &lt;b&gt;(Anthropic - Funding &amp;amp; Investors) :&lt;a href=&quot;https://tracxn.com/d/companies/anthropic/__SzoxXDMin-NK5tKB7ks8yHr6S9Mz68pjVCzFEcGFZ08/funding-and-investors&quot;&gt;https://tracxn.com/d/companies/anthropic/__SzoxXDMin-K5tKB7ks8yHr6S9Mz68pjVCzFEcGFZ08/funding-and-investors&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앤스로픽은 기술적 폭발이 일어나던 시기에 '속도'보다 더 중요한 '방향'의 균열을 포착하며 탄생했습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;상업화와 안전의 충돌 (The Safety Rift):&lt;/b&gt; AI 기술이 막대한 자본과 결합하면서, 초기 AI 연구의 순수한 목적보다는 상업적 이익을 우선시하는 경향이 짙어졌습니다. 앤스로픽 설립자들은 이를 AI가 인간의 통제를 벗어날 수 있는 위험한 징후로 보았습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;신뢰의 결핍:&lt;/b&gt; 모델의 성능(IQ)은 비약적으로 발전했지만, 그 모델이 왜 그런 답변을 하는지, 유해한 정보를 걸러낼 기준은 무엇인지에 대한 '윤리적 가이드라인'은 여전히 블랙박스 상태였습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;추진 동기:&lt;/b&gt; &quot;안전하지 않은 지능은 인류에게 축복이 아닌 재앙이 될 수 있다&quot;는 확신입니다. 이에 따라 인간의 개입을 최소화하면서도 AI 스스로 윤리 원칙을 지키게 하는 &lt;b&gt;'헌법적 AI(Constitutional AI)'&lt;/b&gt;라는 독자적인 노선을 걷게 되었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 게임의 법칙: 새로운 산업의 규칙을 만들다&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앤스로픽은 단순한 모델 제조사를 넘어, AI 생태계가 작동하는 '방식' 자체를 재정의하며 판을 흔들고 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;표준화 전략 (MCP):&lt;/b&gt; 과거에는 AI를 외부 데이터와 연결하기 위해 각개전투식 코딩이 필요했습니다. 앤스로픽은 &lt;b&gt;MCP(Model Context Protocol)&lt;/b&gt;를 통해 'AI계의 USB-C'라는 표준 규격을 제시했습니다. 이는 기술을 독점하기보다 생태계를 먼저 선점하여, 누구나 앤스로픽의 규격 위에서 놀게 만드는 &lt;b&gt;'플랫폼 장악 법칙'&lt;/b&gt;을 적용한 것입니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;신뢰의 브랜드화:&lt;/b&gt; '가장 똑똑한 AI' 타이틀 경쟁 대신 &lt;b&gt;'가장 믿을 수 있는(Reliable) AI'&lt;/b&gt;라는 카테고리를 선점했습니다. 이는 특히 보안과 윤리가 중요한 엔터프라이즈(B2B) 시장에서 앤스로픽을 대체 불가능한 파트너로 각인시키는 전략적 규칙이 되었습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;실행력 중심의 에이전트:&lt;/b&gt; AI를 단순히 '묻고 답하는 챗봇'에 가두지 않고, 직접 컴퓨터를 조작(Computer Use)하고 워크플로우를 주도하는 &lt;b&gt;'능동적 대리인'&lt;/b&gt;으로 정의하며 AI의 역할 모델을 바꿨습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;앤스로픽의 주요 차별화 포인트&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;긴 문맥 창 (Context Window)&lt;/b&gt;: &lt;br /&gt;책 몇 권 분량을 한 번에 입력해도 맥락을 놓치지 않고 정확히 분석하는 능력이 탁월합니다. &lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;현재 Claude 3 시리즈는 최대 200,000 토큰(약 15만 단어) 이상을 지원합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; [참고] :&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - &lt;b&gt;Anthropic Blog (2023.05.11):&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; letter-spacing: 0px;&quot;&gt;&quot;Introducing 100,000 Token Context Windows&quot;&lt;br /&gt;&lt;/span&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - Anthropic News (2024.03.04):&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&quot;Introducing the Next Generation of Claude&quot;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(Claude 3 모델 발표 및 컨텍스트 창 확장 내용 포함)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;DtY3lf_16,DtY3lf_17&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=DtY3lf_15/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;
&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBxAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Claude Code: 개발 환경 특화 에이전트&lt;/b&gt;&lt;span data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;IgDuuf_1k,IgDuuf_1l&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=IgDuuf_1j/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
: &lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;기존의 AI가 &quot;코드를 짜주는 도우미&quot;였다면, Claude Code는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&quot;스스로 코드를 수정하고 테스트까지 마치는 동료 개발자&quot;&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;에 가깝습니다.&lt;br /&gt;&amp;nbsp;- &lt;b&gt;터미널 기반의 실행력 (Agentic Workflow)&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;: &lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;AI가 스스로 파일을 읽고, 수정하고, 테스트 명령어를 실행 오류를 수정&lt;br /&gt;&amp;nbsp;- &lt;b&gt;프로젝트 전체 맥락 파악&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;: &lt;b&gt;전체 코드베이스(Codebase)&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;를 인덱싱하여 프로젝트 구조를 이해하고 수정 가능&lt;br /&gt;&amp;nbsp;- &lt;b&gt;개발자 경험 최적화:&lt;/b&gt; 컴퓨터 유즈(Computer Use)의 &lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;개발 워크플로우에 특화시킨 사례&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp; &amp;nbsp; [ 참고 ]&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Anthropic News (2025.02.24): &quot;Introducing Claude Code&quot; (Claude Code 출시 발표 및 에이전틱 개발 도구로서의 비전 설명) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Anthropic Documentation: &quot;Claude Code Overview&quot; (CLI 도구 설치 및 프로젝트 기반 추론 방식 가이드)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;컴퓨터 유즈 (Computer Use):&lt;/b&gt; &lt;br /&gt;: 최근에는 &lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;AI가 화면의 내용을 픽셀 단위로 해석하고 커서를 움직이거나 버튼을 클릭&lt;/span&gt; 하여 사람처럼&amp;nbsp; PC를 조작 하는 기능을 선보이며 '에이전틱 AI' 시대를 앞당기고 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; [참고]:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- Anthropic News (2024.10.22):&amp;nbsp;&quot;Introducing computer use, a new Claude 3.5 Sonnet, and Claude 3.5 Haiku&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-&amp;nbsp;GitHub Repository:&amp;nbsp;anthropic-quickstarts/computer-use-demo&amp;nbsp;(개발자를 위한 실제 구현 가이드 및 코드)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;b&gt;아티팩트 (Artifacts): 시각적 협업 UI&lt;/b&gt; &lt;br /&gt;&lt;/b&gt;: &lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;사용자가 요청한 코드, 웹사이트 디자인, 다이어그램 등의&amp;nbsp; 코딩 결과나 웹사이트 디자인을&amp;nbsp; 대화창 옆의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;별도 전용 창&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;에서 즉시 시각화하여 편집하고 미리 볼 수 있는 UI/UX 혁신&lt;/span&gt; 기능을 통해 작업 효율을 극대화했습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; [참고]&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- &lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;Anthropic Blog (2024.06.20):&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&quot;Introducing Claude 3.5 Sonnet&quot;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(Artifacts 기능의 최초 공개 및 협업 방식 변화 설명)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- &lt;/span&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;Anthropic Support/Docs:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&quot;Using Artifacts on Claude.ai&quot;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(기능 활용법 및 실시간 렌더링 기술 가이드)&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;주요 모델의 특징&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start; border-collapse: collapse; width: 98.2558%; height: 210px;&quot; border=&quot;1&quot; data-sae=&quot;&quot; data-animation-nesting=&quot;&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;tbody&gt;
&lt;tr data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;
&lt;td style=&quot;color: #0a0a0a;&quot; colspan=&quot;undefined&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;최고 성능 모델&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;color: #0a0a0a;&quot; colspan=&quot;undefined&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;Claude 3.5, 4 Opus&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;color: #0a0a0a;&quot; colspan=&quot;undefined&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;복잡한 추론, 정교한 코딩, 고난도 창의적 글쓰기에 최적화된 플래그십 모델입니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;
&lt;td style=&quot;color: #0a0a0a;&quot; colspan=&quot;undefined&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;효율적 모델&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;color: #0a0a0a;&quot; colspan=&quot;undefined&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;Claude 3.5, 4 Sonnet&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;color: #0a0a0a;&quot; colspan=&quot;undefined&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;성능과 속도의 균형이 가장 뛰어납니다. 현재 대부분의 사용자가 가장 많이 활용하는 주력 모델입니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;
&lt;td style=&quot;color: #0a0a0a;&quot; colspan=&quot;undefined&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;경량 모델&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;color: #0a0a0a;&quot; colspan=&quot;undefined&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;Claude 3.5 Haiku&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;color: #0a0a0a;&quot; colspan=&quot;undefined&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;매우 빠른 속도와 저렴한 비용이 강점입니다. 단순 응답이나 대량의 데이터 분류에 적합합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OpenAI GPT 보다 우세한 가치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;에이전트 전략의 차이&lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;:&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;코딩&amp;nbsp;및&amp;nbsp;실무&amp;nbsp;효율&amp;nbsp;(앤스로픽&amp;nbsp;우세)&amp;nbsp;&lt;/b&gt;:&amp;nbsp;Claude&amp;nbsp;Code와Artifacts를&amp;nbsp;통해&amp;nbsp;&quot;결과물을&amp;nbsp;즉시&amp;nbsp;보고,&amp;nbsp;터미널에서&amp;nbsp;바로&amp;nbsp;수정하는&quot;&amp;nbsp;실무&amp;nbsp;밀착형&amp;nbsp;도구&lt;/li&gt;
&lt;li&gt;&lt;b&gt;복잡한 논리 및 수학 (오픈AI 우세) :&lt;/b&gt; &lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;오픈AI의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;o1 시리즈&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;는 답변 전 '생각하는 시간'을 가짐으로써 수학, 물리, 복잡한 로직 설계에서 클로드보다 더 높은 정확도&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;앤스로픽:&lt;/b&gt;&amp;nbsp;&quot;AI가&amp;nbsp;사람처럼&amp;nbsp;컴퓨터를&amp;nbsp;다루게&amp;nbsp;하겠다&quot;&amp;nbsp;(Computer&amp;nbsp;Use&amp;nbsp;-&amp;nbsp;범용적&amp;nbsp;조작) &lt;br /&gt;&lt;b&gt;오픈AI:&amp;nbsp;&lt;/b&gt;&quot;AI가 서비스 API를 통해 업무를 처리하게 하겠다&quot; (Operator - 자동화된 서비스 수행)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;앤스로픽(Claude)&amp;nbsp;추천&lt;/b&gt;:&amp;nbsp;대량의&amp;nbsp;문서를&amp;nbsp;분석해야&amp;nbsp;할&amp;nbsp;때,&amp;nbsp;복잡한&amp;nbsp;코딩&amp;nbsp;프로젝트를&amp;nbsp;수행할&amp;nbsp;때,&amp;nbsp;안전하고&amp;nbsp;정직한&amp;nbsp;답변이&amp;nbsp;중요할&amp;nbsp;때. &lt;br /&gt;&lt;b&gt;오픈AI(GPT)&amp;nbsp;추천&lt;/b&gt;:&amp;nbsp;실시간&amp;nbsp;음성&amp;nbsp;대화가&amp;nbsp;필요할&amp;nbsp;때,&amp;nbsp;고난도의&amp;nbsp;수학&amp;middot;과학적&amp;nbsp;추론이&amp;nbsp;필요할&amp;nbsp;때,&amp;nbsp;다양한&amp;nbsp;외부&amp;nbsp;앱과의&amp;nbsp;연동이&amp;nbsp;중요할&amp;nbsp;때.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 소비 행동의 변화: 사라진 것과 새로 생겨난 것&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기술의 진화는 사용자가 기술을 소비하는 문법을 완전히 바꾸어 놓았습니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;❌ 사라진 부분 (Old Paradigm)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;문법의 장벽:&lt;/b&gt; 복잡한 프로그래밍 언어와 구문을 암기하고 입력해야 했던 고단한 코딩의 시대가 저물고 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터의 고립(Silo):&lt;/b&gt; 슬랙, 지메일, 깃허브 등 각 서비스에 흩어진 데이터를 활용하기 위해 일일이 수동으로 연동하던 번거로움이 사라지고 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;단순 검색 중심의 질문 소비:&lt;/b&gt; 정보를 찾기 위해 키워드를 입력하고 결과를 나열받던 수동적인 소비 행태가 감소하고 있습니다.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;✨ 새로 생겨난 부분 (New Paradigm)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;의도(Vibe) 중심의 창작:&lt;/b&gt; 개발 지식이 없어도 전체적인 맥락과 느낌만 전달하면 AI가 결과물을 시각화해주는 &lt;b&gt;'바이브 코딩(Vibe Coding)'&lt;/b&gt; 문화가 생겨났습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;워크플로우의 자동 항해:&lt;/b&gt; 사용자가 고민하던 '절차'를 AI가 대신합니다. 사용자는 이제 &quot;무엇을 할지(What)&quot;만 결정하고, &quot;어떻게 할지(How)&quot;는 AI 에이전트가 MCP 도로를 타고 다니며 직접 수행합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;개방형 연결성:&lt;/b&gt; 사용자는 특정 서비스에 종속되지 않고, 표준화된 프로토콜(MCP)을 통해 자신의 데이터를 자유롭게 AI에게 주입하여 초개인화된 서비스를 즉각적으로 경험하게 되었습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;바이브 코딩(Vibe Coding):&lt;/b&gt; 개발자가 복잡한 문법을 직접 입력하는 대신, 자연어로 전체적인 느낌(Vibe)과 의도를 전달하면 AI가 코드를 완성하는 방식을 의미로, 개발자는 AI를 통해 개발하고 그 실행 결과를 신뢰하고 수용하는 결과가 되었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㅁ &lt;b&gt;바이브 코딩(Vibe Coding)은&lt;/b&gt; 2025년 2월, Andrej Karpathy(안드레카르파시)가 X(Twitter)에서 처음 사용한 용어이며,&lt;br /&gt;2025년 콜린스 사전 올해의 단어로 선정되었다.&lt;br /&gt;프로그래머가 코드를 직접 작성하는 대신 자연어를 통해 AI가 코드를 생성하는 개발 방식이다.&lt;br /&gt;Karpathy의 정의처럼 &amp;ldquo;코드를 읽지 않는&amp;rdquo; 진정한 바이브 코딩에 도달하려면, 에이전트의 결과를 신뢰할 수 있어야 한다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;ㅁ 클로드 헌법(Constitutional AI)은&lt;/b&gt; 앤스로픽(Anthropic)이 자사 AI 모델(Claude)의 안전성, 윤리성, 유용성을 보장하기 위해 도입한 기본 행동 규칙 문서입니다. 1948년 세계 인권 선언 등에서 영감을 받은 원칙을 기반으로, AI가 스스로 답변을 평가하고 조정하도록 하여 유해성을 줄이고 인간의 가치에 부합하는 행동을 하도록 유도합니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;bull; 주요 원칙:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;자유, 평등, 박애 지지, 고문 및 비인간적 대우 반대, 무해성(Harmlessness) 및 유용성(Helpfulness) 준수 등이 포함됩니다.&lt;br /&gt;&lt;b&gt;&amp;bull; 75가지 지침&lt;/b&gt;&lt;br /&gt;&amp;nbsp;(2023 업데이트): 75가지 이상의 구체적인 지침이 나열되어 있으며, 2026년 업데이트에서는 민주주의 훼손 방지 등 더 구체적인 맥락이 추가되었습니다.&lt;br /&gt;&lt;b&gt;&amp;bull; 안전성 최우선:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;단순한 행동 금지를 넘어, AI가 &amp;lsquo;왜&amp;rsquo; 그런 행동을 해야 하는지 이해하게 하여 윤리적이고 예측 가능한 AI 운영을 강화합니다&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; 핵심 기술 철학은 &amp;ldquo;가장 강한 모델&amp;rdquo;보다 &lt;b&gt;&amp;ldquo;덜 위험하고 더 예측 가능한 모델&amp;rdquo;을&lt;/b&gt; 만드는 것이며&lt;br /&gt;앤스로픽(Anthropic)은 &amp;ldquo;더 똑똑한 챗봇 회사&amp;rdquo;라기보다,&amp;nbsp;안전한 범용 AI 에이전트와 그 연결 표준을 만드는 AI 인프라 회사&amp;nbsp;&lt;br /&gt;앤스로픽은&amp;nbsp;&lt;b&gt;&amp;ldquo;인간의&amp;nbsp;지식노동을&amp;nbsp;안전하고&amp;nbsp;신뢰&amp;nbsp;가능한&amp;nbsp;방식으로&amp;nbsp;자동화하는&amp;nbsp;AI&amp;nbsp;유틸리티&amp;nbsp;에이전트&amp;nbsp;기업&amp;rdquo;&lt;br /&gt;&amp;ldquo;MCP를&amp;nbsp;통해&amp;nbsp;AI와&amp;nbsp;외부&amp;nbsp;시스템의&amp;nbsp;연결&amp;nbsp;표준을&amp;nbsp;제시하고,&amp;nbsp;Claude&amp;nbsp;Code와&amp;nbsp;Computer&amp;nbsp;Use로&amp;nbsp;에이전틱&amp;nbsp;워크플로우를&amp;nbsp;제품화한&amp;nbsp;인프라형&amp;nbsp;AI&amp;nbsp;기업&lt;br /&gt;&lt;br /&gt;MCP는&amp;nbsp;앤스로픽이&amp;nbsp;단순&amp;nbsp;모델&amp;nbsp;경쟁을&amp;nbsp;넘어서&amp;nbsp;AI와&amp;nbsp;데이터&amp;middot;도구를&amp;nbsp;연결하는&amp;nbsp;산업&amp;nbsp;표준을 만들고&lt;br /&gt;모델 성능 판매&amp;rdquo;보다 &amp;ldquo;업무에 들어가는 AI 운영체계&amp;rdquo;를 파는 회사&lt;br /&gt;소비자용&amp;nbsp;챗봇&amp;nbsp;기업이&amp;nbsp;아니라,&amp;nbsp;보안&amp;middot;규제&amp;middot;품질이&amp;nbsp;중요한&amp;nbsp;기업&amp;nbsp;고객에게&amp;nbsp;적합한&amp;nbsp;B2B&amp;nbsp;AI&amp;nbsp;플랫폼&amp;nbsp;기업&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ 앤트로픽 관련 주요뉴스]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #303038; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;b&gt;앤트로픽이 현존 최강 소프트웨어 코딩 작업에서 역대 최고의 성능&lt;/b&gt;으로 알려진 &lt;b&gt;'클로드 미소스(Claude Mythos)'&lt;/b&gt;를 일부 빅테크들에게 미리보기(Preview) 형식으로 배포, 'SWE-벤치 베리파이드'에서는 오퍼스 4.6의 80.8%을 넘어, 93.9%이라는 압도적인 점수를 기록&lt;br /&gt;출처&amp;nbsp;:&amp;nbsp;AI타임스(&lt;a href=&quot;https://www.aitimes.com)&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.aitimes.com)&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #303038; text-align: start;&quot;&gt;■ Anthropic의 Claude AI가 수요일 Sonnet 4.6 모델에서 오류율 급증을 겪고 있으며, 회사 상태 페이지에는 해당 장애가 미해결 상태로 표시,&amp;nbsp;&lt;b&gt;&lt;u&gt;Anthropic의 연간 매출이 300억 달러로 3배 증가하고 사용자 수요가 급증한 시기와 같음.&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #303038; text-align: start;&quot;&gt;&lt;a href=&quot;https://www.perplexity.ai/page/claude-ai-hit-by-new-outage-as-jv1FQCV6T2W_vw5zSgbeYA&quot;&gt;https://www.perplexity.ai/page/claude-ai-hit-by-new-outage-as-jv1FQCV6T2W_vw5zSgbeYA&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #303038; text-align: start;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;■ Anthrophic은 클라우드 기반 에이전트를 대규모로 구축하고 배포하기 위한 구성 가능한 API 제품군인 Claude Managed Agents를 출시, &lt;u&gt;&lt;b&gt;엔터프라이즈 AI 시장에서 Microsoft 및 Google과 경쟁&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://claude.com/blog/claude-managed-agents&quot;&gt;https://claude.com/blog/claude-managed-agents&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;b&gt;'클로드 코드' 유출:&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;2026년 3월 말, 앤트로픽은 자사 AI 코딩 도구인 '클로드 코드'의 독점 소스 코드 51만 2000줄을 외부로 실수 공개하는 사고&lt;br /&gt;&lt;/span&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.digitaltoday.co.kr/news/articleView.html?idxno=652636&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.digitaltoday.co.kr/news/articleView.html?idxno=652636&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;br /&gt;&lt;b&gt;정면 돌파형 신뢰 회복 전략 : &amp;nbsp;'글래스윙(Glasswing) 발표&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;보안 사고 직후인 2026년 4월 8일, 앤트로픽은 MS, 구글, 애플 등 빅테크 기업들과 함께 새로운 [보안 프로젝트 '글래스윙(Glasswing) 발표하여 신뢰 회복&amp;nbsp;&lt;br /&gt;* '글래스윙(Glasswing)' 프로젝트: 투명성(Glass)+취약성 보호(Wing)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;탈(脫) 중국 연합으로 서방 AI 진영의 기술 유출 방지 공동 전선 구축&lt;/b&gt;&lt;br /&gt;: 구글, MS, 애플 등 경쟁사들이 손을 잡은 이유는 중국 기업들의 '모델 베끼기(스크레이핑)'가 공통의 위협&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;■&amp;nbsp; &lt;b&gt;미 국방부와의 갈등 및 퇴출 위기&lt;/b&gt; &lt;br /&gt;&lt;b&gt;윤리 기준과 트럼프 정부의 갈등:&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;앤트로픽은 '클로드 헌법' 등 엄격한 AI 윤리를 강조하는 반면, 미 국방부는 클로드의 무제한 사용을 요구하며 갈등, &lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot;&gt;도널드 트럼프 미국 대통령은&lt;b&gt; &amp;lsquo;모든 정부 기관에서 앤트로픽 퇴출 지시&amp;rsquo;&lt;/b&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;a href=&quot;https://www.chosun.com/economy/tech_it/2026/02/28/YWI6SY2DJZDCFMIMTNG47YJNKI/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.chosun.com/economy/tech_it/2026/02/28/YWI6SY2DJZDCFMIMTNG47YJNKI/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; 앤트로픽, 워싱턴선 美정부에 패소 (26.4.9)&lt;/b&gt;&lt;br /&gt;워싱턴&amp;nbsp;연방항소법원은&amp;nbsp;국방부가&amp;nbsp;앤트로픽을&amp;nbsp;&amp;lsquo;공급망&amp;nbsp;위험&amp;rsquo;으로&amp;nbsp;지정한&amp;nbsp;조치의&amp;nbsp;효력을&amp;nbsp;본안&amp;nbsp;판결까지&amp;nbsp;유예해달라는&amp;nbsp;앤트로픽의&amp;nbsp;가처분&amp;nbsp;신청을&amp;nbsp;8일(현지시간)&amp;nbsp;기각했다.&lt;br /&gt;&lt;a href=&quot;https://www.segye.com/newsView/20260409516249?OutUrl=google&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.segye.com/newsView/20260409516249?OutUrl=google&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #303038; text-align: start;&quot;&gt;□ Git hub agent 접속 폭주 : Git 개발환경에서 작성한 코드를 저장하고 공유하는 서비스&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #303038; text-align: start;&quot;&gt;&lt;b&gt;AI 코딩 에이전트의 빠른 확산&lt;/b&gt;으로 마이크로소프트(MS)의&amp;nbsp;개발 플랫폼 깃허브에는 AI가 생성한 코드가 급증하고 있으며, 이에 따라 전례 없는 수준의 트래픽 증가가&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #303038; text-align: start;&quot;&gt;&lt;a href=&quot;https://www.aitimes.com/news/articleView.html?idxno=208951&quot;&gt;https://www.aitimes.com/news/articleView.html?idxno=208951&lt;/a&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #303038; text-align: start;&quot;&gt;■ &amp;nbsp; AI인프라 분야의 AI 활용 사례 중 투자수익률(ROI) 기대치를 충족하며 완전히 성공한 비율은 28%에 그쳤으며, 20%는 완전히 실패한 것 - 26년 4월 &lt;a style=&quot;background-color: #faf6f4; color: #0c0c0c; text-align: start;&quot; href=&quot;https://www.gartner.com/en/newsroom/press-releases/2026-04-07-gartner-says-artificial-intelligence-projects-in-infrastructure-and-operations-stall-ahead-of-meaningful-roi-returns&quot;&gt;7일 발표된&lt;/a&gt;&lt;span style=&quot;background-color: #faf6f4; color: #0c0c0c; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;가트너 연구 결과,&amp;nbsp;&amp;nbsp;&lt;/span&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #faf6f4; color: #0c0c0c; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;25년 &lt;/span&gt;&lt;/span&gt;&lt;a style=&quot;background-color: #faf6f4; color: #0c0c0c; text-align: start;&quot; href=&quot;http://beyond%20the%20hype:%204%20critical%20misconceptions%20derailing%20enterprise%20AI%20adoption/&quot;&gt;MIT가 발표한 연구&lt;/a&gt;&lt;span style=&quot;background-color: #faf6f4; color: #0c0c0c; text-align: start;&quot;&gt;에서 생성형 AI 프로젝트의 95%가 측정 가능한 재무적 수익을 창출하지 못했다는 우려스러운 조사&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #303038; text-align: start;&quot;&gt;&lt;a href=&quot;https://www.cio.com/article/4156257/%ea%b0%80%ed%8a%b8%eb%84%88-%ec%9d%b8%ed%94%84%eb%9d%bc%c2%b7%ec%9a%b4%ec%98%81-%ea%b4%80%eb%a0%a8-ai-%ed%94%84%eb%a1%9c%ec%a0%9d%ed%8a%b8-28%eb%a7%8c-%ec%84%b1%ea%b3%b520%eb%8a%94.html&quot;&gt;https://www.cio.com/article/4156257/%ea%b0%80%ed%8a%b8%eb%84%88-%ec%9d%b8%ed%94%84%eb%9d%bc%c2%b7%ec%9a%b4%ec%98%81-%ea%b4%80%eb%a0%a8-ai-%ed%94%84%eb%a1%9c%ec%a0%9d%ed%8a%b8-28%eb%a7%8c-%ec%84%b1%ea%b3%b520%eb%8a%94.html&lt;/a&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>BigData</category>
      <category>신사업의 성장법칙 - 앤스로픽(Anthropic)</category>
      <category>클로드 헌법(Constitutional AI)</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/921</guid>
      <comments>https://couplewith.tistory.com/921#entry921comment</comments>
      <pubDate>Wed, 1 Apr 2026 18:08:03 +0900</pubDate>
    </item>
    <item>
      <title>앤스로픽(Anthropic)의 AI전략</title>
      <link>https://couplewith.tistory.com/920</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;앤스로픽(Anthropic)의 행보를 바탕으로, 기업의 설립 배경, 목적, 그리고 안전한AI와&amp;nbsp; MCP(Model Context Protocol) 으로 대변되는 향후 방향성에 대해 핵심적인 질문과 답변 형태로 정리해 드립니다.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;1. 설립 배경: &quot;왜 앤스로픽이 탄생했는가?&quot;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;b&gt;Q: 앤스로픽은 왜 OpenAI에서 독립하여 설립되었나요?&lt;/b&gt;&lt;br&gt;A: 앤스로픽은 2021년, OpenAI의 전 임원들이었던 다리오 아모데이(Dario Amodei)와 다니엘라 아모데이(Daniela Amodei) 남매를 주축으로 설립되었습니다. 당시 OpenAI가 마이크로소프트로부터 대규모 투자를 받으며 상업적 방향으로 선회하자, **'AI 안전성(Safety)'과 '신뢰할 수 있는 모델 개발'**이라는 가치를 최우선으로 지키기 위해 독립적인 길을 선택한 것입니다.&lt;br&gt;&lt;br&gt;* &lt;b&gt;앤트로픽의 모토는&lt;/b&gt; &quot;말로만 하지 말고 행동으로 보여주자&quot;이며, 인공지능 커뮤니티에 폭넓은 가치를 제공할 수 있는 안전 중심 연구 결과를 꾸준히 발표해 왔습니다. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Q: 설립 당시 가장 중요하게 여긴 기술적 차별점은 무엇인가요?&lt;/b&gt;&lt;br&gt;A: 바로 **'헌법적 AI(Constitutional AI)'**입니다. 인간이 일일이 가이드라인을 주는 대신, AI에게 일련의 원칙(헌법)을 학습시켜 스스로 답변의 유해성을 판단하고 교정하게 만드는 기술입니다. 이는 앤스로픽을 '안전하고 정직한 AI'의 대명사로 만들었습니다.&lt;br&gt;&lt;br&gt;(클로드 헌법적AI)&lt;br&gt;&lt;a href=&quot;https://www.anthropic.com/constitution&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://www.anthropic.com/constitution&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;&quot; data-og-host=&quot;&quot; data-og-source-url=&quot;https://www.anthropic.com/constitution&quot; data-og-image=&quot;&quot; data-og-url=&quot;&quot;&gt;&lt;a href=&quot;&quot; target=&quot;_blank&quot; data-source-url=&quot;https://www.anthropic.com/constitution&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;(클로드의 사명)&lt;br&gt;&lt;a href=&quot;https://www.anthropic.com/news/core-views-on-ai-safety&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://www.anthropic.com/news/core-views-on-ai-safety&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;&quot; data-og-host=&quot;&quot; data-og-source-url=&quot;https://www.anthropic.com/news/core-views-on-ai-safety&quot; data-og-image=&quot;&quot; data-og-url=&quot;&quot;&gt;&lt;a href=&quot;&quot; target=&quot;_blank&quot; data-source-url=&quot;https://www.anthropic.com/news/core-views-on-ai-safety&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;* 스케일링의 법칙: &lt;/b&gt;연산량이 매년 10배씩 증가하는 것으로 나타났습니다 (무어의 법칙보다 7배 빠른 증가 속도).&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;2. 추구하는 목적: &quot;무엇을 실현하고자 하는가?&quot;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;b&gt;Q: 앤스로픽이 지향하는 궁극적인 목표는 무엇입니까?&lt;/b&gt;&lt;br&gt;A: 단순히 지능이 높은 AI를 만드는 것을 넘어, **'인간의 의도에 부합(Alignment)하는 인공지능'**을 만드는 것입니다. AI가 인간의 통제를 벗어나거나 해를 끼치지 않도록 설계 단계부터 안전장치를 내재화하여, 인류에게 실질적인 도움이 되는 도구를 제공하는 것이 목적입니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Q: 비즈니스 측면에서 앤스로픽은 어떤 포지션을 취하고 있나요?&lt;/b&gt;&lt;br&gt;A: '기업을 위한 가장 안전하고 똑똑한 파트너'를 지향합니다. Claude(클로드) 모델 시리즈를 통해 고도의 추론 능력과 긴 문맥 이해도를 제공하며, 기업들이 보안 걱정 없이 업무 자동화와 데이터 분석에 AI를 활용할 수 있는 생태계를 구축하고 있습니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;3. 향후 방향: &quot;바이브 코딩과 프로그램 개발의 미래는?&quot;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;i&gt;바이브 코딩(Vibe Coding)은 2025년 2월, Andrej Karpathy(안드레카르파시)가 X(Twitter)에서 처음 사용한 용어다. &lt;/i&gt;&lt;i&gt;&lt;span style=&quot;color: #000000;&quot;&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2025 콜린스 사전 올해의 단어로 선정되었다.&lt;/span&gt;&lt;/i&gt;&lt;i&gt; &lt;/i&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;i&gt; &lt;span style=&quot;color: #202122;&quot;&gt;프로그래머가 코드를 직접 작성하는 대신 자연어를 통해&amp;nbsp; AI가 코드를 생성하는 개발 방식이다.&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt; &lt;span style=&quot;color: #000000;&quot;&gt;Karpathy의 정의처럼 “코드를 읽지 않는” 진정한 바이브 코딩에 도달하려면, 에이전트의 결과를 신뢰할 수 있어야 한다.&amp;nbsp;&lt;/span&gt; &lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;b&gt;Q: 최근 화제가 되는 '바이브 코딩(Vibe Coding)'과 앤스로픽의 연관성은 무엇인가요?&lt;/b&gt;&lt;br&gt;A: '바이브 코딩'은 개발자가 복잡한 문법을 직접 입력하는 대신, 자연어로 전체적인 느낌(Vibe)과 의도를 전달하면 AI가 코드를 완성하는 방식을 의미합니다. 앤스로픽의 Claude 3.5 Sonnet과 Artifacts(아티팩트) 기능은 코드를 실시간으로 실행하고 시각화해 보여줌으로써, 개발 지식이 적은 사람도 아이디어만으로 프로그램을 만들 수 있는 시대를 앞당기고 있습니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Q: 앤스로픽이 프로그램 개발 도구에 집중하는 이유는 무엇입니까?&lt;/b&gt;&lt;br&gt;A: AI가 단순한 답변 제공자를 넘어 **'실행하는 주체(Agent)'**로 진화해야 하기 때문입니다. 최근 발표한 '컴퓨터 사용(Computer Use)' 기능처럼, AI가 사람처럼 화면을 보고 마우스를 클릭하며 직접 소프트웨어를 다루는 기술은 앤스로픽이 추구하는 차세대 사업 방향입니다. 즉, AI가 코딩을 돕는 것을 넘어 프로그램을 직접 운용하는 수준을 목표로 합니다.&lt;br&gt;&lt;br&gt;&lt;b&gt;Q: 향후 앤스로픽의 사업 전망은 어떻게 변화할까요?&lt;/b&gt;&lt;br&gt;A: 앤스로픽은 텍스트 중심의 AI에서 벗어나 **'워크플로우(Workflow)의 중심'**이 되고자 할 것입니다. 사용자가 추상적인 요구사항만 제시하면 AI가 코드를 짜고, 인터페이스를 디자인하며, 실제 배포까지 완료하는 전 과정의 자동화에 집중할 것으로 보입니다. 이는 개발의 진입장벽을 낮추고, 기업의 생산성을 극대화하는 방향으로 전개될 것입니다.&lt;br&gt;요약하자면:&lt;br&gt;앤스로픽은 **'AI 안전성'**이라는 뿌리에서 시작하여, 현재는 **'바이브 코딩'**과 **'에이전트 기술'**을 통해 누구나 복잡한 프로그램을 자유자재로 만들고 다룰 수 있는 시대를 구축하는 데 사업의 총력을 기울이고 있습니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;앤스로픽의 최근 행보 중 가장 중요한 축을 담당하고 있는 **MCP(Model Context Protocol, 모델 컨텍스트 프로토콜)**에 대한 배경과 전략입니다.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;4. MCP(Model Context Protocol): &quot;AI 연결의 표준을 꿈꾸다&quot;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;b&gt;Q: MCP는 무엇이며, 앤스로픽이 이를 개발한 배경은 무엇인가요?&lt;/b&gt;&lt;br&gt;A: MCP는 AI 모델이 외부 데이터 소스나 도구(Google Drive, Slack, GitHub, 로컬 파일 등)와 안전하고 쉽게 연결될 수 있도록 만든 개방형 표준 프로토콜입니다.&lt;br&gt;기존에는 AI를 특정 서비스와 연결하려면 매번 복잡한 전용 코드를 짜야 했습니다(N×M의 문제). 앤스로픽은 이러한 '정보의 고립(Information Silos)' 문제를 해결하고, AI가 사용자의 실제 데이터에 실시간으로 접근할 수 있는 통로를 단일화하기 위해 MCP를 선보였습니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Q: 왜 MCP를 'AI계의 USB-C'라고 부르나요?&lt;/b&gt;&lt;br&gt;A: 과거에 기기마다 제각각이었던 충전 단자가 USB-C로 통합되면서 모든 기기가 자유롭게 연결되었듯, MCP는 AI 모델과 데이터 사이의 규격을 하나로 통일하기 때문입니다. 한 번 MCP 규격에 맞춰 서버를 구축하면 클로드뿐만 아니라 다른 AI 모델들도 즉시 그 데이터를 활용할 수 있습니다. 이는 개발 비용을 획기적으로 줄이고 AI 생태계의 확장을 가속화하는 전략적 장치입니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Q: 앤스로픽이 MCP를 오픈소스로 공개하고 리눅스 재단에 기부한 전략적 이유는 무엇입니까?&lt;/b&gt;&lt;br&gt;A: '표준 점유'를 통한 생태계 주도권 확보입니다. 특정 기업이 독점하는 기술은 시장의 표준이 되기 어렵습니다. 앤스로픽은 이를 중립적인 기구(리눅스 재단)에 기탁함으로써 구글, 오픈AI 등 경쟁사들도 이 규격을 쓰게 유도했습니다. 모두가 MCP를 쓰게 되면, 결국 MCP 환경에서 가장 뛰어난 추론 성능을 보이는 클로드(Claude) 모델의 가치가 더욱 높아지는 '플랫폼 효과'를 노린 것입니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Q: MCP가 앤스로픽의 향후 '에이전트(Agent)' 사업에 어떤 영향을 미치나요?&lt;/b&gt;&lt;br&gt;A: AI가 단순히 답변만 하는 단계를 넘어, **'대신 업무를 수행하는 에이전트'**가 되기 위한 핵심 기반입니다. MCP를 통해 AI는 실시간으로 이메일을 읽고, 코드를 실행하며, 데이터베이스를 조회할 수 있는 '손과 발'을 얻게 됩니다. 앞서 언급한 '바이브 코딩'이나 '컴퓨터 사용(Computer Use)' 기능 역시 MCP라는 탄탄한 데이터 고속도로 위에서 구현되는 구체적인 서비스들입니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;■ 평가 및 실질적 조언&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;앤스로픽의 전략은 **'기술적 폐쇄성'보다는 '표준화를 통한 확장'**에 방점이 찍혀 있습니다. 이는 특히 기업용(Enterprise) 시장에서 강력한 무기가 됩니다.&lt;br&gt;&lt;br&gt;* &lt;b&gt;실질적 이점: &lt;/b&gt;개발자 입장에서 MCP를 활용하면 각 서비스의 API 문서를 일일이 공부할 필요 없이, 표준화된 방식으로 데이터를 주입할 수 있어 개발 효율이 최소 30% 이상 향상됩니다.&lt;br&gt;&lt;br&gt;* &lt;b&gt;비즈니스 인사이트&lt;/b&gt;: 앤스로픽은 단순히 모델 성능 경쟁에만 매몰되지 않고, AI가 작동하는 **인프라(표준 프로토콜)**를 선점하여 시장의 판도를 바꾸려 하고 있습니다. &lt;br&gt;&lt;br&gt;이는 후발 주자임에도 불구하고 거대 플랫폼 기업들 사이에서 독보적인 위치를 차지할 수 있었던 핵심 전략입니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>
      <category>BigData</category>
      <category>'바이브 코딩(Vibe Coding)'</category>
      <category>ai비즈니스전략</category>
      <category>ai의 발전</category>
      <category>Anthropic</category>
      <category>MCP</category>
      <category>MCP(Model Context Protocol): &amp;quot;AI 연결의 표준을 꿈꾸다&amp;quot;</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/920</guid>
      <comments>https://couplewith.tistory.com/920#entry920comment</comments>
      <pubDate>Wed, 1 Apr 2026 16:49:33 +0900</pubDate>
    </item>
    <item>
      <title>AI플랫폼이 세상의 문명을 바꾸고 있다.</title>
      <link>https://couplewith.tistory.com/919</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;인공지능은 알고리즘 기반의 기술 도구에서 학습 모델로 발전하였고, LLM(대규모 언어 모델)을 기반으로 사용자의 의도와 지식의 바탕을 이해하여 요약과 생성이 가능해졌습니다. 이러한 발전은 단순한 텍스트 생성에서 시작하여, 이제는 다양한 분야에서 활용되고 있습니다. LLM은 자연어 처리(NLP) 분야에서 특히 두드러진 성과를 보이고 있으며, 이는 인공지능의 진화에 큰 기여를 하고 있습니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bB7ORE/dJMcacWR69N/UmDeaCkt5xKjTtkLJ7T4s1/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bB7ORE/dJMcacWR69N/UmDeaCkt5xKjTtkLJ7T4s1/tfile.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bB7ORE/dJMcacWR69N/UmDeaCkt5xKjTtkLJ7T4s1/tfile.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbB7ORE%2FdJMcacWR69N%2FUmDeaCkt5xKjTtkLJ7T4s1%2Ftfile.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1080&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;1. 인공지능과 LLM의 개념&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;인공지능(AI)은 기계가 인간의 지능을 모방하여 문제를 해결하고 학습하는 기술입니다. LLM은 이러한 인공지능의 한 분야로, 대량의 텍스트 데이터를 학습하여 자연어를 이해하고 생성하는 모델입니다. LLM은 사용자의 질문에 대한 답변을 생성하거나, 주어진 텍스트를 요약하는 등의 작업을 수행할 수 있습니다. 이러한 기능은 인공지능의 활용 범위를 넓히고 있으며, 다양한 산업에서 혁신을 이끌고 있습니다.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;2. 인터넷 플랫폼과 AI 플랫폼의 개념과 진화&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;인터넷 플랫폼은 정보의 공유와 소통을 가능하게 하는 기반입니다. 반면, AI 플랫폼은 인터넷 기술을 기반으로 인공지능 기술을 활용하여 데이터를 분석하고, 예측하며, 의사결정을 지원하는 복합적인 시스템입니다. &lt;br&gt;이러한 플랫폼들은 서로 연결되어 있으며, AI 기술의 발전에 따라 더욱 진화하고 있습니다. &lt;br&gt;예를 들어, 소셜 미디어 플랫폼은 사용자 데이터를 분석하여 맞춤형 광고를 제공하고, AI 플랫폼은 이러한 데이터를 활용하여 더욱 정교한 알고리즘을 개발하고 있습니다.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;3. LLM 기술 요소&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;br&gt;AI는 머신러닝, 딥러닝, 컴퓨터 비전, 로보틱스 등 여러 기술 을 아우르는 상위 개념에서&amp;nbsp;&amp;nbsp;기술도구,&amp;nbsp;&amp;nbsp;알고리즘, 학문적으로 연구 개발 되어왔습니다. &lt;br&gt;&lt;br&gt;LLM(Large Language Model)은 AI의 하위 분야로, 대규모 텍스트 데이터를 학습해 자연어를 이해하고 생성하는 데 특화된 모델입니다&lt;br&gt;&lt;br&gt;LLM의 핵심 기술은 트랜스포머,어텐션,인코더-디코더 기반의 딥러닝 모델(GPT 시리즈 등)로, 텍스트 생성·번역·대화에 초점을 맞춥니다&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;3.1 어텐션 메커니즘(Attention): 핵심 단어에 '형광펜' 칠하기&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;어텐션 메커니즘은 LLM의 핵심 기술 중 하나로, 입력된 데이터의 모든 단어를 동일하게 보는 대신 현재 예측해야 할 단어와 가장 관련 있는 입력 단어에 더 큰 가중치를 두는 것입니다. 이를 통해 긴 문장에서도 정보 손실을 줄이고, 모델이 문맥을 이해하고, 중요한 정보를 강조하는 데 도움을 줍니다. &lt;br&gt;&lt;br&gt;즉 &lt;b&gt;어텐션(Attention): 핵심 단어에 '형광펜' 칠하기 와 같이 문장 속에서 어떤 단어가 중요한지 스스로 판단하여 집중하는 기술입니다.&lt;br&gt;&lt;/b&gt;&lt;br&gt;어텐션 메커니즘 덕분에 LLM은 긴 문장이나 복잡한 문맥에서도 효과적으로 작동할 수 있습니다.&lt;br&gt;&lt;br&gt;오늘날 인공지능의 언어기술은 검색의 기술에 토대를 두고 있습니다. 이 개념이 어렵다면 우리가 구글에서 검색하는 과정을 떠올려 보세요.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;  검색 엔진으로 이해하는 어텐션 (Q, K, V)&lt;/b&gt;&lt;br&gt;(검색어=Query, 문서 제목=Key, 문서 내용=Value)&lt;br&gt;&lt;br&gt;• &lt;b&gt;Query(쿼리): &lt;/b&gt;내가 지금 찾고 싶은 단어 (예: &quot;사과&quot;)&lt;br&gt;• &lt;b&gt;Key(키):&lt;/b&gt; 도서관에 있는 수많은 책의 제목들&lt;br&gt;• &lt;b&gt;Value(밸류):&lt;/b&gt; 그 책 안에 들어있는 실제 내용&lt;br&gt;AI는 현재 단어(Query)와 문장 내 다른 단어들 (Key)을 비교해 관련성 점수를 매깁니다.&lt;br&gt;&lt;br&gt;&lt;b&gt;어텐션의 아이디어&lt;br&gt;- &lt;/b&gt;문제배경&lt;br&gt;- Seq2Seq 모델은 인코더의 마지막 hidden state만을 사용 → 긴 문장에서 정보 손실 발생.&lt;br&gt;&amp;nbsp;&amp;nbsp;- RNN 기반 모델은 기울기 소실(Vanishing Gradient) 문제로 긴 문장 번역 품질 저하.&lt;br&gt;&lt;br&gt;- 해결 방식&lt;br&gt;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;nbsp;디코더가 단어를 예측할 때마다 인코더의 전체 출력(hidden states)을 다시 참고.&lt;br&gt;&amp;nbsp;&amp;nbsp;- 모든 단어를 동일하게 보는 것이 아니라, 관련성이 높은 단어에 집중(attention).&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;✨ 자연어 처리 기술의 변천을 쉽게 이해&lt;/b&gt;&lt;br&gt;&lt;br&gt;- N-gram → 앞뒤 단어 몇개의 짧은 문맥만 반영 (통계 기반)&amp;nbsp;&amp;nbsp;&lt;br&gt;- RNN → 긴 문맥 반영 가능하지만 정보 손실 (순차적 처리)&amp;nbsp;&amp;nbsp;전체 문장을 기억하려 하지만 뒤로 갈수록 앞부분은 희미해짐&lt;br&gt;- 어텐션 → 전체 문맥을 다시 참고, 중요한 부분에 집중 (가중치 기반)&amp;nbsp;&amp;nbsp;&lt;br&gt;- 트랜스포머 → Self-Attention으로 모든 단어가 서로 연결, 병렬 처리로 모든 단어 관계를 동시에 학습, 긴 문맥 반영, 학습 효율 ↑ (현대 NLP의 핵심)&lt;br&gt;&lt;br&gt;  즉, N-gram → RNN → Attention → Transformer로 이어지는 발전은&amp;nbsp;&amp;nbsp;&lt;br&gt;“짧은 문맥 → 긴 문맥 → 중요한 문맥 → 전체 문맥 병렬 학습” 으로 발전&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;3.2 트랜스포머: 한꺼번에 읽고 한꺼번에 이해하는 뇌&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;예전의 AI(RNN/LSTM)는 책을 읽을 때 한 단어, 한 단어 순서대로 읽었습니다. 그러다 보니 문장이 길어지면 앞부분 내용을 잊어버리곤 했습니다.&lt;br&gt;하지만 2017년 구글이 발표한 트랜스포머는 다릅니다. 문장 전체를 '통째로' 집어넣어 한꺼번에 처리합니다. 이를 병렬 연산이라고 하는데, 덕분에 학습 속도가 엄청나게 빨라졌고 긴 문맥도 놓치지 않게 되었습니다.&lt;br&gt;&lt;br&gt;트랜스포머는 LLM의 기본 구조로, 병렬 처리가 가능하여 대량의 데이터를 빠르게 처리할 수 있습니다. 이 구조는 어텐션 메커니즘을 기반으로 하여, 입력 데이터의 모든 부분을 동시에 고려할 수 있도록 설계되었습니다. 트랜스포머의 도입으로 LLM은 이전보다 훨씬 더 높은 성능을 발휘하게 되었습니다.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;3.3. 인코더와 디코더: 이해하고 답변하기&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;트랜스포머는 크게 두 부분으로 나뉩니다.&lt;br&gt;&lt;br&gt;• &lt;b&gt;인코더(Encoder):&lt;/b&gt; 우리가 하는 말을 완벽하게 이해하고 압축하는 역할 (예: 독해)&lt;br&gt;• &lt;b&gt;디코더(Decoder): &lt;/b&gt;압축된 정보를 바탕으로 적절한 답변을 생성하는 역할 (예: 작문)&lt;br&gt;&lt;br&gt;최근의 대규모 언어 모델(LLM)은 주로 이 '디코더' 부분을 극대화하여 우리와 자연스럽게 대화할 수 있게 된 것입니다.&lt;br&gt;&lt;br&gt;• &lt;b&gt;위치 인코딩 (Positional Encoding)&lt;/b&gt; 단어들에게 부여하는 '번호표' 로 어떤 단어가 어느 위치에 있는지 확인&lt;br&gt;• &lt;b&gt;멀티-헤드 어텐션 (Multi-Head)&lt;/b&gt; 여러 관점 에서 동시에 다양한 문맥 분석, &lt;br&gt;• &lt;b&gt;피드포워드 (Feed-Forward) &lt;/b&gt;정보를 가공하는 필터, 문맥의 의미를 변환하고 추출.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;3.4 학습 모델의 개념과 기술 활용&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;LLM은 대량의 데이터를 학습하여 패턴을 인식하고, 이를 바탕으로 새로운 데이터를 생성하는 모델입니다. 이러한 학습 과정은 지도 학습, 비지도 학습, 강화 학습 등 다양한 방법으로 이루어집니다. LLM은 이러한 기술을 활용하여 자연어 처리, 번역, 요약 등 다양한 분야에서 활용되고 있습니다.&lt;br&gt;&lt;br&gt;&lt;b&gt;LLM 이전 산업 변화 (요점)&lt;/b&gt;&lt;br&gt;- 사전학습+파인튜닝이 도입되어 도메인 적용 속도 증가.&amp;nbsp;&amp;nbsp; &lt;br&gt;- 병렬화(GPU/TPU) 채택으로 모델 학습·배포 패러다임 전환.&amp;nbsp;&amp;nbsp; &lt;br&gt;- 검색·추천·자동화 파이프라인이 모듈화되어 데이터 중심 워크플로우가 정착. &lt;br&gt;---&lt;br&gt;LLM이 산업에 미친 충격은 급격했지만, 그 기반은 긴 문맥 처리, 병렬 학습, 사전학습·파인튜닝의 누적된 기술적 진화 위에 있었습니다.&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://dev.to/imsushant12/the-evolution-of-machine-learning-and-natural-language-processing-to-transformers-a-journey-19ic&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://dev.to/imsushant12/the-evolution-of-machine-learning-and-natural-language-processing-to-transformers-a-journey-19ic&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;The Evolution of Machine Learning and Natural Language Processing to Transformers: A Journey Through Time&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;Artificial Intelligence (AI) has undergone a remarkable transformation over the years, particularly...&quot; data-og-host=&quot;dev.to&quot; data-og-source-url=&quot;https://dev.to/imsushant12/the-evolution-of-machine-learning-and-natural-language-processing-to-transformers-a-journey-19ic&quot; data-og-image=&quot;https://blog.kakaocdn.net/dna/boqu9P/dJMb9gxlHuz/AAAAAAAAAAAAAAAAAAAAAKg1M3HltKlM4NDrsFKAl1PZ6_06CFvrWUx3B6uq7OZq/img.jpg?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1777561199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=Uq0c5tSCeLkUnonADysj16jTyNM%3D&quot; data-og-url=&quot;https://dev.to/imsushant12/the-evolution-of-machine-learning-and-natural-language-processing-to-transformers-a-journey-19ic&quot;&gt;&lt;a href=&quot;https://dev.to/imsushant12/the-evolution-of-machine-learning-and-natural-language-processing-to-transformers-a-journey-19ic&quot; target=&quot;_blank&quot; data-source-url=&quot;https://dev.to/imsushant12/the-evolution-of-machine-learning-and-natural-language-processing-to-transformers-a-journey-19ic&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://blog.kakaocdn.net/dna/boqu9P/dJMb9gxlHuz/AAAAAAAAAAAAAAAAAAAAAKg1M3HltKlM4NDrsFKAl1PZ6_06CFvrWUx3B6uq7OZq/img.jpg?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1777561199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=Uq0c5tSCeLkUnonADysj16jTyNM%3D')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;The Evolution of Machine Learning and Natural Language Processing to Transformers: A Journey Through Time&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;Artificial Intelligence (AI) has undergone a remarkable transformation over the years, particularly...&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;dev.to&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;3.5. 오픈소스 생태계와 다양한 모델의 발전&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;LLM의 발전은 오픈소스 생태계의 기여로도 설명할 수 있습니다. 많은 연구자와 개발자들이 오픈소스 프로젝트에 참여하여, 다양한 모델을 개발하고 공유하고 있습니다. 이러한 협업은 LLM의 성능을 향상시키고, 새로운 아이디어와 기술이 빠르게 확산되는 데 기여하고 있습니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;4. 모델의 서비스화와 AI 플랫폼화&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;LLM은 이제 단순한 연구 모델을 넘어, 실제 서비스로 활용되고 있습니다. 기업들은 LLM을 기반으로 한 챗봇, 고객 지원 시스템, 콘텐츠 생성 도구 등을 개발하여 비즈니스에 적용하고 있습니다. 이러한 서비스화는 AI 플랫폼의 발전과 함께 이루어지고 있으며, 기업의 경쟁력을 높이는 데 중요한 역할을 하고 있습니다.&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://www.elancer.co.kr/blog/detail/806&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://www.elancer.co.kr/blog/detail/806&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Gemini(제미나이) 사용법, AI 전문가는 '이렇게' 사용합니다. I 이랜서 블로그&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;구글이 와신상담하며 발표한 생성형 AI Gemini(제미나이)를 어떻게 하면 효율적으로 활용할 수 있을까요? AI 전문가의 제미나이 활용 방법을 알려드립니다.&quot; data-og-host=&quot;www.elancer.co.kr&quot; data-og-source-url=&quot;https://www.elancer.co.kr/blog/detail/806&quot; data-og-image=&quot;https://blog.kakaocdn.net/dna/cdgMmW/dJMb8XkfD6q/AAAAAAAAAAAAAAAAAAAAANI-haeKfPujCzkfAO2f-vEgqtFBwL80MagiIf5DfW7f/img.jpg?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1777561199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=%2FcF36KVCvRkfrxXz0kRAdtWlUB4%3D&quot; data-og-url=&quot;https://www.elancer.co.kr/blog/detail/806&quot;&gt;&lt;a href=&quot;https://www.elancer.co.kr/blog/detail/806&quot; target=&quot;_blank&quot; data-source-url=&quot;https://www.elancer.co.kr/blog/detail/806&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://blog.kakaocdn.net/dna/cdgMmW/dJMb8XkfD6q/AAAAAAAAAAAAAAAAAAAAANI-haeKfPujCzkfAO2f-vEgqtFBwL80MagiIf5DfW7f/img.jpg?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1777561199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=%2FcF36KVCvRkfrxXz0kRAdtWlUB4%3D')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;Gemini(제미나이) 사용법, AI 전문가는 '이렇게' 사용합니다. I 이랜서 블로그&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;구글이 와신상담하며 발표한 생성형 AI Gemini(제미나이)를 어떻게 하면 효율적으로 활용할 수 있을까요? AI 전문가의 제미나이 활용 방법을 알려드립니다.&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;www.elancer.co.kr&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;4.1. Agentic AI와 상황 인식&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;Agentic AI는 사용자의 의도를 이해하고, 상황에 맞는 행동을 취할 수 있는 AI를 의미합니다. 이러한 AI는 LLM 기술을 활용하여 사용자와의 상호작용을 더욱 자연스럽고 효율적으로 만들어 줍니다. 예를 들어, 고객의 질문에 대한 적절한 답변을 제공하거나, 사용자의 요구에 맞춘 맞춤형 서비스를 제공할 수 있습니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;  LLM은 언어 능력에 집중된 모델이고, Agentic AI는 LLM을 기반으로 ‘맥락을 이해하고 행동하는 시스템’입니다. MCP 같은 프로토콜은 바로 이 Agentic AI가 다양한 도구와 데이터를 안전하게 연결해 상황 인식을 강화하는 핵심 인프라 역할을 합니다.&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;  상황 인식(Context Awareness)의 중요성&lt;br&gt;- 고객 서비스: 단순히 FAQ 답변이 아니라, 고객의 계정 상태·이전 대화·현재 문제를 고려해 맞춤형 해결책 제시.&amp;nbsp;&amp;nbsp;&lt;br&gt;- 비즈니스 지원: 단순 보고서 요약이 아니라, 회사의 KPI·시장 상황을 반영해 전략적 제안.&amp;nbsp;&amp;nbsp;&lt;br&gt;- 개인화 서비스: 사용자의 일정·취향·위치 정보를 반영해 맞춤형 추천 제공.&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://www.k2view.com/what-is-mcp-ai/?utm_source=perplexity&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://www.k2view.com/what-is-mcp-ai/?utm_source=perplexity&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;What is the Model Context Protocol for AI (MCP AI) | A Practical Guide&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;The key to enterprise adoption of MCP AI (Model Context Protocol for AI) is protected, unified, and context-rich company data delivered in real time.&quot; data-og-host=&quot;www.k2view.com&quot; data-og-source-url=&quot;https://www.k2view.com/what-is-mcp-ai/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cliSa7/dJMb8SpIfY6/kZKEeei0PrfvxISSadLNFk/img.jpg?width=1908&amp;amp;height=955&amp;amp;face=0_0_1908_955&quot; data-og-url=&quot;https://www.k2view.com/what-is-mcp-ai/&quot;&gt;&lt;a href=&quot;https://www.k2view.com/what-is-mcp-ai/&quot; target=&quot;_blank&quot; data-source-url=&quot;https://www.k2view.com/what-is-mcp-ai/&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cliSa7/dJMb8SpIfY6/kZKEeei0PrfvxISSadLNFk/img.jpg?width=1908&amp;amp;height=955&amp;amp;face=0_0_1908_955')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;What is the Model Context Protocol for AI (MCP AI) | A Practical Guide&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;The key to enterprise adoption of MCP AI (Model Context Protocol for AI) is protected, unified, and context-rich company data delivered in real time.&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;www.k2view.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;4.2. MCP를 통한 AI 모델 간 융합 서비스&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;MCP(모델 간 협업 플랫폼)는 여러 AI 모델이 협력하여 더 나은 결과를 도출할 수 있도록 돕는 플랫폼입니다. 이러한 협업은 다양한 모델의 강점을 결합하여, 보다 정교하고 효과적인 서비스를 제공할 수 있게 합니다. 예를 들어, 텍스트 생성 모델과 이미지 생성 모델이 협력하여, 사용자에게 더욱 풍부한 콘텐츠를 제공할 수 있습니다.&lt;br&gt;&lt;br&gt;▪︎ MCP(Model Context Protocol)를 아주 쉽게 설명하면 &quot;AI(LLM)에게 세상과 연결되는 만능 USB 포트(손잡이)를 달아주는 표준 기술&quot;&lt;br&gt;&lt;br&gt;2024년 말 Anthropic이 공개, 이후 OpenAI Agents SDK가 지원하면서 확산&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://tech.hancom.com/mcp-llm-agent/&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://tech.hancom.com/mcp-llm-agent/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;&quot; data-og-host=&quot;&quot; data-og-source-url=&quot;https://tech.hancom.com/mcp-llm-agent/&quot; data-og-image=&quot;&quot; data-og-url=&quot;&quot;&gt; &lt;a href=&quot;&quot; target=&quot;_blank&quot; data-source-url=&quot;https://tech.hancom.com/mcp-llm-agent/&quot;&gt; 
  &lt;div class=&quot;og-image&quot; style=&quot;background-image: url('')&quot;&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;og-text&quot;&gt; 
   &lt;p class=&quot;og-title&quot;&gt;&lt;/p&gt; 
   &lt;p class=&quot;og-desc&quot;&gt;&lt;/p&gt; 
   &lt;p class=&quot;og-host&quot;&gt;&lt;/p&gt; 
  &lt;/div&gt;&lt;/a&gt; 
&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;b&gt;MCP의 발전 배경&lt;br&gt;- 필요성:&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;- 기존 LLM은 강력한 언어 능력을 가졌지만 외부 데이터·API와의 연결이 불편했음.&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- 개발자가 매번 프롬프트에 API 사용법을 직접 설명해야 했고, 데이터베이스·문서·툴과의 연동이 비효율적 .&lt;br&gt;&lt;br&gt;&lt;b&gt;- MCP의 역할:&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;- USB-C 포트 비유: 다양한 데이터 소스·툴을 하나의 표준화된 방식으로 연결 .&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- 구조: Host–Client–Server로 구성, 안전하고 확장 가능한 AI 생태계 구축.&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;- 효과: LLM Agent가 외부 툴을 활용해 복잡한 작업을 자동화할 수 있게 함.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;5. 플랫폼 기반 지배력(경쟁력)&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;AI 플랫폼의 발전은 기업 간의 경쟁력을 결정짓는 중요한 요소가 되고 있습니다. LLM을 활용한 서비스는 고객의 요구에 빠르게 대응할 수 있는 능력을 제공하며, 이는 기업의 시장 지배력에 직접적인 영향을 미칩니다. 따라서 기업들은 LLM 기술을 적극적으로 도입하고, 이를 통해 경쟁력을 강화하려고 노력하고 있습니다.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;6. AI의 한계 환각과 서비스 신뢰 품질 향상&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;LLM의 지식과 응답은 전적으로 학습된 데이터에 의존합니다. 이는 두 가지 주요 한계를 가지고 있습니다.&lt;br&gt;&lt;br&gt;*.데이터 신뢰도: 모델이 학습한 데이터의 품질이 응답의 신뢰도를 결정합니다.&lt;br&gt;&lt;br&gt;*. 환각 현상 (Hallucination): 학습 데이터에 부정확하거나 편향된 정보가 포함된 경우, LLM은 사용자에게 잘못된 정보를 사실처럼 그럴듯하게 제공할 수 있습니다.&lt;br&gt;&lt;br&gt;AI 환각은 LLM이 생성한 결과물이 실제와 다를 수 있는 현상을 의미합니다. 이는 학습된 데이터의 한계로&amp;nbsp;&amp;nbsp;사용자가 기대하는 품질과는 다른 결과를 초래할 수 있습니다. 따라서 AI 기술의 발전과 함께 데이터 품질을 향상하고, 서비스 신뢰 품질을 향상시키기 위한 노력이 필요합니다. &lt;br&gt;이를 위해서는 지속적인 모델 개선과 RAG를 통한 실제 업무의 데이터를 보강하고, 사용자 피드백을 반영하는 것이 중요합니다.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt; 7. 사회적 격차 해소 방안&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;LLM 기술의 발전은 사회적 격차를 해소하는 데 기여할 수 있습니다. 예를 들어, 교육 분야에서 LLM을 활용하여 맞춤형 학습 자료를 제공하거나, 정보 접근성이 낮은 지역에 AI 기반의 서비스를 제공함으로써, 다양한 사회적 문제를 해결할 수 있는 가능성이 열리고 있습니다. 이러한 기술의 활용은 사회적 불평등을 줄이는 데 중요한 역할을 할 것입니다.&lt;br&gt;&lt;br&gt;LLM 기술의 발전은 인공지능의 미래를 밝히고 있으며, 앞으로도 다양한 분야에서 혁신을 이끌어낼 것입니다. 이러한 변화는 우리 사회에 긍정적인 영향을 미칠 것으로 기대됩니다.  &lt;br&gt;&lt;br&gt;&lt;br&gt;#인공지능 #LLM #자연어처리 #AI플랫폼 #트랜스포머 #어텐션 #오픈소스 #사회적격차 #AI환각 #기술발전&lt;br&gt;&lt;br&gt;&lt;br&gt;참고&lt;br&gt;&lt;br&gt;[1] LG AI Research - 생성형 AI 시대: 거대 언어 모델(LLM)의 기술 방향성 (https://www.lgresearch.ai/blog/view?seq=351)&lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;[2] 티스토리 - 자연어 처리 인공지능의 발전 - LLM 대규모 언어모델 진화과정 (https://data-scientist-jeong.tistory.com/41)&lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;[3] kakaocloud.com - &amp;lt;인사이트&amp;gt; 대규모 언어 모델(LLM)의 현재와 미래 (https://blog.kakaocloud.com/202?category=1212123)&lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;[4] 모두의연구소 - LLM, 인공지능의 미래를 이끌다 : 챗GPT를 넘어선 새로운 ... (https://modulabs.co.kr/blog/large-language-model)&lt;br&gt;&lt;br&gt;&lt;br&gt;[5] 사이언스타임즈 - &quot;AI 똑똑해질수록 더 이기적 행동 경향 보여&quot; (https://www.sciencetimes.co.kr/nscvrg/view/menu/249?searchCategory=221&amp;amp;nscvrgSn=261064)&lt;br&gt;&lt;br&gt;&lt;br&gt;[6] 국회도서관 국가전략포털 - 인공지능 LLM 시대의 미중 경쟁과 한국의 대응 방안 (https://nsp.nanet.go.kr/plan/subject/detail.do?newReportChk=list&amp;amp;nationalPlanControlNo=PLAN0000052705)&lt;br&gt;&lt;br&gt;&lt;br&gt;[7] 위키독스 - 인공지능 시대의 그림자… 기술 발전과 사회적 불평등의 딜레마 (https://wikidocs.net/325110)&lt;/p&gt;</description>
      <category>BigData</category>
      <category>attention</category>
      <category>LLM</category>
      <category>LLM모델 서비스</category>
      <category>Transformer</category>
      <category>인공지능</category>
      <category>인공지능의 진화와 사회</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/919</guid>
      <comments>https://couplewith.tistory.com/919#entry919comment</comments>
      <pubDate>Wed, 1 Apr 2026 07:49:01 +0900</pubDate>
    </item>
    <item>
      <title>[Ubuntu/Linux] SSH 서버 설치부터 보안을 위한 가이드</title>
      <link>https://couplewith.tistory.com/918</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;383&quot; data-origin-height=&quot;355&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qQY8j/dJMcahKzs4z/pmeZCZdkxkCnqXBkDaKp8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qQY8j/dJMcahKzs4z/pmeZCZdkxkCnqXBkDaKp8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qQY8j/dJMcahKzs4z/pmeZCZdkxkCnqXBkDaKp8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqQY8j%2FdJMcahKzs4z%2FpmeZCZdkxkCnqXBkDaKp8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;383&quot; height=&quot;355&quot; data-origin-width=&quot;383&quot; data-origin-height=&quot;355&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;[Ubuntu/Linux]&amp;nbsp;SSH&amp;nbsp;서버&amp;nbsp;설치부터&amp;nbsp;보안을&amp;nbsp;위한&amp;nbsp;포트&amp;nbsp;변경&amp;nbsp;및&amp;nbsp;Root&amp;nbsp;로그인&amp;nbsp;차단&amp;nbsp;가이드&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리눅스 서버를 구축한 후 가장 먼저 해야 할 일은 원격 접속을 위한 SSH 설정입니다. 하지만 기본 설정 그대로 방치하면 무작위 대입 공격(Brute-force)의 표적이 되기 쉽습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우분투(Ubuntu) / Linux 환경에서 SSH를 설치하고 보안을 강화하는 필수 설정법을 알아보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;6&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6&quot;&gt;1. SSH 서버 설치 및 상태 확인&lt;/b&gt;&lt;/h2&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;먼저 시스템에 SSH 서비스가 설치되어 있는지 확인하고 설치합니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;리눅스 SSH 보안을 강화하려면&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;root 로그인 금지, 비밀번호 인증 대신 SSH 키(Public Key) 기반 인증 사용, 기본 22번 포트 변경, 그리고 Fail2Ban을 통한 무차별 대입 공격 차단&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;이 필수적입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;1.1. 데비안/우분투 계열 (Ubuntu, Debian, Linux Mint)&lt;/p&gt;
&lt;pre id=&quot;code_1774326117556&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 1. 패키지 리스트 업데이트
sudo apt update

# 2. SSH 서버 설치
sudo apt install openssh-server -y

# 3. 서비스 상태 확인
sudo systemctl status ssh&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.2. 레드햇/CentOS/Fedora 계열 (RHEL, Rocky Linux, AlmaLinux)&lt;/p&gt;
&lt;pre id=&quot;code_1774326202718&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 1. SSH 서버 설치
sudo dnf install openssh-server -y  # (또는 yum install)

# 2. 서비스 시작 및 부팅 시 자동 실행 설정
sudo systemctl start sshd
sudo systemctl enable sshd

# 3. 서비스 상태 확인
sudo systemctl status sshd&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10&quot;&gt;2. sshd_config 설정을 통한 보안 강화&lt;/b&gt;&lt;/h2&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;SSH의 핵심 설정 파일인 /etc/ssh/sshd_config를 수정하여 보안을 강화합니다.&lt;/p&gt;
&lt;div data-ved=&quot;0CAAQhtANahcKEwiAl4jt07eTAxUAAAAAHQAAAAAQRA&quot; data-hveid=&quot;0&quot;&gt;
&lt;div&gt;&lt;span&gt;Bash&lt;/span&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;sudo vi /etc/ssh/sshd_config

#* 다음과 같이 수정합니다.
#Port 22
Port 2233
#PermitRootLogin prohibit-password 또는 yes
PermitRootLogin no

PasswordAuthentication no 
MaxAuthTries 3&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBRAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;Port 2233&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(22번 대신 1024~65535 사이의 임의 번호 입력)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBRAB&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;PermitRootLogin no&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(루트 직접 접속 차단)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBRAC&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;PasswordAuthentication no&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(반드시&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;SSH 키 등록 후&lt;/b&gt;에 변경하세요! 미리 하면 접속이 막힙니다.)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBRAD&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;MaxAuthTries 3&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(로그인 시도 횟수 제한 추가 권장)&lt;/span&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;wLzL5d_1l,wLzL5d_1m&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=wLzL5d_1k/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-path-to-node=&quot;13&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13&quot;&gt;① 접속 포트(Port) 변경&lt;/b&gt;&lt;/h4&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;기본 포트인 &lt;b data-index-in-node=&quot;7&quot; data-path-to-node=&quot;14&quot;&gt;22번&lt;/b&gt;은 공격자들이 가장 먼저 스캔하는 포트입니다. 이를 1024~65535 사이의 임의의 번호로 변경하는 것이 좋습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;15&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,0,0&quot;&gt;수정 전:&lt;/b&gt; #Port 22&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,1,0&quot;&gt;수정 후:&lt;/b&gt; Port 2233 (원하는 번호로 입력)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-path-to-node=&quot;16&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16&quot;&gt;② Root 로그인 차단&lt;/b&gt;&lt;/h4&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;보안상 루트 계정으로 바로 접속하는 것은 매우 위험합니다. 일반 사용자로 접속 후 sudo 권한을 사용하는 방식을 권장합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;18&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,0,0&quot;&gt;수정 전:&lt;/b&gt; PermitRootLogin prohibit-password 또는 yes&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,1,0&quot;&gt;수정 후:&lt;/b&gt; PermitRootLogin no&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;③ Fail2Ban 설치 및 활성화&lt;/span&gt; &lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;자동화된 공격을 차단하는 가장 효율적인 방법&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;color: #0a0a0a; text-align: start;&quot;&gt;
&lt;div&gt;bash&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #0a0a0a; text-align: start;&quot;&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;④ SSH 키(Key) 생성 및 서버 등록 방법 3단계 (비밀번호 없이 접속하기)&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;ㅁ&amp;nbsp;&amp;nbsp;&lt;u&gt;&lt;b&gt;&amp;nbsp;1단계: 내 컴퓨터에서 키 쌍(Key Pair) 생성&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;u&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;o1XIjb_w,o1XIjb_x&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=o1XIjb_v/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;pre class=&quot;excel&quot; style=&quot;background-color: #f0f2f5; color: #0a0a0a; text-align: start;&quot;&gt;&lt;code&gt;ssh-keygen -t ed25519 -C &quot;내-서버-별칭&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-complete=&quot;true&quot; data-processed=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBhAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;-t ed25519&lt;/b&gt;: 최근 가장 권장되는 빠르고 안전한 알고리즘입니다. (구형 시스템은&lt;span&gt;&amp;nbsp;&lt;/span&gt;-t rsa -b 4096&lt;span&gt;&amp;nbsp;&lt;/span&gt;사용)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-complete=&quot;true&quot; data-sae=&quot;&quot; data-hveid=&quot;CAEIBhAB&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;Enter 처리&lt;/b&gt;: 파일 경로나 비밀번호(Passphrase)를 묻는데, 처음이라면 그냥&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Enter&lt;/b&gt;를 세 번 눌러 기본값으로 생성하세요.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBhAC&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;결과:&lt;span&gt;&amp;nbsp;&lt;/span&gt;~/.ssh/&lt;span&gt;&amp;nbsp;&lt;/span&gt;폴더에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;id_ed25519&lt;/b&gt;(개인키-절대 유출 금지)와&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;id_ed25519.pub&lt;/b&gt;(공개키-서버용) 파일 생성됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&amp;nbsp;&lt;u&gt;&lt;b&gt;ㅁ&amp;nbsp; 2단계: 서버에 공개키 전송 (등록)&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;생성한&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;공개키(.pub)&lt;/b&gt;를 서버에 복사해야 합니다. 가장 간단한 방법은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;ssh-copy-id&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;명령어를 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;css&quot; style=&quot;background-color: #f0f2f5; color: #0a0a0a; text-align: start;&quot;&gt;&lt;code&gt;ssh-copy-id -p [포트번호] [사용자계정]@[서버IP]&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIChAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;예:&lt;span&gt;&amp;nbsp;&lt;/span&gt;ssh-copy-id -p 22 admin@1.2.3.4&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIChAB&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;명령어가 실행되면 서버의 비밀번호를 한 번 입력합니다. 이제 공개키가 서버의&lt;span&gt;&amp;nbsp;&lt;/span&gt;~/.ssh/authorized_keys&lt;span&gt;&amp;nbsp;&lt;/span&gt;파일에 자동으로 등록됩니다.&lt;/span&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;o1XIjb_2h,o1XIjb_2i&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=o1XIjb_2g/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIChAB&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;o1XIjb_2h,o1XIjb_2i&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=o1XIjb_2g/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;ㅁ &lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;3단계: 비밀번호 없이 접속 확인&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;이제 아래 명령어로 접속을 시도해 보세요. 비밀번호 없이 바로 로그인이 된다면 성공입니다.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;o1XIjb_2q,o1XIjb_2r&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=o1XIjb_2p/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;css&quot; style=&quot;background-color: #f0f2f5; color: #0a0a0a; text-align: start;&quot;&gt;&lt;code&gt;ssh -p [포트번호] [사용자계정]@[서버IP]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; &lt;span style=&quot;color: #0a0a0a; text-align: start;&quot;&gt;⑤ 패스워드 접근 차단 : &lt;span style=&quot;color: #0a0a0a; text-align: start;&quot;&gt;PasswordAuthentication no&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;설정&lt;/span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;작동이 된다면&amp;nbsp; 비밀번호 로그인 완전히 차단&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;하기 (&lt;/span&gt;PasswordAuthentication no&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;설정) 를 통해 접근을 차단 할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 data-path-to-node=&quot;20&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;20&quot;&gt;3. 설정 적용 및 서비스 재시작&lt;/b&gt;&lt;/h2&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;설정 파일을 저장(:wq)한 후, 변경 사항을 시스템에 반영해야 합니다.&lt;/p&gt;
&lt;div data-ved=&quot;0CAAQhtANahcKEwiAl4jt07eTAxUAAAAAHQAAAAAQRQ&quot; data-hveid=&quot;0&quot;&gt;
&lt;div&gt;&lt;span&gt;Bash&lt;/span&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;properties&quot;&gt;&lt;code&gt;# 설정 데몬 리로드
sudo systemctl daemon-reload

# SSH 서비스 재시작 (Stop &amp;amp; Start)
sudo systemctl stop ssh
sudo systemctl start ssh

# 또는 한 번에 재시작
sudo systemctl restart ssh
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;blockquote data-path-to-node=&quot;23&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-path-to-node=&quot;23,0&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,0&quot;&gt;주의사항:&lt;/b&gt; 포트를 변경했다면 반드시 방화벽(UFW 등)에서 해당 포트를 허용해 주어야 접속이 끊기지 않습니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;23,1&quot; data-ke-size=&quot;size16&quot;&gt;sudo ufw allow 2233/tcp&lt;/p&gt;
&lt;pre class=&quot;bash&quot; style=&quot;background-color: #f0f2f5; color: #0a0a0a; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;sudo ufw allow 2233/tcp  # 변경한 포트 허용
sudo ufw limit 2233/tcp # 동일 IP의 단시간 과다 접속 차단 (간이 Fail2ban 효과)
sudo ufw enable&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-path-to-node=&quot;24&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-path-to-node=&quot;25&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;25&quot;&gt;4. 요약 및 결론&lt;/b&gt;&lt;/h2&gt;
&lt;p data-path-to-node=&quot;26&quot; data-ke-size=&quot;size16&quot;&gt;SSH 보안의 기본은 &lt;b&gt;'잘 알려진 정보 삭제' &lt;/b&gt;만으로도 효과적입니다.&lt;br /&gt;&amp;nbsp;- 포트 번호만 바꿔도 자동화된 공격의 90% 이상을 차단할 수 있습니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;26&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;28&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;28&quot;&gt;추천 키워드&lt;/b&gt;&lt;/h2&gt;
&lt;p data-path-to-node=&quot;29&quot; data-ke-size=&quot;size16&quot;&gt;Ubuntu SSH 설정, 리눅스 보안, sshd_config 수정, SSH 포트 변경, RootLogin 차단, 우분투 서버 구축, Linux Security, SSH 설치 가이드&lt;/p&gt;</description>
      <category>DevOps</category>
      <category>linux security</category>
      <category>openssh</category>
      <category>RootLogin 차단</category>
      <category>SSH 설치 가이드</category>
      <category>ssh 포트 변경</category>
      <category>sshd_config 수정</category>
      <category>Ubuntu SSH 설정</category>
      <category>리눅스 보안</category>
      <category>우분투 서버 구축</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/918</guid>
      <comments>https://couplewith.tistory.com/918#entry918comment</comments>
      <pubDate>Tue, 24 Mar 2026 13:49:38 +0900</pubDate>
    </item>
    <item>
      <title>노트북에서 사용할 만한 open LLM 추천</title>
      <link>https://couplewith.tistory.com/917</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;559&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WrAHh/dJMcadnUF2g/YvgKgOHDKZ2qalgRa7XBv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WrAHh/dJMcadnUF2g/YvgKgOHDKZ2qalgRa7XBv0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WrAHh/dJMcadnUF2g/YvgKgOHDKZ2qalgRa7XBv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWrAHh%2FdJMcadnUF2g%2FYvgKgOHDKZ2qalgRa7XBv0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;559&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;559&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;노트북에서 사용할&amp;nbsp;&amp;nbsp;open LLM 추천&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;2026년 현재, 오픈 소스 LLM은 '단순 텍스트'를 넘어 모든 매체를 넘나드는 네이티브 멀티모달과 고도의 추론 능력이 핵심입니다. 노트북 환경에서도 충분히 돌아가는 성능 위주로 추천해 드릴게요.&lt;br /&gt;&lt;br /&gt;LLM의 용도에 따라 다음과 같이 분류 해 봅니다.&lt;br /&gt;&lt;br /&gt;1.추론(Reasoning) :간단한 질문과 응답이 가능&lt;br /&gt;2.경량화모델 : 노트북에서도 사용가능&lt;br /&gt;3.멀티모달 (이미지&amp;middot;음성&amp;middot;영상 종합) 종합적인 기능 제&lt;br /&gt;4. 생성 모델 전용 (이미지,음악,음성등) &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;1. 추론(Reasoning) 및 종합 지능&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;* &lt;b&gt;DeepSeek-R1 (Distill 시리즈):&lt;/b&gt; 현재 오픈 소스 추론의 끝판왕입니다. 노트북 사양에 따라 7B(저사양) 또는 32B(고사양) 모델을 추천합니다. 수학, 코딩, 복잡한 논리 구조 설계에서 GPT-4o급 성능을 냅니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* Llama 3.3 (70B): &lt;/b&gt;범용성이 가장 뛰어납니다. 텍스트 이해도가 깊고 한국어 처리 능력이 검증된 표준 모델입니다. [2] &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;2. 경량화-노트북 최적화 (On-Device)&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;* Phi-4 (14B) / Phi-Silica:&lt;/b&gt; 마이크로소프트가 만든 초경량 고성능 모델입니다. NPU가 탑재된 최신 AI PC 노트북에서 배터리 소모를 최소화하며 GPT-4급 텍스트 처리를 수행합니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* Gemma 2 (9B/27B):&lt;/b&gt; 구글의 기술력이 집약된 모델로, 용량 대비 한국어 문맥 파악 능력이 매우 뛰어납니다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;3. 멀티모달 (이미지&amp;middot;음성&amp;middot;영상 종합)&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;* Qwen2.5-VL: &lt;/b&gt;이미지를 보고 분석하거나 영상 속의 맥락을 읽어내는 능력이 탁월합니다. 노트북 카메라와 연동하여 실시간 사물 인식이나 문서 스캔 후 분석에 유용합니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* Llama 3.2 Vision (11B)&lt;/b&gt;: 텍스트와 시각 정보를 동시에 처리하는 메타의 핵심 멀티모달 모델로, 로컬 환경에서 가볍게 쓰기 좋습니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;4. 생성형 미디어 (이미지&amp;middot;음악&amp;middot;음성)&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;* 이미지: Flux.1 (Schnell): &lt;/b&gt;스테이블 디퓨전 이후 가장 각광받는 모델입니다. Schnell 버전은 4단계의 짧은 연산만으로 사진 같은 고퀄리티 이미지를 뽑아냅니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* 음성: Fish Speech / GPT-SoVITS:&lt;/b&gt; 단 10초의 샘플만으로도 고퀄리티 복제 음성을 만들거나 텍스트를 자연스러운 목소리로 읽어줍니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* 음악: Stable Audio Open&lt;/b&gt;: 텍스트 설명만으로 44.1kHz 음질의 음악 루프나 효과음을 즉석에서 생성합니다.&lt;br /&gt;&lt;br /&gt;------------------------------&lt;br /&gt;&lt;b&gt;  노트북 사양별 LLM 추천 조합&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;* RAM 16GB 이하: Phi-4 (14B) + Llama 3.2 (3B) + Flux.1 (Schnell)&lt;br /&gt;* RAM 32GB 이상: DeepSeek-R1 (32B) + Qwen2.5-VL + Flux.1 (Dev)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;5. 노트북 추천 실행 환경&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;☀️HP Victus 15-fb3001AX는 Ryzen 9 8945HS 프로세서와 RTX 4060(VRAM 8GB)에 적합한 LLM 환경&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;5.1 LLM환경 구성&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt; Ollama: 텍스트 기반 AI(Llama, DeepSeek 등)를 가장 간편하게 설치하고 실행하는 도구입니다.&lt;br /&gt;&lt;br /&gt; LM Studio: 그래픽 UI를 통해 모델을 검색하고 채팅할 수 있어 초보자에게 추천합니다.&lt;br /&gt;&lt;br /&gt; Forge (Stable Diffusion): Flux.1 같은 이미지 생성 모델을 RTX 4060에서 가장 효율적으로 구동해주는 인터페이스입니다. &lt;br /&gt;&lt;br /&gt;⚠️팁: 16GB RAM은 모델 구동 시 다소 타이트할 수 있으니, AI 실행 중에는 크롬 브라우저 탭을 줄이는 등 메모리 관리를 해주시면 훨씬 쾌적합니다. &lt;br /&gt;&lt;br /&gt;  Ollama 란? (LLM 실행 도구)&lt;br /&gt;정체: 내 컴퓨터(로컬)에서 거대 언어 모델(LLM)을 아주 쉽게 설치하고 돌릴 수 있게 해주는 '플랫폼'입니다.&lt;br /&gt;특징: 복잡한 코딩 없이 터미널 명령어나 앱 하나로 Llama 3, DeepSeek, Phi-4 같은 텍스트 기반 AI를 내 컴퓨터에 내려받아 바로 대화할 수 있게 해줍니다.&lt;br /&gt;용도: 텍스트 채팅, 코드 작성, 문서 요약 등 텍스트 기반 작업을 로컬에서 처리할 때 사용합니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;52. 추천 오픈 모델 (Ollama 지원)&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;16GB RAM과 8GB VRAM 환경에서 가장 쾌적하게 돌아가는 조합입니다.&lt;br /&gt;&lt;br /&gt;  &lt;b&gt;추론용: DeepSeek-R1-Distill-Llama-8B&lt;/b&gt;&lt;br /&gt;이유: R1의 강력한 논리 추론 능력을 8B 사이즈로 줄인 모델입니다. 답변 속도가 매우 빠릅니다. 수학, 코딩, 복잡한 기획 업무에 추천합니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;범용/대화용: Llama 3.2 (3B) 또는 Gemma 2 (9B)&lt;/b&gt;&lt;br /&gt;이유: 일상적인 대화나 요약에 최적화되어 있습니다. 특히 Gemma 2 9B는 한국어 문맥 파악 능력이 뛰어나며, 4-bit 양자화 모델을 쓰면 16GB RAM 환경에서 여유롭게 구동됩니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;b&gt;멀티모달: Qwen2-VL-7B-Instruct&lt;/b&gt;&lt;br /&gt;이유: 이미지를 분석하거나 표를 읽어내는 능력이 뛰어납니다. RTX 4060의 가속을 받아 이미지 분석 결과를 실시간에 가깝게 얻을 수 있습니다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;5.3. 이미지 생성 모델 (Flux.1)&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;추천 버전: Flux.1 [schnell]&lt;br /&gt;이유: Flux.1 중 가장 가벼운 버전입니다. 8GB VRAM에서도 고해상도 이미지를 10~20초 내외로 생성할 수 있습니다. 텍스트가 포함된 로고나 실사 이미지를 만들 때 사용하세요.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[1] [https://www.aitimes.kr](https://www.aitimes.kr/news/articleView.html?idxno=37817#:~:text=%EC%A7%80%EB%82%9C%203%EB%85%84%EA%B0%84%20%EC%A0%84%20%EC%84%B8%EA%B3%84%20%EC%A3%BC%EC%9A%94%20%EC%97%B0%EA%B5%AC%EA%B8%B0%EA%B4%80%EA%B3%BC%20%EA%B8%B0%EC%97%85%EC%9D%84,%EC%95%84%EC%9A%B0%EB%A5%B4%EB%8A%94%20%EB%8B%A4%EC%96%91%ED%95%9C%20%EA%B3%A0%EC%84%B1%EB%8A%A5%20%EC%B6%94%EB%A1%A0%20%EB%AA%A8%EB%8D%B8%EC%9D%B4%20%ED%8F%AD%EB%84%93%EA%B2%8C%20%EB%93%B1%EC%9E%A5%ED%96%88%EB%8B%A4.)&lt;br /&gt;[2] [https://skywork.ai](https://skywork.ai/blog/llm/z-ai-glm-4-5-guide-free-chat-ko/#:~:text=%EC%B5%9C%EC%B2%A8%EB%8B%A8%20%EC%84%B1%EB%8A%A5%20%EC%88%9C%EC%9C%84%20%ED%83%81%EC%9B%94%ED%95%9C%20%EC%B6%94%EB%A1%A0%20%EB%8A%A5%EB%A0%A5:%20%EC%88%98%ED%95%99%EC%A0%81,%EC%9A%B0%EC%88%98%ED%95%9C%20%EC%84%B1%EB%8A%A5%EC%9D%84%20%EB%B3%B4%EC%97%AC%EC%A4%80%EB%8B%A4.%20%EC%BD%94%EB%94%A9%20%EC%97%AD%EB%9F%89:%20%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8%20%EA%B8%B0%EB%8A%A5:)&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Tech-Trends</category>
      <category>Open LLM</category>
      <category>노트북용 LLM추천</category>
      <category>오픈소스 LLM추천</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/917</guid>
      <comments>https://couplewith.tistory.com/917#entry917comment</comments>
      <pubDate>Tue, 17 Mar 2026 08:22:21 +0900</pubDate>
    </item>
    <item>
      <title>WSL2 VHDX 가상드라이버 추가하기</title>
      <link>https://couplewith.tistory.com/916</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;1280&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c7Ey2m/dJMcai970Ao/66Df96ooA0Tf8Kjs5PTxL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c7Ey2m/dJMcai970Ao/66Df96ooA0Tf8Kjs5PTxL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c7Ey2m/dJMcai970Ao/66Df96ooA0Tf8Kjs5PTxL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc7Ey2m%2FdJMcai970Ao%2F66Df96ooA0Tf8Kjs5PTxL1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;1280&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WSL2 설치 후&amp;nbsp; OS를 별도의 가상드라이버 준비를 했지만 리눅스의 Data 영역을 별도의 이미지로 관리를 하고자 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 별도의 가상드라이버를 생성하고 마운트 하는 것을 고려 했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음과 같이 WSL &quot;Oracke95&quot; 리눅스로 설치를 하여 다음과 같이 파일을 마운트 하려고 했으나&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용할 때마다 수동으로 다음과 같은 명령을 해야 마운트가 되었습니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;wsl --mount \\.\PhysicalDriveX --vhd --bare&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;wsl -d Oracle95 --mount \\?\C:\WSL\wslimgs\wsl_data.vhdx --vhd --bare&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;WSL OS 가 설치된 가상 드라이버 이미지 로&amp;nbsp; &quot;C:\\WSL\\wslimgs\\oracle95.vhdx&quot; 가 있다. &lt;br /&gt;&amp;nbsp; (앞에서 설명한 블로그 참조)&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;WSL 가상디스크 볼륨 생성&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; - WSL2의 이미지를 사용자가 지정하는 디렉토리에 저장하는 것과 가상드라이버 만드는 부분은 아래 정리해둔 내용을 참고 합니다.&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;https://couplewith.tistory.com/578&quot;&gt;[InfraPlatform] - How to WSL2 - WSL 기본 설치 디렉토리 커스텀 경로 변경&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp; &amp;nbsp;&lt;a title=&quot;WSL 가상 디스크 마운트&quot; href=&quot;https://couplewith.tistory.com/909&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[InfraPlatform] - WSL2에서 VHDX 디스크 마운트하는 방법&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dna/bGXc5G/dJMcahDpfMa/AAAAAAAAAAAAAAAAAAAAAHP0WfZmJJafToTHghmLDBsiJ_QRlD72zGJzjvi_pdiP/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1772290799&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=QJigVjObF8YFkCprMtzOwjIFXQs%3D&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;99&quot; data-is-animation=&quot;false&quot; /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;가상디스크 볼륨 연결&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;윈도우 &amp;gt; 시스템 &amp;gt; 저장소 설정 &amp;gt;&amp;gt; 고급 저장소 설정 &amp;gt;&amp;gt; 디스크 및 볼륨&quot; 으로 이동합니다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;398&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsb86r/dJMcafli7tr/rTaUieSmtBOxMH57c0vpB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsb86r/dJMcafli7tr/rTaUieSmtBOxMH57c0vpB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsb86r/dJMcafli7tr/rTaUieSmtBOxMH57c0vpB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbsb86r%2FdJMcafli7tr%2FrTaUieSmtBOxMH57c0vpB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;615&quot; height=&quot;344&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;398&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.&amp;nbsp; &amp;nbsp; VHD 만들기를 이용하여 데이터를 저장한 디스크를 만듭니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 가상하드 디스크 이름 &quot;wsl_data2&quot; 라고 가정하고 , 위치는 D: 같은 곳에 지정을 합니다.&lt;br /&gt;&amp;nbsp; &amp;nbsp; - 가상디스크 크기를 20GB 로 하고&amp;nbsp; VHDX 형식으로&amp;nbsp; 동적할당을 하여서 (데이터가 저장되면 용량이 20GB 까지 커집니다.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;501&quot; data-origin-height=&quot;699&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dv6QAY/dJMcadOu9vB/WnJhrH77ifsNPgVkqHk48K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dv6QAY/dJMcadOu9vB/WnJhrH77ifsNPgVkqHk48K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dv6QAY/dJMcadOu9vB/WnJhrH77ifsNPgVkqHk48K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdv6QAY%2FdJMcadOu9vB%2FWnJhrH77ifsNPgVkqHk48K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;340&quot; height=&quot;474&quot; data-origin-width=&quot;501&quot; data-origin-height=&quot;699&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 생성된 VHD를 연결 합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;저는 기존에 만들어둔&amp;nbsp; &quot;C:\WSL\wslimgs\\wsl_data.vhdx&quot; 파일을 연결 합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;344&quot; data-origin-height=&quot;302&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dhkFVM/dJMcahcltoe/ZnDR4g6LdC1vyccecRnnf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dhkFVM/dJMcahcltoe/ZnDR4g6LdC1vyccecRnnf1/img.png&quot; data-alt=&quot;-가상드라이버 연결-&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dhkFVM/dJMcahcltoe/ZnDR4g6LdC1vyccecRnnf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdhkFVM%2FdJMcahcltoe%2FZnDR4g6LdC1vyccecRnnf1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;344&quot; height=&quot;302&quot; data-origin-width=&quot;344&quot; data-origin-height=&quot;302&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;-가상드라이버 연결-&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- &quot;diskpart&quot;&amp;nbsp; 명령으로 수동으로 가상드라이버를 마운트 하는 방법&lt;/p&gt;
&lt;pre id=&quot;code_1771649278869&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;diskpart
select vdisk file=&quot;C:\WSL\wslimgs\wsl_data.vhdx&quot;
attach vdisk
exit&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 연결된 가상디스크의 정보를 확인 합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 디스크 ID 가 1 이라고 설정이 되어 있습니다. (중요)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;338&quot; data-origin-height=&quot;285&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c3l3MF/dJMcafr37hT/E0Yqhf0sK6UkqjIgwnZiIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c3l3MF/dJMcafr37hT/E0Yqhf0sK6UkqjIgwnZiIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c3l3MF/dJMcafr37hT/E0Yqhf0sK6UkqjIgwnZiIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3l3MF%2FdJMcafr37hT%2FE0Yqhf0sK6UkqjIgwnZiIK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;338&quot; height=&quot;285&quot; data-origin-width=&quot;338&quot; data-origin-height=&quot;285&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;추가&amp;gt; 윈도우&amp;nbsp; commad&amp;nbsp; &quot;diskpart&quot; 라는 명령 또는 &quot; &lt;span style=&quot;background-color: oklch(0.2282 0.047 83.09 / 0.035); color: #4d4d4c; text-align: right;&quot;&gt;diskmgmt.msc&lt;/span&gt; &quot; 으로&amp;nbsp; 디스크가 연결된 상태를 확인 해봅니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771648757994&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;PS C:\WSL&amp;gt; diskpart

Microsoft DiskPart 버전 10.0.26100.1150

Copyright (C) Microsoft Corporation.
컴퓨터: DESKTOP-D7UFGB2

DISKPART&amp;gt; list vdisk

  가상 디스크 ###  디스크 ###  상태                 형식       파일
  ---------------  ----------  -------------------  ---------  ----
  가상 디스크 0    디스크 1    연결되고 열리지 않음          확장 가능      C:\WSL\wslimgs\wsl_data.vhdx&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 연결된 VHDX를&amp;nbsp; wsl에서 사용 합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 가상드라이버 disk ID가&amp;nbsp; disk 1 입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771648912407&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 가상드라이버 ID : 디스크 X 
wsl --mount \\.\PhysicalDriveX --bare


C:\WSL&amp;gt;wsl --mount \\.\PhysicalDrive1 --bare
작업을 완료했습니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5.&amp;nbsp; WSL을 실행합니다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1771651039874&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;C:\WSL&amp;gt;wsl
[root@DESKTOP-D7UFGB2 WSL]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sde       1007G   18G  938G   2% /
/dev/sdd1        39G   36K   37G   1% /app_data&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;* 작동이 되는 현재 상태 정리 : &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- &lt;b&gt;&lt;span style=&quot;background-color: oklch(0.2282 0.047 83.09 / 0.035); color: #4d4d4c; text-align: right;&quot;&gt;diskmgmt.msc&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt; : 디스크가 연결되어 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;b&gt;- diskpart :&amp;nbsp;&lt;/b&gt; 아래 상태로 연결 되어 있음&lt;/p&gt;
&lt;pre id=&quot;code_1771651340693&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;      DISKPART&amp;gt; list vdisk

  가상 디스크 ###  디스크 ###  상태                 형식       파일
  ---------------  ----------  -------------------  ---------  ----
  가상 디스크 0    디스크 1    연결되고 열리지 않음          확장 가능      C:\WSL\wslimgs\wsl_data.vhdx&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &lt;b&gt;- 저장소 &amp;gt;&amp;gt; 디스크 볼륨 &amp;gt;&amp;gt; Msft Virtual Disk&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;648&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dhJ8jF/dJMcagExEbq/GEuD2KnheJK3TANis7UXNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dhJ8jF/dJMcagExEbq/GEuD2KnheJK3TANis7UXNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dhJ8jF/dJMcagExEbq/GEuD2KnheJK3TANis7UXNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdhJ8jF%2FdJMcagExEbq%2FGEuD2KnheJK3TANis7UXNk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;358&quot; height=&quot;648&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;648&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(참고) 관련 명령 과 오류&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;diskpart - vdisk 연결 해제 명령어&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1771658732934&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;diskpart
list vdisk  (현재 연결된 vdisk 확인)
select vdisk file=&quot;C:\path\to\your.vhdx&quot;  (vdisk 선택, 전체 경로 필수)
attach vdisk  (attach, 읽기전용은 attach vdisk readonly)
detach vdisk  (detach, 연결된 vdisk 해제)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WSL의 가상디스크를 이용하여 로딩 하는 방법&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot; &lt;span style=&quot;color: #4d4d4c; text-align: right;&quot;&gt;&lt;span&gt;wsl --import-in-place Oracle95 C:\WSL\wslimgs\oracle95.vhdx&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #4d4d4c; text-align: right;&quot;&gt;&amp;nbsp;wsl -d Oracle95 &quot;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #4d4d4c; text-align: right;&quot;&gt;다음과 같은 오류 가 발생 하였는데 원인과 문제 해결은 찾기 어렵다&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #4d4d4c; text-align: right;&quot;&gt;&amp;nbsp; &amp;nbsp;- disk를 attach detach 하고 여러번 하다보니 해결 됨 ㅜㅜ&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #4d4d4c; text-align: right;&quot;&gt;PS&amp;nbsp;C:\WSL&amp;gt;&amp;nbsp;wsl&amp;nbsp;--mount&amp;nbsp;\\.\PhysicalDrive1&amp;nbsp;--vhd&amp;nbsp;--bare &lt;br /&gt;잘못된&amp;nbsp;기능입니다. &lt;br /&gt;오류&amp;nbsp;코드:&amp;nbsp;Wsl/0x80070001&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #4d4d4c; text-align: right;&quot;&gt;C:\WSL&amp;gt;wsl&amp;nbsp;--unmount&amp;nbsp;\\.\PhysicalDrive1&amp;nbsp;--vhd &lt;br /&gt;지정된&amp;nbsp;파일을&amp;nbsp;찾을&amp;nbsp;수&amp;nbsp;없습니다. &lt;br /&gt;오류&amp;nbsp;코드:&amp;nbsp;Wsl/Service/DetachDisk/ERROR_FILE_NOT_FOUND&lt;/span&gt;&lt;/p&gt;</description>
      <category>DevOps</category>
      <category>diskmgmt.msc</category>
      <category>diskpart를 이용한 디스크 연결</category>
      <category>가상디스크 생성과 연결</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/916</guid>
      <comments>https://couplewith.tistory.com/916#entry916comment</comments>
      <pubDate>Sat, 21 Feb 2026 14:30:15 +0900</pubDate>
    </item>
    <item>
      <title>Local LLM구축 - Ollama에서 Llama3 수동 설치 및 맞춤형 모델 사용</title>
      <link>https://couplewith.tistory.com/915</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1400&quot; data-origin-height=&quot;787&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qCsst/dJMcagLujH7/i2qX60ycJlrks5D1qDLaPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qCsst/dJMcagLujH7/i2qX60ycJlrks5D1qDLaPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qCsst/dJMcagLujH7/i2qX60ycJlrks5D1qDLaPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqCsst%2FdJMcagLujH7%2Fi2qX60ycJlrks5D1qDLaPk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;337&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1400&quot; data-origin-height=&quot;787&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Local LLM구축 - Ollama에서 Llama3 수동 설치 및 맞춤형 모델 사용&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- llama3 + ollama&amp;nbsp; 모델 다운로드 와 등록&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네트워크&amp;nbsp;제한이&amp;nbsp;있는&amp;nbsp;환경이거나,&amp;nbsp;특정&amp;nbsp;양자화(Quantization)&amp;nbsp;버전의&amp;nbsp;GGUF&amp;nbsp;파일을&amp;nbsp;직접&amp;nbsp;사용하고&amp;nbsp;싶을&amp;nbsp;때&amp;nbsp;Ollama의&amp;nbsp;Modelfile을&amp;nbsp;활용하면&amp;nbsp;매우&amp;nbsp;편리합니다.&amp;nbsp;이번&amp;nbsp;포스팅에서는&amp;nbsp;Llama3&amp;nbsp;모델&amp;nbsp;다운로드부터&amp;nbsp;사용자&amp;nbsp;정의&amp;nbsp;모델&amp;nbsp;생성까지의&amp;nbsp;전&amp;nbsp;과정을&amp;nbsp;정리합니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Ollama 설치와 모델 등록 작업 순서&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. GGUF 파일 다운로드:&lt;/b&gt; 모델 파일 확보&lt;br /&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,1,0&quot;&gt;2.Modelfile 작성&lt;/b&gt;: 모델 설정 및 파라미터 정의&lt;br /&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,2,0&quot;&gt;3. 모델 생성&lt;/b&gt;: ollama create 명령어로 등록 : ollama create my-llama3 -f Modelfile&lt;br /&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,3,0&quot;&gt;4. 실행 및 검증&lt;/b&gt;: ollama run으로 테스트 : ollama&amp;nbsp;run&amp;nbsp;my-llama3&amp;nbsp;&quot;테스트&quot;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;b&gt;STEP&lt;/b&gt; 1. llama3 모델을 다운로드 합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 모델 파일을 저장할 디렉토리를 생성하고, Hugging Face에서 최적화된 GGUF 파일을 다운로드합니다. (여기서는 8B Instruct 모델의 Q4_K_M 양자화 버전을 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://huggingface.co/lmstudio-ai/Meta-Llama-3-8B-Instruct-GGUF/resolve/main/Meta-Llama-3-8B-Instruct-Q4_K_M.gguf&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://huggingface.co/lmstudio-ai/Meta-Llama-3-8B-Instruct-GGUF/resolve/main/Meta-Llama-3-8B-Instruct-Q4_K_M.gguf&lt;/a&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1771047826684&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 다운로드 디렉토리 생성
mkdir -p ~/ollama-models/llama3
cd ~/ollama-models/llama3

# 방법A: Hugging Face (TLS 우회 curl -k)
curl -k -L -o llama3-8b-Q4_K_M.gguf \
  &quot;https://huggingface.co/bartowski/Meta-Llama-3-8B-Instruct-GGUF/resolve/main/Meta-Llama-3-8B-Instruct-Q4_K_M.gguf&quot;

# 방법B: Ollama 레지스트리 직접 (TLS 우회)
curl -k -L &quot;https://registry.ollama.ai/v2/library/llama3/blobs/sha256:$(curl -s https://registry.ollama.ai/v2/library/llama3/manifests/latest | jq -r '.layers[0].digest | split(&quot;:&quot;)[1]')&quot; -o llama3.gguf&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;STEP2. 모델을 다운받아 Ollama에 등록 합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;Makefile을 만들어 파라미터를 튜닝합니다. 모델의&amp;nbsp;성격(창의성,&amp;nbsp;답변&amp;nbsp;길이&amp;nbsp;등)을&amp;nbsp;결정하는&amp;nbsp;Modelfile을&amp;nbsp;생성합니다.&amp;nbsp;이&amp;nbsp;파일은&amp;nbsp;Docker의&amp;nbsp;Dockerfile과&amp;nbsp;유사한&amp;nbsp;역할을&amp;nbsp;합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771047864568&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Modelfile 생성 (Sample)
cat &amp;gt; Modelfile &amp;lt;&amp;lt; 'EOF'
FROM ./llama3-8b-Q4_K_M.gguf
PARAMETER temperature 0.8
PARAMETER top_p 0.9
EOF&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;  Modelfile 전체 구조&amp;nbsp; 설명&lt;/b&gt; &lt;br /&gt;&lt;b&gt;1.&amp;nbsp; FROM ./llama3-8b-Q4_K_M.gguf &lt;/b&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;- 역할: 베이스 모델 지정 (필수 항목)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 모델 파일의 경로를 지정합니다. 상대/절대 경로 모두 가능합니다. &lt;br /&gt;- 구문: FROM &amp;lt;모델경로&amp;gt; 또는 FROM &amp;lt;모델명&amp;gt;:&amp;lt;태그&amp;gt;&lt;br /&gt;- 의미: &lt;br /&gt;&amp;nbsp; &amp;nbsp;. `./llama3-8b-Q4_K_M.gguf` = 현재 디렉토리의 GGUF 파일 사용 &lt;br /&gt;&amp;nbsp; &amp;nbsp;. 로컬 파일 직접 지정 &amp;rarr; ollama pull/TLS 우회 완전 해결 &lt;br /&gt;&amp;nbsp; &amp;nbsp;. 상대경로(`./`) 또는 절대경로(`/home/user/model.gguf)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2.&amp;nbsp;PARAMETER&amp;nbsp;temperature&amp;nbsp;0.8&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 역할: 생성 온도(Temperature) 설정&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 값이 높을수록 창의적이고, 낮을수록 일관된 답변을 출력합니다. &lt;br /&gt;-범위: 0.0 ~ 2.0 (기본값: 0.8, )&amp;nbsp;&lt;br /&gt;-의미 : &lt;br /&gt;&amp;nbsp; &amp;nbsp;- **0.0에 가까울수록**: 결정적, 반복적 출력 (안정적) &lt;br /&gt;&amp;nbsp; &amp;nbsp;- **1.0에 가까울수록**: 창의적, 다양성 증가 (랜덤) &lt;br /&gt;&amp;nbsp; &amp;nbsp;- ** 0.7 ~ 0.8 **: 창의성과 안정성 균형 (대화/작성 권장)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. PARAMETER&amp;nbsp;top_p&amp;nbsp;0.9&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 역할: Nucleus Sampling 확률 임계값&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;확률 분포 내에서 누적 확률이 p인 토큰들만 고려하여 &quot;쓰레기&quot; 출력을 방지합니다. &lt;br /&gt;&lt;b&gt;-범위: 0.0 ~ 1.0 (기본값: 0.9)&lt;/b&gt;&lt;br /&gt;- 의미: &lt;br /&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;- **top_p=0.9**: 누적 확률 90% 토큰만 고려 (권장)&lt;/b&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;- 낮은 확률 토큰 자동 제외 &amp;rarr; &quot;쓰레기&quot; 출력 방지 &lt;br /&gt;&amp;nbsp; &amp;nbsp;-&amp;nbsp; top_k와 함께 사용으로 품질 &amp;uarr;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. num_ctx&amp;nbsp; 4096&lt;br /&gt;&lt;/b&gt;&amp;nbsp;- 역할: 모델이 한 번에 기억하는 대화의 길이를 결정합니다.&lt;br /&gt;&amp;nbsp;- 범위 : 4096 이상 (권장)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(예시) 완성된 Modefile 예시&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1771048110719&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 완전한 Modelfile 예제

cat &amp;gt; Modelfile &amp;lt;&amp;lt; 'EOF'
FROM ./llama3-8b-Q4_K_M.gguf

# 2. 생성 파라미터 최적화
PARAMETER temperature 0.8    # 창의성과 안정성 균형 (0.0~2.0)
PARAMETER top_p 0.9          # 상위 90% 확률 토큰 내에서 선택
PARAMETER top_k 40           # 후보 단어 수 제한
PARAMETER num_ctx 8192       # 컨텍스트 창 크기 설정
PARAMETER repeat_penalty 1.1 # 반복 문구 방지

# 시스템 프롬프트 설정 (페르소나 부여)
SYSTEM &quot;당신은 도움이 되는 AI 어시스턴트입니다.명확하고 정확하게 한국어로 답변하세요.&quot;

# 사용자 정의 템플릿 (고급)
TEMPLATE &quot;&quot;&quot;{{ .Prompt }} -&amp;gt; {{ .Response }}&quot;&quot;&quot;
EOF&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; STEP 3: Ollama 모델 생성 및 등록&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작성한 Modelfile을 기반으로 Ollama에 새로운 모델 이름을 부여하여 등록합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1776220968985&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# ollama create [새 모델 이름] -f [파일 경로]
ollama create llama3-manual -f Modelfile&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-path-to-node=&quot;19&quot; data-ke-size=&quot;size20&quot;&gt;STEP 4: 실행 및 테스트&lt;/h4&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;등록된 모델이 정상적으로 작동하는지 확인합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1776221014438&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 모델 실행
ollama run llama3-manual &quot;안녕? 너는 누구니?&quot;

# 등록된 모델 목록 확인
ollama list&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;26&quot; data-ke-size=&quot;size23&quot;&gt;4. 자동화 쉘 스크립트&amp;nbsp; 작성 (Quick Start)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;27&quot; data-ke-size=&quot;size16&quot;&gt;위 과정을 한 번에 수행하고 싶다면 아래 스크립트를 복사하여 실행하세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; # 전체 작업 정리&amp;nbsp; 생성하는 예시 : &lt;b&gt;ollama-manual-llama3&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#!/bin/bash &lt;br /&gt;#&amp;nbsp;ollama-manual-llama3.sh &lt;br /&gt;&lt;br /&gt;MODEL_DIR=~/ollama-models/llama3 &lt;br /&gt;mkdir&amp;nbsp;-p&amp;nbsp;$MODEL_DIR &lt;br /&gt;cd&amp;nbsp;$MODEL_DIR &lt;br /&gt;&lt;br /&gt;echo&amp;nbsp;&quot; &amp;nbsp;llama3&amp;nbsp;GGUF&amp;nbsp;다운로드&amp;nbsp;중...&amp;nbsp;(~4.7GB)&quot; &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;최신&amp;nbsp;llama3:8b&amp;nbsp;Q4_K_M&amp;nbsp;(Hugging&amp;nbsp;Face) &lt;br /&gt;curl&amp;nbsp;-k&amp;nbsp;-L&amp;nbsp;-o&amp;nbsp;llama3-8b-Q4_K_M.gguf&amp;nbsp;\ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&quot;&lt;a href=&quot;https://huggingface.co/bartowski/Meta-Llama-3-8B-Instruct-GGUF/resolve/main/Meta-Llama-3-8B-Instruct-Q4_K_M.gguf&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://huggingface.co/bartowski/Meta-Llama-3-8B-Instruct-GGUF/resolve/main/Meta-Llama-3-8B-Instruct-Q4_K_M.gguf&lt;/a&gt;&quot; &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;Modelfile&amp;nbsp;생성 &lt;br /&gt;cat&amp;nbsp;&amp;gt;&amp;nbsp;Modelfile&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;'EOF' &lt;br /&gt;FROM&amp;nbsp;./llama3-8b-Q4_K_M.gguf &lt;br /&gt;PARAMETER&amp;nbsp;temperature&amp;nbsp;0.8 &lt;br /&gt;PARAMETER top_p 0.9&lt;br /&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;SYSTEM &lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&quot;당신은 유능한 AI 전문가입니다.&quot;&lt;br /&gt;&lt;/span&gt;EOF &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;모델&amp;nbsp;등록&lt;br /&gt;&lt;span&gt;echo&lt;/span&gt; &lt;span&gt;&quot;⚙️ Ollama 모델 등록 중...&quot;&lt;/span&gt; &lt;br /&gt;ollama&amp;nbsp;create&amp;nbsp;llama3-manual&amp;nbsp;-f&amp;nbsp;Modelfile &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;테스트 &lt;br /&gt;ollama&amp;nbsp;run&amp;nbsp;llama3-manual&amp;nbsp;&quot;테스트&amp;nbsp;완료!&quot; &lt;br /&gt;&lt;br /&gt;echo&amp;nbsp;&quot;✅&amp;nbsp;수동&amp;nbsp;설치&amp;nbsp;완료!&amp;nbsp;ollama&amp;nbsp;list&amp;nbsp;확인&quot; &lt;br /&gt;ollama&amp;nbsp;list&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ollama를 사용하면 복잡한 환경 설정 없이도 로컬에서 최신 LLM을 자유롭게 커스텀할 수 있습니다. 특히 Modelfile을 통해 &lt;b data-index-in-node=&quot;75&quot; data-path-to-node=&quot;31&quot;&gt;나만의 시스템 프롬프트&lt;/b&gt;를 미리 심어두면, 실행할 때마다 별도의 설정을 할 필요가 없어 매우 효율적으로 사용 가능합니다.&lt;/p&gt;</description>
      <category>BigData</category>
      <category>Llama3 GGUF 다운로드 설치</category>
      <category>Local LLM구축 - Ollama+ Llama3</category>
      <category>Modefile 작성</category>
      <category>Ollama 설치와 모델 등록</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/915</guid>
      <comments>https://couplewith.tistory.com/915#entry915comment</comments>
      <pubDate>Sat, 14 Feb 2026 14:49:49 +0900</pubDate>
    </item>
    <item>
      <title>Ollama + LLama + NVIDIA - WSL Oracle Linux 9.5</title>
      <link>https://couplewith.tistory.com/914</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Ollama&amp;nbsp;+&amp;nbsp;LLAMa&amp;nbsp;-&amp;nbsp;WSL&amp;nbsp;Oracle&amp;nbsp;Linux&amp;nbsp;9.5&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#install NVIDIA , Cuda, ollama, LLama&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#install NVIDIA&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;NVIDIA CUDA 저장소 추가&lt;/h4&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;dnf/yum 작동을 위해 : /etc/yum.repos.d/nvidia.com.repo 를 작성합니다.&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1775191632468&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# /etc/yum.repos.d/nvidia.com.repo  을 아래와 같이 작성합니다.

[cuda-rhel10-x86_64]
name=cuda-rhel10-x86_64
baseurl=https://developer.download.nvidia.com/compute/cuda/repos/rhel10/x86_64
enabled=1
sslverify=0
gpgcheck=1
gpgkey=https://developer.download.nvidia.com/compute/cuda/repos/rhel10/x86_64/CDF6BA43.pub

[nvidia.com]
name=created by dnf config-manager from https://nvidia.com
baseurl=http://nvidia.com
enabled=0
sslverify=0&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;CUDA Toolkit 설치 (드라이버 제외)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;WSL에서는 커널 모듈이 필요 없으므로, 전체 cuda 메타 패키지 대신 &lt;b&gt;CUDA Toolkit&lt;/b&gt;만 설치하면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1770967979112&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#NVIDIA CUDA 환경 설정
sudo dnf install -y kernel-headers kernel-devel gcc make
sudo dnf install -y cuda


# NVIDIA CUDA 저장소 추가
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo
sudo dnf clean all


# CUDA Toolkit 설치
sudo dnf -y install cuda-toolkit-13-1



# 환경 변수 설정
echo 'export PATH=/usr/local/cuda/bin:$PATH' &amp;gt;&amp;gt; ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' &amp;gt;&amp;gt; ~/.bashrc
source ~/.bashrc


# CUDA Toolkit 점검
nvcc --version
nvidia-smi&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;nvcc --version &amp;rarr; CUDA 컴파일러 버전 확인&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;nvidia-smi &amp;rarr; WSL에서 GPU가 정상적으로 노출되는지 확인&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt; PyTorch 및 Transformers GPU 최적화 &lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1770968245730&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu131&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;PyTorch GPU 테스트&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;CUDA가 정상적으로 동작하는지 Python에서 확인:&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1770968056723&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import torch
print(torch.cuda.is_available())
print(torch.cuda.get_device_name(0))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;LangChain RAG 파이프라인 GPU 최적화&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;임베딩 모델을 GPU에서 실행:&lt;/p&gt;
&lt;pre id=&quot;code_1770968296540&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 임베딩 모델을 GPU에서 실행:
from langchain.embeddings import HuggingFaceEmbeddings

embeddings = HuggingFaceEmbeddings(
    model_name=&quot;sentence-transformers/all-MiniLM-L6-v2&quot;,
    model_kwargs={&quot;device&quot;: &quot;cuda&quot;}
)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LLaMA 모델을 Ollama로 호출하면서 GPU 활용:&lt;/p&gt;
&lt;pre id=&quot;code_1770968331516&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from langchain.llms import Ollama
llm = Ollama(model=&quot;llama2&quot;, options={&quot;num_gpu&quot;:1})&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;RAG 체인 구성:&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1770968348810&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from langchain.chains import RetrievalQA
from langchain.vectorstores import FAISS

vectorstore = FAISS.load_local(&quot;faiss_index&quot;, embeddings)
qa = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type=&quot;stuff&quot;,
    retriever=vectorstore.as_retriever()
)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;FAISS GPU 모드&lt;/b&gt;: FAISS를 GPU에서 실행하려면 faiss-gpu 패키지를 설치:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1770968400518&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install faiss-gpu&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;Ollama가 GPU를 인식하는지 확인 (--verbose 옵션).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;PyTorch에서 torch.cuda.is_available()가 True인지 확인.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;LangChain 임베딩 및 FAISS 검색이 GPU에서 실행되는지 확인.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PDF 문서를 불러와서 GPU 기반 RAG 검색을 수행하는 예제는 &lt;b&gt;LangChain + FAISS + HuggingFace 임베딩&lt;/b&gt;을 활용하면 쉽게 구성할 수 있습니다. CUDA GPU를 활용하려면 임베딩과 벡터 검색을 GPU에서 실행하도록 설정해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1770968504286&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install langchain pypdf faiss-gpu torch transformers sentence-transformers&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;PDF 문서 로딩 및 임베딩&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1770968521454&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from langchain.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.embeddings import HuggingFaceEmbeddings
from langchain.vectorstores import FAISS

# PDF 문서 로드
loader = PyPDFLoader(&quot;example.pdf&quot;)
documents = loader.load()

# 텍스트 분할
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=100)
docs = text_splitter.split_documents(documents)

# GPU 기반 임베딩 모델 설정
embeddings = HuggingFaceEmbeddings(
    model_name=&quot;sentence-transformers/all-MiniLM-L6-v2&quot;,
    model_kwargs={&quot;device&quot;: &quot;cuda&quot;}   # GPU 사용
)

# FAISS 벡터스토어 생성 (GPU 버전)
vectorstore = FAISS.from_documents(docs, embeddings)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span&gt; Ollama + LLaMA 모델 연결 &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1770968537190&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from langchain.llms import Ollama
from langchain.chains import RetrievalQA

# Ollama LLaMA 모델 (GPU 옵션)
llm = Ollama(model=&quot;llama2&quot;, options={&quot;num_gpu&quot;:1})

# RAG 체인 구성
qa = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type=&quot;stuff&quot;,
    retriever=vectorstore.as_retriever()
)

# 질의 실행
query = &quot;이 PDF 문서에서 CUDA 설치 관련 내용을 요약해줘&quot;
print(qa.run(query))&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;성능 최적화 포인트&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;FAISS GPU 모드&lt;/b&gt;: faiss-gpu 설치 시 GPU에서 벡터 검색 수행 &amp;rarr; 대규모 문서 검색 속도 향상.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;Batch Embedding&lt;/b&gt;: 문서 임베딩 시 batch_size를 크게 설정하면 GPU 활용도가 높아짐.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;Mixed Precision&lt;/b&gt;: PyTorch AMP(torch.cuda.amp)를 활용하면 FP16 연산으로 속도 개선.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>InfraPlatform</category>
      <category>FAISS GPU 모드</category>
      <category>llama RAG</category>
      <category>wsl ollama RAG</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/914</guid>
      <comments>https://couplewith.tistory.com/914#entry914comment</comments>
      <pubDate>Fri, 13 Feb 2026 16:47:13 +0900</pubDate>
    </item>
    <item>
      <title>로또 복권 당첨 번호 추천</title>
      <link>https://couplewith.tistory.com/913</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;#로또&amp;nbsp;복권&amp;nbsp;당첨&amp;nbsp;번호&amp;nbsp;추천&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;392&quot; data-origin-height=&quot;414&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dd3Qkq/dJMcabb0KBk/P9mGqI1m3NtBekjKYaFjW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dd3Qkq/dJMcabb0KBk/P9mGqI1m3NtBekjKYaFjW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dd3Qkq/dJMcabb0KBk/P9mGqI1m3NtBekjKYaFjW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdd3Qkq%2FdJMcabb0KBk%2FP9mGqI1m3NtBekjKYaFjW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;392&quot; height=&quot;414&quot; data-origin-width=&quot;392&quot; data-origin-height=&quot;414&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로또 당첨 번호 추천&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;code_1770458921953&quot; data-ke-type=&quot;html&quot; data-source=&quot;&amp;lt;!-- 로또 QR 앱이 작동할 특정 div 영역 --&amp;gt;
&amp;lt;div id=&amp;quot;source_contents&amp;quot;&amp;gt;
    &amp;lt;div id=&amp;quot;lotto-app-container&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
    
    &amp;lt;script src=&amp;quot;https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
    
    &amp;lt;style&amp;gt;
        /* #source_contents 내부에만 적용되는 완전 격리 CSS */
        #source_contents {
            --lotto-mint-gray: #E8F5E9;
            --lotto-mint-green: #4CAF50;
            --lotto-dark-mint: #388E3C;
            --lotto-light-mint: #C8E6C9;
            --lotto-gray-800: #374151;
            --lotto-gray-100: #F3F4F6;
            --lotto-shadow-mint: rgba(76, 175, 80, 0.25);
            --lotto-border-green: #A5D6A7;
            
            all: initial; /* 외부 스타일 초기화 */
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
            margin: 0 !important;
            padding: 4px !important;
            background: linear-gradient(135deg, var(--lotto-mint-gray) 0%, var(--lotto-light-mint) 50%, #F1F8E9 100%) !important;
            min-height: 400px !important;
            display: flex !important;
            flex-direction: column !important;
            align-items: center !important;
            overflow-x: hidden !important;
            box-sizing: border-box !important;
            width: 100% !important;
        }

        #source_contents * {
            box-sizing: border-box !important;
        }

        #source_contents #lotto-app-container {
            width: 100% !important;
            max-width: 100% !important;
            margin: 0 !important;
            padding: 0 2px !important;
        }

        #source_contents .lotto-container {
            width: 100% !important;
            max-width: 100% !important;
            margin: 0 !important;
            padding: 0 !important;
            background: #fff !important;
            border-radius: 12px !important;
            box-shadow: 0 8px 25px var(--lotto-shadow-mint) !important;
            border: 1px solid var(--lotto-light-mint) !important;
            overflow: hidden !important;
            display: flex !important;
            flex-direction: column !important;
        }

        #source_contents .lotto-header {
            background: linear-gradient(135deg, var(--lotto-mint-green), var(--lotto-dark-mint)) !important;
            color: white !important;
            padding: 14px 12px !important;
            text-align: center !important;
            font-size: 17px !important;
            font-weight: 600 !important;
        }

        #source_contents .lotto-content {
            padding: 16px 12px !important;
            flex: 1 !important;
            display: flex !important;
            flex-direction: column !important;
            gap: 14px !important;
            background: #fff !important;
        }

        #source_contents .lotto-round-input {
            background: var(--lotto-gray-100) !important;
            padding: 10px 12px !important;
            border-radius: 8px !important;
            border: 1px solid var(--lotto-light-mint) !important;
        }

        #source_contents .lotto-round-input label {
            display: block !important;
            font-size: 13px !important;
            color: var(--lotto-dark-mint) !important;
            margin-bottom: 6px !important;
            font-weight: 500 !important;
        }

        #source_contents .lotto-round-input input {
            width: 100% !important;
            height: 42px !important;
            padding: 0 10px !important;
            font-size: 17px !important;
            font-weight: 600 !important;
            border: 2px solid transparent !important;
            border-radius: 8px !important;
            background: white !important;
            text-align: center !important;
        }

        #source_contents .lotto-round-input input:focus {
            border-color: var(--lotto-mint-green) !important;
            outline: none !important;
        }

        #source_contents .lotto-controls {
            display: flex !important;
            gap: 6px !important;
            justify-content: center !important;
            flex-wrap: wrap !important;
        }

        #source_contents .lotto-auto-btn, 
        #source_contents .lotto-clear-btn {
            padding: 10px 14px !important;
            font-size: 13px !important;
            font-weight: 600 !important;
            border: none !important;
            border-radius: 20px !important;
            cursor: pointer !important;
            transition: all 0.2s !important;
            flex: 1 !important;
            min-width: 76px !important;
        }

        #source_contents .lotto-auto-btn {
            background: linear-gradient(135deg, #FF9800, #F57C00) !important;
            color: white !important;
            box-shadow: 0 4px 12px rgba(255, 152, 0, 0.3) !important;
        }

        #source_contents .lotto-auto-btn:hover {
            transform: translateY(-1px) !important;
            box-shadow: 0 6px 16px rgba(255, 152, 0, 0.4) !important;
        }

        #source_contents .lotto-clear-btn {
            background: #f0f0f0 !important;
            color: var(--lotto-gray-800) !important;
            border: 1px solid #ddd !important;
        }

        #source_contents .lotto-clear-btn:hover {
            background: #e0e0e0 !important;
        }

        #source_contents .lotto-lines {
            flex: 1 !important;
            display: flex !important;
            flex-direction: column !important;
            gap: 8px !important;
            overflow-y: auto !important;
            -webkit-overflow-scrolling: touch !important;
            max-height: 240px !important;
            padding: 0 2px !important;
        }

        #source_contents .lotto-line-group {
            display: flex !important;
            gap: 4px !important;
            justify-content: center !important;
            flex-wrap: wrap !important;
            align-items: center !important;
        }

        #source_contents .lotto-line-group label {
            font-size: 12px !important;
            color: var(--lotto-dark-mint) !important;
            font-weight: 600 !important;
            min-width: 30px !important;
            margin-right: 2px !important;
        }

        #source_contents .lotto-number-input {
            width: 42px !important;
            height: 40px !important;
            padding: 0 2px !important;
            font-size: 15px !important;
            font-weight: 700 !important;
            font-family: 'Courier New', monospace !important;
            text-align: center !important;
            border: 2px solid var(--lotto-border-green) !important;
            border-radius: 6px !important;
            background: white !important;
            transition: all 0.2s !important;
        }

        #source_contents .lotto-number-input:focus {
            border-color: var(--lotto-mint-green) !important;
            outline: none !important;
            box-shadow: 0 0 0 3px rgba(76, 175, 80, 0.2) !important;
        }

        #source_contents .lotto-generate-btn {
            background: linear-gradient(135deg, var(--lotto-mint-green), var(--lotto-dark-mint)) !important;
            color: white !important;
            border: none !important;
            padding: 14px 20px !important;
            font-size: 15px !important;
            font-weight: 700 !important;
            border-radius: 25px !important;
            cursor: pointer !important;
            box-shadow: 0 6px 20px var(--lotto-shadow-mint) !important;
            transition: all 0.3s !important;
            text-transform: uppercase !important;
            letter-spacing: 0.5px !important;
            flex-shrink: 0 !important;
            margin: 0 4px !important;
        }

        #source_contents .lotto-generate-btn:hover,
        #source_contents .lotto-generate-btn:active {
            transform: translateY(-2px) !important;
            box-shadow: 0 10px 25px var(--lotto-shadow-mint) !important;
        }

        #source_contents .lotto-result-section {
            padding: 14px 12px !important;
            background: var(--lotto-gray-100) !important;
            border-radius: 12px !important;
            display: flex !important;
            flex-direction: column !important;
            align-items: center !important;
            gap: 10px !important;
            flex-shrink: 0 !important;
        }

        #source_contents .lotto-qr-container {
            width: 170px !important;
            height: 170px !important;
            background: white !important;
            border-radius: 12px !important;
            display: flex !important;
            align-items: center !important;
            justify-content: center !important;
            box-shadow: 0 4px 15px rgba(0,0,0,0.15) !important;
            flex-shrink: 0 !important;
        }

        #source_contents .lotto-qr-link {
            font-size: 12px !important;
            color: var(--lotto-gray-800) !important;
            word-break: break-all !important;
            background: white !important;
            padding: 8px !important;
            border-radius: 8px !important;
            border-left: 4px solid var(--lotto-mint-green) !important;
            width: 100% !important;
            max-height: 70px !important;
            overflow-y: auto !important;
            font-family: 'Courier New', monospace !important;
            text-align: left !important;
            line-height: 1.4 !important;
        }

        /* 스크롤바 */
        #source_contents .lotto-lines::-webkit-scrollbar,
        #source_contents .lotto-qr-link::-webkit-scrollbar {
            width: 4px !important;
        }

        #source_contents .lotto-lines::-webkit-scrollbar-track,
        #source_contents .lotto-qr-link::-webkit-scrollbar-track {
            background: var(--lotto-gray-100) !important;
            border-radius: 2px !important;
        }

        #source_contents .lotto-lines::-webkit-scrollbar-thumb,
        #source_contents .lotto-qr-link::-webkit-scrollbar-thumb {
            background: var(--lotto-mint-green) !important;
            border-radius: 2px !important;
        }

        /* 모바일 미디어쿼리 */
        @media (max-width: 375px) {
            #source_contents {
                padding: 2px !important;
            }
            
            #source_contents .lotto-content {
                padding: 14px 8px !important;
                gap: 12px !important;
            }
            
            #source_contents .lotto-number-input {
                width: 40px !important;
                height: 38px !important;
                font-size: 14px !important;
            }
            
            #source_contents .lotto-qr-container {
                width: 160px !important;
                height: 160px !important;
            }
        }

        @media (min-width: 768px) {
            #source_contents #lotto-app-container {
                max-width: 420px !important;
                padding: 0 20px !important;
            }
            
            #source_contents .lotto-container {
                max-width: 420px !important;
            }
            
            #source_contents .lotto-result-section {
                flex-direction: row !important;
                justify-content: center !important;
            }
            
            #source_contents .lotto-qr-container {
                flex-shrink: 0 !important;
            }
            
            #source_contents .lotto-qr-link {
                flex: 1 !important;
                max-width: 280px !important;
                max-height: none !important;
            }
        }
    &amp;lt;/style&amp;gt;

    &amp;lt;script&amp;gt;
        (function() {
            function initLottoApp() {
                const appContainer = document.getElementById(&amp;quot;lotto-app-container&amp;quot;);
                if (!appContainer) return;

                appContainer.innerHTML = &amp;#96;
                    &amp;lt;div class=&amp;quot;lotto-container&amp;quot;&amp;gt;
                        &amp;lt;div class=&amp;quot;lotto-header&amp;quot;&amp;gt;로또 QR 조회&amp;lt;/div&amp;gt;
                        
                        &amp;lt;div class=&amp;quot;lotto-content&amp;quot;&amp;gt;
                            &amp;lt;div class=&amp;quot;lotto-round-input&amp;quot;&amp;gt;
                                &amp;lt;label&amp;gt;회차&amp;lt;/label&amp;gt;
                                &amp;lt;input id=&amp;quot;round&amp;quot; type=&amp;quot;number&amp;quot; min=&amp;quot;1164&amp;quot; placeholder=&amp;quot;1164&amp;quot; /&amp;gt;
                            &amp;lt;/div&amp;gt;
                            
                            &amp;lt;div class=&amp;quot;lotto-controls&amp;quot;&amp;gt;
                                &amp;lt;button class=&amp;quot;lotto-auto-btn&amp;quot; id=&amp;quot;autoGenerate&amp;quot;&amp;gt;로또 자동생성&amp;lt;/button&amp;gt;
                                &amp;lt;button class=&amp;quot;lotto-clear-btn&amp;quot; id=&amp;quot;clearAll&amp;quot;&amp;gt;초기화&amp;lt;/button&amp;gt;
                            &amp;lt;/div&amp;gt;
                            
                            &amp;lt;div class=&amp;quot;lotto-lines&amp;quot; id=&amp;quot;lotto-lines&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
                            
                            &amp;lt;button class=&amp;quot;lotto-generate-btn&amp;quot; id=&amp;quot;create&amp;quot;&amp;gt;QR 조회하기&amp;lt;/button&amp;gt;
                            &amp;lt;input id=&amp;quot;qrlink&amp;quot; type=&amp;quot;hidden&amp;quot; /&amp;gt;
                            
                            &amp;lt;div class=&amp;quot;lotto-result-section&amp;quot;&amp;gt;
                                &amp;lt;div class=&amp;quot;lotto-qr-container&amp;quot; id=&amp;quot;qrcode&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
                                &amp;lt;div class=&amp;quot;lotto-qr-link&amp;quot; id=&amp;quot;area&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
                            &amp;lt;/div&amp;gt;
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;
                &amp;#96;;

                // 동적 입력 필드 생성
                const lottoLinesContainer = document.getElementById(&amp;quot;lotto-lines&amp;quot;);
                for (let i = 1; i &amp;lt;= 5; i++) {
                    const div = document.createElement(&amp;quot;div&amp;quot;);
                    div.className = &amp;quot;lotto-line-group&amp;quot;;
                    div.innerHTML = &amp;#96;&amp;lt;label&amp;gt;${i}번째&amp;lt;/label&amp;gt;&amp;#96; +
                        Array.from({ length: 6 }, (_, idx) =&amp;gt; 
                            &amp;#96;&amp;lt;input type=&amp;quot;number&amp;quot; class=&amp;quot;lotto-number-input line${i}&amp;quot; min=&amp;quot;1&amp;quot; max=&amp;quot;45&amp;quot; maxlength=&amp;quot;2&amp;quot; oninput=&amp;quot;inputCheck(this)&amp;quot; placeholder=&amp;quot;${idx+1}&amp;quot;&amp;gt;&amp;#96;
                        ).join('');
                    lottoLinesContainer.appendChild(div);
                }

                // 이벤트 바인딩
                document.getElementById(&amp;quot;autoGenerate&amp;quot;).addEventListener(&amp;quot;click&amp;quot;, generateRandomLotto);
                document.getElementById(&amp;quot;clearAll&amp;quot;).addEventListener(&amp;quot;click&amp;quot;, clearAllInputs);
                document.getElementById(&amp;quot;create&amp;quot;).addEventListener(&amp;quot;click&amp;quot;, makeQR);

                document.addEventListener('keypress', function(e) {
                    if (e.key === 'Enter' || e.keyCode === 13) {
                        makeQR();
                    }
                });
            }

            function generateRandomNumbers(count = 6) {
                const numbers = [];
                while (numbers.length &amp;lt; count) {
                    const num = Math.floor(Math.random() * 45) + 1;
                    if (!numbers.includes(num)) {
                        numbers.push(num);
                    }
                }
                return numbers.sort((a, b) =&amp;gt; a - b);
            }

            function generateRandomLotto() {
                for (let i = 1; i &amp;lt;= 5; i++) {
                    const numbers = generateRandomNumbers(6);
                    document.querySelectorAll(&amp;#96;.line${i}&amp;#96;).forEach((input, idx) =&amp;gt; {
                        input.value = numbers[idx];
                    });
                }
                setTimeout(() =&amp;gt; {
                    alert('5줄 로또 번호가 자동 생성되었습니다!');
                }, 100);
            }

            function clearAllInputs() {
                document.getElementById(&amp;quot;round&amp;quot;).value = '';
                document.querySelectorAll('.lotto-number-input').forEach(input =&amp;gt; {
                    input.value = '';
                });
                document.getElementById(&amp;quot;qrcode&amp;quot;).innerHTML = '';
                document.getElementById(&amp;quot;area&amp;quot;).textContent = '';
            }

            function makeQR() {
                const round = document.getElementById(&amp;quot;round&amp;quot;).value.padStart(4, '0');
                if (!round || round &amp;lt; 1164) {
                    alert('회차를 입력해주세요 (1164회차 이상)');
                    return;
                }

                let url = &amp;#96;https://m.dhlottery.co.kr/qr.do?method=winQr&amp;amp;v=${round}&amp;#96;;

                for (let i = 1; i &amp;lt;= 5; i++) {
                    const lineNumbers = Array.from(document.querySelectorAll(&amp;#96;.line${i}&amp;#96;))
                        .map(input =&amp;gt; input.value.padStart(2, '0')).join('');
                    if (lineNumbers &amp;amp;&amp;amp; lineNumbers !== '000000') {
                        url += &amp;#96;q${lineNumbers}&amp;#96;;
                    }
                }

                url += &amp;#96;%EF%BB%BF&amp;#96;;

                document.getElementById(&amp;quot;qrlink&amp;quot;).value = url;
                
                const hasNumbers = url.includes('q');
                document.getElementById(&amp;quot;area&amp;quot;).textContent = hasNumbers 
                    ? &amp;#96;QR 링크가 생성되었습니다\n(5줄 번호 포함)&amp;#96;
                    : &amp;#96;회차 ${round} QR 링크\n(번호 입력 후 다시 생성하세요)&amp;#96;;

                const qrContainer = document.getElementById(&amp;quot;qrcode&amp;quot;);
                const qrSize = window.innerWidth &amp;lt;= 375 ? 160 : (window.innerWidth &amp;lt;= 480 ? 170 : 200);
                qrContainer.innerHTML = &amp;quot;&amp;quot;;
                qrContainer.style.width = qrSize + 'px';
                qrContainer.style.height = qrSize + 'px';
                
                new QRCode(qrContainer, {
                    text: url,
                    width: qrSize,
                    height: qrSize,
                    colorDark: &amp;quot;#1f2937&amp;quot;,
                    colorLight: &amp;quot;#ffffff&amp;quot;
                });
            }

            function inputCheck(object) {
                let value = object.value;
                if (value.length &amp;gt; 2) {
                    object.value = value.slice(0, 2);
                } else if (parseInt(value) &amp;lt; 1 || isNaN(value)) {
                    object.value = &amp;quot;&amp;quot;;
                } else if (parseInt(value) &amp;gt; 45) {
                    object.value = 45;
                }
            }

            // 즉시 실행 또는 DOM 로드 후 실행
            if (document.readyState === 'loading') {
                document.addEventListener('DOMContentLoaded', initLottoApp);
            } else {
                initLottoApp();
            }
        })();
    &amp;lt;/script&amp;gt;
&amp;lt;/div&amp;gt;
&quot;&gt;&lt;!-- 로또 QR 앱이 작동할 특정 div 영역 --&gt;
&lt;div id=&quot;source_contents&quot;&gt;
&lt;div id=&quot;lotto-app-container&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js&quot;&gt;&lt;/script&gt;
&lt;style&gt;
        /* #source_contents 내부에만 적용되는 완전 격리 CSS */
        #source_contents {
            --lotto-mint-gray: #E8F5E9;
            --lotto-mint-green: #4CAF50;
            --lotto-dark-mint: #388E3C;
            --lotto-light-mint: #C8E6C9;
            --lotto-gray-800: #374151;
            --lotto-gray-100: #F3F4F6;
            --lotto-shadow-mint: rgba(76, 175, 80, 0.25);
            --lotto-border-green: #A5D6A7;
            
            all: initial; /* 외부 스타일 초기화 */
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
            margin: 0 !important;
            padding: 4px !important;
            background: linear-gradient(135deg, var(--lotto-mint-gray) 0%, var(--lotto-light-mint) 50%, #F1F8E9 100%) !important;
            min-height: 400px !important;
            display: flex !important;
            flex-direction: column !important;
            align-items: center !important;
            overflow-x: hidden !important;
            box-sizing: border-box !important;
            width: 100% !important;
        }

        #source_contents * {
            box-sizing: border-box !important;
        }

        #source_contents #lotto-app-container {
            width: 100% !important;
            max-width: 100% !important;
            margin: 0 !important;
            padding: 0 2px !important;
        }

        #source_contents .lotto-container {
            width: 100% !important;
            max-width: 100% !important;
            margin: 0 !important;
            padding: 0 !important;
            background: #fff !important;
            border-radius: 12px !important;
            box-shadow: 0 8px 25px var(--lotto-shadow-mint) !important;
            border: 1px solid var(--lotto-light-mint) !important;
            overflow: hidden !important;
            display: flex !important;
            flex-direction: column !important;
        }

        #source_contents .lotto-header {
            background: linear-gradient(135deg, var(--lotto-mint-green), var(--lotto-dark-mint)) !important;
            color: white !important;
            padding: 14px 12px !important;
            text-align: center !important;
            font-size: 17px !important;
            font-weight: 600 !important;
        }

        #source_contents .lotto-content {
            padding: 16px 12px !important;
            flex: 1 !important;
            display: flex !important;
            flex-direction: column !important;
            gap: 14px !important;
            background: #fff !important;
        }

        #source_contents .lotto-round-input {
            background: var(--lotto-gray-100) !important;
            padding: 10px 12px !important;
            border-radius: 8px !important;
            border: 1px solid var(--lotto-light-mint) !important;
        }

        #source_contents .lotto-round-input label {
            display: block !important;
            font-size: 13px !important;
            color: var(--lotto-dark-mint) !important;
            margin-bottom: 6px !important;
            font-weight: 500 !important;
        }

        #source_contents .lotto-round-input input {
            width: 100% !important;
            height: 42px !important;
            padding: 0 10px !important;
            font-size: 17px !important;
            font-weight: 600 !important;
            border: 2px solid transparent !important;
            border-radius: 8px !important;
            background: white !important;
            text-align: center !important;
        }

        #source_contents .lotto-round-input input:focus {
            border-color: var(--lotto-mint-green) !important;
            outline: none !important;
        }

        #source_contents .lotto-controls {
            display: flex !important;
            gap: 6px !important;
            justify-content: center !important;
            flex-wrap: wrap !important;
        }

        #source_contents .lotto-auto-btn, 
        #source_contents .lotto-clear-btn {
            padding: 10px 14px !important;
            font-size: 13px !important;
            font-weight: 600 !important;
            border: none !important;
            border-radius: 20px !important;
            cursor: pointer !important;
            transition: all 0.2s !important;
            flex: 1 !important;
            min-width: 76px !important;
        }

        #source_contents .lotto-auto-btn {
            background: linear-gradient(135deg, #FF9800, #F57C00) !important;
            color: white !important;
            box-shadow: 0 4px 12px rgba(255, 152, 0, 0.3) !important;
        }

        #source_contents .lotto-auto-btn:hover {
            transform: translateY(-1px) !important;
            box-shadow: 0 6px 16px rgba(255, 152, 0, 0.4) !important;
        }

        #source_contents .lotto-clear-btn {
            background: #f0f0f0 !important;
            color: var(--lotto-gray-800) !important;
            border: 1px solid #ddd !important;
        }

        #source_contents .lotto-clear-btn:hover {
            background: #e0e0e0 !important;
        }

        #source_contents .lotto-lines {
            flex: 1 !important;
            display: flex !important;
            flex-direction: column !important;
            gap: 8px !important;
            overflow-y: auto !important;
            -webkit-overflow-scrolling: touch !important;
            max-height: 240px !important;
            padding: 0 2px !important;
        }

        #source_contents .lotto-line-group {
            display: flex !important;
            gap: 4px !important;
            justify-content: center !important;
            flex-wrap: wrap !important;
            align-items: center !important;
        }

        #source_contents .lotto-line-group label {
            font-size: 12px !important;
            color: var(--lotto-dark-mint) !important;
            font-weight: 600 !important;
            min-width: 30px !important;
            margin-right: 2px !important;
        }

        #source_contents .lotto-number-input {
            width: 42px !important;
            height: 40px !important;
            padding: 0 2px !important;
            font-size: 15px !important;
            font-weight: 700 !important;
            font-family: 'Courier New', monospace !important;
            text-align: center !important;
            border: 2px solid var(--lotto-border-green) !important;
            border-radius: 6px !important;
            background: white !important;
            transition: all 0.2s !important;
        }

        #source_contents .lotto-number-input:focus {
            border-color: var(--lotto-mint-green) !important;
            outline: none !important;
            box-shadow: 0 0 0 3px rgba(76, 175, 80, 0.2) !important;
        }

        #source_contents .lotto-generate-btn {
            background: linear-gradient(135deg, var(--lotto-mint-green), var(--lotto-dark-mint)) !important;
            color: white !important;
            border: none !important;
            padding: 14px 20px !important;
            font-size: 15px !important;
            font-weight: 700 !important;
            border-radius: 25px !important;
            cursor: pointer !important;
            box-shadow: 0 6px 20px var(--lotto-shadow-mint) !important;
            transition: all 0.3s !important;
            text-transform: uppercase !important;
            letter-spacing: 0.5px !important;
            flex-shrink: 0 !important;
            margin: 0 4px !important;
        }

        #source_contents .lotto-generate-btn:hover,
        #source_contents .lotto-generate-btn:active {
            transform: translateY(-2px) !important;
            box-shadow: 0 10px 25px var(--lotto-shadow-mint) !important;
        }

        #source_contents .lotto-result-section {
            padding: 14px 12px !important;
            background: var(--lotto-gray-100) !important;
            border-radius: 12px !important;
            display: flex !important;
            flex-direction: column !important;
            align-items: center !important;
            gap: 10px !important;
            flex-shrink: 0 !important;
        }

        #source_contents .lotto-qr-container {
            width: 170px !important;
            height: 170px !important;
            background: white !important;
            border-radius: 12px !important;
            display: flex !important;
            align-items: center !important;
            justify-content: center !important;
            box-shadow: 0 4px 15px rgba(0,0,0,0.15) !important;
            flex-shrink: 0 !important;
        }

        #source_contents .lotto-qr-link {
            font-size: 12px !important;
            color: var(--lotto-gray-800) !important;
            word-break: break-all !important;
            background: white !important;
            padding: 8px !important;
            border-radius: 8px !important;
            border-left: 4px solid var(--lotto-mint-green) !important;
            width: 100% !important;
            max-height: 70px !important;
            overflow-y: auto !important;
            font-family: 'Courier New', monospace !important;
            text-align: left !important;
            line-height: 1.4 !important;
        }

        /* 스크롤바 */
        #source_contents .lotto-lines::-webkit-scrollbar,
        #source_contents .lotto-qr-link::-webkit-scrollbar {
            width: 4px !important;
        }

        #source_contents .lotto-lines::-webkit-scrollbar-track,
        #source_contents .lotto-qr-link::-webkit-scrollbar-track {
            background: var(--lotto-gray-100) !important;
            border-radius: 2px !important;
        }

        #source_contents .lotto-lines::-webkit-scrollbar-thumb,
        #source_contents .lotto-qr-link::-webkit-scrollbar-thumb {
            background: var(--lotto-mint-green) !important;
            border-radius: 2px !important;
        }

        /* 모바일 미디어쿼리 */
        @media (max-width: 375px) {
            #source_contents {
                padding: 2px !important;
            }
            
            #source_contents .lotto-content {
                padding: 14px 8px !important;
                gap: 12px !important;
            }
            
            #source_contents .lotto-number-input {
                width: 40px !important;
                height: 38px !important;
                font-size: 14px !important;
            }
            
            #source_contents .lotto-qr-container {
                width: 160px !important;
                height: 160px !important;
            }
        }

        @media (min-width: 768px) {
            #source_contents #lotto-app-container {
                max-width: 420px !important;
                padding: 0 20px !important;
            }
            
            #source_contents .lotto-container {
                max-width: 420px !important;
            }
            
            #source_contents .lotto-result-section {
                flex-direction: row !important;
                justify-content: center !important;
            }
            
            #source_contents .lotto-qr-container {
                flex-shrink: 0 !important;
            }
            
            #source_contents .lotto-qr-link {
                flex: 1 !important;
                max-width: 280px !important;
                max-height: none !important;
            }
        }
    &lt;/style&gt;
&lt;script&gt;
        (function() {
            function initLottoApp() {
                const appContainer = document.getElementById(&quot;lotto-app-container&quot;);
                if (!appContainer) return;

                appContainer.innerHTML = `
                    &lt;div class=&quot;lotto-container&quot;&gt;
                        &lt;div class=&quot;lotto-header&quot;&gt;로또 QR 조회&lt;/div&gt;
                        
                        &lt;div class=&quot;lotto-content&quot;&gt;
                            &lt;div class=&quot;lotto-round-input&quot;&gt;
                                &lt;label&gt;회차&lt;/label&gt;
                                &lt;input id=&quot;round&quot; type=&quot;number&quot; min=&quot;1164&quot; placeholder=&quot;1164&quot; /&gt;
                            &lt;/div&gt;
                            
                            &lt;div class=&quot;lotto-controls&quot;&gt;
                                &lt;button class=&quot;lotto-auto-btn&quot; id=&quot;autoGenerate&quot;&gt;로또 자동생성&lt;/button&gt;
                                &lt;button class=&quot;lotto-clear-btn&quot; id=&quot;clearAll&quot;&gt;초기화&lt;/button&gt;
                            &lt;/div&gt;
                            
                            &lt;div class=&quot;lotto-lines&quot; id=&quot;lotto-lines&quot;&gt;&lt;/div&gt;
                            
                            &lt;button class=&quot;lotto-generate-btn&quot; id=&quot;create&quot;&gt;QR 조회하기&lt;/button&gt;
                            &lt;input id=&quot;qrlink&quot; type=&quot;hidden&quot; /&gt;
                            
                            &lt;div class=&quot;lotto-result-section&quot;&gt;
                                &lt;div class=&quot;lotto-qr-container&quot; id=&quot;qrcode&quot;&gt;&lt;/div&gt;
                                &lt;div class=&quot;lotto-qr-link&quot; id=&quot;area&quot;&gt;&lt;/div&gt;
                            &lt;/div&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;
                `;

                // 동적 입력 필드 생성
                const lottoLinesContainer = document.getElementById(&quot;lotto-lines&quot;);
                for (let i = 1; i &lt;= 5; i++) {
                    const div = document.createElement(&quot;div&quot;);
                    div.className = &quot;lotto-line-group&quot;;
                    div.innerHTML = `&lt;label&gt;${i}번째&lt;/label&gt;` +
                        Array.from({ length: 6 }, (_, idx) =&gt; 
                            `&lt;input type=&quot;number&quot; class=&quot;lotto-number-input line${i}&quot; min=&quot;1&quot; max=&quot;45&quot; maxlength=&quot;2&quot; oninput=&quot;inputCheck(this)&quot; placeholder=&quot;${idx+1}&quot;&gt;`
                        ).join('');
                    lottoLinesContainer.appendChild(div);
                }

                // 이벤트 바인딩
                document.getElementById(&quot;autoGenerate&quot;).addEventListener(&quot;click&quot;, generateRandomLotto);
                document.getElementById(&quot;clearAll&quot;).addEventListener(&quot;click&quot;, clearAllInputs);
                document.getElementById(&quot;create&quot;).addEventListener(&quot;click&quot;, makeQR);

                document.addEventListener('keypress', function(e) {
                    if (e.key === 'Enter' || e.keyCode === 13) {
                        makeQR();
                    }
                });
            }

            function generateRandomNumbers(count = 6) {
                const numbers = [];
                while (numbers.length &lt; count) {
                    const num = Math.floor(Math.random() * 45) + 1;
                    if (!numbers.includes(num)) {
                        numbers.push(num);
                    }
                }
                return numbers.sort((a, b) =&gt; a - b);
            }

            function generateRandomLotto() {
                for (let i = 1; i &lt;= 5; i++) {
                    const numbers = generateRandomNumbers(6);
                    document.querySelectorAll(`.line${i}`).forEach((input, idx) =&gt; {
                        input.value = numbers[idx];
                    });
                }
                setTimeout(() =&gt; {
                    alert('5줄 로또 번호가 자동 생성되었습니다!');
                }, 100);
            }

            function clearAllInputs() {
                document.getElementById(&quot;round&quot;).value = '';
                document.querySelectorAll('.lotto-number-input').forEach(input =&gt; {
                    input.value = '';
                });
                document.getElementById(&quot;qrcode&quot;).innerHTML = '';
                document.getElementById(&quot;area&quot;).textContent = '';
            }

            function makeQR() {
                const round = document.getElementById(&quot;round&quot;).value.padStart(4, '0');
                if (!round || round &lt; 1164) {
                    alert('회차를 입력해주세요 (1164회차 이상)');
                    return;
                }

                let url = `https://m.dhlottery.co.kr/qr.do?method=winQr&amp;v=${round}`;

                for (let i = 1; i &lt;= 5; i++) {
                    const lineNumbers = Array.from(document.querySelectorAll(`.line${i}`))
                        .map(input =&gt; input.value.padStart(2, '0')).join('');
                    if (lineNumbers &amp;&amp; lineNumbers !== '000000') {
                        url += `q${lineNumbers}`;
                    }
                }

                url += `%EF%BB%BF`;

                document.getElementById(&quot;qrlink&quot;).value = url;
                
                const hasNumbers = url.includes('q');
                document.getElementById(&quot;area&quot;).textContent = hasNumbers 
                    ? `QR 링크가 생성되었습니다\n(5줄 번호 포함)`
                    : `회차 ${round} QR 링크\n(번호 입력 후 다시 생성하세요)`;

                const qrContainer = document.getElementById(&quot;qrcode&quot;);
                const qrSize = window.innerWidth &lt;= 375 ? 160 : (window.innerWidth &lt;= 480 ? 170 : 200);
                qrContainer.innerHTML = &quot;&quot;;
                qrContainer.style.width = qrSize + 'px';
                qrContainer.style.height = qrSize + 'px';
                
                new QRCode(qrContainer, {
                    text: url,
                    width: qrSize,
                    height: qrSize,
                    colorDark: &quot;#1f2937&quot;,
                    colorLight: &quot;#ffffff&quot;
                });
            }

            function inputCheck(object) {
                let value = object.value;
                if (value.length &gt; 2) {
                    object.value = value.slice(0, 2);
                } else if (parseInt(value) &lt; 1 || isNaN(value)) {
                    object.value = &quot;&quot;;
                } else if (parseInt(value) &gt; 45) {
                    object.value = 45;
                }
            }

            // 즉시 실행 또는 DOM 로드 후 실행
            if (document.readyState === 'loading') {
                document.addEventListener('DOMContentLoaded', initLottoApp);
            } else {
                initLottoApp();
            }
        })();
    &lt;/script&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bb7jgl/dJMcaf6yR9Z/kS5emlw0tv9KYn5NKH7z8K/get_lottomake5.html?attach=1&amp;amp;knm=tfile.html&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;get_lottomake5.html&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.01MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Programming</category>
      <category>lotto lotto</category>
      <category>로또 당첨 번호 추천</category>
      <category>로또 복권 당첨 번호 추천</category>
      <category>로또번호 QR생성기</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/913</guid>
      <comments>https://couplewith.tistory.com/913#entry913comment</comments>
      <pubDate>Sat, 7 Feb 2026 20:03:00 +0900</pubDate>
    </item>
    <item>
      <title>Windows 11 설치 중  네트워크 드라이버 0x2000022f 오류 해결</title>
      <link>https://couplewith.tistory.com/912</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2MmzC/dJMcai3c7nF/NabZuYk7gqfOtmRkSRYvb0/tfile.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2MmzC/dJMcai3c7nF/NabZuYk7gqfOtmRkSRYvb0/tfile.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2MmzC/dJMcai3c7nF/NabZuYk7gqfOtmRkSRYvb0/tfile.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2MmzC%2FdJMcai3c7nF%2FNabZuYk7gqfOtmRkSRYvb0%2Ftfile.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;360&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;360&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;윈도우 미포함 Free dos 노트북을 새로 샀다가 최신 윈도우 11을 설치 하였습니다.&lt;br&gt;설치중 네트워크 드라이버 설치가 안되어 계속 반복만 하였습니다.&lt;br&gt;&lt;br&gt;아래와 같이 수동으로 설치 우회 하여 겨우 해결 되었습니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Windows 11 설치 중 0x2000022f 네트워크 드라이버 오류 해결&lt;br&gt;&lt;/b&gt;&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;이 오류는 윈도우 새로 설치시 네트워크 드라이버 설치가 안되는 경우 입니다.&lt;br&gt;&lt;br&gt; 네트워크 드라이버 설치를 우회하여 드라이버를 수동으로 설치 하는 것이 필요 합니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;■ 네트워크 드라이버 설치 화면을 우회하는 방법&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;&lt;li&gt; Windows 11 설치 중 네트워크 우회 설치하려면&lt;/li&gt;&lt;li&gt; 화면에서 Shift + F10으로 명령 프롬프트를 열고 oobe\bypassnro 명령어를 입력한 후&lt;/li&gt;&lt;li&gt; 설치를 재시작하세요. &lt;/li&gt;&lt;li&gt;재부팅 후 재설치하면&amp;nbsp;&amp;nbsp;&quot;인터넷 없음&quot; 옵션이 나타나 우회 설치가 진행됩니다.&lt;/li&gt;&lt;/ol&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;■ 문제 원인&lt;br&gt;Windows 11 H2(2xH2) 설치 중 0x2000022f 오류는 주로 이더넷 드라이버 로드 실패나 네트워크 연결 요구 단계에서 발생합니다. 이는 설치 과정에서 드라이버 호환성 문제나 USB 인식 오류로 인해 인터넷 연결을 건너 뛰지 못할 때 나타납니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;■ &lt;b&gt;수동으로 드라이버 설치&lt;/b&gt;&lt;br&gt; 인터넷이 되는 다른 PC에서 드라이버를 다운 받아아 설치 합니다.&lt;br&gt;드라이버는 해당 메인보드 제조사(예: ASUS, Gigabyte, HP등) 사이트나 Intel/Realtek 공식 사이트에서 Windows 11 H2 호환 이더넷 드라이버를 다운로드해 USB에 저장하세요.&lt;br&gt;&lt;br&gt;■ &lt;b&gt;다운 받은 드라이버를 설치 합니다&lt;/b&gt;&lt;br&gt;만약 설치후 작동이 안된다면&amp;nbsp;&amp;nbsp;장치 관리자에서 기존 네트워크 어댑터를 확인하고 제거(드라이버 소프트웨어 삭제 포함)하고 &quot;하드웨어 변경 검색&quot;으로 재설치하세요.&lt;/p&gt;</description>
      <category>InfraPlatform</category>
      <category>Windows 11 install</category>
      <category>Windows 11 install network driver error</category>
      <category>윈도우11설치 오류</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/912</guid>
      <comments>https://couplewith.tistory.com/912#entry912comment</comments>
      <pubDate>Wed, 4 Feb 2026 09:28:39 +0900</pubDate>
    </item>
    <item>
      <title>Docker 명령어</title>
      <link>https://couplewith.tistory.com/pages/Docker-%EB%AA%85%EB%A0%B9%EC%96%B4</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker 명령어&lt;/p&gt;
&lt;div id=&quot;code_1769388339265&quot; data-ke-type=&quot;html&quot; data-source=&quot;&amp;lt;!-- Docker 명령어 게시글 목록 --&amp;gt;
&amp;lt;h2 style=&amp;quot;text-align:center;&amp;quot;&amp;gt;  Docker 명령어 게시글 목록&amp;lt;/h2&amp;gt;
&amp;lt;div id=&amp;quot;article-list&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

&amp;lt;style&amp;gt;
  #article-list {
    max-width: 800px;
    margin: 20px auto;
    padding: 10px;
  }
  .article-item {
    padding: 12px;
    border-bottom: 1px solid #ddd;
  }
  .article-item:hover {
    background-color: #f0f9ff;
  }
  .title a {
    font-weight: bold;
    color: #1f2937;
    text-decoration: none;
  }
  .title a:hover {
    text-decoration: underline;
  }
  .date {
    color: #555;
    font-size: 13px;
  }
&amp;lt;/style&amp;gt;

&amp;lt;script&amp;gt;
  const url = &amp;quot;https://couplewith.tistory.com/tag/docker%20%EB%AA%85%EB%A0%B9%EC%96%B4&amp;quot;;

  fetch(url)
    .then(res =&amp;gt; res.text())
    .then(html =&amp;gt; {
      const parser = new DOMParser();
      const doc = parser.parseFromString(html, &amp;quot;text/html&amp;quot;);

      const articles = doc.querySelectorAll(&amp;quot;div.article-content&amp;quot;);
      const listContainer = document.getElementById(&amp;quot;article-list&amp;quot;);

      articles.forEach((article, index) =&amp;gt; {
        const linkEl = article.querySelector(&amp;quot;a.link-article&amp;quot;);
        const titleEl = article.querySelector(&amp;quot;strong.title&amp;quot;);
        const dateEl = article.querySelector(&amp;quot;span.date&amp;quot;);

        const link = linkEl ? linkEl.getAttribute(&amp;quot;href&amp;quot;) : &amp;quot;#&amp;quot;;
        const title = titleEl ? titleEl.textContent.trim() : &amp;quot;&amp;quot;;
        const date = dateEl ? dateEl.textContent.trim() : &amp;quot;&amp;quot;;

        // 목록 항목 생성 (제목을 링크로 연결)
        const item = document.createElement(&amp;quot;div&amp;quot;);
        item.className = &amp;quot;article-item&amp;quot;;
        item.innerHTML = &amp;#96;
          &amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;${link}&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;${index+1}. ${title}&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
          &amp;lt;span class=&amp;quot;date&amp;quot;&amp;gt;${date}&amp;lt;/span&amp;gt;
        &amp;#96;;

        listContainer.appendChild(item);
      });
    });
&amp;lt;/script&amp;gt;
&quot;&gt;&lt;!-- Docker 명령어 게시글 목록 --&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;  Docker 명령어 게시글 목록&lt;/h2&gt;
&lt;div id=&quot;article-list&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;style&gt;
  #article-list {
    max-width: 800px;
    margin: 20px auto;
    padding: 10px;
  }
  .article-item {
    padding: 12px;
    border-bottom: 1px solid #ddd;
  }
  .article-item:hover {
    background-color: #f0f9ff;
  }
  .title a {
    font-weight: bold;
    color: #1f2937;
    text-decoration: none;
  }
  .title a:hover {
    text-decoration: underline;
  }
  .date {
    color: #555;
    font-size: 13px;
  }
&lt;/style&gt;
&lt;script&gt;
  const url = &quot;https://couplewith.tistory.com/tag/docker%20%EB%AA%85%EB%A0%B9%EC%96%B4&quot;;

  fetch(url)
    .then(res =&gt; res.text())
    .then(html =&gt; {
      const parser = new DOMParser();
      const doc = parser.parseFromString(html, &quot;text/html&quot;);

      const articles = doc.querySelectorAll(&quot;div.article-content&quot;);
      const listContainer = document.getElementById(&quot;article-list&quot;);

      articles.forEach((article, index) =&gt; {
        const linkEl = article.querySelector(&quot;a.link-article&quot;);
        const titleEl = article.querySelector(&quot;strong.title&quot;);
        const dateEl = article.querySelector(&quot;span.date&quot;);

        const link = linkEl ? linkEl.getAttribute(&quot;href&quot;) : &quot;#&quot;;
        const title = titleEl ? titleEl.textContent.trim() : &quot;&quot;;
        const date = dateEl ? dateEl.textContent.trim() : &quot;&quot;;

        // 목록 항목 생성 (제목을 링크로 연결)
        const item = document.createElement(&quot;div&quot;);
        item.className = &quot;article-item&quot;;
        item.innerHTML = `
          &lt;div class=&quot;title&quot;&gt;&lt;a href=&quot;${link}&quot; target=&quot;_blank&quot;&gt;${index+1}. ${title}&lt;/a&gt;&lt;/div&gt;
          &lt;span class=&quot;date&quot;&gt;${date}&lt;/span&gt;
        `;

        listContainer.appendChild(item);
      });
    });
&lt;/script&gt;
&lt;/div&gt;</description>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/pages/Docker-%EB%AA%85%EB%A0%B9%EC%96%B4</guid>
      <pubDate>Mon, 26 Jan 2026 09:46:06 +0900</pubDate>
    </item>
    <item>
      <title>27인치와 32인치 디자이너용 애플/Mac 호환  모니터 추천</title>
      <link>https://couplewith.tistory.com/910</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;325&quot; data-origin-height=&quot;273&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJACOy/dJMcafk5FNQ/UykqLrJLHB7pGwLkaXSNL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJACOy/dJMcafk5FNQ/UykqLrJLHB7pGwLkaXSNL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJACOy/dJMcafk5FNQ/UykqLrJLHB7pGwLkaXSNL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJACOy%2FdJMcafk5FNQ%2FUykqLrJLHB7pGwLkaXSNL1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;325&quot; height=&quot;273&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;325&quot; data-origin-height=&quot;273&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;27인치와&amp;nbsp;32인치&amp;nbsp;디자이너용&amp;nbsp;애플/Mac&amp;nbsp;호환&amp;nbsp;&amp;nbsp;모니터&amp;nbsp;추천&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;⚠️ 디자이너 추천 모니터&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;맥북 호환성 최우선&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr; LG UltraFine, BenQ PD2725U/PD3220U, Apple XDR&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사진&amp;middot;출판 전문가&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr; EIZO, Dell, ASUS (AdobeRGB 지원)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;영상&amp;middot;영화 작업&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr; 삼성 ViewFinity S9, Apple XDR, BenQ PD2725U&lt;/li&gt;
&lt;li&gt;&lt;b&gt;가성비&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr; BenQ PD2725U(27&quot;), BenQ PD3220U(32&quot;)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;합리적 예산과 맥북 호환성을 중시한다면 BenQ PD2725U(27&quot;) 또는 PD3220U(32&quot;)&lt;/b&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;최상위 전문가라면 EIZO ColorEdge나 Apple Pro Display XDR&lt;/b&gt;가 가장 적합.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(다나와:맥용모니터) :&amp;nbsp;&lt;a title=&quot;다나와 맥용 모니터&quot; href=&quot;https://search.danawa.com/dsearch.php?query=%EB%A7%A5%EC%9A%A9%EB%AA%A8%EB%8B%88%ED%84%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://search.danawa.com/dsearch.php?query=맥용모니터&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt; [주요 추천 사양]&lt;/b&gt;&lt;br /&gt;&lt;b&gt;해상도:&amp;nbsp;&lt;/b&gt;최소 4K(UHD)를 권장하며, 선명한 화면을 원하면 5K, 맥은 고해상도 HiDPI를 잘 지원하여 글자가 선명하게 보입니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;색 재현율:&amp;nbsp;&lt;/b&gt;디자이너라면 P3 색영역(90% 이상)을 지원하는 제품을, 일반 사용자는 sRGB 커버리지가 높은 제품을 선택,&amp;nbsp; BenQ와 같은 제조사는 맥 색감과 동일하게 맞춰주는 기능(M-book 모드)을 제공하기도 합니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;연결성 (USB-C/Thunderbolt):&lt;/b&gt;&amp;nbsp;하나의 USB-C 케이블로 영상 출력과 맥북 충전(65W~90W 이상 권장)이 동시에 가능한 모델을 선택하면 편리합니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;크기:&lt;/b&gt;&amp;nbsp;싱글 모니터로는 32인치, 듀얼 모니터 환경에서는 27인치 보조 모니터를 추천합니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;주사율:&lt;/b&gt;&amp;nbsp;4K 60Hz는 기본이며, 맥북 프로 사용자라면 120Hz 이상을 지원하는 모니터도 고려해볼 수 있습니다.&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;27인치와 32인치 애플 호환 디자이너용 모니터를 비교하고, 실제 디자이너들의 인터넷 후기와 공장 캘리브레이션 정보를 보강하여 정리한 것입니다. 색 정확도, 맥북 호환성, 작업 편의성, 팩토리 캘리브레이션 상태에서의 사용성을 중심으로 평가했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-state=&quot;closed&quot;&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  27인치 모니터 추천&amp;nbsp;&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 19.8837%;&quot;&gt;&lt;b&gt;모델&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 9.4186%;&quot;&gt;&lt;b&gt;해상도&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.4419%;&quot;&gt;&lt;b&gt; &lt;span style=&quot;background-color: #008300; color: #ffffff; text-align: start;&quot;&gt;색역지원&lt;/span&gt; &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.5814%;&quot;&gt;&lt;b&gt;&amp;nbsp;특징&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.5581%;&quot;&gt;&lt;b&gt;가격대&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 19.8837%;&quot;&gt;&lt;b&gt;LG UltraFine 27UQ85RV-W&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 9.4186%;&quot;&gt;4K UHD&lt;/td&gt;
&lt;td style=&quot;width: 17.4419%;&quot;&gt;DCI-P3 98%&lt;/td&gt;
&lt;td style=&quot;width: 40.5814%;&quot;&gt;macOS 최적화, Thunderbolt&lt;/td&gt;
&lt;td style=&quot;width: 12.5581%;&quot;&gt;120만~140만 원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 19.8837%;&quot;&gt;&lt;b&gt;BenQ PD2725U&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 9.4186%;&quot;&gt;4K UHD&lt;/td&gt;
&lt;td style=&quot;width: 17.4419%;&quot;&gt;DCI-P3 95%, sRGB 100%&lt;/td&gt;
&lt;td style=&quot;width: 40.5814%;&quot;&gt;HDR, ICCsync, 맥북 호환, 팩토리 캘리브레이션(Delta E &amp;le;3)&lt;/td&gt;
&lt;td style=&quot;width: 12.5581%;&quot;&gt;100만~120만 원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 19.8837%;&quot;&gt;&lt;b&gt;EIZO ColorEdge CG2700X&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 9.4186%;&quot;&gt;4K UHD&lt;/td&gt;
&lt;td style=&quot;width: 17.4419%;&quot;&gt;AdobeRGB 99%&lt;/td&gt;
&lt;td style=&quot;width: 40.5814%;&quot;&gt;내장 캘리브레이터, 전문가용&lt;/td&gt;
&lt;td style=&quot;width: 12.5581%;&quot;&gt;350만~400만 원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 19.8837%;&quot;&gt;&lt;b&gt;Dell U2723QE&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 9.4186%;&quot;&gt;4K UHD&lt;/td&gt;
&lt;td style=&quot;width: 17.4419%;&quot;&gt;AdobeRGB 99%&lt;/td&gt;
&lt;td style=&quot;width: 40.5814%;&quot;&gt;IPS Black 패널&lt;/td&gt;
&lt;td style=&quot;width: 12.5581%;&quot;&gt;100만~120만 원&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;b&gt;  디자이너 사용 후기&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;LG UltraFine 27UQ85RV-W&lt;/b&gt; &amp;rarr; 맥북 연결 시 별도 설정 없이 바로 최적화된 색감 제공. macOS와의 호환성이 뛰어나지만 가격 대비 기능은 다소 단순.&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: left;&quot; data-state=&quot;closed&quot;&gt;&lt;a href=&quot;https://blog.naver.com/slow_d/222750620745&quot;&gt;&lt;span style=&quot;text-align: center;&quot;&gt;naver&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: oklch(0.2167 0.002 197.04); color: oklch(0.9296 0.007 106.53); text-align: left;&quot; data-state=&quot;closed&quot;&gt;​&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BenQ PD2725U&lt;/b&gt; &amp;rarr; ICCsync로 맥북 색상 프로파일 동기화 편리, 팩토리 캘리브레이션 상태에서 M-book 모드로 색감이 맥과 거의 일치해 별도 장비 없이 사진&amp;middot;영상 작업 만족, &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;IPS 패널의 색 정확도가 높아 사진&amp;middot;영상 작업에 적합하며,&lt;/span&gt;&amp;nbsp;스탠드 안정감과 핫키 퍼크로 워크플로 효율적이나 밝기(250nit)에 약간 아쉬움.&lt;a href=&quot;https://blog.naver.com/wellmile/223044223914&quot;&gt;naver+3&lt;/a&gt;​&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EIZO ColorEdge CG2700X&lt;/b&gt; &amp;rarr; 내장 캘리브레이터로 장시간 작업 시에도 색 정확도가 유지되어 인쇄&amp;middot;출판 전문가에게 최적이나 가격 높음.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Dell U2723QE&lt;/b&gt; &amp;rarr; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;IPS Black 패널 덕분에 블랙 표현력이 좋아 &lt;/span&gt;&amp;nbsp;UI/웹 디자인 적합하나 macOS 최적화 부족.&lt;a href=&quot;https://blog.naver.com/tech-plus/221910721272&quot;&gt;naver+1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  32인치모니터 추천&amp;nbsp;&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 21.3953%;&quot;&gt;모델&lt;/td&gt;
&lt;td style=&quot;width: 10.6977%;&quot;&gt;해상도&lt;/td&gt;
&lt;td style=&quot;width: 20.5814%;&quot;&gt;색역지원&lt;/td&gt;
&lt;td style=&quot;width: 34.186%;&quot;&gt;특징&lt;/td&gt;
&lt;td style=&quot;width: 12.907%;&quot;&gt;가격대&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 21.3953%;&quot;&gt;&lt;b&gt;삼성 ViewFinity S9 (S90PC)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 10.6977%;&quot;&gt;5K UHD&lt;/td&gt;
&lt;td style=&quot;width: 20.5814%;&quot;&gt;DCI-P3 99%&lt;/td&gt;
&lt;td style=&quot;width: 34.186%;&quot;&gt;하드웨어 캘리브레이션, 스마트 캘리브레이션 앱&lt;/td&gt;
&lt;td style=&quot;width: 12.907%;&quot;&gt;150만~170만 원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 21.3953%;&quot;&gt;&lt;b&gt;BenQ PD3220U&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 10.6977%;&quot;&gt;4K UHD&lt;/td&gt;
&lt;td style=&quot;width: 20.5814%;&quot;&gt;sRGB/Rec.709 &lt;b&gt;100%&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 34.186%;&quot;&gt;듀얼뷰, HDR 지원, 팩토리 캘리브레이션&lt;/td&gt;
&lt;td style=&quot;width: 12.907%;&quot;&gt;110만~130만 원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 21.3953%;&quot;&gt;&lt;b&gt;ASUS ProArt PA32UCR&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 10.6977%;&quot;&gt;4K UHD&lt;/td&gt;
&lt;td style=&quot;width: 20.5814%;&quot;&gt;AdobeRGB 99%, DCI-P3 98%&lt;/td&gt;
&lt;td style=&quot;width: 34.186%;&quot;&gt;HDR 전문가용&lt;/td&gt;
&lt;td style=&quot;width: 12.907%;&quot;&gt;250만~300만 원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 21.3953%;&quot;&gt;&lt;b&gt;Apple Pro Display XDR&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 10.6977%;&quot;&gt;6K Retina&lt;/td&gt;
&lt;td style=&quot;width: 20.5814%;&quot;&gt;P3 Wide Color&lt;/td&gt;
&lt;td style=&quot;width: 34.186%;&quot;&gt;macOS 완벽 호환&lt;/td&gt;
&lt;td style=&quot;width: 12.907%;&quot;&gt;700만~800만 원&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  디자이너 사용 후기&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;삼성 ViewFinity S9&lt;/b&gt; &amp;rarr; 5K 해상도 작업 공간 우수, 팩토리 캘리브레이션으로 색 정확도 높아 영상&amp;middot;그래픽 작업 호평, 스마트싱스 앱으로 간단 재보정 가능. macOS 최적화는 LG에 비해 미세 차이.&lt;a href=&quot;https://brunch.co.kr/@e9ef4a874c6f4c6/32&quot;&gt;brunch+2&lt;/a&gt;​&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BenQ PD3220U&lt;/b&gt; &amp;rarr; 듀얼뷰 기능으로 두 가지 색 모드를 동시에 확인할 수 있어 웹/UI 디자이너에게 유용, &lt;br /&gt;- 팩토리 상태에서 맥 색상 매칭 좋고 , 가격 대비 성능이 뛰어나 가성비 모델로 평가 &lt;br /&gt;- KVM&amp;middot;허브 기능으로 도킹 편리. 밝기(300nit)에 약간 아쉬움.&lt;a href=&quot;https://www.imore.com/mac/benq-pd3220u-review&quot;&gt;imore+2&lt;/a&gt;​&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ASUS ProArt PA32UCR&lt;/b&gt; &amp;rarr; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;HDR과 넓은 색역 지원으로 영상 편집자에게 적합&lt;/span&gt; , 세팅이 복잡하고 가격이 중급 이상.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Apple Pro Display XDR&lt;/b&gt; &amp;rarr; macOS와의 완벽한 호환성, 6K 해상도, P3 색역 지원으로 최고의 작업 환경 제공,&lt;br /&gt;- 가격이 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;매우 높아 &amp;ldquo;스튜디오급 전문가용&amp;rdquo;이라는 평가&lt;/span&gt; .&lt;a href=&quot;https://blog.naver.com/midashan/223142797836&quot;&gt;naver+1&lt;/a&gt;​&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이들 제품은 &lt;u&gt;&lt;b&gt;공장출고 팩토리 상태로도 맥 색감 유사(Delta E &amp;le;3), UI&amp;middot;사진 편집 충분&lt;/b&gt;&lt;/u&gt;하나 인쇄 수준(Delta E &amp;le;1)이라면 하드웨어 캘리브레이터 추천.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;맥북 호환성 최우선&lt;/b&gt; &amp;rarr; LG UltraFine, BenQ PD2725U/PD3220U&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사진&amp;middot;출판&lt;/b&gt; &amp;rarr; EIZO, Dell, ASUS (AdobeRGB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;영상 작업&lt;/b&gt; &amp;rarr; ViewFinity S9, Apple XDR, BenQ&lt;/li&gt;
&lt;li&gt;&lt;b&gt;가성비&lt;/b&gt; &amp;rarr; BenQ PD2725U(27&quot;), PD3220U(32&quot;)&lt;span data-state=&quot;closed&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://www.ilovepc.co.kr/news/articleView.html?idxno=41953&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;ilovepc&lt;/span&gt;&lt;span&gt;&lt;span&gt;+2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;​&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  결론, 예산&amp;middot;맥 호환 중시 시 BenQ PD2725U/PD3220U(팩토리 캘리브레이션 우수)가 최적이며, 5K 선호라면 ViewFinity S9, 최고급은 EIZO나 Apple XDR가 적합합니다.&lt;span data-state=&quot;closed&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://www.benq.com/ko-kr/knowledge-center/knowledge/calibration-report.html&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;benq&lt;/span&gt;&lt;span&gt;&lt;span&gt;+2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;friends1&quot; data-emoticon-name=&quot;009&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/009.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/009.gif&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 위에서 다른 디자인 관점 모니터 선정에서 사용하는 전문 기술적인 용어를 중심으로&amp;nbsp; 정리해 봅니다.&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;모니터 보정 관련 전문 기술 참고 자료&lt;/b&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;⚠️&lt;span&gt;&amp;nbsp;&lt;/span&gt;캘리브레이션&amp;nbsp;&lt;/h3&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인쇄 수준(Delta E &amp;le;1)은 모니터 색상과 실제 인쇄 결과 간 미세한 색 차이를 전문가 눈으로도 거의 구분 못 할 정도로 정확하게 맞추는 기준을 의미합니다.&lt;span data-state=&quot;closed&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://visko.co.kr/blogPost/color_deltaE_colorspace&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;visko&lt;/span&gt;&lt;span&gt;&lt;span&gt;+2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt; &amp;nbsp;BenQ&amp;middot;삼성 모델은 별도 장비 없이 일반 디자인 작업 즉시 사용 가능 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;⚠️ 공장 캘리브레이션&amp;nbsp;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;공장 캘리브레이션은 모니터 제조 과정에서 전문 장비로 각 제품을 개별적으로 &lt;b&gt;색상 기준에 맞춰&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;전수교정/전수 검사를 통해 &amp;Delta;E &amp;le;3 보정 &lt;/span&gt;하는 품질 관리 과정입니다&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;공장 캘리브레이션&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;:&lt;br /&gt;- 공장 캘리브레이션은 전수 검사(모든 제품 확인) 또는 전수 교정(부합할 때까지 재조정) 방식으로 진행&lt;br /&gt;- 제조 출고 전 전문 장비로 색상정확도(Delta E &amp;le;3), 감마, 감마 곡선, 밝기 균일성 등을 측정해 표준값(예: sRGB 100%, DCI-P3 95%)에 부합하도록 보정 후 리포트(팩토리 캘리브레이션 리포트)를 제공.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a style=&quot;color: #0070d1; text-align: start;&quot; href=&quot;https://www.benq.com/ko-kr/knowledge-center/knowledge/calibration-report.html&quot;&gt;What is a Calibration Report and How to Read the Report? | BenQ 한국&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 id=&quot;delta-e&quot; data-ke-size=&quot;size20&quot;&gt;Delta E 기준 개념&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;Delta&amp;nbsp;E는&amp;nbsp;두&amp;nbsp;색상&amp;nbsp;간의&amp;nbsp;색&amp;nbsp;차이를&amp;nbsp;수치로&amp;nbsp;표현한&amp;nbsp;지표로,&amp;nbsp;CIELAB&amp;nbsp;색&amp;nbsp;공간에서&amp;nbsp;계산되며&amp;nbsp;값이&amp;nbsp;작을수록&amp;nbsp;색상이&amp;nbsp;더&amp;nbsp;유사합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Delta E(&amp;Delta;E)는 두 색상 간 차이를 수치화한 값으로, 0에 가까울수록 동일한 색입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; 디스플레이 Delta E&amp;nbsp; VS&amp;nbsp; 인쇄&amp;nbsp;Delta&amp;nbsp;E&amp;nbsp;기준 &lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;디스플레이&amp;nbsp;Delta&amp;nbsp;E&amp;nbsp;기준&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;디스플레이(모니터)는 팩토리 캘리브레이션으로 평균 &amp;Delta;E &amp;le;2~3을 목표로 출고되며, 웹/UI&amp;middot;영상 편집 시 이 수준이면 인간 눈으로 색 차이를 거의 느끼지 못합니다.&lt;/li&gt;
&lt;li&gt;BenQ PD 시리즈처럼 전문가용은 &amp;Delta;E &amp;lt;2를 인증받으나, 환경 변화로 1년 내 재보정이 필요하며 소프트웨어 보정으로 충분합니다. &lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;인쇄&amp;nbsp;Delta&amp;nbsp;E&amp;nbsp;기준&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;인쇄는 모니터 색상을 실제 출력물(잉크&amp;middot;용지)과 매칭해야 하므로 &amp;Delta;E &amp;le;1을 표준으로 하며,&lt;/li&gt;
&lt;li&gt;잉크 조색 시 1.0~1.5, 최종 출력 차이는 0.5 이내를 목표로 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 77px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;구분&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;목표 Delta E&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;활용 분야&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;보정&amp;nbsp;방법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: left; height: 20px;&quot;&gt;디스플레이&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px;&quot;&gt;&amp;le;2~3 (일반), &amp;lt;2 (전문)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px;&quot;&gt;디지털 출력 중심, 시각 인지 허용 &lt;span data-state=&quot;closed&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://blog.naver.com/benq4ever/223990838695&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;naver&lt;/span&gt;&lt;span&gt;&lt;span&gt;+1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;​&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px;&quot;&gt;팩토리 + 소프트웨어&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: left; height: 20px;&quot;&gt;인쇄&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px;&quot;&gt;&amp;le;1~1.5 (조색), &amp;lt;1 (최종)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px;&quot;&gt;물리 출력 매칭, 용지 오차 누적 &lt;span data-state=&quot;closed&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://visko.co.kr/blogPost/color_deltaE_colorspace&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;visko&lt;/span&gt;&lt;span&gt;&lt;span&gt;+1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;​&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px;&quot;&gt;하드웨어 캘리브레이터 + 프로파일 교환&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;delta-e&quot; style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;Delta E&lt;span&gt;&amp;nbsp;&lt;/span&gt;실무 기준&lt;/h4&gt;
&lt;div&gt;
&lt;div&gt;
&lt;table style=&quot;text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;&lt;span style=&quot;color: #ffffff; text-align: start;&quot;&gt; Delta E&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt; 범위인지 수준 &lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt; 적용 분야 &lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;Delta;E &amp;lt; 1&lt;/td&gt;
&lt;td&gt;전문가 눈으로 구분 불가&lt;/td&gt;
&lt;td&gt;인쇄&amp;middot;출판, 고급 디자인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;Delta;E 1~2&lt;/td&gt;
&lt;td&gt;훈련된 눈으로 미세 차이&lt;/td&gt;
&lt;td&gt;영상 편집, 웹/UI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;Delta;E 2~3&lt;/td&gt;
&lt;td&gt;일반인 눈에 약간 보임&lt;/td&gt;
&lt;td&gt;팩토리 캘리브레이션 표준(디자이너 모니터)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;Delta;E &amp;gt; 3&lt;/td&gt;
&lt;td&gt;명확한 색 차이&lt;/td&gt;
&lt;td&gt;클레임 발생 기준&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;이 기준은 산업별(인쇄 vs 디지털)로 다소 유연하나, BenQ PD 시리즈 팩토리 캘리브레이션은 &amp;Delta;E &amp;le;3을 목표로 출고됩니다.&lt;/span&gt;&lt;span style=&quot;color: oklch(0.9296 0.007 106.53); text-align: start;&quot; data-state=&quot;open&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background-color: oklch(0.2167 0.002 197.04); color: oklch(0.9296 0.007 106.53); text-align: start;&quot; data-state=&quot;open&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;Delta;E &amp;lt; 1: 인쇄&amp;middot;출판 전문가 기준(인간 눈으로 구분 불가, 전문가 작업 표준).&lt;span data-state=&quot;closed&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://www.benq.com/ko-kr/monitor/graphic-design.html&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;benq&lt;/span&gt;&lt;span&gt;&lt;span&gt;+1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;​&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&amp;Delta;E &amp;le; 3: 일반 디자인&amp;middot;웹 작업(팩토리 캘리브레이션 수준).&lt;span data-state=&quot;closed&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://blog.naver.com/benq4ever/223990838695&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;naver&lt;/span&gt;&lt;span&gt;&lt;span&gt;+1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;​&lt;/span&gt;&lt;br /&gt;인쇄 워크플로에서 모니터 색이 인쇄 잉크&amp;middot;용지와 일치해야 하므로 &amp;Delta;E &amp;le;1을 요구하며, 용지&amp;middot;잉크 오차까지 고려해 엄격히 관리됩니다.&lt;span data-state=&quot;closed&quot;&gt;&lt;span&gt;&lt;a href=&quot;http://glight724.com/entry/%EC%BB%AC%EB%9F%AC%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%83%89%EC%B0%A8%EB%A5%BC-%EC%88%98%EC%B9%98%EB%A1%9C-%ED%91%9C%ED%98%84%ED%95%98%EB%8A%94-Delta-E%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;glight724&lt;/span&gt;&lt;span&gt;&lt;span&gt;+1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;​&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;하드웨어 캘리브레이터가 필요한 이유&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;팩토리 캘리브레이션(&amp;Delta;E &amp;le;3)은 기본 상태에서 우수하나, 장기 사용&amp;middot;환경 변화로 편차가 생기면 소프트웨어만으로는 한계가 있습니다.&lt;span data-state=&quot;closed&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://www.threenh.com/kor/Color_Knowledge/Understanding-Delta-E-Key-to-Perfect-Color.html&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;threenh&lt;/span&gt;&lt;span&gt;&lt;span&gt;+1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;​&lt;/span&gt;&lt;br /&gt;하드웨어 캘리브레이터(X-Rite i1Display Pro, Datacolor SpyderX 등)는 모니터에 직접 부착해 빛을 측정하며 정확한 ICC 프로파일 생성, 인쇄소와 색 교환 시 필수입니다.&lt;span data-state=&quot;closed&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://blog.naver.com/benq4ever/223990838695&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;naver&lt;/span&gt;&lt;span&gt;&lt;span&gt;+1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;하드웨어 캘리브레이터&lt;span&gt;&amp;nbsp;&lt;/span&gt;추천 장비&amp;nbsp;&lt;/h4&gt;
&lt;div&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;장비&lt;/td&gt;
&lt;td&gt;가격대&lt;/td&gt;
&lt;td&gt;특징&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;X-Rite i1Display Pro&lt;/td&gt;
&lt;td&gt;30~40만 원&lt;/td&gt;
&lt;td&gt;인쇄소 표준, DisplayCAL 소프트웨어 호환 우수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Datacolor SpyderX&lt;/td&gt;
&lt;td&gt;25~35만 원&lt;/td&gt;
&lt;td&gt;BenQ&amp;middot;EIZO 전용 소프트웨어 지원, 초보자 친화적&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Calibrite Display Plus HL&lt;/td&gt;
&lt;td&gt;35~45만 원&lt;/td&gt;
&lt;td&gt;HDR&amp;middot;고해상도 지원 강화 &lt;span data-state=&quot;closed&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://visko.co.kr/blogPost/color_deltaE_colorspace&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;visko&lt;/span&gt;&lt;span&gt;&lt;span&gt;+1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;​&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;사용 순서&lt;/b&gt;: 장비 연결 &amp;rarr; 소프트웨어 실행(2주마다 캘리브레이션) &amp;rarr; 인쇄 샘플과 비교 &amp;rarr; 프로파일 적용. 인쇄 의뢰 전 이 과정을 통해 색 이슈를 사전 차단할 수 있습니다.&lt;span data-state=&quot;closed&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://ko.mlcustompackagingbox.com/news/basic-principles-and-terminology-of-printing-c-64771147.html&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;mlcustompackagingbox&lt;/span&gt;&lt;span&gt;&lt;span&gt;+1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;참고자료&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://visko.co.kr/blogPost/color_deltaE_colorspace&quot;&gt;https://visko.co.kr/blogPost/color_deltaE_colorspace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.threenh.com/kor/Color_Knowledge/Understanding-Delta-E-Key-to-Perfect-Color.html&quot;&gt;https://www.threenh.com/kor/Color_Knowledge/Understanding-Delta-E-Key-to-Perfect-Color.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://glight724.com/entry/%EC%BB%AC%EB%9F%AC%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%83%89%EC%B0%A8%EB%A5%BC-%EC%88%98%EC%B9%98%EB%A1%9C-%ED%91%9C%ED%98%84%ED%95%98%EB%8A%94-Delta-E%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC&quot;&gt;http://glight724.com/entry/%EC%BB%AC%EB%9F%AC%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%83%89%EC%B0%A8%EB%A5%BC-%EC%88%98%EC%B9%98%EB%A1%9C-%ED%91%9C%ED%98%84%ED%95%98%EB%8A%94-Delta-E%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ko.mlcustompackagingbox.com/news/basic-principles-and-terminology-of-printing-c-64771147.html&quot;&gt;https://ko.mlcustompackagingbox.com/news/basic-principles-and-terminology-of-printing-c-64771147.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/CommercialPrinting/comments/e6qggt/delta_e_limits_for_different_printing_technology/&quot;&gt;https://www.reddit.com/r/CommercialPrinting/comments/e6qggt/delta_e_limits_for_different_printing_technology/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.benq.com/ko-kr/monitor/graphic-design.html&quot;&gt;https://www.benq.com/ko-kr/monitor/graphic-design.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.kdia.org/ebook/file3-1.pdf&quot;&gt;http://www.kdia.org/ebook/file3-1.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.benq.com/ko-kr/knowledge-center/knowledge/calibration-report.html&quot;&gt;https://www.benq.com/ko-kr/knowledge-center/knowledge/calibration-report.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://prod.danawa.com/info/?pcode=15912833&quot;&gt;https://prod.danawa.com/info/?pcode=15912833&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.ilovepc.co.kr/news/articleView.html?idxno=41953&quot;&gt;https://www.ilovepc.co.kr/news/articleView.html?idxno=41953&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;​ &lt;a href=&quot;https://dpg.danawa.com/news/view?boardSeq=62&amp;amp;listSeq=4941860&quot;&gt;https://dpg.danawa.com/news/view?boardSeq=62&amp;amp;listSeq=4941860&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.benq.com/ko-kr/monitor/professional/pd3220u.html&quot;&gt;https://www.benq.com/ko-kr/monitor/professional/pd3220u.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.enuri.com/knowcom/detail.jsp?kbno=3538724&amp;amp;bbsname=review&quot;&gt;https://www.enuri.com/knowcom/detail.jsp?kbno=3538724&amp;amp;bbsname=review&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.enuri.com/knowcom/detail.jsp?kbno=3538724&amp;amp;bbsname=review&quot;&gt;https://www.enuri.com/knowcom/detail.jsp?kbno=3538724&amp;amp;bbsname=review&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.imore.com/mac/benq-pd3220u-review&quot;&gt;https://www.imore.com/mac/benq-pd3220u-review&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/BenQ/comments/1b8wqx6/benq_pd_3220_u_not_matching_color/&quot;&gt;https://www.reddit.com/r/BenQ/comments/1b8wqx6/benq_pd_3220_u_not_matching_color/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;(관련 블로그)&lt;/p&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.naver.com/slow_d/222750620745&quot;&gt;https://blog.naver.com/slow_d/222750620745&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.naver.com/wellmile/223044223914&quot;&gt;https://blog.naver.com/wellmile/223044223914&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.naver.com/mustcolor/221477416721&quot;&gt;https://blog.naver.com/mustcolor/221477416721&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.benq.com/ko-kr/knowledge-center/knowledge/calibration-report.html&quot;&gt;https://www.benq.com/ko-kr/knowledge-center/knowledge/calibration-report.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.naver.com/contentsfit_ceo/222839719664&quot;&gt;https://blog.naver.com/contentsfit_ceo/222839719664&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.naver.com/s87boyo/223470183002&quot;&gt;https://blog.naver.com/s87boyo/223470183002&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.naver.com/tech-plus/221910721272&quot;&gt;https://blog.naver.com/tech-plus/221910721272&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.naver.com/midashan/223142797836&quot;&gt;https://blog.naver.com/midashan/223142797836&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.naver.com/howardkim/220987055769&quot;&gt;https://blog.naver.com/howardkim/220987055769&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>Tech-Trends</category>
      <category>그래픽 디자인 모니터 추천</category>
      <category>디스플레이 Delta E VS 인쇄 Delta E 기준</category>
      <category>디자이너 추천 모니터</category>
      <category>맥호환 모니터 추천</category>
      <category>웹디자인 추천 모니터</category>
      <category>하드웨어 캘리브레이터가 필요한 이유</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/910</guid>
      <comments>https://couplewith.tistory.com/910#entry910comment</comments>
      <pubDate>Fri, 23 Jan 2026 13:52:02 +0900</pubDate>
    </item>
    <item>
      <title>WSL2에서  VHDX 디스크 마운트하는 방법</title>
      <link>https://couplewith.tistory.com/909</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Copilot_20260120_010848.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eNmyiq/dJMcagdcDWB/t6utrdivkGgW81xN0Ciowk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eNmyiq/dJMcagdcDWB/t6utrdivkGgW81xN0Ciowk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eNmyiq/dJMcagdcDWB/t6utrdivkGgW81xN0Ciowk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeNmyiq%2FdJMcagdcDWB%2Ft6utrdivkGgW81xN0Ciowk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; data-filename=&quot;Copilot_20260120_010848.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;code_1768877702818&quot; data-ke-type=&quot;html&quot; data-source=&quot;&amp;lt;div class=&amp;quot;wsl-guide&amp;quot;&amp;gt;
  &amp;lt;style&amp;gt;
    .wsl-guide {
      font-family: 'Segoe UI', sans-serif;
      background-color: #f4f6f8;
      color: #333;
      padding: 10px;
      max-width: 800px;
      margin: auto;
    }

    .wsl-guide header {
      background-color: #4da6ff; /* 밝은 파랑 */
      color: white;
      padding: 8px;
      text-align: center;
      border-radius: 4px;
    }

    .wsl-guide header h1 {
      margin: 0;
      font-size: 16px; /* 타이틀 글자 크기 */
    }

    .wsl-guide .guide-item {
      background-color: #ffffff;
      border-radius: 4px;
      box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
      padding: 5px; /* 테두리 여백 */
      margin-bottom: 5px;
      display: flex;
      align-items: center;
      font-size: 12px; /* 기본 글자 크기 */
    }

    .wsl-guide .icon {
      background-color: #4da6ff;
      color: white;
      border-radius: 50%;
      width: 18px;
      height: 18px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 10px; /* 아이콘 글자 크기 */
      font-weight: bold;
      margin-right: 8px;
      flex-shrink: 0;
    }

    .wsl-guide .guide-item a {
      color: #007acc;
      text-decoration: none;
      font-weight: 500;
    }

    .wsl-guide .guide-item a:hover {
      text-decoration: underline;
    }
  &amp;lt;/style&amp;gt;

  &amp;lt;header&amp;gt;
    &amp;lt;h1&amp;gt;WSL 사용법 &amp;ndash; How To Start WSL&amp;lt;/h1&amp;gt;
  &amp;lt;/header&amp;gt;

  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;1&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/576&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL 설치와 사용법(Windows Subsystem for Linux)&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;2&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/577&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;알면 좋은 WSL 기본 명령 사용법&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;3&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/578&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL 설치 디렉토리 커스텀 경로 변경&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;4&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/579&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL ssh 설치와 접속하기&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;5&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/581&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL Docker 설치하기&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;6&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/582&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL Ubuntu apt update 오류 해결&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;7&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/583&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL iptables-legacy 전환 해결&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;8&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/585&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL Docker Desktop 설치&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;9&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/908&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;Windows 10/11 - WSL2 업그레이드&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;10&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/909&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL VHDX 디스크 추가 마운트 방법&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;11&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/903&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL LLM Ollama 커스텀 경로 설치 가이드&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&quot;&gt;
&lt;div class=&quot;wsl-guide&quot;&gt;
&lt;style&gt;
    .wsl-guide {
      font-family: 'Segoe UI', sans-serif;
      background-color: #f4f6f8;
      color: #333;
      padding: 10px;
      max-width: 800px;
      margin: auto;
    }

    .wsl-guide header {
      background-color: #4da6ff; /* 밝은 파랑 */
      color: white;
      padding: 8px;
      text-align: center;
      border-radius: 4px;
    }

    .wsl-guide header h1 {
      margin: 0;
      font-size: 16px; /* 타이틀 글자 크기 */
    }

    .wsl-guide .guide-item {
      background-color: #ffffff;
      border-radius: 4px;
      box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
      padding: 5px; /* 테두리 여백 */
      margin-bottom: 5px;
      display: flex;
      align-items: center;
      font-size: 12px; /* 기본 글자 크기 */
    }

    .wsl-guide .icon {
      background-color: #4da6ff;
      color: white;
      border-radius: 50%;
      width: 18px;
      height: 18px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 10px; /* 아이콘 글자 크기 */
      font-weight: bold;
      margin-right: 8px;
      flex-shrink: 0;
    }

    .wsl-guide .guide-item a {
      color: #007acc;
      text-decoration: none;
      font-weight: 500;
    }

    .wsl-guide .guide-item a:hover {
      text-decoration: underline;
    }
  &lt;/style&gt;
&lt;header&gt;
&lt;h1&gt;WSL 사용법 &amp;ndash; How To Start WSL&lt;/h1&gt;
&lt;/header&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;1&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/576&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL 설치와 사용법(Windows Subsystem for Linux)&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;2&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/577&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;알면 좋은 WSL 기본 명령 사용법&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;3&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/578&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL 설치 디렉토리 커스텀 경로 변경&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;4&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/579&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL ssh 설치와 접속하기&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;5&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/581&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL Docker 설치하기&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;6&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/582&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL Ubuntu apt update 오류 해결&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;7&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/583&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL iptables-legacy 전환 해결&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;8&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/585&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL Docker Desktop 설치&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;9&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/908&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Windows 10/11 - WSL2 업그레이드&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;10&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/909&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL VHDX 디스크 추가 마운트 방법&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;11&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/903&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL LLM Ollama 커스텀 경로 설치 가이드&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WSL2(Windows Subsystem for Linux) 환경에서 추가 디스크를 사용하고 싶을 때, VHDX 파일을 생성하여 마운트하면 독립적인 저장 공간을 확보할 수 있습니다. 이번 글에서는 &lt;b&gt;20GB 크기의 VHDX 파일을 생성하고 WSL에 마운트하는 과정&lt;/b&gt;을&amp;nbsp; 정리합니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;WSL은 &lt;br /&gt;Windows에서 직접 Linux 환경을 실행할 수 있게 해주는 기능이고, &lt;br /&gt;Hyper-V는 &lt;br /&gt;하드웨어 수준에서 여러 가상 머신을 생성&amp;middot;관리&lt;br /&gt;할 수 있는 엔터프라이즈급 가상화 플랫폼입니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;⚙️ VHDX 디스크 마운트하는 방법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. VHDX 파일 생성 (Windows에서)&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;PowerShell에서 diskpart 실행&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;maximum=40960 &amp;rarr; 40GB 크기 지정&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;type=expandable &amp;rarr; 필요 시 자동 확장 가능&lt;/span&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;(powershell)&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# 40GB 디스크를 생성합니다.
diskpart
create vdisk file=&quot;D:\VM_OS\WSL_Oracle95\wsl_data.vhdx&quot; maximum=40480 type=expandable
select vdisk file=&quot;D:\VM_OS\WSL_Oracle95\wsl_data.vhdx&quot;
attach vdisk
create partition primary
format fs=ntfs quick
exit&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;diskpart 실행 하여 Windows에서 VHDX를 디스크로 attach 해야 합니다.&lt;span&gt;  이렇게 하면 VHDX가 Windows에 물리 디스크처럼 인식됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;diskpart
select vdisk file=&quot;D:\VM_OS\WSL_Oracle95\wsl_data.vhdx&quot;
attach vdisk
exit&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt; diskmgmt.msc 실행 하여 디스크 번호 확인&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Windows에서 Win + R &amp;rarr; diskmgmt.msc 입력 &amp;rarr; 디스크 관리 실행&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: none;&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;diskmgmt.msc 실행 &amp;rarr; 새로 연결된 디스크 번호 확인&amp;nbsp; 3 이라면&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;예: PhysicalDrive3&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;새로 연결된 디스크가 &lt;b&gt;&amp;ldquo;온라인&amp;rdquo; 상태&lt;/b&gt;로 표시되는지 확인&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;보통 &amp;ldquo;디스크 2&amp;rdquo;, &amp;ldquo;디스크 3&amp;rdquo; 같은 번호로 나타납니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2. &lt;b&gt;diskpart로 attach 된 디스크 직접 확인&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1768836986155&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;diskpart 실행후 다음 명령으로 현재 attach된 VHDX 목록이 표시됩니다.

list vdisk

Copyright (C) Microsoft Corporation.
컴퓨터: DESKTOP-VPVS04M

DISKPART&amp;gt; list vdisk

  가상 디스크 ###  디스크 ###  상태                 형식       파일
  ---------------  ----------  -------------------  ---------  ----
  가상 디스크 0    디스크 ---  추가됨                  알 수 없음     D:\VM_OS\WSL_Oracle95\wsl_date.vhdx
  가상 디스크 1    디스크 3    연결되고 열리지 않음          확장 가능      D:\VM_OS\WSL_Oracle95\wsl_data.vhdx
  
  
  # 상태: 추가됨 (Attached)
  # 상태: 연결되고 열리지 않음 (Attached but not Opened)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;2. WSL 의 드라이버를 연결 합니다.&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WSL에서 wsl --mount \\.\PhysicalDrive3 --bare로 연결한 뒤, 내부에서 포맷해야 합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1768837193000&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;wsl --mount \\.\PhysicalDrive3 --bare&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;PS&amp;nbsp;D:\VM_OS\WSL_Oracle95&amp;gt;&amp;nbsp;wsl&amp;nbsp;--mount&amp;nbsp;\\.\PhysicalDrive3&amp;nbsp;--bare &lt;br /&gt;디스크&amp;nbsp;'\\.\PhysicalDrive3'이(가)&amp;nbsp;이미&amp;nbsp;연결되어&amp;nbsp;있습니다. &lt;br /&gt;오류&amp;nbsp;코드:&amp;nbsp;Wsl/Service/AttachDisk/MountDisk/WSL_E_DISK_ALREADY_ATTACHED&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. Linux 파일시스템으로 포맷&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;lsblk   # 디스크 이름 확인
sudo mkfs.ext4 /dev/sdx   # ext4로 포멧



[root@DESKTOP-VPVS04M WSL_Oracle95]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      8:0    0 388.6M  1 disk
sdb      8:16   0   186M  1 disk
sdc      8:32   0     2G  0 disk [SWAP]
sdd      8:48   0    40G  0 disk
└─sdd1   8:49   0    40G  0 part
sde      8:64   0     1T  0 disk /mnt/wslg/distro

# 방금 attach한 VHDX가 sdd1 (40GB 디스크)로 인식



[root@DESKTOP-VPVS04M WSL_Oracle95]# sudo mkfs.ext4 /dev/sdd1
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done
Creating filesystem with 10485248 4k blocks and 2621440 inodes
Filesystem UUID: c47a45cd-6505-47e7-b0b6-46c91763a267
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624

Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information:




[root@DESKTOP-VPVS04M WSL_Oracle95]# mount -t ext4 /dev/sdd1 /mnt/wsl_data&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;(sdx는 실제 디스크 이름으로 교체)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. WSL에 마운트&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Windows PowerShell에서:&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;powershell&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;sudo mkdir -p /mnt/wsl_data

sudo mount /dev/sdd1 /mnt/wsl_data&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000; font-size: 1.44em; letter-spacing: -1px;&quot;&gt;5. 파티션 마운트 확인&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;bash&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;df -h


[root@DESKTOP-VPVS04M WSL_Oracle95]# df -h
Filesystem      Size  Used Avail Use% Mounted on
none            3.4G     0  3.4G   0% /usr/lib/modules/6.6.87.2-microsoft-standard-WSL2
none            3.4G  4.0K  3.4G   1% /mnt/wsl
drivers         232G  192G   41G  83% /usr/lib/wsl/drivers
/dev/sde       1007G  369M  956G   1% /
none            3.4G   76K  3.4G   1% /mnt/wslg
none            3.4G     0  3.4G   0% /usr/lib/wsl/lib
rootfs          3.4G  2.7M  3.4G   1% /init
none            3.4G     0  3.4G   0% /dev
none            3.4G     0  3.4G   0% /run
none            3.4G     0  3.4G   0% /run/lock
none            3.4G     0  3.4G   0% /run/shm
none            3.4G     0  3.4G   0% /run/user
none            3.4G   92K  3.4G   1% /mnt/wslg/versions.txt
none            3.4G   92K  3.4G   1% /mnt/wslg/doc
C:\             232G  192G   41G  83% /mnt/c
/dev/sdd1        40G   24K   38G   1% /mnt/wsl_data&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;rarr; /mnt/vhdx에 40GB 디스크가 표시되면 성공적으로 마운트된 것입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;6. 파티션 마운트 확인&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&amp;nbsp; /etc/fstab에 아래와 같이 마운트 설정을 추가합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1768837668842&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;vi /etc/fstab

/dev/sdd1   /mnt/wsl_data   ext4   defaults   0   0&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;blkid 를 이용하여&amp;nbsp; disk의 UUID로 마운트 옵션을 추가 할 수 있습니다.&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&amp;nbsp;sudo&amp;nbsp;blkid&amp;nbsp;/dev/sdd1 &lt;br /&gt;/dev/sdd1: UUID=&quot;c47a45cd-6505-47e7-b0b6-46c91763a267&quot; TYPE=&quot;ext4&quot; PARTUUID=&quot;2b6c399b-01&quot;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1768837931109&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# /etc/fstab
UUID=&quot;c47a45cd-6505-47e7-b0b6-46c91763a267&quot;   /mnt/wsl_data   ext4   defaults   0   0&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;7. 파티션 마운트&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1768838191896&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo mount -a&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Systemd 기반 시작시 자동 마운트 설정도 가능&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;1) .wslconfig에서 systemd 활성화&lt;br /&gt;2) /etc/systemd/system/mnt-wsl_data.mount 작성&lt;br /&gt;3) systemctl enable/start로 자동 마운트 설정&lt;br /&gt;* sudo blkid /dev/sdd1 를 이용하여&amp;nbsp; &amp;nbsp;UUID 를 확인하고 UUID 기반&amp;nbsp; &amp;nbsp;설정 권장&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1️⃣ systemd 활성화 확인&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;WSL 설정 파일에서 systemd가 켜져 있어야 합니다. Windows에서:&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;powershell&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;mel&quot;&gt;&lt;code&gt;notepad %USERPROFILE%\.wslconfig
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;내용에 다음을 추가:&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;코드&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;ini&quot;&gt;&lt;code&gt;[boot]
systemd=true
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;rarr; 저장 후 WSL 재시작 (wsl --shutdown &amp;rarr; 다시 실행)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2️⃣ 마운트 유닛 파일 생성&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;WSL 내부에서 다음 경로에 유닛 파일을 만듭니다:&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;bash&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;awk&quot;&gt;&lt;code&gt;sudo nano /etc/systemd/system/mnt-wsl_data.mount
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;내용 예시:&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;코드&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;ini&quot;&gt;&lt;code&gt;[Unit]
Description=Mount WSL Data Disk
DefaultDependencies=no
After=local-fs.target

[Mount]
What=/dev/sdd1
Where=/mnt/wsl_data
Type=ext4
Options=defaults

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;*&amp;nbsp;&lt;span&gt;&lt;span&gt;What&lt;/span&gt;&lt;/span&gt;&lt;span&gt;=UUID=abcd-&lt;/span&gt;&lt;span&gt;&lt;span&gt;1234&lt;/span&gt;&lt;/span&gt;&lt;span&gt;-efgh-&lt;/span&gt;&lt;span&gt;&lt;span&gt;5678&amp;nbsp; &amp;nbsp; 와 같이 수정 할 수 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3️⃣ 유닛 활성화&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;bash&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;properties&quot;&gt;&lt;code&gt;sudo systemctl daemon-reload
sudo systemctl enable mnt-wsl_data.mount
sudo systemctl start mnt-wsl_data.mount
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4️⃣ 확인&lt;/h2&gt;
&lt;pre id=&quot;code_1768838269423&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;df -h&lt;/code&gt;&lt;/pre&gt;</description>
      <category>InfraPlatform</category>
      <category>wsl 가상디스크 추가</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/909</guid>
      <comments>https://couplewith.tistory.com/909#entry909comment</comments>
      <pubDate>Tue, 20 Jan 2026 00:58:06 +0900</pubDate>
    </item>
    <item>
      <title>Windows 10/11  -  WSL 2  업그레이드</title>
      <link>https://couplewith.tistory.com/908</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;WSL_20260119_235709.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drunhD/dJMcacPp85A/n10Lr4pC2RIRpk0rYdMir0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drunhD/dJMcacPp85A/n10Lr4pC2RIRpk0rYdMir0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drunhD/dJMcacPp85A/n10Lr4pC2RIRpk0rYdMir0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrunhD%2FdJMcacPp85A%2Fn10Lr4pC2RIRpk0rYdMir0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; data-filename=&quot;WSL_20260119_235709.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;div id=&quot;code_1768840535610&quot; data-ke-type=&quot;html&quot; data-source=&quot;&amp;lt;div class=&amp;quot;wsl-guide&amp;quot;&amp;gt;
  &amp;lt;style&amp;gt;
    .wsl-guide {
      font-family: 'Segoe UI', sans-serif;
      background-color: #f4f6f8;
      color: #333;
      padding: 10px;
      max-width: 800px;
      margin: auto;
    }

    .wsl-guide header {
      background-color: #4da6ff; /* 밝은 파랑 */
      color: white;
      padding: 8px;
      text-align: center;
      border-radius: 4px;
    }

    .wsl-guide header h1 {
      margin: 0;
      font-size: 16px; /* 타이틀 글자 크기 */
    }

    .wsl-guide .guide-item {
      background-color: #ffffff;
      border-radius: 4px;
      box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
      padding: 5px; /* 테두리 여백 */
      margin-bottom: 5px;
      display: flex;
      align-items: center;
      font-size: 12px; /* 기본 글자 크기 */
    }

    .wsl-guide .icon {
      background-color: #4da6ff;
      color: white;
      border-radius: 50%;
      width: 18px;
      height: 18px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 10px; /* 아이콘 글자 크기 */
      font-weight: bold;
      margin-right: 8px;
      flex-shrink: 0;
    }

    .wsl-guide .guide-item a {
      color: #007acc;
      text-decoration: none;
      font-weight: 500;
    }

    .wsl-guide .guide-item a:hover {
      text-decoration: underline;
    }
  &amp;lt;/style&amp;gt;

  &amp;lt;header&amp;gt;
    &amp;lt;h1&amp;gt;WSL 사용법 &amp;ndash; How To Start WSL&amp;lt;/h1&amp;gt;
  &amp;lt;/header&amp;gt;

  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;1&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/576&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL 설치와 사용법(Windows Subsystem for Linux)&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;2&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/577&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;알면 좋은 WSL 기본 명령 사용법&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;3&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/578&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL 설치 디렉토리 커스텀 경로 변경&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;4&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/579&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL ssh 설치와 접속하기&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;5&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/581&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL Docker 설치하기&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;6&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/582&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL Ubuntu apt update 오류 해결&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;7&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/583&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL iptables-legacy 전환 해결&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;8&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/585&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL Docker Desktop 설치&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;9&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/908&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;Windows 10/11 - WSL2 업그레이드&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;10&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/909&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL VHDX 디스크 추가 마운트 방법&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;guide-item&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;icon&amp;quot;&amp;gt;11&amp;lt;/div&amp;gt;&amp;lt;a href=&amp;quot;https://couplewith.tistory.com/903&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;WSL LLM Ollama 커스텀 경로 설치 가이드&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&quot;&gt;
&lt;div class=&quot;wsl-guide&quot;&gt;
&lt;style&gt;
    .wsl-guide {
      font-family: 'Segoe UI', sans-serif;
      background-color: #f4f6f8;
      color: #333;
      padding: 10px;
      max-width: 800px;
      margin: auto;
    }

    .wsl-guide header {
      background-color: #4da6ff; /* 밝은 파랑 */
      color: white;
      padding: 8px;
      text-align: center;
      border-radius: 4px;
    }

    .wsl-guide header h1 {
      margin: 0;
      font-size: 16px; /* 타이틀 글자 크기 */
    }

    .wsl-guide .guide-item {
      background-color: #ffffff;
      border-radius: 4px;
      box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
      padding: 5px; /* 테두리 여백 */
      margin-bottom: 5px;
      display: flex;
      align-items: center;
      font-size: 12px; /* 기본 글자 크기 */
    }

    .wsl-guide .icon {
      background-color: #4da6ff;
      color: white;
      border-radius: 50%;
      width: 18px;
      height: 18px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 10px; /* 아이콘 글자 크기 */
      font-weight: bold;
      margin-right: 8px;
      flex-shrink: 0;
    }

    .wsl-guide .guide-item a {
      color: #007acc;
      text-decoration: none;
      font-weight: 500;
    }

    .wsl-guide .guide-item a:hover {
      text-decoration: underline;
    }
  &lt;/style&gt;
&lt;header&gt;
&lt;h1&gt;WSL 사용법 &amp;ndash; How To Start WSL&lt;/h1&gt;
&lt;/header&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;1&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/576&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL 설치와 사용법(Windows Subsystem for Linux)&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;2&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/577&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;알면 좋은 WSL 기본 명령 사용법&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;3&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/578&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL 설치 디렉토리 커스텀 경로 변경&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;4&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/579&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL ssh 설치와 접속하기&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;5&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/581&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL Docker 설치하기&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;6&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/582&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL Ubuntu apt update 오류 해결&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;7&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/583&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL iptables-legacy 전환 해결&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;8&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/585&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL Docker Desktop 설치&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;9&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/908&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Windows 10/11 - WSL2 업그레이드&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;10&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/909&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL VHDX 디스크 추가 마운트 방법&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;guide-item&quot;&gt;
&lt;div class=&quot;icon&quot;&gt;11&lt;/div&gt;
&lt;a href=&quot;https://couplewith.tistory.com/903&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL LLM Ollama 커스텀 경로 설치 가이드&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WSL은 windows 10에서는 기본 wsl v1 이고 windows 11에서는 WSL 2가 기본입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 .vhdx 이미지를 백업하거나 import 하는 일부 명령이 작동하지 않습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;WSL 1과 WSL 2의 차이점&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;WSL 1&lt;/b&gt;: 리눅스 커널을 에뮬레이션하여 실행. 속도는 빠르지만 호환성에 제한이 있음.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;WSL 2&lt;/b&gt;: 실제 리눅스 커널을 포함하여 더 높은 호환성과 성능 제공. Docker 등 다양한 개발 환경에서 필수적.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&amp;nbsp;WSL 1 vs WSL 2&amp;nbsp; 기술 비교&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;&lt;br /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 276px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;b&gt;구분&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;b&gt;WSL 1&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;b&gt;&amp;nbsp;WSL 2&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;운영체계&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;span&gt;Windows 10&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;span&gt;Windows 11이상&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 37px;&quot;&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;b&gt;&lt;span&gt;기본 &lt;/span&gt;&lt;span&gt;구조&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;리눅스 &lt;/span&gt;&lt;span&gt;시스템 &lt;/span&gt;&lt;span&gt;호출(System &lt;/span&gt;&lt;span&gt;Call)을 &lt;/span&gt;&lt;span&gt;Windows &lt;/span&gt;&lt;span&gt;NT &lt;/span&gt;&lt;span&gt;커널로 &lt;/span&gt;&lt;b&gt;&lt;span&gt;직접 &lt;/span&gt;&lt;span&gt;변환&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;실제 &lt;/span&gt;&lt;b&gt;&lt;span&gt;리눅스 &lt;/span&gt;&lt;span&gt;커널을 &lt;/span&gt;&lt;span&gt;VM(Hyper-V &lt;/span&gt;&lt;span&gt;기반)&lt;/span&gt;&lt;/b&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;으로 &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 37px;&quot;&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;b&gt;&lt;span&gt;커널&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;리눅스 &lt;/span&gt;&lt;span&gt;커널 &lt;/span&gt;&lt;span&gt;없음 &lt;/span&gt;&lt;span&gt;&amp;rarr; &lt;/span&gt;&lt;span&gt;Windows &lt;/span&gt;&lt;span&gt;NT &lt;/span&gt;&lt;span&gt;커널이 &lt;/span&gt;&lt;span&gt;리눅스 &lt;/span&gt;&lt;span&gt;호출을 &lt;/span&gt;&lt;span&gt;에뮬레이션&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;Microsoft가 &lt;/span&gt;&lt;span&gt;제공하는 &lt;/span&gt;&lt;b&gt;&lt;span&gt;진짜 &lt;/span&gt;&lt;span&gt;Linux &lt;/span&gt;&lt;span&gt;커널&lt;/span&gt;&lt;/b&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포함&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 37px;&quot;&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;b&gt;&lt;span&gt;호환성&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;&lt;span&gt;일부 &lt;/span&gt;&lt;span&gt;시스템 &lt;/span&gt;&lt;span&gt;호출 &lt;/span&gt;&lt;span&gt;미지원 &lt;/span&gt;&lt;span&gt;&amp;rarr; &lt;/span&gt;&lt;span&gt;Docker, &lt;/span&gt;&lt;span&gt;FUSE &lt;/span&gt;&lt;span&gt;등 &lt;/span&gt;&lt;span&gt;실행 &lt;/span&gt;&lt;span&gt;불가&lt;/span&gt; &lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;100% &lt;/span&gt;&lt;span&gt;리눅스 &lt;/span&gt;&lt;span&gt;커널 &lt;/span&gt;&lt;span&gt;호환 &lt;/span&gt;&lt;span&gt;&amp;rarr; &lt;/span&gt;&lt;span&gt;Docker, &lt;/span&gt;&lt;span&gt;FUSE, &lt;/span&gt;&lt;span&gt;최신 &lt;/span&gt;&lt;span&gt;배포판 &lt;/span&gt;&lt;span&gt;완벽 &lt;/span&gt;&lt;span&gt;지원&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 37px;&quot;&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;b&gt;&lt;span&gt;성능&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;네이티브 &lt;/span&gt;&lt;span&gt;Windows &lt;/span&gt;&lt;span&gt;호출 &lt;/span&gt;&lt;span&gt;변환 &lt;/span&gt;&lt;span&gt;&amp;rarr; &lt;/span&gt;&lt;span&gt;일부 &lt;/span&gt;&lt;span&gt;작업은 &lt;/span&gt;&lt;span&gt;빠름, &lt;/span&gt;&lt;span&gt;하지만 &lt;/span&gt;&lt;span&gt;리눅스 &lt;/span&gt;&lt;span&gt;전용 &lt;/span&gt;&lt;span&gt;기능 &lt;/span&gt;&lt;span&gt;제한&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;VM &lt;/span&gt;&lt;span&gt;기반이지만 &lt;/span&gt;&lt;b&gt;&lt;span&gt;리눅스 &lt;/span&gt;&lt;span&gt;네이티브 &lt;/span&gt;&lt;span&gt;성능&lt;/span&gt;&lt;/b&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공, &lt;/span&gt;&lt;span&gt;I/O, &lt;/span&gt;&lt;span&gt;시스템 &lt;/span&gt;&lt;span&gt;호출 &lt;/span&gt;&lt;span&gt;호환성 &lt;/span&gt;&lt;span&gt;우수&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;&lt;span&gt;파일시스템&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt; &lt;span&gt;Windows &lt;/span&gt;&lt;span&gt;NTFS와 &lt;/span&gt;&lt;span&gt;직접 &lt;/span&gt;&lt;span&gt;연결 &lt;/span&gt;&lt;span&gt;&amp;rarr; &lt;/span&gt;&lt;span&gt;Windows &lt;/span&gt;&lt;span&gt;파일 &lt;/span&gt;&lt;span&gt;접근 &lt;/span&gt;&lt;span&gt;속도 &lt;/span&gt;&lt;span&gt;빠름&lt;/span&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt; &lt;span&gt;VHDX &lt;/span&gt;&lt;span&gt;기반 &lt;/span&gt;&lt;span&gt;가상 &lt;/span&gt;&lt;span&gt;디스크 &lt;/span&gt;&lt;span&gt;사용 &lt;/span&gt;&lt;span&gt;&amp;rarr; &lt;/span&gt;&lt;span&gt;Linux &lt;/span&gt;&lt;span&gt;내부 &lt;/span&gt;&lt;span&gt;성능은 &lt;/span&gt;&lt;span&gt;좋지만 &lt;/span&gt;&lt;span&gt;Windows &lt;/span&gt;&lt;span&gt;파일 &lt;/span&gt;&lt;span&gt;접근은 &lt;/span&gt;&lt;span&gt;상대적으로 &lt;/span&gt;&lt;span&gt;느림&lt;/span&gt; &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;b&gt;&lt;span&gt;네트워크&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;span&gt;Windows와 &lt;/span&gt;&lt;span&gt;동일한 &lt;/span&gt;&lt;span&gt;네트워크 &lt;/span&gt;&lt;span&gt;스택 &lt;/span&gt;&lt;span&gt;공유&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;span&gt;VM &lt;/span&gt;&lt;span&gt;기반 &lt;/span&gt;&lt;span&gt;별도 &lt;/span&gt;&lt;span&gt;네트워크 &lt;/span&gt;&lt;span&gt;인터페이스 &lt;/span&gt;&lt;span&gt;사용&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 37px;&quot;&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;b&gt;&lt;span&gt;리소스 &lt;/span&gt;&lt;span&gt;관리&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;Windows &lt;/span&gt;&lt;span&gt;프로세스와 &lt;/span&gt;&lt;span&gt;거의 &lt;/span&gt;&lt;span&gt;동일하게 &lt;/span&gt;&lt;span&gt;동작&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;VM으로 &lt;/span&gt;&lt;span&gt;실행되므로 &lt;/span&gt;&lt;span&gt;CPU/메모리 &lt;/span&gt;&lt;span&gt;관리가 &lt;/span&gt;&lt;span&gt;Hyper-V &lt;/span&gt;&lt;span&gt;방식&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 37px;&quot;&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;b&gt;&lt;span&gt;업데이트 &lt;/span&gt;&lt;span&gt;방식&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;Windows &lt;/span&gt;&lt;span&gt;업데이트에 &lt;/span&gt;&lt;span&gt;포함&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;Microsoft &lt;/span&gt;&lt;span&gt;Store에서 &lt;/span&gt;&lt;span&gt;WSL &lt;/span&gt;&lt;span&gt;자체 &lt;/span&gt;&lt;span&gt;업데이트 &lt;/span&gt;&lt;span&gt;가능 &lt;/span&gt;&lt;span&gt;(독립적)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;WSL 2&amp;nbsp; 업데이트&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&lt;b&gt;ㅁ Windows 업데이트 확인/ 환경 설정&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;Windows 10: 버전 2004 이상 필요&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Windows 11: 기본적으로 WSL 2 지원&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;필수 구성 요소 설치&lt;/b&gt; PowerShell을 관리자 권한으로 실행 후 아래 명령어 입력:&lt;/span&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;powershell&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;jboss-cli&quot;&gt;&lt;code&gt;dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&lt;b&gt;ㅁ WSL update&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;WSL 커널 업데이트 패키지 설치&lt;/b&gt; Microsoft 공식 사이트에서 WSL2 Linux 커널 업데이트 패키지를 다운로드 후 설치.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- &lt;b&gt;&lt;span&gt;WSL &lt;/span&gt;&lt;span&gt;자체를 &lt;/span&gt;&lt;span&gt;최신 &lt;/span&gt;&lt;span&gt;버전으로 &lt;/span&gt;&lt;span&gt;업데이트&lt;/span&gt;&lt;/b&gt;&lt;span&gt;합니다.&lt;/span&gt; &lt;br /&gt;&amp;nbsp; 최신 버전에는 새로운 기능(--vhd 옵션 등), 성능 개선, 버그 수정, 최신 Linux 커널 업데이트가 포함됩니다. &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;*&amp;nbsp;wsl&amp;nbsp;--vhd&amp;nbsp;옵션이&amp;nbsp;작동하지&amp;nbsp;않는경우&amp;nbsp;&amp;nbsp;wsl&amp;nbsp;--update&amp;nbsp;명령으로&amp;nbsp;업그레이드를&amp;nbsp;하여야&amp;nbsp;합니다. &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1) wsl --update&lt;br /&gt;&lt;/b&gt;&lt;b&gt;&amp;nbsp; *) 실행 후에는 Windows 재부팅이 필요할 수 있습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2)&amp;nbsp; wsl --set-default-version 2&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3) &amp;nbsp;wsl --set-version OracleLinux_9_5&amp;nbsp; &amp;nbsp; 2&amp;nbsp; &amp;nbsp; &amp;nbsp;: 이미지를 WSL2로 업데이트 합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1768830056691&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;PS D:\VM_OS\WSL_export&amp;gt; wsl --update
업데이트 확인 중입니다.
Linux용 Windows 하위 시스템 최신 버전이 이미 설치되어 있습니다.


PS D:\VM_OS\WSL_export&amp;gt; wsl --version
WSL 버전: 2.6.3.0
커널 버전: 6.6.87.2-1
WSLg 버전: 1.0.71
MSRDC 버전: 1.2.6353
Direct3D 버전: 1.611.1-81528511
DXCore 버전: 10.0.26100.1-240331-1435.ge-release
Windows 버전: 10.0.19045.3448


PS D:\VM_OS\WSL_export&amp;gt; wsl --set-default-version 2
WSL 2와의 주요 차이점에 대한 자세한 내용은 https://aka.ms/wsl2를 참조하세요

작업을 완료했습니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;wsl --update가&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;변환이 실패하는 가장 흔한 이유는:&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;- VirtualMachinePlatform 기능 미설치&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;- BIOS에서 가상화(VT-x/AMD-V) 꺼짐&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;- Windows 버전이 낮음 (Win10 2004 미만)&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3)&amp;nbsp; wsl --set-version OracleLinux_9_5 2&lt;/b&gt; &lt;br /&gt;&amp;nbsp; *&amp;nbsp; 재부팅후 다음을 실행 합니다.&amp;nbsp; 아래와 같이 기존 이미지를 WSL 2로 업그레이드를 하였으므로&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; export를 하여 vhdx 파일로 백업과 복구가 가능할 것입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1768830193097&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# wsl --update 후에 재부팅을 합니다.

# 배포판을 업그레이드 합니다.

PS D:\VM_OS\WSL_export&amp;gt; wsl --list -v
  NAME               STATE           VERSION
* wsloracle95        Stopped         1
  OracleLinux_9_5    Stopped         1
  

PS D:\VM_OS\WSL_export&amp;gt; wsl --set-version OracleLinux_9_5 2
WSL 2와의 주요 차이점에 대한 자세한 내용은 https://aka.ms/wsl2를 참조하세요

변환이 진행 중입니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.
작업을 완료했습니다.



PS D:\VM_OS\WSL_export&amp;gt; wsl --list -v
  NAME               STATE           VERSION
* wsloracle95        Stopped         1
  OracleLinux_9_5    Stopped         2
PS D:\VM_OS\WSL_export&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;WSL export /import with vhdx&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;b&gt;wsl --export OracleLinux_9_5 oraclelinux95.vhdx&amp;nbsp;&amp;nbsp;&amp;nbsp;--vhd &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;wsl&amp;nbsp;--import&amp;nbsp;&amp;nbsp;Oracle95&amp;nbsp;D:\VM_OS\WSL_Oracle95&amp;nbsp;&amp;nbsp;oraclelinux95.vhdx&amp;nbsp;&amp;nbsp;&amp;nbsp;--vhd&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;wsl --set-default&amp;nbsp;&amp;nbsp;Oracle95&amp;nbsp; &amp;nbsp; &amp;nbsp; # 새로 설치한 이미지를 기본으로 설정&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;wsl --unregister wsloracle95&amp;nbsp; &amp;nbsp; # 기존 이미지 삭제&lt;br /&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;PS&amp;nbsp;D:\VM_OS\WSL_export&amp;gt;&amp;nbsp;wsl&amp;nbsp;--export&amp;nbsp;OracleLinux_9_5&amp;nbsp;oraclelinux95.vhdx&amp;nbsp;&amp;nbsp;&amp;nbsp;--vhd &lt;br /&gt;내보내기가&amp;nbsp;진행&amp;nbsp;중입니다.&amp;nbsp;이&amp;nbsp;작업은&amp;nbsp;몇&amp;nbsp;분&amp;nbsp;정도&amp;nbsp;걸릴&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;(384&amp;nbsp;MB) &lt;br /&gt;&lt;br /&gt;작업을&amp;nbsp;완료했습니다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS&amp;nbsp;D:\VM_OS\WSL_export&amp;gt;&amp;nbsp;wsl&amp;nbsp;--import&amp;nbsp;&amp;nbsp;Oracle95&amp;nbsp;D:\VM_OS\WSL_Oracle95&amp;nbsp;&amp;nbsp;oraclelinux95.vhdx&amp;nbsp;&amp;nbsp;&amp;nbsp;--vhd &lt;br /&gt;작업을&amp;nbsp;완료했습니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h1&gt;Windows 10/11 WSL 2&amp;nbsp; 비교&lt;/h1&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 332px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;구분&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;Windows 10 (버전 2004 이상)&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;Windows 11&lt;span&gt; &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 37px;&quot;&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;b&gt;&lt;span&gt;1. &lt;/span&gt;&lt;span&gt;OS &lt;/span&gt;&lt;span&gt;요구사항&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;Windows &lt;/span&gt;&lt;span&gt;10 &lt;/span&gt;&lt;span&gt;2004 &lt;/span&gt;&lt;span&gt;이상 &lt;/span&gt;&lt;span&gt;필요 &lt;/span&gt;&lt;span&gt;(19041+)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;Windows &lt;/span&gt;&lt;span&gt;11은 &lt;/span&gt;&lt;span&gt;기본적으로 &lt;/span&gt;&lt;span&gt;WSL &lt;/span&gt;&lt;span&gt;2 &lt;/span&gt;&lt;span&gt;지원&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 93px;&quot;&gt;
&lt;td style=&quot;height: 93px;&quot;&gt;&lt;b&gt;&lt;span&gt;2. &lt;/span&gt;&lt;span&gt;필수 &lt;/span&gt;&lt;span&gt;기능 &lt;/span&gt;&lt;span&gt;활성화&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 93px;&quot;&gt;&lt;span&gt;PowerShell(관리자)에서:&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;dism.exe &lt;/span&gt;&lt;span&gt;/online &lt;/span&gt;&lt;span&gt;/enable-feature &lt;/span&gt;&lt;span&gt;/featurename:VirtualMachinePlatform &lt;/span&gt;&lt;span&gt;/all &lt;/span&gt;&lt;span&gt;/norestart&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;dism.exe &lt;/span&gt;&lt;span&gt;/online &lt;/span&gt;&lt;span&gt;/enable-feature &lt;/span&gt;&lt;span&gt;/featurename:Microsoft-Windows-Subsystem-Linux &lt;/span&gt;&lt;span&gt;/all &lt;/span&gt;&lt;span&gt;/norestart&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 93px;&quot;&gt;&lt;span&gt;동일하게 &lt;/span&gt;&lt;span&gt;VirtualMachinePlatform &lt;/span&gt;&lt;span&gt;+ &lt;/span&gt;&lt;span&gt;WSL &lt;/span&gt;&lt;span&gt;기능 &lt;/span&gt;&lt;span&gt;활성화 &lt;/span&gt;&lt;span&gt;필요&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;b&gt;&lt;span&gt;3. &lt;/span&gt;&lt;span&gt;BIOS &lt;/span&gt;&lt;span&gt;설정&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;span&gt;BIOS/UEFI에서 &lt;/span&gt;&lt;b&gt;&lt;span&gt;가상화(VT-x/AMD-V)&lt;/span&gt;&lt;/b&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;켜기&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;span&gt;동일&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 37px;&quot;&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;b&gt;&lt;span&gt;4. &lt;/span&gt;&lt;span&gt;WSL &lt;/span&gt;&lt;span&gt;업데이트&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;wsl &lt;/span&gt;&lt;span&gt;--update&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;(Microsoft &lt;/span&gt;&lt;span&gt;Store &lt;/span&gt;&lt;span&gt;버전 &lt;/span&gt;&lt;span&gt;설치 &lt;/span&gt;&lt;span&gt;권장)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;wsl &lt;/span&gt;&lt;span&gt;--update&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;(기본적으로 &lt;/span&gt;&lt;span&gt;Store &lt;/span&gt;&lt;span&gt;버전 &lt;/span&gt;&lt;span&gt;포함)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 37px;&quot;&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;b&gt;&lt;span&gt;5. &lt;/span&gt;&lt;span&gt;기본 &lt;/span&gt;&lt;span&gt;버전 &lt;/span&gt;&lt;span&gt;설정&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;wsl &lt;/span&gt;&lt;span&gt;--set-default-version &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;동일&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 37px;&quot;&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;b&gt;&lt;span&gt;6. &lt;/span&gt;&lt;span&gt;배포판 &lt;/span&gt;&lt;span&gt;설치&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;Microsoft &lt;/span&gt;&lt;span&gt;Store에서 &lt;/span&gt;&lt;span&gt;Ubuntu, &lt;/span&gt;&lt;span&gt;Debian &lt;/span&gt;&lt;span&gt;등 &lt;/span&gt;&lt;span&gt;설치&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;동일&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 37px;&quot;&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;b&gt;&lt;span&gt;7. &lt;/span&gt;&lt;span&gt;배포판 &lt;/span&gt;&lt;span&gt;변환&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;wsl &lt;/span&gt;&lt;span&gt;--set-version &lt;/span&gt;&lt;span&gt;&amp;lt;배포판이름&amp;gt; &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 37px;&quot;&gt;&lt;span&gt;동일&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;b&gt;&lt;span&gt;8. &lt;/span&gt;&lt;span&gt;확인&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;span&gt;wsl &lt;/span&gt;&lt;span&gt;-l &lt;/span&gt;&lt;span&gt;-v&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;rarr; &lt;/span&gt;&lt;span&gt;VERSION이 &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;로 &lt;/span&gt;&lt;span&gt;표시되면 &lt;/span&gt;&lt;span&gt;성공&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;span&gt;동일&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;(문제해결) wsl 1 에서는&amp;nbsp; --vhd 옵션이 오류가 납니다.&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1768833333577&quot; class=&quot;brainfuck&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;PS D:\VM_OS\WSL_export&amp;gt; wsl --export OracleLinux_9_5 exp_oracle_95.vhdx   --vhd
내보내기가 진행 중입니다. 이 작업은 몇 분 정도 걸릴 수 있습니다. (0 MB)

이 작업은 WSL2에서만 지원됩니다.
오류 코드: Wsl/Service/WSL_E_WSL2_NEEDED&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;DISM(Deployment Image Servicing and Management)&lt;/b&gt; 도구를 이용해 Windows 기능을 켜는 명령입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;VirtualMachinePlatform 기능을 활성화합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;이 기능은 &lt;b&gt;WSL 2가 동작할 수 있도록 Hyper-V 기반 가상화 플랫폼을 제공&lt;/b&gt;합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;즉, WSL 2가 리눅스 커널을 VM 형태로 실행할 수 있게 해주는 핵심 기능입니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;첫 번째 명령: &lt;b&gt;WSL 2용 가상화 플랫폼 활성화&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1768830583528&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;PS D:\VM_OS\WSL_export&amp;gt; dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.844

이미지 버전: 10.0.19045.3448

기능을 사용하도록 설정하는 중
[==========================100.0%==========================]
작업을 완료했습니다.
PS D:\VM_OS\WSL_export&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;두 번째 명령:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;WSL 자체 기능 활성화&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;같은 방식으로 &lt;b&gt;Windows Subsystem for Linux(WSL)&lt;/b&gt; 기능을 켭니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;이 기능은 Windows에서 리눅스 실행 환경을 제공하는 기본 구성 요소입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;WSL 1과 WSL 2 모두 이 기능이 필요합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1768830628410&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;PS D:\VM_OS\WSL_export&amp;gt; dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.844

이미지 버전: 10.0.19045.3448

기능을 사용하도록 설정하는 중
[==========================100.0%==========================]
작업을 완료했습니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;/online &amp;rarr; 현재 실행 중인 Windows 시스템에 적용&lt;br /&gt;/enable-feature &amp;rarr; 특정 Windows 기능을 켜기&lt;br /&gt;/featurename:&amp;lt;기능명&amp;gt; &amp;rarr; 켜려는 기능 이름 지정&lt;br /&gt;/all &amp;rarr; 해당 기능과 필요한 종속 기능까지 모두 켜기&lt;br /&gt;/norestart &amp;rarr; 즉시 재부팅하지 않고, 나중에 사용자가 직접 재부팅하도록 설정&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>InfraPlatform</category>
      <category>WSL --update</category>
      <category>wsl 2 upgrade</category>
      <category>wsl 2 설정</category>
      <category>WSL export import</category>
      <category>WSL2 설정</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/908</guid>
      <comments>https://couplewith.tistory.com/908#entry908comment</comments>
      <pubDate>Mon, 19 Jan 2026 22:47:53 +0900</pubDate>
    </item>
    <item>
      <title>ollama를 이용한 LLM 환경 구축 가이드</title>
      <link>https://couplewith.tistory.com/905</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1767856745735&quot; class=&quot;html xml&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;ko&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt;
    &amp;lt;title&amp;gt;Ollama 관련 가이드 목록&amp;lt;/title&amp;gt;
    &amp;lt;style&amp;gt;
        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
            margin: 0;
            padding: 20px;
            background-color: #f8f9fa;
            line-height: 1.6;
        }
        .container {
            max-width: 800px;
            margin: 0 auto;
        }
        h1 {
            color: #2563eb;
            text-align: center;
            margin-bottom: 40px;
        }
        .table-wrapper {
            overflow-x: auto;
            margin-bottom: 30px;
            -webkit-overflow-scrolling: touch;
        }
        table {
            width: 100%;
            border-collapse: collapse;
            background-color: white;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
            border-radius: 12px;
            overflow: hidden;
        }
        thead th {
            background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
            color: white;
            padding: 20px 16px;
            text-align: left;
            font-weight: 600;
            font-size: 16px;
        }
        tbody td {
            padding: 18px 16px;
            border-bottom: 1px solid #e5e7eb;
            vertical-align: top;
        }
        tbody tr:hover {
            background-color: #f0f9ff;
        }
        .icon {
            font-size: 24px;
            margin-right: 12px;
            vertical-align: middle;
        }
        .title {
            font-weight: 600;
            font-size: 16px;
            color: #1f2937;
            margin: 0;
        }
        .url {
            color: #3b82f6;
            text-decoration: none;
            font-size: 14px;
            word-break: break-all;
        }
        .url:hover {
            text-decoration: underline;
        }
        @media (max-width: 768px) {
            .container {
                padding: 10px;
            }
            thead th,
            tbody td {
                padding: 12px 8px;
                font-size: 14px;
            }
            .icon {
                font-size: 20px;
            }
        }
        @media (max-width: 480px) {
            table {
                font-size: 13px;
            }
            .title {
                font-size: 15px;
            }
        }
    &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;div class=&quot;container&quot;&amp;gt;
        &amp;lt;h1&amp;gt;  Ollama 관련 가이드 목록&amp;lt;/h1&amp;gt;
        
        &amp;lt;div class=&quot;table-wrapper&quot;&amp;gt;
            &amp;lt;table&amp;gt;
                &amp;lt;thead&amp;gt;
                    &amp;lt;tr&amp;gt;
                        &amp;lt;th&amp;gt;  번호&amp;lt;/th&amp;gt;
                        &amp;lt;th&amp;gt;  제목 및 링크&amp;lt;/th&amp;gt;
                    &amp;lt;/tr&amp;gt;
                &amp;lt;/thead&amp;gt;
                &amp;lt;tbody&amp;gt;
                    &amp;lt;tr&amp;gt;
                        &amp;lt;td&amp;gt;&amp;lt;strong&amp;gt;1&amp;lt;/strong&amp;gt;&amp;lt;/td&amp;gt;
                        &amp;lt;td&amp;gt;
                            
                            &amp;lt;div&amp;gt;
                                &amp;lt;div class=&quot;title&quot;&amp;gt;&amp;lt;span class=&quot;icon&quot;&amp;gt;⚙️&amp;lt;/span&amp;gt;Ollama 커스텀 경로 설치 가이드(Ubuntu 22.04)&amp;lt;/div&amp;gt;
                                &amp;lt;a href=&quot;https://couplewith.tistory.com/903&quot; class=&quot;url&quot; target=&quot;_blank&quot;&amp;gt;https://couplewith.tistory.com/903&amp;lt;/a&amp;gt;
                            &amp;lt;/div&amp;gt;
                        &amp;lt;/td&amp;gt;
                    &amp;lt;/tr&amp;gt;
                    &amp;lt;tr&amp;gt;
                        &amp;lt;td&amp;gt;&amp;lt;strong&amp;gt;2&amp;lt;/strong&amp;gt;&amp;lt;/td&amp;gt;
                        &amp;lt;td&amp;gt;
                            
                            &amp;lt;div&amp;gt;
                                &amp;lt;div class=&quot;title&quot;&amp;gt;&amp;lt;span class=&quot;icon&quot;&amp;gt;⚡&amp;lt;/span&amp;gt;Ollama를 이용한 LLM성능 테스트&amp;lt;/div&amp;gt;
                                &amp;lt;a href=&quot;https://couplewith.tistory.com/904&quot; class=&quot;url&quot; target=&quot;_blank&quot;&amp;gt;https://couplewith.tistory.com/904&amp;lt;/a&amp;gt;
                            &amp;lt;/div&amp;gt;
                        &amp;lt;/td&amp;gt;
                    &amp;lt;/tr&amp;gt;
                    &amp;lt;tr&amp;gt;
                        &amp;lt;td&amp;gt;&amp;lt;strong&amp;gt;3&amp;lt;/strong&amp;gt;&amp;lt;/td&amp;gt;
                        &amp;lt;td&amp;gt;
                            
                            &amp;lt;div&amp;gt;
                                &amp;lt;div class=&quot;title&quot;&amp;gt;&amp;lt;span class=&quot;icon&quot;&amp;gt; &amp;lt;/span&amp;gt;Ollama와 DeepSeek 모델 LLM RAG 학습&amp;lt;/div&amp;gt;
                                &amp;lt;a href=&quot;#&quot; class=&quot;url&quot; target=&quot;_blank&quot;&amp;gt;예정&amp;lt;/a&amp;gt;
                            &amp;lt;/div&amp;gt;
                        &amp;lt;/td&amp;gt;
                    &amp;lt;/tr&amp;gt;
                    &amp;lt;tr&amp;gt;
                        &amp;lt;td&amp;gt;&amp;lt;strong&amp;gt;4&amp;lt;/strong&amp;gt;&amp;lt;/td&amp;gt;
                        &amp;lt;td&amp;gt;
                            
                            &amp;lt;div&amp;gt;
                                &amp;lt;div class=&quot;title&quot;&amp;gt;&amp;lt;span class=&quot;icon&quot;&amp;gt; ️&amp;lt;/span&amp;gt;Ollama와 DeepSeek 기반 비식별화 기능 개발&amp;lt;/div&amp;gt;
                                &amp;lt;a href=&quot;#&quot; class=&quot;url&quot; target=&quot;_blank&quot;&amp;gt;예정&amp;lt;/a&amp;gt;
                            &amp;lt;/div&amp;gt;
                        &amp;lt;/td&amp;gt;
                    &amp;lt;/tr&amp;gt;
                    &amp;lt;tr&amp;gt;
                        &amp;lt;td&amp;gt;&amp;lt;strong&amp;gt;5&amp;lt;/strong&amp;gt;&amp;lt;/td&amp;gt;
                        &amp;lt;td&amp;gt;
                            
                            &amp;lt;div&amp;gt;
                                &amp;lt;div class=&quot;title&quot;&amp;gt;&amp;lt;span class=&quot;icon&quot;&amp;gt; ️&amp;lt;/span&amp;gt;DeepSeek기반 LLM Agent 기능 개발&amp;lt;/div&amp;gt;
                                &amp;lt;a href=&quot;#&quot; class=&quot;url&quot; target=&quot;_blank&quot;&amp;gt;예정&amp;lt;/a&amp;gt;
                            &amp;lt;/div&amp;gt;
                        &amp;lt;/td&amp;gt;
                    &amp;lt;/tr&amp;gt;
                &amp;lt;/tbody&amp;gt;
            &amp;lt;/table&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #ffffff; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;Ollama 커스텀 경로 설치 가이드&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/905</guid>
      <comments>https://couplewith.tistory.com/905#entry905comment</comments>
      <pubDate>Thu, 8 Jan 2026 16:31:48 +0900</pubDate>
    </item>
    <item>
      <title>웹서버 취약점 - SSL 보안 설정 및 점검 가이드</title>
      <link>https://couplewith.tistory.com/904</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxMrCq/dJMcaiWhr33/FVbZFq6xfV3LSAYWacKA8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxMrCq/dJMcaiWhr33/FVbZFq6xfV3LSAYWacKA8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxMrCq/dJMcaiWhr33/FVbZFq6xfV3LSAYWacKA8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxMrCq%2FdJMcaiWhr33%2FFVbZFq6xfV3LSAYWacKA8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;400&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹서버&amp;nbsp;취약점&amp;nbsp;-&amp;nbsp;SSL&amp;nbsp;보안&amp;nbsp;설정&amp;nbsp;및&amp;nbsp;점검&amp;nbsp;가이드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#Web server Security SSL Confguration guide&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹서버 취약점 개선을 위해 점검하는 항목들을 정리합니다. 새로운 프로토콜과 암호화 방법은 지속적으로 업그레이드가 필요합니다. 현재 안전한 것도 시간이 지나면 보안에 취약하므로 정기적인 검사와 개선을 해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 프로토콜 관리&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;허용:&lt;/b&gt; TLS 1.2, TLS 1.3&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;차단:&lt;/b&gt; SSLv2, SSLv3, TLS 1.0, TLS 1.1 (이미 폐기, 취약점 존재)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;설정 예시 (Apache):&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;SSLProtocol -all +TLSv1.3 +TLSv1.2
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span&gt;apache&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 암호군(Cipher Suite) 최적화&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;허용:&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;ECDHE-ECDSA-AES128/256-GCM-SHA256/384&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;ECDHE-RSA-AES128/256-GCM-SHA256/384&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;ECDHE-ECDSA/ RSA-CHACHA20-POLY1305&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;차단:&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;CBC 기반 암호군 (패딩 오라클 취약점)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;3DES, IDEA, SEED, CAMELLIA, ARIA 등 비표준/취약 암호군&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;RSA 키 교환 (PFS 미지원)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;설정 예시 (Nginx):&lt;/b&gt;&lt;/span&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;properties&quot;&gt;&lt;code&gt;ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:\
            ECDHE-RSA-AES128-GCM-SHA256:\
            ECDHE-ECDSA-AES256-GCM-SHA384:\
            ECDHE-RSA-AES256-GCM-SHA384:\
            ECDHE-ECDSA-CHACHA20-POLY1305:\
            ECDHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers on;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 키 교환 및 커브 설정&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;ECDHE 우선&lt;/b&gt; &amp;rarr; Perfect Forward Secrecy(PFS) 보장&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;커브:&lt;/b&gt; X25519 &amp;rarr; secp384r1 &amp;rarr; prime256v1 순서&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt; &lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;DHE 사용 시: 2048비트 이상 dhparam.pem 직접 생성&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&amp;nbsp; &amp;nbsp; # DH params (DHE 사용 시) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssl_dhparam&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/etc/ssl/dhparam.pem;&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 세션 관리&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;Session&amp;nbsp;tickets &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssl_session_tickets&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;off; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssl_session_timeout&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10m;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;SSLSessionTickets&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;off&amp;nbsp; : 기본적으로 off 권장 (키 재사용 위험)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt; ssl_session_timeout&amp;nbsp; &amp;nbsp;10m :&lt;/b&gt; 10분~1시간 권장&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 인증서 검증&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;OCSP Stapling:&lt;/b&gt; 서버가 인증서 유효성 검증 응답을 클라이언트에 전달&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;nginx&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;ssl_stapling on;
ssl_stapling_verify on;
resolver 1.1.1.1 1.0.0.1 valid=300s;
resolver_timeout 5s;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. 보안 헤더&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;HSTS (Strict-Transport-Security):&lt;/b&gt; HTTPS 강제, 다운그레이드 공격 방지&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;nginx&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;add_header Strict-Transport-Security &quot;max-age=31536000; includeSubDomains; preload&quot; always;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;기타 헤더:&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;X-Content-Type-Options: nosniff&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;X-Frame-Options: SAMEORIGIN&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Content-Security-Policy (필요 시)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;7. 최신 프로토콜 지원&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;HTTP/2 활성화:&lt;/b&gt; 성능 개선 (멀티플렉싱, 헤더 압축)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;HTTP/3/QUIC:&lt;/b&gt; 모바일 및 불안정 네트워크 환경에서 성능 향상&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;8. 점검 방법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Online Tools : 온라인 검사&lt;br /&gt;&lt;br /&gt;SSL&amp;nbsp;Labs&amp;nbsp;Server&amp;nbsp;Test&amp;nbsp;&amp;nbsp;[&lt;a href=&quot;https://www.ssllabs.com/ssltest]&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.ssllabs.com/ssltest]&lt;/a&gt;&lt;br /&gt;CryptCheck&amp;nbsp;[&lt;a href=&quot;https://cryptcheck.fr/]&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://cryptcheck.fr/]&lt;/a&gt;&lt;br /&gt;CypherCraft&amp;nbsp;[&lt;a href=&quot;https://www.cyphercraft.io/]&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.cyphercraft.io/]&lt;/a&gt;&lt;br /&gt;Hardenize&amp;nbsp;[&lt;a href=&quot;https://www.hardenize.com/]&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.hardenize.com/]&lt;/a&gt;&lt;br /&gt;ImmuniWeb&amp;nbsp;[&lt;a href=&quot;https://www.immuniweb.com/ssl/]&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.immuniweb.com/ssl/]&lt;/a&gt;&lt;br /&gt;Observatory&amp;nbsp;by&amp;nbsp;Mozilla&amp;nbsp;[&lt;a href=&quot;https://observatory.mozilla.org/]&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://observatory.mozilla.org/]&lt;/a&gt;&lt;br /&gt;SSL&amp;nbsp;Configuration&amp;nbsp;Generator&amp;nbsp;[&lt;a href=&quot;https://ssl-config.mozilla.org/]&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ssl-config.mozilla.org/]&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Offline Tools : CLI 도구&lt;br /&gt;O-Saft - OWASP SSL advanced forensic tool [&lt;a href=&quot;https://wiki.owasp.org/index.php/O-Saft]&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://wiki.owasp.org/index.php/O-Saft]&lt;/a&gt;&lt;br /&gt;CipherScan&amp;nbsp;[&lt;a href=&quot;https://github.com/mozilla/cipherscan]&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/mozilla/cipherscan]&lt;/a&gt;&lt;br /&gt;CryptoLyzer&amp;nbsp;[&lt;a href=&quot;https://gitlab.com/coroner/cryptolyzer]&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://gitlab.com/coroner/cryptolyzer]&lt;/a&gt;&lt;br /&gt;SSLScan&amp;nbsp;-&amp;nbsp;Fast&amp;nbsp;SSL&amp;nbsp;Scanner&amp;nbsp;[&lt;a href=&quot;https://github.com/rbsec/sslscan]&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/rbsec/sslscan]&lt;/a&gt;&lt;br /&gt;SSLyze&amp;nbsp;[&lt;a href=&quot;https://github.com/nabla-c0d3/sslyze]&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/nabla-c0d3/sslyze]&lt;/a&gt;&lt;br /&gt;testssl.sh&amp;nbsp;-&amp;nbsp;Testing&amp;nbsp;any&amp;nbsp;TLS/SSL&amp;nbsp;encryption&amp;nbsp;[&lt;a href=&quot;https://testssl.sh/]&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://testssl.sh/]&lt;/a&gt;&lt;br /&gt;tls-scan&amp;nbsp;[&lt;a href=&quot;https://github.com/prbinu/tls-scan]&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/prbinu/tls-scan]&lt;/a&gt;&amp;nbsp;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;CLI 도구 사용 예시&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;nmap --script ssl-enum-ciphers -p 443&amp;nbsp; example.com&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;openssl s_client -connect example.com:443 -tls1_3&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;testssl.sh &lt;a href=&quot;https://example.com&quot;&gt;https://example.com&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;브라우저 개발자 도구:&lt;/b&gt; Security 탭에서 현재 연결 프로토콜/암호군 확인&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  체크리스트 요약&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;[ ] TLS 1.2/1.3만 허용&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;[ ] CBC/3DES/IDEA 등 취약 암호군 제거&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;[ ] ECDHE + AES-GCM/CHACHA20만 유지&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;[ ] X25519 커브 우선&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;[ ] Session Tickets off (또는 키 로테이션)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;[ ] OCSP Stapling on&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;[ ] HSTS 헤더 추가 (preload 고려)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;[ ] HTTP/2/3 활성화&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;[ ] SSL Labs 등으로 정기 점검&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;(보안 설정이&amp;nbsp; 양호한 웹서버 검사 결과)&lt;/h4&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;root@# nmap --script ssl-enum-ciphers -p 443&amp;nbsp; www.example.com &lt;br /&gt;Starting&amp;nbsp;Nmap&amp;nbsp;7.80&amp;nbsp;(&amp;nbsp;&lt;a href=&quot;https://nmap.org&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://nmap.org&lt;/a&gt;&amp;nbsp;)&amp;nbsp;at&amp;nbsp;2026-01-07&amp;nbsp;11:30&amp;nbsp;KST &lt;br /&gt;Nmap scan report for www.example.com (2xx.1xx.2x.x4) &lt;br /&gt;Host&amp;nbsp;is&amp;nbsp;up&amp;nbsp;(0.045s&amp;nbsp;latency). &lt;br /&gt;&lt;br /&gt;PORT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATE&amp;nbsp;SERVICE &lt;br /&gt;443/tcp&amp;nbsp;open&amp;nbsp;&amp;nbsp;https &lt;br /&gt;|&amp;nbsp;ssl-enum-ciphers: &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;TLSv1.2: &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ciphers: &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256&amp;nbsp;(secp256r1)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384&amp;nbsp;(secp256r1)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384&amp;nbsp;(secp256r1)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;compressors: &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NULL &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cipher&amp;nbsp;preference:&amp;nbsp;client &lt;br /&gt;|_&amp;nbsp;&amp;nbsp;least&amp;nbsp;strength:&amp;nbsp;A &lt;br /&gt;&lt;br /&gt;Nmap&amp;nbsp;done:&amp;nbsp;1&amp;nbsp;IP&amp;nbsp;address&amp;nbsp;(1&amp;nbsp;host&amp;nbsp;up)&amp;nbsp;scanned&amp;nbsp;in&amp;nbsp;4.18&amp;nbsp;seconds&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(보안 설정이 취약한 웹서버 검사 결과)&lt;/h4&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#&amp;nbsp;&amp;nbsp;nmap&amp;nbsp;--script&amp;nbsp;ssl-enum-ciphers&amp;nbsp;-p&amp;nbsp;443&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://www.example.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;http://www.example.com&lt;/a&gt;&lt;br /&gt;Starting&amp;nbsp;Nmap&amp;nbsp;7.80&amp;nbsp;(&amp;nbsp;&lt;a href=&quot;https://nmap.org&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://nmap.org&lt;/a&gt;&amp;nbsp;)&amp;nbsp;at&amp;nbsp;2026-01-07&amp;nbsp;13:50&amp;nbsp;KST &lt;br /&gt;Nmap&amp;nbsp;scan&amp;nbsp;report&amp;nbsp;for&amp;nbsp;&lt;a href=&quot;http://www.example.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;http://www.example.com&lt;/a&gt;&amp;nbsp;(104.18.27.120) &lt;br /&gt;Host&amp;nbsp;is&amp;nbsp;up&amp;nbsp;(0.0035s&amp;nbsp;latency). &lt;br /&gt;Other&amp;nbsp;addresses&amp;nbsp;for&amp;nbsp;&lt;a href=&quot;http://www.example.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;http://www.example.com&lt;/a&gt;&amp;nbsp;(not&amp;nbsp;scanned):&amp;nbsp;104.18.26.120&amp;nbsp;2606:4700::6812:1a78&amp;nbsp;2606:4700::6812:1b78 &lt;br /&gt;&lt;br /&gt;PORT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATE&amp;nbsp;SERVICE &lt;br /&gt;443/tcp&amp;nbsp;open&amp;nbsp;&amp;nbsp;https &lt;br /&gt;|&amp;nbsp;ssl-enum-ciphers: &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;TLSv1.0: &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ciphers: &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA&amp;nbsp;(ecdh_x25519)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA&amp;nbsp;(ecdh_x25519)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_AES_128_CBC_SHA&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_AES_256_CBC_SHA&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_SEED_CBC_SHA&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_ARIA_256_CBC_SHA384&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_CAMELLIA_256_CBC_SHA&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_ARIA_128_CBC_SHA256&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_CAMELLIA_128_CBC_SHA&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_IDEA_CBC_SHA&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_3DES_EDE_CBC_SHA&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;C &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;compressors: &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NULL &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cipher&amp;nbsp;preference:&amp;nbsp;server &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;warnings: &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;64-bit&amp;nbsp;block&amp;nbsp;cipher&amp;nbsp;3DES&amp;nbsp;vulnerable&amp;nbsp;to&amp;nbsp;SWEET32&amp;nbsp;attack &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;64-bit&amp;nbsp;block&amp;nbsp;cipher&amp;nbsp;IDEA&amp;nbsp;vulnerable&amp;nbsp;to&amp;nbsp;SWEET32&amp;nbsp;attack &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;TLSv1.1: &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ciphers: &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA&amp;nbsp;(ecdh_x25519)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA&amp;nbsp;(ecdh_x25519)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_AES_128_CBC_SHA&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_AES_256_CBC_SHA&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;compressors: &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NULL &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cipher&amp;nbsp;preference:&amp;nbsp;server &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;TLSv1.2: &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ciphers: &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256&amp;nbsp;(ecdh_x25519)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384&amp;nbsp;(ecdh_x25519)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA&amp;nbsp;(ecdh_x25519)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA&amp;nbsp;(ecdh_x25519)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256&amp;nbsp;(ecdh_x25519)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384&amp;nbsp;(ecdh_x25519)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_AES_128_GCM_SHA256&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_AES_128_CBC_SHA&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_AES_256_CBC_SHA&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_SEED_CBC_SHA&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256&amp;nbsp;(ecdh_x25519)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256&amp;nbsp;(ecdh_x25519)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA&amp;nbsp;(ecdh_x25519)&amp;nbsp;-&amp;nbsp;C &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_AES_256_GCM_SHA384&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_AES_256_CCM_8&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_AES_256_CCM&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_ARIA_256_GCM_SHA384&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_AES_128_CCM_8&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_AES_128_CCM&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_ARIA_128_GCM_SHA256&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_AES_256_CBC_SHA256&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TLS_RSA_WITH_AES_128_CBC_SHA256&amp;nbsp;(rsa&amp;nbsp;2048)&amp;nbsp;-&amp;nbsp;A &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;compressors: &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NULL &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cipher&amp;nbsp;preference:&amp;nbsp;server &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;warnings: &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;64-bit&amp;nbsp;block&amp;nbsp;cipher&amp;nbsp;3DES&amp;nbsp;vulnerable&amp;nbsp;to&amp;nbsp;SWEET32&amp;nbsp;attack &lt;br /&gt;|_&amp;nbsp;&amp;nbsp;least&amp;nbsp;strength:&amp;nbsp;C &lt;br /&gt;&lt;br /&gt;Nmap&amp;nbsp;done:&amp;nbsp;1&amp;nbsp;IP&amp;nbsp;address&amp;nbsp;(1&amp;nbsp;host&amp;nbsp;up)&amp;nbsp;scanned&amp;nbsp;in&amp;nbsp;3.22&amp;nbsp;seconds&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;SSL 보안 설정 유의 사항&lt;/h2&gt;
&lt;div&gt;&lt;br /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 56.3953%;&quot;&gt;&lt;span&gt;기존 문제점&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 43.4884%;&quot;&gt;&lt;span&gt;개선점&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 56.3953%;&quot;&gt;&lt;span&gt;SSLv3, &lt;/span&gt;&lt;span&gt;TLS &lt;/span&gt;&lt;span&gt;1.0/1.1 &lt;/span&gt;&lt;span&gt;허용&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 43.4884%;&quot;&gt;&lt;span&gt;TLS &lt;/span&gt;&lt;span&gt;1.2/1.3만 &lt;/span&gt;&lt;span&gt;허용&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 56.3953%;&quot;&gt;&lt;span&gt;3DES, &lt;/span&gt;&lt;span&gt;IDEA, &lt;/span&gt;&lt;span&gt;CBC &lt;/span&gt;&lt;span&gt;암호군 &lt;/span&gt;&lt;span&gt;허용&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 43.4884%;&quot;&gt;&lt;span&gt;AES-GCM/CHACHA20만 &lt;/span&gt;&lt;span&gt;허용&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 56.3953%;&quot;&gt;&lt;span&gt;RSA &lt;/span&gt;&lt;span&gt;키 &lt;/span&gt;&lt;span&gt;교환 &lt;/span&gt;&lt;span&gt;사용&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 43.4884%;&quot;&gt;&lt;span&gt;ECDHE &lt;/span&gt;&lt;span&gt;기반으로 &lt;/span&gt;&lt;span&gt;PFS &lt;/span&gt;&lt;span&gt;보장&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 56.3953%;&quot;&gt;&lt;span&gt;ARIA, &lt;/span&gt;&lt;span&gt;CAMELLIA, &lt;/span&gt;&lt;span&gt;SEED &lt;/span&gt;&lt;span&gt;등 &lt;/span&gt;&lt;span&gt;과다 &lt;/span&gt;&lt;span&gt;암호군&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 43.4884%;&quot;&gt;&lt;span&gt;표준 &lt;/span&gt;&lt;span&gt;강력 &lt;/span&gt;&lt;span&gt;암호군만 &lt;/span&gt;&lt;span&gt;유지&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 56.3953%;&quot;&gt;&lt;span&gt;TLS &lt;/span&gt;&lt;span&gt;1.3 &lt;/span&gt;&lt;span&gt;미지원&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 43.4884%;&quot;&gt;&lt;span&gt;TLS &lt;/span&gt;&lt;span&gt;1.3 &lt;/span&gt;&lt;span&gt;활성화&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt; TLS 1.2에서는 SSLCipherSuite/ssl_ciphers 설정이 반드시 필요합니다. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;TLS 1.2와 TLS 1.3만 허용.&amp;nbsp; (1.3 : 최신브라우저 지원)&lt;br /&gt;Apache, Nginx 모두 TLS 1.3을 지원하는 경우 &lt;b&gt;서버가 기본적으로 안전한 TLS 1.3 암호군을 허용&lt;/b&gt;합니다&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;TLS 1.2에서는 SSLCipherSuite/ssl_ciphers 설정이 반드시 필요합니다. (약한 암호군 제거 목적)&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;.&lt;/span&gt;SSLv3, TLS 1.0, TLS 1.1 완전히 차단.&lt;/li&gt;
&lt;li&gt;&lt;span&gt; RSA 키 교환 사용 차단 : RSA 키 교환은 Perfect Forward Secrecy(PFS)를 제공하지 않음 &amp;rarr; 세션 키가 장기적으로 노출될 위험.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;암호군 과다 허용 : &lt;/b&gt;ARIA, CAMELLIA, SEED 등 비표준/호환성 낮은 암호군 등 차단&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;ECDHE 기반 + AES-GCM/CHACHA20&lt;/b&gt;만 허용.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;3DES (SWEET32 취약점), IDEA, CBC 모드 등 암호군 차단.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;DHE, RSA 키 교환, CBC, 3DES, IDEA, CAMELLIA, SEED 제거.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;SSL 설정 예시&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1767759155040&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#TLS 1.3 활성화:
SSLProtocol -all +TLSv1.3 +TLSv1.2

#암호군 최적화 (TLS 1.2)
SSLOpenSSLConfCmd TLS13Ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256


SSLHonorCipherOrder on&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Apache 최적화 예시&lt;/p&gt;
&lt;pre id=&quot;code_1767752174741&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 프로토콜: TLS 1.3만 허용 (호환성 필요 시 TLS 1.2 추가)
SSLProtocol -all +TLSv1.3 +TLSv1.2

# 커브: X25519 우선, secp384r1/prime256v1 보조
SSLOpenSSLConfCmd Curves X25519:secp384r1:prime256v1

# TLS 1.3 암호군 (OpenSSL 기본 안전 스위트)
SSLOpenSSLConfCmd TLS13Ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

# TLS 1.2 암호군 (DHE 제거, ECDHE만 유지)
SSLCipherSuite \
ECDHE-ECDSA-AES128-GCM-SHA256:\
ECDHE-RSA-AES128-GCM-SHA256:\
ECDHE-ECDSA-AES256-GCM-SHA384:\
ECDHE-RSA-AES256-GCM-SHA384:\
ECDHE-ECDSA-CHACHA20-POLY1305:\
ECDHE-RSA-CHACHA20-POLY1305

# 서버 사이퍼 우선
SSLHonorCipherOrder on

# 세션 티켓 비활성화
SSLSessionTickets off

# OCSP Stapling
SSLUseStapling on
SSLStaplingCache &quot;shmcb:/var/run/ocsp_stapling(128000)&quot;

# HSTS (preload 고려)
Header always set Strict-Transport-Security &quot;max-age=31536000; includeSubDomains; preload&quot;

# HTTP/2 활성화
Protocols h2 http/1.1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Nginx&amp;nbsp; 최적화 예시 예시&lt;/p&gt;
&lt;pre id=&quot;code_1767759481143&quot; class=&quot;nginx&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;server {
    listen 443 ssl http2;   # HTTP/2 활성화
    # listen 443 quic reuseport; # HTTP/3 (옵션)

    # 프로토콜
    ssl_protocols TLSv1.3 TLSv1.2;

    # 커브
    ssl_ecdh_curve X25519:secp384r1:prime256v1;

    # TLS 1.3 암호군
    ssl_ciphers TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256;

    # TLS 1.2 암호군 (DHE 제거)
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:\
                ECDHE-RSA-AES128-GCM-SHA256:\
                ECDHE-ECDSA-AES256-GCM-SHA384:\
                ECDHE-RSA-AES256-GCM-SHA384:\
                ECDHE-ECDSA-CHACHA20-POLY1305:\
                ECDHE-RSA-CHACHA20-POLY1305;

    # 서버 사이퍼 우선
    ssl_prefer_server_ciphers on;

    # 세션 티켓 비활성화
    ssl_session_tickets off;
    ssl_session_timeout 10m;

    # OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 1.1.1.1 1.0.0.1 valid=300s;
    resolver_timeout 5s;

    # HSTS
    add_header Strict-Transport-Security &quot;max-age=31536000; includeSubDomains; preload&quot; always;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;SSL 설정 항목 설명&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;HTTP/2/3 지원&lt;/b&gt; &amp;rarr; 최신 프로토콜로 성능 개선.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;Early Data 비활성화&lt;/b&gt; &amp;rarr; 보안 강화.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;DH 파라미터 지정&lt;/b&gt; &amp;rarr; 안전한 DHE 키 교환.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;OCSP Stapling&lt;/b&gt; &amp;rarr; 인증서 검증 성능 및 신뢰성 향상.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;HSTS&lt;/b&gt; &amp;rarr; HTTPS 강제, 다운그레이드 공격 방지.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. listen 443 ssl http2;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;443 포트에서 SSL/TLS 활성화 + HTTP/2 지원&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;HTTPS 기본 포트(443)에서 TLS 암호화된 연결을 받고, HTTP/2 프로토콜을 사용하도록 설정.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;HTTP/2는 멀티플렉싱, 헤더 압축 등 성능 개선 기능 제공.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. listen 443 quic reuseport; (옵션)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;HTTP/3/QUIC 지원&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;QUIC은 UDP 기반의 최신 프로토콜로, 모바일 환경과 불안정한 네트워크에서 성능 향상.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;reuseport는 여러 워커 프로세스가 동일 포트를 효율적으로 공유하도록 함.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. ssl_early_data off;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;TLS 1.3 Early Data(0-RTT) 비활성화&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Early Data는 성능 향상(빠른 재연결)을 제공하지만, 재전송 공격 위험이 있어 보안상 끄는 것이 권장됨.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. ssl_dhparam /etc/ssl/dhparam.pem;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;DHE(Diffie-Hellman Ephemeral) 키 교환 시 사용할 파라미터 파일 지정&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;최소 2048비트 이상 강력한 DH 파라미터를 직접 생성해 적용해야 안전.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. ssl_stapling on;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;OCSP Stapling 활성화&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;서버가 인증서 유효성 검증(OCSP 응답)을 미리 가져와 클라이언트에 전달.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;클라이언트가 직접 CA 서버에 요청하지 않아도 되므로 성능과 신뢰성 향상.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;6. ssl_stapling_verify on;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;OCSP 응답 검증 활성화&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;서버가 가져온 OCSP 응답이 유효한지 확인.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;잘못된 응답이나 위조된 응답을 방지.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;7. resolver 1.1.1.1 1.0.0.1 valid=300s;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;DNS Resolver 지정&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;OCSP Stapling 등 외부 요청 시 사용할 DNS 서버를 지정 (Cloudflare DNS).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;valid=300s &amp;rarr; 캐시 유효 시간 300초.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;8. resolver_timeout 5s;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;DNS 응답 대기 시간&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;DNS 서버 응답을 기다리는 최대 시간 5초로 설정.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;9. add_header Strict-Transport-Security &quot;max-age=31536000; includeSubDomains; preload&quot; always;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;HSTS(HTTP Strict Transport Security) 헤더 추가&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;브라우저가 해당 도메인에 대해 항상 HTTPS로만 접속하도록 강제.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;max-age=31536000 &amp;rarr; 1년 동안 HTTPS 강제.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;includeSubDomains &amp;rarr; 모든 서브도메인에도 적용.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;preload &amp;rarr; 브라우저 벤더의 HSTS preload 리스트에 등록 가능.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;always &amp;rarr; 모든 응답에 헤더 추가.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  SSL/TLS 보안 설정 항목별 분석&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;&lt;span&gt;보안 항목&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;문제점&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;권장사항&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;&lt;span&gt;HSTS &lt;/span&gt;&lt;span&gt;(Strict-Transport-Security)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;브라우저가 &lt;/span&gt;&lt;span&gt;HTTP로 &lt;/span&gt;&lt;span&gt;접속 &lt;/span&gt;&lt;span&gt;시 &lt;/span&gt;&lt;span&gt;다운그레이드 &lt;/span&gt;&lt;span&gt;공격 &lt;/span&gt;&lt;span&gt;가능&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;중간자 &lt;/span&gt;&lt;span&gt;공격(MITM) &lt;/span&gt;&lt;span&gt;위험 &lt;/span&gt;&lt;span&gt;증가&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;사용자가 &lt;/span&gt;&lt;span&gt;HTTPS를 &lt;/span&gt;&lt;span&gt;강제하지 &lt;/span&gt;&lt;span&gt;않음&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;max-age&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최소 &lt;/span&gt;&lt;span&gt;6개월 &lt;/span&gt;&lt;span&gt;이상&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;includeSubDomains&lt;/span&gt;&lt;span&gt;로 &lt;/span&gt;&lt;span&gt;전체 &lt;/span&gt;&lt;span&gt;도메인 &lt;/span&gt;&lt;span&gt;적용&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;preload&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;등록 &lt;/span&gt;&lt;span&gt;시 &lt;/span&gt;&lt;span&gt;브라우저 &lt;/span&gt;&lt;span&gt;기본 &lt;/span&gt;&lt;span&gt;내장&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;&lt;span&gt;Protocols &lt;/span&gt;&lt;span&gt;(TLSv1.3 &lt;/span&gt;&lt;span&gt;only, &lt;/span&gt;&lt;span&gt;필요 &lt;/span&gt;&lt;span&gt;시 &lt;/span&gt;&lt;span&gt;1.2 &lt;/span&gt;&lt;span&gt;추가)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;TLS &lt;/span&gt;&lt;span&gt;1.0/1.1 &lt;/span&gt;&lt;span&gt;허용 &lt;/span&gt;&lt;span&gt;시 &lt;/span&gt;&lt;span&gt;취약점(POODLE, &lt;/span&gt;&lt;span&gt;BEAST &lt;/span&gt;&lt;span&gt;등) &lt;/span&gt;&lt;span&gt;노출&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;구형 &lt;/span&gt;&lt;span&gt;프로토콜로 &lt;/span&gt;&lt;span&gt;인한 &lt;/span&gt;&lt;span&gt;보안 &lt;/span&gt;&lt;span&gt;약화&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;TLS &lt;/span&gt;&lt;span&gt;1.3만 &lt;/span&gt;&lt;span&gt;허용 &lt;/span&gt;&lt;span&gt;시 &lt;/span&gt;&lt;span&gt;가장 &lt;/span&gt;&lt;span&gt;안전&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;레거시 &lt;/span&gt;&lt;span&gt;클라이언트 &lt;/span&gt;&lt;span&gt;필요 &lt;/span&gt;&lt;span&gt;시 &lt;/span&gt;&lt;span&gt;TLS &lt;/span&gt;&lt;span&gt;1.2 &lt;/span&gt;&lt;span&gt;병행&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;&lt;span&gt;Ciphers &lt;/span&gt;&lt;span&gt;(ECDHE &lt;/span&gt;&lt;span&gt;+ &lt;/span&gt;&lt;span&gt;AES-GCM/CHACHA20)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;취약한 &lt;/span&gt;&lt;span&gt;CBC, &lt;/span&gt;&lt;span&gt;RC4, &lt;/span&gt;&lt;span&gt;3DES &lt;/span&gt;&lt;span&gt;등 &lt;/span&gt;&lt;span&gt;사용 &lt;/span&gt;&lt;span&gt;가능&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;암호화 &lt;/span&gt;&lt;span&gt;강도 &lt;/span&gt;&lt;span&gt;낮아짐&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;GCM/CHACHA20만 &lt;/span&gt;&lt;span&gt;허용&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;ECDHE &lt;/span&gt;&lt;span&gt;기반으로 &lt;/span&gt;&lt;span&gt;PFS(Perfect &lt;/span&gt;&lt;span&gt;Forward &lt;/span&gt;&lt;span&gt;Secrecy) &lt;/span&gt;&lt;span&gt;보장&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;&lt;span&gt;Curves &lt;/span&gt;&lt;span&gt;(X25519 &lt;/span&gt;&lt;span&gt;first)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;기본 &lt;/span&gt;&lt;span&gt;커브 &lt;/span&gt;&lt;span&gt;선택 &lt;/span&gt;&lt;span&gt;시 &lt;/span&gt;&lt;span&gt;성능/보안 &lt;/span&gt;&lt;span&gt;최적화 &lt;/span&gt;&lt;span&gt;부족&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;일부 &lt;/span&gt;&lt;span&gt;클라이언트에서 &lt;/span&gt;&lt;span&gt;낮은 &lt;/span&gt;&lt;span&gt;보안 &lt;/span&gt;&lt;span&gt;커브 &lt;/span&gt;&lt;span&gt;사용&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;X25519 &lt;/span&gt;&lt;span&gt;우선 &lt;/span&gt;&lt;span&gt;배치&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;secp384r1, &lt;/span&gt;&lt;span&gt;prime256v1 &lt;/span&gt;&lt;span&gt;보조로 &lt;/span&gt;&lt;span&gt;호환성 &lt;/span&gt;&lt;span&gt;확보&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;&lt;span&gt;Order &lt;/span&gt;&lt;span&gt;(서버 &lt;/span&gt;&lt;span&gt;사이퍼 &lt;/span&gt;&lt;span&gt;우선 &lt;/span&gt;&lt;span&gt;on)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;클라이언트가 &lt;/span&gt;&lt;span&gt;약한 &lt;/span&gt;&lt;span&gt;암호군 &lt;/span&gt;&lt;span&gt;선택 &lt;/span&gt;&lt;span&gt;가능&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;일관된 &lt;/span&gt;&lt;span&gt;보안 &lt;/span&gt;&lt;span&gt;정책 &lt;/span&gt;&lt;span&gt;유지 &lt;/span&gt;&lt;span&gt;불가&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;서버 &lt;/span&gt;&lt;span&gt;우선 &lt;/span&gt;&lt;span&gt;설정으로 &lt;/span&gt;&lt;span&gt;강한 &lt;/span&gt;&lt;span&gt;암호군 &lt;/span&gt;&lt;span&gt;강제&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;&lt;span&gt;Tickets &lt;/span&gt;&lt;span&gt;(off &lt;/span&gt;&lt;span&gt;또는 &lt;/span&gt;&lt;span&gt;키 &lt;/span&gt;&lt;span&gt;로테이션 &lt;/span&gt;&lt;span&gt;자동화)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;세션 &lt;/span&gt;&lt;span&gt;티켓 &lt;/span&gt;&lt;span&gt;키 &lt;/span&gt;&lt;span&gt;고정 &lt;/span&gt;&lt;span&gt;시 &lt;/span&gt;&lt;span&gt;장기 &lt;/span&gt;&lt;span&gt;노출 &lt;/span&gt;&lt;span&gt;위험&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;재사용 &lt;/span&gt;&lt;span&gt;공격 &lt;/span&gt;&lt;span&gt;가능&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;티켓 &lt;/span&gt;&lt;span&gt;off로 &lt;/span&gt;&lt;span&gt;안전성 &lt;/span&gt;&lt;span&gt;확보&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;필요 &lt;/span&gt;&lt;span&gt;시 &lt;/span&gt;&lt;span&gt;키 &lt;/span&gt;&lt;span&gt;로테이션 &lt;/span&gt;&lt;span&gt;자동화 &lt;/span&gt;&lt;span&gt;필수&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;&lt;span&gt;DH &lt;/span&gt;&lt;span&gt;params &lt;/span&gt;&lt;span&gt;(2048-bit &lt;/span&gt;&lt;span&gt;이상)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;기본 &lt;/span&gt;&lt;span&gt;DH &lt;/span&gt;&lt;span&gt;파라미터가 &lt;/span&gt;&lt;span&gt;약하거나 &lt;/span&gt;&lt;span&gt;짧을 &lt;/span&gt;&lt;span&gt;경우 &lt;/span&gt;&lt;span&gt;취약&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;DHE &lt;/span&gt;&lt;span&gt;사용 &lt;/span&gt;&lt;span&gt;시 &lt;/span&gt;&lt;span&gt;안전성 &lt;/span&gt;&lt;span&gt;저하&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;최소 &lt;/span&gt;&lt;span&gt;2048-bit &lt;/span&gt;&lt;span&gt;이상 &lt;/span&gt;&lt;span&gt;dhparam &lt;/span&gt;&lt;span&gt;파일 &lt;/span&gt;&lt;span&gt;생성&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;가능하면 &lt;/span&gt;&lt;span&gt;ECDHE만 &lt;/span&gt;&lt;span&gt;사용&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;&lt;span&gt;Stapling &lt;/span&gt;&lt;span&gt;(OCSP &lt;/span&gt;&lt;span&gt;on &lt;/span&gt;&lt;span&gt;+ &lt;/span&gt;&lt;span&gt;resolver &lt;/span&gt;&lt;span&gt;설정)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;클라이언트가 &lt;/span&gt;&lt;span&gt;직접 &lt;/span&gt;&lt;span&gt;OCSP &lt;/span&gt;&lt;span&gt;서버에 &lt;/span&gt;&lt;span&gt;요청 &lt;/span&gt;&lt;span&gt;&amp;rarr; &lt;/span&gt;&lt;span&gt;느린 &lt;/span&gt;&lt;span&gt;인증서 &lt;/span&gt;&lt;span&gt;검증&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;일부 &lt;/span&gt;&lt;span&gt;브라우저에서 &lt;/span&gt;&lt;span&gt;인증서 &lt;/span&gt;&lt;span&gt;신뢰 &lt;/span&gt;&lt;span&gt;문제&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;서버에서 &lt;/span&gt;&lt;span&gt;OCSP &lt;/span&gt;&lt;span&gt;stapling &lt;/span&gt;&lt;span&gt;제공&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;DNS &lt;/span&gt;&lt;span&gt;resolver &lt;/span&gt;&lt;span&gt;지정으로 &lt;/span&gt;&lt;span&gt;안정성 &lt;/span&gt;&lt;span&gt;확보&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;&lt;span&gt;HSTS &lt;/span&gt;&lt;span&gt;(preload &lt;/span&gt;&lt;span&gt;고려)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;사용자가 &lt;/span&gt;&lt;span&gt;첫 &lt;/span&gt;&lt;span&gt;접속 &lt;/span&gt;&lt;span&gt;시 &lt;/span&gt;&lt;span&gt;HTTPS &lt;/span&gt;&lt;span&gt;강제되지 &lt;/span&gt;&lt;span&gt;않음&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;피싱/다운그레이드 &lt;/span&gt;&lt;span&gt;위험&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;preload &lt;/span&gt;&lt;span&gt;등록으로 &lt;/span&gt;&lt;span&gt;브라우저 &lt;/span&gt;&lt;span&gt;자체에서 &lt;/span&gt;&lt;span&gt;HTTPS &lt;/span&gt;&lt;span&gt;강제&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;&lt;span&gt;ALPN &lt;/span&gt;&lt;span&gt;(HTTP/2/3 &lt;/span&gt;&lt;span&gt;활성화)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;HTTP/1.1만 &lt;/span&gt;&lt;span&gt;사용 &lt;/span&gt;&lt;span&gt;시 &lt;/span&gt;&lt;span&gt;성능 &lt;/span&gt;&lt;span&gt;저하&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;멀티플렉싱, &lt;/span&gt;&lt;span&gt;헤더 &lt;/span&gt;&lt;span&gt;압축 &lt;/span&gt;&lt;span&gt;등 &lt;/span&gt;&lt;span&gt;최신 &lt;/span&gt;&lt;span&gt;기능 &lt;/span&gt;&lt;span&gt;미사용&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;HTTP/2 &lt;/span&gt;&lt;span&gt;기본 &lt;/span&gt;&lt;span&gt;활성화&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;HTTP/3(QUIC) &lt;/span&gt;&lt;span&gt;지원 &lt;/span&gt;&lt;span&gt;시 &lt;/span&gt;&lt;span&gt;모바일/네트워크 &lt;/span&gt;&lt;span&gt;성능 &lt;/span&gt;&lt;span&gt;개선&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>InfraPlatform</category>
      <category>owasp</category>
      <category>SSL/TLS 보안 설정</category>
      <category>SSL보안</category>
      <category>Web server Security SSL Confguration guide</category>
      <category>웹서버 보안 설정</category>
      <category>웹서버 취약점 점검</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/904</guid>
      <comments>https://couplewith.tistory.com/904#entry904comment</comments>
      <pubDate>Wed, 7 Jan 2026 13:28:58 +0900</pubDate>
    </item>
    <item>
      <title>Windows WSL에 Ollama/CUDA 커스텀 경로 설치 가이드(Ubuntu 22.04)</title>
      <link>https://couplewith.tistory.com/903</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qpQ2Q/dJMcagK3zza/pZKGlwn4DBUJLODyLiRNwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qpQ2Q/dJMcagK3zza/pZKGlwn4DBUJLODyLiRNwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qpQ2Q/dJMcagK3zza/pZKGlwn4DBUJLODyLiRNwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqpQ2Q%2FdJMcagK3zza%2FpZKGlwn4DBUJLODyLiRNwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;333&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; Windows&amp;nbsp; WSL에 Ollama 설치의 장점&lt;/b&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt; WSL2는 &lt;b&gt;NVIDIA GPU와 CUDA Toolkit&lt;/b&gt;을 직접 지원하므로, Ollama를 GPU 기반으로 실행 가능 &lt;/li&gt;&lt;li&gt;Windows에서 개발하면서도 &lt;b&gt;Linux 기반 AI 툴체인&lt;/b&gt;을 그대로 사용할 수 있음.&lt;/li&gt;&lt;li&gt;예: VS Code(Windows) + Ollama(WSL) + CUDA(GPU) 조합으로 &lt;b&gt;완전한 AI 개발 환경&lt;/b&gt; 구성.&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;div id=&quot;code_1768877939119&quot; data-ke-type=&quot;html&quot; data-source=&quot;&lt;div class=&amp;quot;wsl-guide&amp;quot;&gt;
  &lt;style&gt;
    .wsl-guide {
      font-family: 'Segoe UI', sans-serif;
      background-color: #f4f6f8;
      color: #333;
      padding: 10px;
      max-width: 800px;
      margin: auto;
    }

    .wsl-guide header {
      background-color: #4da6ff; /* 밝은 파랑 */
      color: white;
      padding: 8px;
      text-align: center;
      border-radius: 4px;
    }

    .wsl-guide header h1 {
      margin: 0;
      font-size: 16px; /* 타이틀 글자 크기 */
    }

    .wsl-guide .guide-item {
      background-color: #ffffff;
      border-radius: 4px;
      box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
      padding: 5px; /* 테두리 여백 */
      margin-bottom: 5px;
      display: flex;
      align-items: center;
      font-size: 12px; /* 기본 글자 크기 */
    }

    .wsl-guide .icon {
      background-color: #4da6ff;
      color: white;
      border-radius: 50%;
      width: 18px;
      height: 18px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 10px; /* 아이콘 글자 크기 */
      font-weight: bold;
      margin-right: 8px;
      flex-shrink: 0;
    }

    .wsl-guide .guide-item a {
      color: #007acc;
      text-decoration: none;
      font-weight: 500;
    }

    .wsl-guide .guide-item a:hover {
      text-decoration: underline;
    }
  &lt;/style&gt;

  &lt;header&gt;
    &lt;h1&gt;WSL 사용법 – How To Start WSL&lt;/h1&gt;
  &lt;/header&gt;

  &lt;div class=&amp;quot;guide-item&amp;quot;&gt;&lt;div class=&amp;quot;icon&amp;quot;&gt;1&lt;/div&gt;&lt;a href=&amp;quot;https://couplewith.tistory.com/576&amp;quot; target=&amp;quot;_blank&amp;quot;&gt;WSL 설치와 사용법(Windows Subsystem for Linux)&lt;/a&gt;&lt;/div&gt;
  &lt;div class=&amp;quot;guide-item&amp;quot;&gt;&lt;div class=&amp;quot;icon&amp;quot;&gt;2&lt;/div&gt;&lt;a href=&amp;quot;https://couplewith.tistory.com/577&amp;quot; target=&amp;quot;_blank&amp;quot;&gt;알면 좋은 WSL 기본 명령 사용법&lt;/a&gt;&lt;/div&gt;
  &lt;div class=&amp;quot;guide-item&amp;quot;&gt;&lt;div class=&amp;quot;icon&amp;quot;&gt;3&lt;/div&gt;&lt;a href=&amp;quot;https://couplewith.tistory.com/578&amp;quot; target=&amp;quot;_blank&amp;quot;&gt;WSL 설치 디렉토리 커스텀 경로 변경&lt;/a&gt;&lt;/div&gt;
  &lt;div class=&amp;quot;guide-item&amp;quot;&gt;&lt;div class=&amp;quot;icon&amp;quot;&gt;4&lt;/div&gt;&lt;a href=&amp;quot;https://couplewith.tistory.com/579&amp;quot; target=&amp;quot;_blank&amp;quot;&gt;WSL ssh 설치와 접속하기&lt;/a&gt;&lt;/div&gt;
  &lt;div class=&amp;quot;guide-item&amp;quot;&gt;&lt;div class=&amp;quot;icon&amp;quot;&gt;5&lt;/div&gt;&lt;a href=&amp;quot;https://couplewith.tistory.com/581&amp;quot; target=&amp;quot;_blank&amp;quot;&gt;WSL Docker 설치하기&lt;/a&gt;&lt;/div&gt;
  &lt;div class=&amp;quot;guide-item&amp;quot;&gt;&lt;div class=&amp;quot;icon&amp;quot;&gt;6&lt;/div&gt;&lt;a href=&amp;quot;https://couplewith.tistory.com/582&amp;quot; target=&amp;quot;_blank&amp;quot;&gt;WSL Ubuntu apt update 오류 해결&lt;/a&gt;&lt;/div&gt;
  &lt;div class=&amp;quot;guide-item&amp;quot;&gt;&lt;div class=&amp;quot;icon&amp;quot;&gt;7&lt;/div&gt;&lt;a href=&amp;quot;https://couplewith.tistory.com/583&amp;quot; target=&amp;quot;_blank&amp;quot;&gt;WSL iptables-legacy 전환 해결&lt;/a&gt;&lt;/div&gt;
  &lt;div class=&amp;quot;guide-item&amp;quot;&gt;&lt;div class=&amp;quot;icon&amp;quot;&gt;8&lt;/div&gt;&lt;a href=&amp;quot;https://couplewith.tistory.com/585&amp;quot; target=&amp;quot;_blank&amp;quot;&gt;WSL Docker Desktop 설치&lt;/a&gt;&lt;/div&gt;
  &lt;div class=&amp;quot;guide-item&amp;quot;&gt;&lt;div class=&amp;quot;icon&amp;quot;&gt;9&lt;/div&gt;&lt;a href=&amp;quot;https://couplewith.tistory.com/908&amp;quot; target=&amp;quot;_blank&amp;quot;&gt;Windows 10/11 - WSL2 업그레이드&lt;/a&gt;&lt;/div&gt;
  &lt;div class=&amp;quot;guide-item&amp;quot;&gt;&lt;div class=&amp;quot;icon&amp;quot;&gt;10&lt;/div&gt;&lt;a href=&amp;quot;https://couplewith.tistory.com/909&amp;quot; target=&amp;quot;_blank&amp;quot;&gt;WSL VHDX 디스크 추가 마운트 방법&lt;/a&gt;&lt;/div&gt;
  &lt;div class=&amp;quot;guide-item&amp;quot;&gt;&lt;div class=&amp;quot;icon&amp;quot;&gt;11&lt;/div&gt;&lt;a href=&amp;quot;https://couplewith.tistory.com/903&amp;quot; target=&amp;quot;_blank&amp;quot;&gt;Windows WSL Ollama/CUDA 커스텀 경로 설치 가이드&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&quot;&gt; 
 &lt;div class=&quot;wsl-guide&quot;&gt; 
  &lt;style&gt;
    .wsl-guide {
      font-family: 'Segoe UI', sans-serif;
      background-color: #f4f6f8;
      color: #333;
      padding: 10px;
      max-width: 800px;
      margin: auto;
    }

    .wsl-guide header {
      background-color: #4da6ff; /* 밝은 파랑 */
      color: white;
      padding: 8px;
      text-align: center;
      border-radius: 4px;
    }

    .wsl-guide header h1 {
      margin: 0;
      font-size: 16px; /* 타이틀 글자 크기 */
    }

    .wsl-guide .guide-item {
      background-color: #ffffff;
      border-radius: 4px;
      box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
      padding: 5px; /* 테두리 여백 */
      margin-bottom: 5px;
      display: flex;
      align-items: center;
      font-size: 12px; /* 기본 글자 크기 */
    }

    .wsl-guide .icon {
      background-color: #4da6ff;
      color: white;
      border-radius: 50%;
      width: 18px;
      height: 18px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 10px; /* 아이콘 글자 크기 */
      font-weight: bold;
      margin-right: 8px;
      flex-shrink: 0;
    }

    .wsl-guide .guide-item a {
      color: #007acc;
      text-decoration: none;
      font-weight: 500;
    }

    .wsl-guide .guide-item a:hover {
      text-decoration: underline;
    }
  &lt;/style&gt; 
  &lt;header&gt; 
   &lt;h1&gt;WSL 사용법 – How To Start WSL&lt;/h1&gt; 
  &lt;/header&gt; 
  &lt;div class=&quot;guide-item&quot;&gt; 
   &lt;div class=&quot;icon&quot;&gt;
    1
   &lt;/div&gt; &lt;a href=&quot;https://couplewith.tistory.com/576&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL 설치와 사용법(Windows Subsystem for Linux)&lt;/a&gt;
  &lt;/div&gt; 
  &lt;div class=&quot;guide-item&quot;&gt; 
   &lt;div class=&quot;icon&quot;&gt;
    2
   &lt;/div&gt; &lt;a href=&quot;https://couplewith.tistory.com/577&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;알면 좋은 WSL 기본 명령 사용법&lt;/a&gt;
  &lt;/div&gt; 
  &lt;div class=&quot;guide-item&quot;&gt; 
   &lt;div class=&quot;icon&quot;&gt;
    3
   &lt;/div&gt; &lt;a href=&quot;https://couplewith.tistory.com/578&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL 설치 디렉토리 커스텀 경로 변경&lt;/a&gt;
  &lt;/div&gt; 
  &lt;div class=&quot;guide-item&quot;&gt; 
   &lt;div class=&quot;icon&quot;&gt;
    4
   &lt;/div&gt; &lt;a href=&quot;https://couplewith.tistory.com/579&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL ssh 설치와 접속하기&lt;/a&gt;
  &lt;/div&gt; 
  &lt;div class=&quot;guide-item&quot;&gt; 
   &lt;div class=&quot;icon&quot;&gt;
    5
   &lt;/div&gt; &lt;a href=&quot;https://couplewith.tistory.com/581&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL Docker 설치하기&lt;/a&gt;
  &lt;/div&gt; 
  &lt;div class=&quot;guide-item&quot;&gt; 
   &lt;div class=&quot;icon&quot;&gt;
    6
   &lt;/div&gt; &lt;a href=&quot;https://couplewith.tistory.com/582&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL Ubuntu apt update 오류 해결&lt;/a&gt;
  &lt;/div&gt; 
  &lt;div class=&quot;guide-item&quot;&gt; 
   &lt;div class=&quot;icon&quot;&gt;
    7
   &lt;/div&gt; &lt;a href=&quot;https://couplewith.tistory.com/583&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL iptables-legacy 전환 해결&lt;/a&gt;
  &lt;/div&gt; 
  &lt;div class=&quot;guide-item&quot;&gt; 
   &lt;div class=&quot;icon&quot;&gt;
    8
   &lt;/div&gt; &lt;a href=&quot;https://couplewith.tistory.com/585&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL Docker Desktop 설치&lt;/a&gt;
  &lt;/div&gt; 
  &lt;div class=&quot;guide-item&quot;&gt; 
   &lt;div class=&quot;icon&quot;&gt;
    9
   &lt;/div&gt; &lt;a href=&quot;https://couplewith.tistory.com/908&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Windows 10/11 - WSL2 업그레이드&lt;/a&gt;
  &lt;/div&gt; 
  &lt;div class=&quot;guide-item&quot;&gt; 
   &lt;div class=&quot;icon&quot;&gt;
    10
   &lt;/div&gt; &lt;a href=&quot;https://couplewith.tistory.com/909&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WSL VHDX 디스크 추가 마운트 방법&lt;/a&gt;
  &lt;/div&gt; 
  &lt;div class=&quot;guide-item&quot;&gt; 
   &lt;div class=&quot;icon&quot;&gt;
    11
   &lt;/div&gt; &lt;a href=&quot;https://couplewith.tistory.com/903&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Windows WSL Ollama/CUDA 커스텀 경로 설치 가이드&lt;/a&gt;
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h1 style=&quot;color: #000000; text-align: start;&quot;&gt;WSL Ubuntu 22.04에서 Ollama 커스텀 경로 설치 가이드&lt;/h1&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;WSL에 설치한 ubuntu를 이용하여 노트북의 GPU를 활용하여 AI 개발 환경을 구성하려고 합니다.&lt;br&gt;Window WSL을 이용하여 Ubuntu 22.04 LTS 환경에 맞춰 /data/ollama_app에 Ollama를 설치하는 상세 가이드입니다.&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. WSL ubuntu 시스템&amp;nbsp; 설치 환경 준비&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- 시스템 계정 및 nvdia graphic 드라이브 설치&lt;br&gt;1. ollama를 다운 받아 /usr/local/bin&amp;nbsp; 과 /usr/local/lib/ollama 에 설치하는 방안입니다.&lt;br&gt;2. systemctl 로 ollama 시작/종료&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. Ubuntu 시스템 설치 환경 준비&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;1-1. 시스템 계정과 패키지 업데이트&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;1.1.1 사용자 계정 생성&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;html&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;# ollama 서비스 관리자 계정 생성

sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
sudo usermod -a -G ollama $(whoami)
usermod&amp;nbsp;&amp;nbsp;-g 2000 -u 2000&amp;nbsp;&amp;nbsp;ollama

# * /usr/share/ollama 아래 다운 받은 Model이 저장됩니다.&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;1.1.2&amp;nbsp; Ubuntu 패키지 업그레이드&lt;/p&gt;&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;# 시스템 패키지 업데이트
sudo apt update
sudo apt upgrade -y

# 필수 패키지 설치
sudo apt install -y curl wget git build-essential
&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;1-2. NVIDIA GPU 드라이버 설치 (GPU 사용 시)&lt;/h3&gt;&lt;pre class=&quot;shell&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;# NVIDIA 드라이버 확인
nvidia-smi

# 드라이버가 없다면 설치
sudo apt install -y nvidia-driver-580
# 또는 최신 버전
sudo ubuntu-drivers autoinstall

# 재부팅 후 확인
sudo reboot
# 재부팅 후
nvidia-smi&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006DD7;&quot;&gt;# 패키지 설치 상태 확인 방법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;blockquote data-ke-style=&quot;style3&quot;&gt;# 패키지 설치 여부 확인&lt;br&gt;rpm -qa | grep nvidia&amp;nbsp; &amp;nbsp;&lt;br&gt;dpkg&amp;nbsp;-l&amp;nbsp;&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;nvidia&lt;br&gt;&lt;br&gt;# 패키지 포함 파일 목록 확인&lt;br&gt;rpm -ql nvidia-driver-580&lt;br&gt;dpkg -L nvidia-driver-580 nvidia-firmware-580-580.95.05&lt;/blockquote&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;1-3. NVIDIA GPU 드라이버 작동 확인&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;span style=&quot;color: #006DD7;&quot;&gt;# nvidia-smi 로 설치된 드라이버 작동 확인&lt;/span&gt;&lt;/b&gt;&lt;br&gt;&amp;nbsp; * 윈도우의 드라이버 버전과 WSL에 설치되는 드라이버 버전이 동일해야함&lt;br&gt;&amp;nbsp; &amp;nbsp;-&amp;nbsp; Windows nvidia 드라이버 버전 : 581.57&amp;nbsp; &amp;nbsp;이고&amp;nbsp; &amp;nbsp; &amp;nbsp;Wsl : 580.95.05&amp;nbsp; 최신을&amp;nbsp; 설치 ( 완전 같지 않아도 같은 유사 등급으로 설치)가 되었습니다.&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;span style=&quot;color: #006DD7;&quot;&gt;* WSL 환경에서 nvidia-smi 실행 결과 (정상)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;root@DESKTOP-RTQU492:/mnt/c/Users/couple# nvidia-smi
Tue Jan&amp;nbsp;&amp;nbsp;6 16:08:44 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.95.05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Driver Version: 581.57&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CUDA Version: 13.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |
+-----------------------------------------+------------------------+----------------------+
| GPU&amp;nbsp;&amp;nbsp;Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Persistence-M | Bus-Id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Disp.A | Volatile Uncorr. ECC |
| Fan&amp;nbsp;&amp;nbsp;Temp&amp;nbsp;&amp;nbsp; Perf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Pwr:Usage/Cap |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory-Usage | GPU-Util&amp;nbsp;&amp;nbsp;Compute M. |
|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MIG M. |
|=========================================+========================+======================|
|&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;NVIDIA GeForce RTX 3050 ...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;On&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp; 00000000:01:00.0 Off |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;N/A |
| N/A&amp;nbsp;&amp;nbsp; 52C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;P0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8W /&amp;nbsp;&amp;nbsp; 30W |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0MiB /&amp;nbsp;&amp;nbsp; 4096MiB |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Default |
|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|
|&amp;nbsp;&amp;nbsp;GPU&amp;nbsp;&amp;nbsp; GI&amp;nbsp;&amp;nbsp; CI&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PID&amp;nbsp;&amp;nbsp; Type&amp;nbsp;&amp;nbsp; Process name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GPU Memory |
|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ID&amp;nbsp;&amp;nbsp; ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Usage&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|
|=========================================================================================|
|&amp;nbsp;&amp;nbsp;No running processes found&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |
+-----------------------------------------------------------------------------------------+&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-4.&amp;nbsp;NVIDIA&amp;nbsp;GPU&amp;nbsp;불일치&amp;nbsp;문제&amp;nbsp;해결&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - WSL 은 Windows Host에 설치된 드라이버와 리눅스 드라이버 버전이 불일치 하면 작동이 안되므로 아래와 같이 문제를 해결 할 수 있습니다. &lt;b&gt;(윈도우가 Ubuntu의&amp;nbsp; 드라이버 보다 최신 버전을 유지하게 맞추면 됩니다.)&lt;/b&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;span style=&quot;color: #EE2323;&quot;&gt;[ GPU 드라이버 불일치 문제 해결]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;Segmentation fault 원인: &lt;b&gt;드라이버 모듈(555.99)과 유틸리티(580.95.05) 버전 불일치&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;(아래 와 같이 오류가 나는 경우)&amp;nbsp; &amp;nbsp; segment falut가 발생 합니다.&lt;/p&gt;&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;&lt;div class=&quot;moreless-content&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Noto Sans Demilight, Noto Sans KR;&quot;&gt;$ nvidia-smi &lt;/span&gt;&lt;/b&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Sans Demilight, Noto Sans KR;&quot;&gt;Tue&amp;nbsp;Jan&amp;nbsp;&amp;nbsp;6&amp;nbsp;15:13:02&amp;nbsp;2026 &lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Sans Demilight, Noto Sans KR;&quot;&gt;+-----------------------------------------------------------------------------------------+ &lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Sans Demilight, Noto Sans KR;&quot;&gt;|&amp;nbsp;NVIDIA-SMI&amp;nbsp;580.95.05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Driver&amp;nbsp;Version:&amp;nbsp;555.99&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CUDA&amp;nbsp;Version:&amp;nbsp;12.5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| &lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Sans Demilight, Noto Sans KR;&quot;&gt;+-----------------------------------------+------------------------+----------------------+ &lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Sans Demilight, Noto Sans KR;&quot;&gt;|&amp;nbsp;GPU&amp;nbsp;&amp;nbsp;Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Persistence-M&amp;nbsp;|&amp;nbsp;Bus-Id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Disp.A&amp;nbsp;|&amp;nbsp;Volatile&amp;nbsp;Uncorr.&amp;nbsp;ECC&amp;nbsp;| &lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Sans Demilight, Noto Sans KR;&quot;&gt;|&amp;nbsp;Fan&amp;nbsp;&amp;nbsp;Temp&amp;nbsp;&amp;nbsp;&amp;nbsp;Perf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Pwr:Usage/Cap&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Memory-Usage&amp;nbsp;|&amp;nbsp;GPU-Util&amp;nbsp;&amp;nbsp;Compute&amp;nbsp;M.&amp;nbsp;| &lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Sans Demilight, Noto Sans KR;&quot;&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MIG&amp;nbsp;M.&amp;nbsp;| &lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Sans Demilight, Noto Sans KR;&quot;&gt;|=========================================+========================+======================|&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323; font-family: Noto Sans Demilight, Noto Sans KR;&quot;&gt;Segmentation fault&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;b&gt;NVIDIA-SMI 버전&lt;/b&gt;: 580.95.05&amp;nbsp; &amp;nbsp;( Wsl driver)&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #EE2323;&quot;&gt;&lt;b&gt;Driver Version&lt;/b&gt;: 555.99&amp;nbsp; (Windows Driver) : Windows의 드라이버 버전이 낮음 --&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;CUDA Version&lt;/b&gt;: 12.5&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;즉, nvidia-utils (580.95.05)와 실제 커널 모듈 드라이버(555.99)가 버전이 낮아서 충돌하는 상황&lt;/b&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; WSL의 드라이버를 동급대 로 다운하여 설치하거나 윈도우의 nvidia-driver 최신버전을 찾아 설치합니다.&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;( 참조: &lt;a href=&quot;https://www.nvidia.com/en-us/geforce/drivers/&quot; target=&quot;_self&quot;&gt;&lt;span&gt;Official GeForce Drivers | NVIDIA&lt;/span&gt;&lt;/a&gt; : &lt;a href=&quot;https://www.nvidia.com/en-us/geforce/drivers/&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://www.nvidia.com/en-us/geforce/drivers/&lt;/span&gt;&lt;/a&gt;)&lt;br&gt;ㅁ&amp;nbsp; &amp;nbsp;Windows의 NVIDIA 드라이버&amp;nbsp; &lt;span style=&quot;color: #EE2323;&quot;&gt;555.99 -&amp;gt; Driver Version: 581.57&amp;nbsp; 으로 업그레이드 하였습니다.&lt;br&gt;&amp;nbsp; &amp;nbsp;: NVIDIA-SMI&amp;nbsp;580.95.05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Driver&amp;nbsp;Version:&amp;nbsp;581.57&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CUDA&amp;nbsp;Version:&amp;nbsp;13.0&lt;/span&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;ㅁ 아래와 같이 WSL내에 설치한&amp;nbsp; nvidia&amp;nbsp; 드라이버를 제거하고 재설치를 합니다.&lt;/p&gt;&lt;div&gt; 
 &lt;div&gt; 
  &lt;div&gt; 
   &lt;pre class=&quot;shell&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;1) sudo apt purge 'nvidia-*'    #기존 패키지를 삭제한다 :

2) sudo apt autoremove         #불필요한 패키지 정리

3) sudo ubuntu-drivers devices     # 드라이버 설치 환경 재구성
   sudo ubuntu-drivers autoinstall  # 이 커널 모듈과 nvidia-utils 버전이 일치하도록 설치됩니다.&lt;/code&gt;&lt;/pre&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;설치후 그래픽 카드 버전 확인:&lt;/b&gt;&lt;/p&gt;&lt;div&gt; 
 &lt;div&gt; 
  &lt;div&gt; 
   &lt;pre class=&quot;html xml&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;sudo apt install nvidia-driver-580


sudo reboot   # 설치 후 재부팅


nvidia-smi   # 드라이버 설치 확인   : segment fault가 나지 않아야함&lt;/code&gt;&lt;/pre&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;(설치후 확인)&lt;/b&gt;&lt;/p&gt;&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;&lt;div class=&quot;moreless-content&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;#&amp;nbsp;nvidia-smi &lt;br&gt;Thu&amp;nbsp;Jan&amp;nbsp;&amp;nbsp;8&amp;nbsp;17:10:49&amp;nbsp;2026 &lt;br&gt;+-----------------------------------------------------------------------------------------+ &lt;br&gt;|&amp;nbsp;NVIDIA-SMI&amp;nbsp;580.95.05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Driver&amp;nbsp;Version:&amp;nbsp;581.57&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CUDA&amp;nbsp;Version:&amp;nbsp;13.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| &lt;br&gt;+-----------------------------------------+------------------------+----------------------+ &lt;br&gt;|&amp;nbsp;GPU&amp;nbsp;&amp;nbsp;Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Persistence-M&amp;nbsp;|&amp;nbsp;Bus-Id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Disp.A&amp;nbsp;|&amp;nbsp;Volatile&amp;nbsp;Uncorr.&amp;nbsp;ECC&amp;nbsp;| &lt;br&gt;|&amp;nbsp;Fan&amp;nbsp;&amp;nbsp;Temp&amp;nbsp;&amp;nbsp;&amp;nbsp;Perf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Pwr:Usage/Cap&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Memory-Usage&amp;nbsp;|&amp;nbsp;GPU-Util&amp;nbsp;&amp;nbsp;Compute&amp;nbsp;M.&amp;nbsp;| &lt;br&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MIG&amp;nbsp;M.&amp;nbsp;| &lt;br&gt;|=========================================+========================+======================| &lt;br&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;NVIDIA&amp;nbsp;GeForce&amp;nbsp;RTX&amp;nbsp;3050&amp;nbsp;...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;On&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;00000000:01:00.0&amp;nbsp;Off&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;N/A&amp;nbsp;| &lt;br&gt;|&amp;nbsp;N/A&amp;nbsp;&amp;nbsp;&amp;nbsp;49C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;P0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8W&amp;nbsp;/&amp;nbsp;&amp;nbsp;&amp;nbsp;30W&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0MiB&amp;nbsp;/&amp;nbsp;&amp;nbsp;&amp;nbsp;4096MiB&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Default&amp;nbsp;| &lt;br&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;N/A&amp;nbsp;| &lt;br&gt;+-----------------------------------------+------------------------+----------------------+ &lt;br&gt;&lt;br&gt;+-----------------------------------------------------------------------------------------+ &lt;br&gt;|&amp;nbsp;Processes:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| &lt;br&gt;|&amp;nbsp;&amp;nbsp;GPU&amp;nbsp;&amp;nbsp;&amp;nbsp;GI&amp;nbsp;&amp;nbsp;&amp;nbsp;CI&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PID&amp;nbsp;&amp;nbsp;&amp;nbsp;Type&amp;nbsp;&amp;nbsp;&amp;nbsp;Process&amp;nbsp;name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GPU&amp;nbsp;Memory&amp;nbsp;| &lt;br&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ID&amp;nbsp;&amp;nbsp;&amp;nbsp;ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Usage&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| &lt;br&gt;|=========================================================================================| &lt;br&gt;|&amp;nbsp;&amp;nbsp;No&amp;nbsp;running&amp;nbsp;processes&amp;nbsp;found&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| &lt;br&gt;+-----------------------------------------------------------------------------------------+&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;
 &lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; 
 &lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;(추가 팁) WSL을 시작하면서 다음 과 같은 Windows PATH&amp;nbsp; 에러 메시지가 나오는 경우&lt;/span&gt;&lt;/h4&gt; 
 &lt;blockquote data-ke-style=&quot;style3&quot;&gt;
  &amp;lt;3&amp;gt;WSL&amp;nbsp;(649)&amp;nbsp;ERROR:&amp;nbsp;UtilTranslatePathList:2866:&amp;nbsp;Failed&amp;nbsp;to&amp;nbsp;translate&amp;nbsp;D:\ProgramApps\maven\apache-maven-3.9.6\bin 
  &lt;br&gt;&amp;lt;3&amp;gt;WSL&amp;nbsp;(649)&amp;nbsp;ERROR:&amp;nbsp;UtilTranslatePathList:2866:&amp;nbsp;Failed&amp;nbsp;to&amp;nbsp;translate&amp;nbsp;D:\ProgramApps\gradle\gradle-8.5\bin
 &lt;/blockquote&gt; 
 &lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt; 
 &lt;p data-ke-size=&quot;size16&quot;&gt;WSL은 기본적으로 Windows PATH를 Linux 환경에 병합합니다. 이를 끄면 에러 메시지가 사라집니다.&lt;/p&gt; 
&lt;/div&gt;&lt;p data-ke-size=&quot;size14&quot;&gt;sudo vi&amp;nbsp;/etc/wsl.conf&lt;br&gt;&lt;b&gt;[interop]&lt;br&gt;appendWindowsPath = false&lt;br&gt;&lt;/b&gt;&lt;br&gt;# Windows Command.exe 에서 아래를 다시 실행&lt;br&gt;wsl --shutdown&amp;nbsp; (윈도우셀에서 재기동)&lt;br&gt;wsl -d Ubuntu-22.4&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot;&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-5. 설치할 디스크 공간 확인&lt;/h4&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;pre class=&quot;html xml&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;# 최소 50GB 이상 권장 (모델 크기에 따라)

# 각 디렉토리가 있는 파티션 용량 확인
# /usr 에는 프로그램을 설치하고 /data는 모델 작업용으로 사용

df -h


# 만약 /usr/share 가 없다면 생성
sudo mkdir -p /usr/share/ollama
sudo mkdir -p /data


# /usr/share/ollama/.ollama   아래 모델이 저장됩니다.

/usr/share/ollama/.ollama/models
    -- blobs
    x&amp;nbsp;&amp;nbsp; -- sha256-5d6251ee5c30ac3e6fabf6aa77172581454e4d95813b8d349078fea4ae6a8da1
    x&amp;nbsp;&amp;nbsp; -- sha256-7d4afa1d8a5587f4beb8b75dab755f90d13d3ae2b8b9f148545b414ecfb9123a
    x&amp;nbsp;&amp;nbsp; -- sha256-a00920c28dfd776d75b999418d3736291dad8f7cede46bd8301cf64738460d0e
    x&amp;nbsp;&amp;nbsp; -- sha256-cb589e80873e3610d36d4a8be370c09d41f87e1d52a27ab73b8ac4b22976995d
    --- manifests
        --- registry.ollama.ai
            --- library
                --- smollm
                    --- latest&lt;/code&gt;&lt;/pre&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot;&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. Ubuntu 22.04용&amp;nbsp; 설치 스크립트&amp;nbsp;&lt;/h2&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-1 ollama download&amp;nbsp; 패키지 정보&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 참고 : &lt;a href=&quot;https://github.com/ollama/ollama/releases&quot; target=&quot;_self&quot;&gt;&lt;span&gt;https://github.com/ollama/ollama/releases&lt;/span&gt;&lt;/a&gt; &lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Download :&amp;nbsp; &lt;a href=&quot;https://github.com/ollama/ollama/releases/download/v0.13.5/ollama-linux-arm64.tgz&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://github.com/ollama/ollama/releases/download/v0.13.5/ollama-linux-arm64.tgz&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-2 ollama&amp;nbsp; 패키지 수동 다운로드 및 설치&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 다운 받은 패키지를 /usr/local 으로 설치를 합니다.&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# /usr/loca/bin 과 /usr/local/lib/ollama 에 패키지를 설치

sudo tar zx -C /usr/local -f ollama-linux-amd64.tgz&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;아래와 같이 ollama 패키지는 약 3.5 GB가 필요합니다.&lt;/p&gt;&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;&lt;div class=&quot;moreless-content&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;------------------------------ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DIsk&amp;nbsp;Usae&amp;nbsp;of&amp;nbsp;current&amp;nbsp;Dir&amp;nbsp;V2.2 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;------------------------------ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[/usr/local/lib/ollama] &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;------------------------------------------------------------------------------- &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DIRNAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SIZE&amp;nbsp;(MB)&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;Subdir&amp;nbsp;cnt &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;------------------------------------------------------------------------------- &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;./&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.32MB&amp;nbsp;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vulkan&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;54.07MB&amp;nbsp;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cuda_v13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;926.91MB&amp;nbsp;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cuda_v12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2419.66MB&amp;nbsp;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;------------------------------------------------------------------------------- &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TOTALSIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3406.96MB&amp;nbsp;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;------------------------------------------------------------------------------- &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;--&amp;nbsp;&amp;nbsp;Copy&amp;nbsp;Right&amp;nbsp;@&amp;nbsp;Choi&amp;nbsp;Doo&amp;nbsp;Rip&amp;nbsp;&amp;nbsp;1999&amp;nbsp;09&amp;nbsp;01&amp;nbsp;&amp;nbsp;--&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-3 &amp;nbsp;ollama&amp;nbsp; 자동 설치 스크립트&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - 1.ollama_download.sh&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; -&amp;nbsp; 2.ollama_env.sh&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/cldchv/dJMcaaxdLiO/TQkcz8RKv8jsxJwoHO3t81/1.ollama_download?attach=1&amp;amp;knm=tfile.sh&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;1.ollama_download&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.01MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/qTt4n/dJMcaaxdLiP/WO9YnkvMsscufrXcKzsKgK/2.ollama_env?attach=1&amp;amp;knm=tfile.sh&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;2.ollama_env&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.01MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;2.3.1.ollama_download.sh&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;-- ollama 패키지를 다운 받아 설치 하는 스크립트 입니다.&lt;br&gt;&amp;nbsp; &amp;nbsp; 다운 받은 패키지를 /usr/local/bin&amp;nbsp; 과 /usr/local/lib/ollama 아래&amp;nbsp; 설치를 합니다.&lt;/p&gt;&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;&lt;div class=&quot;moreless-content&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;#!/bin/bash &lt;br&gt;&lt;br&gt;############################################# &lt;br&gt;#&amp;nbsp;Ollama&amp;nbsp;통합&amp;nbsp;설치&amp;nbsp;스크립트 &lt;br&gt;#&amp;nbsp;지원&amp;nbsp;OS:&amp;nbsp;Ubuntu&amp;nbsp;22.04,&amp;nbsp;RHEL/CentOS&amp;nbsp;7/8/9 &lt;br&gt;#&amp;nbsp;설치&amp;nbsp;경로:&amp;nbsp;/data/ollama_app &lt;br&gt;############################################# &lt;br&gt;&lt;br&gt;set&amp;nbsp;-e &lt;br&gt;&lt;br&gt;#&amp;nbsp;설정&amp;nbsp;변수 &lt;br&gt;INSTALL_DIR=&quot;/data/ollama_app&quot; &lt;br&gt;MODELS_DIR=&quot;${INSTALL_DIR}/models&quot; &lt;br&gt;OLLAMA_URL=&quot;&lt;a href=&quot;https://github.com/ollama/ollama/releases/download/v0.13.5/ollama-linux-arm64.tgz&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://github.com/ollama/ollama/releases/download/v0.13.5/ollama-linux-arm64.tgz&lt;/span&gt;&lt;/a&gt;&quot; &lt;br&gt;OLLAMA_FILE=$(basename&amp;nbsp;${OLLAMA_URL}) &lt;br&gt;LOG_FILE=&quot;${INSTALL_DIR}/install.log&quot; &lt;br&gt;&lt;br&gt;#&amp;nbsp;색상&amp;nbsp;코드 &lt;br&gt;GREEN='\033[0;32m' &lt;br&gt;BLUE='\033[0;34m' &lt;br&gt;YELLOW='\033[1;33m' &lt;br&gt;RED='\033[0;31m' &lt;br&gt;NC='\033[0m' &lt;br&gt;&lt;br&gt;log()&amp;nbsp;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;-e&amp;nbsp;&quot;${GREEN}[$(date&amp;nbsp;+'%Y-%m-%d&amp;nbsp;%H:%M:%S')]${NC}&amp;nbsp;$1&quot;&amp;nbsp;|&amp;nbsp;tee&amp;nbsp;-a&amp;nbsp;&quot;$LOG_FILE&quot; &lt;br&gt;} &lt;br&gt;&lt;br&gt;error()&amp;nbsp;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;-e&amp;nbsp;&quot;${RED}[ERROR]${NC}&amp;nbsp;$1&quot;&amp;nbsp;|&amp;nbsp;tee&amp;nbsp;-a&amp;nbsp;&quot;$LOG_FILE&quot; &lt;br&gt;} &lt;br&gt;&lt;br&gt;warning()&amp;nbsp;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;-e&amp;nbsp;&quot;${YELLOW}[WARNING]${NC}&amp;nbsp;$1&quot;&amp;nbsp;|&amp;nbsp;tee&amp;nbsp;-a&amp;nbsp;&quot;$LOG_FILE&quot; &lt;br&gt;} &lt;br&gt;&lt;br&gt;#&amp;nbsp;OS&amp;nbsp;감지&amp;nbsp;함수 &lt;br&gt;detect_os()&amp;nbsp;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;[&amp;nbsp;-f&amp;nbsp;/etc/os-release&amp;nbsp;];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.&amp;nbsp;/etc/os-release &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OS=$ID &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OS_VERSION=$VERSION_ID &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OS_NAME=$NAME &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elif&amp;nbsp;[&amp;nbsp;-f&amp;nbsp;/etc/redhat-release&amp;nbsp;];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OS=&quot;rhel&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OS_VERSION=$(cat&amp;nbsp;/etc/redhat-release&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;-oP&amp;nbsp;'[0-9]+'&amp;nbsp;|&amp;nbsp;head&amp;nbsp;-1) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OS_NAME=$(cat&amp;nbsp;/etc/redhat-release) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;error&amp;nbsp;&quot;지원하지&amp;nbsp;않는&amp;nbsp;운영체제입니다.&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit&amp;nbsp;1 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;감지된&amp;nbsp;OS:&amp;nbsp;$OS_NAME&amp;nbsp;(버전:&amp;nbsp;$OS_VERSION)&quot; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;$OS&amp;nbsp;in &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ubuntu|debian) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PKG_MANAGER=&quot;apt&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INSTALL_CMD=&quot;apt&amp;nbsp;install&amp;nbsp;-y&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UPDATE_CMD=&quot;apt&amp;nbsp;update&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rhel|centos|rocky|almalinux|fedora) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;command&amp;nbsp;-v&amp;nbsp;dnf&amp;nbsp;&amp;amp;&amp;gt;&amp;nbsp;/dev/null;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PKG_MANAGER=&quot;dnf&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INSTALL_CMD=&quot;dnf&amp;nbsp;install&amp;nbsp;-y&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UPDATE_CMD=&quot;dnf&amp;nbsp;check-update&amp;nbsp;||&amp;nbsp;true&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PKG_MANAGER=&quot;yum&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INSTALL_CMD=&quot;yum&amp;nbsp;install&amp;nbsp;-y&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UPDATE_CMD=&quot;yum&amp;nbsp;check-update&amp;nbsp;||&amp;nbsp;true&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;error&amp;nbsp;&quot;지원하지&amp;nbsp;않는&amp;nbsp;OS:&amp;nbsp;$OS&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit&amp;nbsp;1 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;esac &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;패키지&amp;nbsp;관리자:&amp;nbsp;$PKG_MANAGER&quot; &lt;br&gt;} &lt;br&gt;&lt;br&gt;#&amp;nbsp;필수&amp;nbsp;패키지&amp;nbsp;설치 &lt;br&gt;install_dependencies()&amp;nbsp;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;필수&amp;nbsp;패키지&amp;nbsp;설치&amp;nbsp;중...&quot; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;$UPDATE_CMD &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;$OS&amp;nbsp;in &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ubuntu|debian) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;$INSTALL_CMD&amp;nbsp;curl&amp;nbsp;wget&amp;nbsp;ca-certificates&amp;nbsp;gnupg&amp;nbsp;lsb-release &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rhel|centos|rocky|almalinux|fedora) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;$INSTALL_CMD&amp;nbsp;curl&amp;nbsp;wget&amp;nbsp;ca-certificates &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;esac &lt;br&gt;} &lt;br&gt;&lt;br&gt;#&amp;nbsp;방화벽&amp;nbsp;설정 &lt;br&gt;configure_firewall()&amp;nbsp;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;방화벽&amp;nbsp;설정&amp;nbsp;확인&amp;nbsp;중...&quot; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;$OS&amp;nbsp;in &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ubuntu|debian) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;command&amp;nbsp;-v&amp;nbsp;ufw&amp;nbsp;&amp;amp;&amp;gt;&amp;nbsp;/dev/null;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;sudo&amp;nbsp;ufw&amp;nbsp;status&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;-q&amp;nbsp;&quot;Status:&amp;nbsp;active&quot;;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;warning&amp;nbsp;&quot;UFW&amp;nbsp;방화벽이&amp;nbsp;활성화되어&amp;nbsp;있습니다.&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read&amp;nbsp;-p&amp;nbsp;&quot;포트&amp;nbsp;11434를&amp;nbsp;열겠습니까?&amp;nbsp;[y/N]:&amp;nbsp;&quot;&amp;nbsp;open_port &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;[[&amp;nbsp;&quot;$open_port&quot;&amp;nbsp;=~&amp;nbsp;^[Yy]$&amp;nbsp;]];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;ufw&amp;nbsp;allow&amp;nbsp;11434/tcp &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;UFW:&amp;nbsp;포트&amp;nbsp;11434가&amp;nbsp;열렸습니다.&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rhel|centos|rocky|almalinux|fedora) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;command&amp;nbsp;-v&amp;nbsp;firewall-cmd&amp;nbsp;&amp;amp;&amp;gt;&amp;nbsp;/dev/null;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;sudo&amp;nbsp;firewall-cmd&amp;nbsp;--state&amp;nbsp;2&amp;gt;/dev/null&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;-q&amp;nbsp;&quot;running&quot;;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;warning&amp;nbsp;&quot;firewalld가&amp;nbsp;활성화되어&amp;nbsp;있습니다.&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read&amp;nbsp;-p&amp;nbsp;&quot;포트&amp;nbsp;11434를&amp;nbsp;열겠습니까?&amp;nbsp;[y/N]:&amp;nbsp;&quot;&amp;nbsp;open_port &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;[[&amp;nbsp;&quot;$open_port&quot;&amp;nbsp;=~&amp;nbsp;^[Yy]$&amp;nbsp;]];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;firewall-cmd&amp;nbsp;--permanent&amp;nbsp;--add-port=11434/tcp &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;firewall-cmd&amp;nbsp;--reload &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;firewalld:&amp;nbsp;포트&amp;nbsp;11434가&amp;nbsp;열렸습니다.&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;esac &lt;br&gt;} &lt;br&gt;&lt;br&gt;#&amp;nbsp;SELinux&amp;nbsp;설정&amp;nbsp;(Red&amp;nbsp;Hat&amp;nbsp;계열) &lt;br&gt;configure_selinux()&amp;nbsp;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;[[&amp;nbsp;&quot;$OS&quot;&amp;nbsp;=~&amp;nbsp;^(rhel|centos|rocky|almalinux|fedora)$&amp;nbsp;]];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;command&amp;nbsp;-v&amp;nbsp;getenforce&amp;nbsp;&amp;amp;&amp;gt;&amp;nbsp;/dev/null;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELINUX_STATUS=$(getenforce) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;SELinux&amp;nbsp;상태:&amp;nbsp;$SELINUX_STATUS&quot; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;[&amp;nbsp;&quot;$SELINUX_STATUS&quot;&amp;nbsp;!=&amp;nbsp;&quot;Disabled&quot;&amp;nbsp;];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;warning&amp;nbsp;&quot;SELinux가&amp;nbsp;활성화되어&amp;nbsp;있습니다.&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;SELinux&amp;nbsp;컨텍스트&amp;nbsp;설정&amp;nbsp;중...&quot; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;디렉토리에&amp;nbsp;대한&amp;nbsp;SELinux&amp;nbsp;컨텍스트&amp;nbsp;설정 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;semanage&amp;nbsp;fcontext&amp;nbsp;-a&amp;nbsp;-t&amp;nbsp;bin_t&amp;nbsp;&quot;${INSTALL_DIR}/ollama&quot;&amp;nbsp;2&amp;gt;/dev/null&amp;nbsp;||&amp;nbsp;true &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;restorecon&amp;nbsp;-v&amp;nbsp;&quot;${INSTALL_DIR}/ollama&quot;&amp;nbsp;2&amp;gt;/dev/null&amp;nbsp;||&amp;nbsp;true &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;포트&amp;nbsp;허용 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;semanage&amp;nbsp;port&amp;nbsp;-a&amp;nbsp;-t&amp;nbsp;http_port_t&amp;nbsp;-p&amp;nbsp;tcp&amp;nbsp;11434&amp;nbsp;2&amp;gt;/dev/null&amp;nbsp;||&amp;nbsp;\ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;semanage&amp;nbsp;port&amp;nbsp;-m&amp;nbsp;-t&amp;nbsp;http_port_t&amp;nbsp;-p&amp;nbsp;tcp&amp;nbsp;11434&amp;nbsp;2&amp;gt;/dev/null&amp;nbsp;||&amp;nbsp;true &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;SELinux&amp;nbsp;설정&amp;nbsp;완료&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;} &lt;br&gt;&lt;br&gt;log&amp;nbsp;&quot;===&amp;nbsp;Ollama&amp;nbsp;통합&amp;nbsp;설치&amp;nbsp;시작&amp;nbsp;===&quot; &lt;br&gt;&lt;br&gt;#&amp;nbsp;OS&amp;nbsp;감지 &lt;br&gt;detect_os &lt;br&gt;&lt;br&gt;#&amp;nbsp;Root&amp;nbsp;권한&amp;nbsp;확인 &lt;br&gt;if&amp;nbsp;[&amp;nbsp;&quot;$EUID&quot;&amp;nbsp;-eq&amp;nbsp;0&amp;nbsp;];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;error&amp;nbsp;&quot;이&amp;nbsp;스크립트를&amp;nbsp;root로&amp;nbsp;실행하지&amp;nbsp;마세요.&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit&amp;nbsp;1 &lt;br&gt;fi &lt;br&gt;&lt;br&gt;#&amp;nbsp;sudo&amp;nbsp;권한&amp;nbsp;확인 &lt;br&gt;if&amp;nbsp;!&amp;nbsp;sudo&amp;nbsp;-v;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;error&amp;nbsp;&quot;sudo&amp;nbsp;권한이&amp;nbsp;필요합니다.&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit&amp;nbsp;1 &lt;br&gt;fi &lt;br&gt;&lt;br&gt;#&amp;nbsp;필수&amp;nbsp;패키지&amp;nbsp;설치 &lt;br&gt;install_dependencies &lt;br&gt;&lt;br&gt;#&amp;nbsp;설치&amp;nbsp;디렉토리&amp;nbsp;생성 &lt;br&gt;log&amp;nbsp;&quot;설치&amp;nbsp;디렉토리&amp;nbsp;생성:&amp;nbsp;${INSTALL_DIR}&quot; &lt;br&gt;if&amp;nbsp;[&amp;nbsp;!&amp;nbsp;-d&amp;nbsp;&quot;$INSTALL_DIR&quot;&amp;nbsp;];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;mkdir&amp;nbsp;-p&amp;nbsp;&quot;$INSTALL_DIR&quot; &lt;br&gt;fi &lt;br&gt;sudo&amp;nbsp;chown&amp;nbsp;-R&amp;nbsp;$USER:$USER&amp;nbsp;&quot;$INSTALL_DIR&quot; &lt;br&gt;mkdir&amp;nbsp;-p&amp;nbsp;&quot;$MODELS_DIR&quot; &lt;br&gt;mkdir&amp;nbsp;-p&amp;nbsp;&quot;${INSTALL_DIR}/logs&quot; &lt;br&gt;&lt;br&gt;#&amp;nbsp;Ollama&amp;nbsp;바이너리&amp;nbsp;다운로드 &lt;br&gt;log&amp;nbsp;&quot;Ollama&amp;nbsp;바이너리&amp;nbsp;다운로드&amp;nbsp;중...&quot; &lt;br&gt;cd&amp;nbsp;&quot;$INSTALL_DIR&quot; &lt;br&gt;&lt;br&gt;if&amp;nbsp;[&amp;nbsp;-f&amp;nbsp;&quot;ollama&quot;&amp;nbsp;];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;기존&amp;nbsp;Ollama&amp;nbsp;백업&amp;nbsp;중...&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mv&amp;nbsp;ollama&amp;nbsp;ollama.backup.$(date&amp;nbsp;+%Y%m%d_%H%M%S) &lt;br&gt;fi &lt;br&gt;&lt;br&gt;if&amp;nbsp;!&amp;nbsp;wget&amp;nbsp;-O&amp;nbsp;ollama&amp;nbsp;&quot;$OLLAMA_URL&quot;&amp;nbsp;2&amp;gt;&amp;amp;1&amp;nbsp;|&amp;nbsp;tee&amp;nbsp;-a&amp;nbsp;&quot;$LOG_FILE&quot;;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;!&amp;nbsp;curl&amp;nbsp;-L&amp;nbsp;&quot;$OLLAMA_URL&quot;&amp;nbsp;-o&amp;nbsp;ollama&amp;nbsp;2&amp;gt;&amp;amp;1&amp;nbsp;|&amp;nbsp;tee&amp;nbsp;-a&amp;nbsp;&quot;$LOG_FILE&quot;;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;error&amp;nbsp;&quot;다운로드&amp;nbsp;실패&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit&amp;nbsp;1 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;fi &lt;br&gt;log&amp;nbsp;&quot;다운로드&amp;nbsp;완료&amp;nbsp;[$?]&amp;nbsp;&quot; &lt;br&gt;&lt;br&gt;chmod&amp;nbsp;+x&amp;nbsp;ollama&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot;&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;2.ollama_env.sh&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 다음 작업은 시스템 환경변수, ollama 시작,종료, 상태 확인을 위한 스크립트, 서비스 등록, 방화벽 설정 등의&amp;nbsp; 절차를 수행합니다.&lt;/p&gt;&lt;blockquote data-ke-style=&quot;style2&quot;&gt;sudo&amp;nbsp;sh&amp;nbsp;2.ollama_env.sh &lt;br&gt;-e&amp;nbsp;[2026-01-06&amp;nbsp;17:06:45]&amp;nbsp;4.&amp;nbsp;환경&amp;nbsp;변수&amp;nbsp;설정&amp;nbsp;파일&amp;nbsp;생성 &lt;br&gt;-e&amp;nbsp;[2026-01-06&amp;nbsp;17:06:45]&amp;nbsp;5.&amp;nbsp;시작/정지&amp;nbsp;스크립트&amp;nbsp;생성 &lt;br&gt;-e&amp;nbsp;[2026-01-06&amp;nbsp;17:06:45]&amp;nbsp;6.&amp;nbsp;systemd&amp;nbsp;서비스&amp;nbsp;설정 &lt;br&gt;&lt;br&gt;systemd&amp;nbsp;서비스로&amp;nbsp;등록하시겠습니까?&amp;nbsp;(권장)&amp;nbsp;[Y/n]:&amp;nbsp;Y&lt;/blockquote&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;&lt;div class=&quot;moreless-content&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;#!/bin/bash &lt;br&gt;&lt;br&gt;############################################# &lt;br&gt;#&amp;nbsp;Ollama&amp;nbsp;통합&amp;nbsp;설치&amp;nbsp;스크립트 &lt;br&gt;#&amp;nbsp;지원&amp;nbsp;OS:&amp;nbsp;Ubuntu&amp;nbsp;22.04,&amp;nbsp;RHEL/CentOS&amp;nbsp;7/8/9 &lt;br&gt;#&amp;nbsp;설치&amp;nbsp;경로:&amp;nbsp;/data/ollama_app &lt;br&gt;############################################# &lt;br&gt;&lt;br&gt;set&amp;nbsp;-e &lt;br&gt;&lt;br&gt;#&amp;nbsp;설정&amp;nbsp;변수 &lt;br&gt;INSTALL_DIR=&quot;/data/ollama_app&quot; &lt;br&gt;MODELS_DIR=&quot;${INSTALL_DIR}/models&quot; &lt;br&gt;OLLAMA_URL=&quot;&lt;a href=&quot;https://github.com/ollama/ollama/releases/download/v0.13.5/ollama-linux-arm64.tgz&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://github.com/ollama/ollama/releases/download/v0.13.5/ollama-linux-arm64.tgz&lt;/span&gt;&lt;/a&gt;&quot; &lt;br&gt;OLLAMA_FILE=$(basename&amp;nbsp;${OLLAMA_URL}) &lt;br&gt;LOG_FILE=&quot;${INSTALL_DIR}/install.log&quot; &lt;br&gt;&lt;br&gt;#&amp;nbsp;색상&amp;nbsp;코드 &lt;br&gt;GREEN='\033[0;32m' &lt;br&gt;BLUE='\033[0;34m' &lt;br&gt;YELLOW='\033[1;33m' &lt;br&gt;RED='\033[0;31m' &lt;br&gt;NC='\033[0m' &lt;br&gt;&lt;br&gt;log()&amp;nbsp;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;-e&amp;nbsp;&quot;${GREEN}[$(date&amp;nbsp;+'%Y-%m-%d&amp;nbsp;%H:%M:%S')]${NC}&amp;nbsp;$1&quot;&amp;nbsp;|&amp;nbsp;tee&amp;nbsp;-a&amp;nbsp;&quot;$LOG_FILE&quot; &lt;br&gt;} &lt;br&gt;&lt;br&gt;error()&amp;nbsp;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;-e&amp;nbsp;&quot;${RED}[ERROR]${NC}&amp;nbsp;$1&quot;&amp;nbsp;|&amp;nbsp;tee&amp;nbsp;-a&amp;nbsp;&quot;$LOG_FILE&quot; &lt;br&gt;} &lt;br&gt;&lt;br&gt;warning()&amp;nbsp;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;-e&amp;nbsp;&quot;${YELLOW}[WARNING]${NC}&amp;nbsp;$1&quot;&amp;nbsp;|&amp;nbsp;tee&amp;nbsp;-a&amp;nbsp;&quot;$LOG_FILE&quot; &lt;br&gt;} &lt;br&gt;&lt;br&gt;#&amp;nbsp;OS&amp;nbsp;감지&amp;nbsp;함수 &lt;br&gt;detect_os()&amp;nbsp;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;[&amp;nbsp;-f&amp;nbsp;/etc/os-release&amp;nbsp;];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.&amp;nbsp;/etc/os-release &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OS=$ID &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OS_VERSION=$VERSION_ID &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OS_NAME=$NAME &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elif&amp;nbsp;[&amp;nbsp;-f&amp;nbsp;/etc/redhat-release&amp;nbsp;];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OS=&quot;rhel&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OS_VERSION=$(cat&amp;nbsp;/etc/redhat-release&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;-oP&amp;nbsp;'[0-9]+'&amp;nbsp;|&amp;nbsp;head&amp;nbsp;-1) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OS_NAME=$(cat&amp;nbsp;/etc/redhat-release) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;error&amp;nbsp;&quot;지원하지&amp;nbsp;않는&amp;nbsp;운영체제입니다.&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit&amp;nbsp;1 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;감지된&amp;nbsp;OS:&amp;nbsp;$OS_NAME&amp;nbsp;(버전:&amp;nbsp;$OS_VERSION)&quot; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;$OS&amp;nbsp;in &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ubuntu|debian) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PKG_MANAGER=&quot;apt&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INSTALL_CMD=&quot;apt&amp;nbsp;install&amp;nbsp;-y&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UPDATE_CMD=&quot;apt&amp;nbsp;update&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rhel|centos|rocky|almalinux|fedora) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;command&amp;nbsp;-v&amp;nbsp;dnf&amp;nbsp;&amp;amp;&amp;gt;&amp;nbsp;/dev/null;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PKG_MANAGER=&quot;dnf&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INSTALL_CMD=&quot;dnf&amp;nbsp;install&amp;nbsp;-y&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UPDATE_CMD=&quot;dnf&amp;nbsp;check-update&amp;nbsp;||&amp;nbsp;true&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PKG_MANAGER=&quot;yum&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INSTALL_CMD=&quot;yum&amp;nbsp;install&amp;nbsp;-y&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UPDATE_CMD=&quot;yum&amp;nbsp;check-update&amp;nbsp;||&amp;nbsp;true&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;error&amp;nbsp;&quot;지원하지&amp;nbsp;않는&amp;nbsp;OS:&amp;nbsp;$OS&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit&amp;nbsp;1 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;esac &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;패키지&amp;nbsp;관리자:&amp;nbsp;$PKG_MANAGER&quot; &lt;br&gt;} &lt;br&gt;&lt;br&gt;#&amp;nbsp;필수&amp;nbsp;패키지&amp;nbsp;설치 &lt;br&gt;install_dependencies()&amp;nbsp;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;필수&amp;nbsp;패키지&amp;nbsp;설치&amp;nbsp;중...&quot; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;$UPDATE_CMD &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;$OS&amp;nbsp;in &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ubuntu|debian) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;$INSTALL_CMD&amp;nbsp;curl&amp;nbsp;wget&amp;nbsp;ca-certificates&amp;nbsp;gnupg&amp;nbsp;lsb-release &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rhel|centos|rocky|almalinux|fedora) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;$INSTALL_CMD&amp;nbsp;curl&amp;nbsp;wget&amp;nbsp;ca-certificates &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;esac &lt;br&gt;} &lt;br&gt;&lt;br&gt;#&amp;nbsp;방화벽&amp;nbsp;설정 &lt;br&gt;configure_firewall()&amp;nbsp;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;방화벽&amp;nbsp;설정&amp;nbsp;확인&amp;nbsp;중...&quot; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;$OS&amp;nbsp;in &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ubuntu|debian) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;command&amp;nbsp;-v&amp;nbsp;ufw&amp;nbsp;&amp;amp;&amp;gt;&amp;nbsp;/dev/null;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;sudo&amp;nbsp;ufw&amp;nbsp;status&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;-q&amp;nbsp;&quot;Status:&amp;nbsp;active&quot;;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;warning&amp;nbsp;&quot;UFW&amp;nbsp;방화벽이&amp;nbsp;활성화되어&amp;nbsp;있습니다.&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read&amp;nbsp;-p&amp;nbsp;&quot;포트&amp;nbsp;11434를&amp;nbsp;열겠습니까?&amp;nbsp;[y/N]:&amp;nbsp;&quot;&amp;nbsp;open_port &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;[[&amp;nbsp;&quot;$open_port&quot;&amp;nbsp;=~&amp;nbsp;^[Yy]$&amp;nbsp;]];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;ufw&amp;nbsp;allow&amp;nbsp;11434/tcp &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;UFW:&amp;nbsp;포트&amp;nbsp;11434가&amp;nbsp;열렸습니다.&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rhel|centos|rocky|almalinux|fedora) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;command&amp;nbsp;-v&amp;nbsp;firewall-cmd&amp;nbsp;&amp;amp;&amp;gt;&amp;nbsp;/dev/null;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;sudo&amp;nbsp;firewall-cmd&amp;nbsp;--state&amp;nbsp;2&amp;gt;/dev/null&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;-q&amp;nbsp;&quot;running&quot;;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;warning&amp;nbsp;&quot;firewalld가&amp;nbsp;활성화되어&amp;nbsp;있습니다.&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read&amp;nbsp;-p&amp;nbsp;&quot;포트&amp;nbsp;11434를&amp;nbsp;열겠습니까?&amp;nbsp;[y/N]:&amp;nbsp;&quot;&amp;nbsp;open_port &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;[[&amp;nbsp;&quot;$open_port&quot;&amp;nbsp;=~&amp;nbsp;^[Yy]$&amp;nbsp;]];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;firewall-cmd&amp;nbsp;--permanent&amp;nbsp;--add-port=11434/tcp &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;firewall-cmd&amp;nbsp;--reload &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;firewalld:&amp;nbsp;포트&amp;nbsp;11434가&amp;nbsp;열렸습니다.&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;esac &lt;br&gt;} &lt;br&gt;&lt;br&gt;#&amp;nbsp;SELinux&amp;nbsp;설정&amp;nbsp;(Red&amp;nbsp;Hat&amp;nbsp;계열) &lt;br&gt;configure_selinux()&amp;nbsp;{ &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&quot;$OS&quot;&amp;nbsp;in &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rhel|centos|rocky|almalinux|fedora) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;command&amp;nbsp;-v&amp;nbsp;getenforce&amp;nbsp;&amp;gt;/dev/null&amp;nbsp;2&amp;gt;&amp;amp;1;&amp;nbsp;then &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELINUX_STATUS=$(getenforce) &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&quot;SELinux&amp;nbsp;상태:&amp;nbsp;$SELINUX_STATUS&quot; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;[&amp;nbsp;&quot;$SELINUX_STATUS&quot;&amp;nbsp;!=&amp;nbsp;&quot;Disabled&quot;&amp;nbsp;];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;warning&amp;nbsp;&quot;SELinux가&amp;nbsp;활성화되어&amp;nbsp;있습니다.&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;SELinux&amp;nbsp;컨텍스트&amp;nbsp;설정&amp;nbsp;중...&quot; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;디렉토리에&amp;nbsp;대한&amp;nbsp;SELinux&amp;nbsp;컨텍스트&amp;nbsp;설정 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;semanage&amp;nbsp;fcontext&amp;nbsp;-a&amp;nbsp;-t&amp;nbsp;bin_t&amp;nbsp;&quot;${INSTALL_DIR}/ollama&quot;&amp;nbsp;2&amp;gt;/dev/null&amp;nbsp;||&amp;nbsp;true &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;restorecon&amp;nbsp;-v&amp;nbsp;&quot;${INSTALL_DIR}/ollama&quot;&amp;nbsp;2&amp;gt;/dev/null&amp;nbsp;||&amp;nbsp;true &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;포트&amp;nbsp;허용 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;semanage&amp;nbsp;port&amp;nbsp;-a&amp;nbsp;-t&amp;nbsp;http_port_t&amp;nbsp;-p&amp;nbsp;tcp&amp;nbsp;11434&amp;nbsp;2&amp;gt;/dev/null&amp;nbsp;||&amp;nbsp;\ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;semanage&amp;nbsp;port&amp;nbsp;-m&amp;nbsp;-t&amp;nbsp;http_port_t&amp;nbsp;-p&amp;nbsp;tcp&amp;nbsp;11434&amp;nbsp;2&amp;gt;/dev/null&amp;nbsp;||&amp;nbsp;true &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;SELinux&amp;nbsp;설정&amp;nbsp;완료&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;esac &lt;br&gt;&lt;br&gt;} &lt;br&gt;&lt;br&gt;log&amp;nbsp;&quot;===&amp;nbsp;Ollama&amp;nbsp;&amp;nbsp;환경&amp;nbsp;설정&amp;nbsp;&amp;nbsp;시작&amp;nbsp;===&quot; &lt;br&gt;&lt;br&gt;#################################################################3 &lt;br&gt;&lt;br&gt;#&amp;nbsp;환경&amp;nbsp;변수&amp;nbsp;설정&amp;nbsp;파일&amp;nbsp;생성 &lt;br&gt;log&amp;nbsp;&quot;환경&amp;nbsp;변수&amp;nbsp;설정&amp;nbsp;파일&amp;nbsp;생성&quot; &lt;br&gt;cat&amp;nbsp;&amp;gt;&amp;nbsp;&quot;${INSTALL_DIR}/ollama_env.sh&quot;&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;'EOF' &lt;br&gt;#!/bin/bash &lt;br&gt;export&amp;nbsp;OLLAMA_HOME=/data/ollama_app &lt;br&gt;export&amp;nbsp;OLLAMA_MODELS=/data/ollama_app/models &lt;br&gt;export&amp;nbsp;OLLAMA_HOST=0.0.0.0:11434 &lt;br&gt;export&amp;nbsp;PATH=/data/ollama_app:$PATH &lt;br&gt;echo&amp;nbsp;&quot;Ollama&amp;nbsp;환경&amp;nbsp;변수&amp;nbsp;로드&amp;nbsp;완료&quot; &lt;br&gt;EOF &lt;br&gt;&lt;br&gt;chmod&amp;nbsp;+x&amp;nbsp;&quot;${INSTALL_DIR}/ollama_env.sh&quot; &lt;br&gt;&lt;br&gt;#&amp;nbsp;시작/정지&amp;nbsp;스크립트&amp;nbsp;생성 &lt;br&gt;log&amp;nbsp;&quot;관리&amp;nbsp;스크립트&amp;nbsp;생성&quot; &lt;br&gt;&lt;br&gt;cat&amp;nbsp;&amp;gt;&amp;nbsp;&quot;${INSTALL_DIR}/start_ollama.sh&quot;&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;'EOF' &lt;br&gt;#!/bin/bash &lt;br&gt;SCRIPT_DIR=&quot;$(cd&amp;nbsp;&quot;$(dirname&amp;nbsp;&quot;${BASH_SOURCE[0]}&quot;)&quot;&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;pwd)&quot; &lt;br&gt;LOG_FILE=&quot;${SCRIPT_DIR}/logs/ollama.log&quot; &lt;br&gt;source&amp;nbsp;&quot;${SCRIPT_DIR}/ollama_env.sh&quot; &lt;br&gt;&lt;br&gt;if&amp;nbsp;pgrep&amp;nbsp;-f&amp;nbsp;&quot;ollama&amp;nbsp;serve&quot;&amp;nbsp;&amp;gt;&amp;nbsp;/dev/null;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&quot;Ollama가&amp;nbsp;이미&amp;nbsp;실행&amp;nbsp;중입니다.&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit&amp;nbsp;1 &lt;br&gt;fi &lt;br&gt;&lt;br&gt;echo&amp;nbsp;&quot;Ollama&amp;nbsp;시작&amp;nbsp;중...&quot; &lt;br&gt;nohup&amp;nbsp;&quot;${SCRIPT_DIR}/ollama&quot;&amp;nbsp;serve&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;&quot;$LOG_FILE&quot;&amp;nbsp;2&amp;gt;&amp;amp;1&amp;nbsp;&amp;amp; &lt;br&gt;sleep&amp;nbsp;3 &lt;br&gt;&lt;br&gt;if&amp;nbsp;pgrep&amp;nbsp;-f&amp;nbsp;&quot;ollama&amp;nbsp;serve&quot;&amp;nbsp;&amp;gt;&amp;nbsp;/dev/null;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&quot;✓&amp;nbsp;Ollama&amp;nbsp;시작&amp;nbsp;완료&amp;nbsp;(포트:&amp;nbsp;11434)&quot; &lt;br&gt;else &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&quot;✗&amp;nbsp;시작&amp;nbsp;실패.&amp;nbsp;로그:&amp;nbsp;$LOG_FILE&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit&amp;nbsp;1 &lt;br&gt;fi &lt;br&gt;EOF &lt;br&gt;&lt;br&gt;cat&amp;nbsp;&amp;gt;&amp;nbsp;&quot;${INSTALL_DIR}/stop_ollama.sh&quot;&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;'EOF' &lt;br&gt;#!/bin/bash &lt;br&gt;if&amp;nbsp;pgrep&amp;nbsp;-f&amp;nbsp;&quot;ollama&amp;nbsp;serve&quot;&amp;nbsp;&amp;gt;&amp;nbsp;/dev/null;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pkill&amp;nbsp;-f&amp;nbsp;&quot;ollama&amp;nbsp;serve&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sleep&amp;nbsp;2 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;pgrep&amp;nbsp;-f&amp;nbsp;&quot;ollama&amp;nbsp;serve&quot;&amp;nbsp;&amp;gt;&amp;nbsp;/dev/null;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pkill&amp;nbsp;-9&amp;nbsp;-f&amp;nbsp;&quot;ollama&amp;nbsp;serve&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&quot;✓&amp;nbsp;Ollama&amp;nbsp;정지&amp;nbsp;완료&quot; &lt;br&gt;else &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&quot;실행&amp;nbsp;중인&amp;nbsp;Ollama&amp;nbsp;없음&quot; &lt;br&gt;fi &lt;br&gt;EOF &lt;br&gt;&lt;br&gt;cat&amp;nbsp;&amp;gt;&amp;nbsp;&quot;${INSTALL_DIR}/status_ollama.sh&quot;&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;'EOF' &lt;br&gt;#!/bin/bash &lt;br&gt;if&amp;nbsp;pgrep&amp;nbsp;-f&amp;nbsp;&quot;ollama&amp;nbsp;serve&quot;&amp;nbsp;&amp;gt;&amp;nbsp;/dev/null;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&quot;✓&amp;nbsp;Ollama&amp;nbsp;실행&amp;nbsp;중&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ps&amp;nbsp;aux&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;&quot;ollama&amp;nbsp;serve&quot;&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;-v&amp;nbsp;grep &lt;br&gt;else &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&quot;✗&amp;nbsp;Ollama&amp;nbsp;정지됨&quot; &lt;br&gt;fi &lt;br&gt;EOF &lt;br&gt;&lt;br&gt;chmod&amp;nbsp;+x&amp;nbsp;&quot;${INSTALL_DIR}&quot;/*.sh &lt;br&gt;&lt;br&gt;#&amp;nbsp;SELinux&amp;nbsp;설정&amp;nbsp;(Red&amp;nbsp;Hat&amp;nbsp;계열) &lt;br&gt;configure_selinux &lt;br&gt;&lt;br&gt;#&amp;nbsp;systemd&amp;nbsp;서비스&amp;nbsp;생성 &lt;br&gt;log&amp;nbsp;&quot;systemd&amp;nbsp;서비스&amp;nbsp;설정&quot; &lt;br&gt;read&amp;nbsp;-p&amp;nbsp;&quot;systemd&amp;nbsp;서비스로&amp;nbsp;등록하시겠습니까?&amp;nbsp;[Y/n]:&amp;nbsp;&quot;&amp;nbsp;create_service &lt;br&gt;create_service=${create_service:-Y} &lt;br&gt;&lt;br&gt;if&amp;nbsp;[[&amp;nbsp;&quot;$create_service&quot;&amp;nbsp;=~&amp;nbsp;^[Yy]$&amp;nbsp;]];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;tee&amp;nbsp;/etc/systemd/system/ollama.service&amp;nbsp;&amp;gt;&amp;nbsp;/dev/null&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;EOF &lt;br&gt;[Unit] &lt;br&gt;Description=Ollama&amp;nbsp;Service &lt;br&gt;Documentation=&lt;a href=&quot;https://ollama.ai/&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://ollama.ai/&lt;/span&gt;&lt;/a&gt;&lt;br&gt;After=network-online.target &lt;br&gt;Wants=network-online.target &lt;br&gt;&lt;br&gt;[Service] &lt;br&gt;Type=exec &lt;br&gt;User=$USER &lt;br&gt;Group=$USER &lt;br&gt;ExecStart=${INSTALL_DIR}/ollama&amp;nbsp;serve &lt;br&gt;Environment=&quot;OLLAMA_HOME=${INSTALL_DIR}&quot; &lt;br&gt;Environment=&quot;OLLAMA_MODELS=${MODELS_DIR}&quot; &lt;br&gt;Environment=&quot;OLLAMA_HOST=0.0.0.0:11434&quot; &lt;br&gt;Restart=always &lt;br&gt;RestartSec=3 &lt;br&gt;StandardOutput=append:${INSTALL_DIR}/logs/ollama.log &lt;br&gt;StandardError=append:${INSTALL_DIR}/logs/ollama_error.log &lt;br&gt;LimitNOFILE=65536 &lt;br&gt;LimitNPROC=4096 &lt;br&gt;&lt;br&gt;[Install] &lt;br&gt;WantedBy=default.target &lt;br&gt;EOF &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;systemctl&amp;nbsp;daemon-reload &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;systemctl&amp;nbsp;enable&amp;nbsp;ollama &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;Ollama&amp;nbsp;서비스&amp;nbsp;시작&amp;nbsp;중...&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;systemctl&amp;nbsp;start&amp;nbsp;ollama &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sleep&amp;nbsp;3 &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;sudo&amp;nbsp;systemctl&amp;nbsp;is-active&amp;nbsp;--quiet&amp;nbsp;ollama;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;✓&amp;nbsp;Ollama&amp;nbsp;서비스&amp;nbsp;시작&amp;nbsp;완료&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;error&amp;nbsp;&quot;✗&amp;nbsp;서비스&amp;nbsp;시작&amp;nbsp;실패&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;systemctl&amp;nbsp;status&amp;nbsp;ollama&amp;nbsp;--no-pager &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;fi &lt;br&gt;&lt;br&gt;#&amp;nbsp;방화벽&amp;nbsp;설정 &lt;br&gt;configure_firewall &lt;br&gt;&lt;br&gt;#&amp;nbsp;환경&amp;nbsp;변수를&amp;nbsp;shell&amp;nbsp;rc&amp;nbsp;파일에&amp;nbsp;추가 &lt;br&gt;log&amp;nbsp;&quot;환경&amp;nbsp;변수&amp;nbsp;설정&quot; &lt;br&gt;&lt;br&gt;#&amp;nbsp;bash&amp;nbsp;사용자 &lt;br&gt;if&amp;nbsp;[&amp;nbsp;-f&amp;nbsp;~/.bashrc&amp;nbsp;];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;!&amp;nbsp;grep&amp;nbsp;-q&amp;nbsp;&quot;OLLAMA_HOME=${INSTALL_DIR}&quot;&amp;nbsp;~/.bashrc;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;~/.bashrc&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;EOF &lt;br&gt;&lt;br&gt;#&amp;nbsp;Ollama&amp;nbsp;환경&amp;nbsp;변수 &lt;br&gt;export&amp;nbsp;OLLAMA_HOME=${INSTALL_DIR} &lt;br&gt;export&amp;nbsp;OLLAMA_MODELS=${MODELS_DIR} &lt;br&gt;export&amp;nbsp;PATH=${INSTALL_DIR}:\$PATH &lt;br&gt;EOF &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;~/.bashrc에&amp;nbsp;환경&amp;nbsp;변수&amp;nbsp;추가됨&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;fi &lt;br&gt;&lt;br&gt;#&amp;nbsp;zsh&amp;nbsp;사용자 &lt;br&gt;if&amp;nbsp;[&amp;nbsp;-f&amp;nbsp;~/.zshrc&amp;nbsp;];&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;!&amp;nbsp;grep&amp;nbsp;-q&amp;nbsp;&quot;OLLAMA_HOME=${INSTALL_DIR}&quot;&amp;nbsp;~/.zshrc;&amp;nbsp;then &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;~/.zshrc&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;EOF &lt;br&gt;&lt;br&gt;#&amp;nbsp;Ollama&amp;nbsp;환경&amp;nbsp;변수 &lt;br&gt;export&amp;nbsp;OLLAMA_HOME=${INSTALL_DIR} &lt;br&gt;export&amp;nbsp;OLLAMA_MODELS=${MODELS_DIR} &lt;br&gt;export&amp;nbsp;PATH=${INSTALL_DIR}:\$PATH &lt;br&gt;EOF &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log&amp;nbsp;&quot;~/.zshrc에&amp;nbsp;환경&amp;nbsp;변수&amp;nbsp;추가됨&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br&gt;fi &lt;br&gt;&lt;br&gt;.&amp;nbsp;${INSTALL_DIR}/ollama_env.sh &lt;br&gt;source&amp;nbsp;${INSTALL_DIR}/ollama_env.sh &lt;br&gt;&lt;br&gt;log&amp;nbsp;&quot;===&amp;nbsp;설치&amp;nbsp;완료!&amp;nbsp;===&quot; &lt;br&gt;&lt;br&gt;cat&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;EOF &lt;br&gt;&lt;br&gt;lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk &lt;br&gt;x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ollama&amp;nbsp;설치&amp;nbsp;완료&amp;nbsp;($OS_NAME) &lt;br&gt;mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj &lt;br&gt;&lt;br&gt; &amp;nbsp;설치&amp;nbsp;경로:&amp;nbsp;${INSTALL_DIR} &lt;br&gt; &amp;nbsp;모델&amp;nbsp;경로:&amp;nbsp;${MODELS_DIR} &lt;br&gt; &amp;nbsp;로그&amp;nbsp;파일:&amp;nbsp;${INSTALL_DIR}/logs/ &lt;br&gt;&lt;br&gt; &amp;nbsp;서비스&amp;nbsp;관리: &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;systemctl&amp;nbsp;start&amp;nbsp;ollama &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;systemctl&amp;nbsp;stop&amp;nbsp;ollama &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;systemctl&amp;nbsp;restart&amp;nbsp;ollama &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;systemctl&amp;nbsp;status&amp;nbsp;ollama &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;journalctl&amp;nbsp;-u&amp;nbsp;ollama&amp;nbsp;-f &lt;br&gt;&lt;br&gt; &amp;nbsp;모델&amp;nbsp;관리: &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ollama&amp;nbsp;pull&amp;nbsp;deepseek-coder:6.7b &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ollama&amp;nbsp;list &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ollama&amp;nbsp;run&amp;nbsp;deepseek-coder &lt;br&gt;&lt;br&gt;⚙️&amp;nbsp;&amp;nbsp;환경&amp;nbsp;변수:&amp;nbsp;source&amp;nbsp;${INSTALL_DIR}/ollama_env.sh &lt;br&gt;&lt;br&gt;EOF &lt;br&gt;&lt;br&gt;exit&amp;nbsp;0&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk &lt;br&gt;x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ollama&amp;nbsp;설치&amp;nbsp;완료&amp;nbsp;($OS_NAME) &lt;br&gt;mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj &lt;br&gt;&lt;br&gt; &amp;nbsp;설치&amp;nbsp;경로:&amp;nbsp;${INSTALL_DIR} &lt;br&gt; &amp;nbsp;모델&amp;nbsp;경로:&amp;nbsp;${MODELS_DIR} &lt;br&gt; &amp;nbsp;로그&amp;nbsp;파일:&amp;nbsp;${INSTALL_DIR}/logs/ &lt;br&gt;&lt;br&gt; &amp;nbsp;서비스&amp;nbsp;관리: &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;systemctl&amp;nbsp;start&amp;nbsp;ollama &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;systemctl&amp;nbsp;stop&amp;nbsp;ollama &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;systemctl&amp;nbsp;restart&amp;nbsp;ollama &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;systemctl&amp;nbsp;status&amp;nbsp;ollama &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo&amp;nbsp;journalctl&amp;nbsp;-u&amp;nbsp;ollama&amp;nbsp;-f &lt;br&gt;&lt;br&gt; &amp;nbsp;모델&amp;nbsp;관리: &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ollama&amp;nbsp;pull&amp;nbsp;deepseek-coder:6.7b &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ollama&amp;nbsp;list &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ollama&amp;nbsp;run&amp;nbsp;deepseek-coder &lt;br&gt;&lt;br&gt;⚙️&amp;nbsp;&amp;nbsp;환경&amp;nbsp;변수:&amp;nbsp;source&amp;nbsp;${INSTALL_DIR}/ollama_env.sh&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 스크립트 실행&lt;/h2&gt;&lt;pre class=&quot;shell&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;# 스크립트 다운로드 또는 생성
nano 1.ollama_download.sh  2.ollama_env.sh

# (위 스크립트 내용을 붙여넣기)

# 실행 권한 부여
chmod +x 1.ollama_download.sh  2.ollama_env.sh

# 스크립트 실행
sudo 1.ollama_download.sh

sudo 2.ollama_env.sh&lt;/code&gt;&lt;/pre&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 설치 후 확인&lt;/h2&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;4-1. 서비스 상태 확인&lt;/h3&gt;&lt;pre class=&quot;haskell&quot;&gt;&lt;code&gt;# systemd 서비스 상태
sudo systemctl status ollama

# 또는 스크립트 사용
/data/ollama_app/status_ollama.sh

# 로그 확인
sudo journalctl -u ollama -f

# 또는 파일로 확인
tail -f /data/ollama_app/logs/ollama.log
&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;4-2. ollama service 포트 확인&lt;/h3&gt;&lt;pre class=&quot;html xml&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;# Ollama가 11434 포트를 사용하는지 확인
sudo netstat -tlnp | grep 11434
# 또는
sudo ss -tlnp | grep 11434


-----------------------------------
tcp        0      0 127.0.0.1:11434         0.0.0.0:*               LISTEN      10152/ollama




# curl로 API 테스트
curl http://localhost:11434/api/tags

-----------------------------------
{&quot;models&quot;:[{&quot;name&quot;:&quot;smollm:latest&quot;,&quot;model&quot;:&quot;smollm:latest&quot;,&quot;modified_at&quot;:&quot;2026-01-08T09:29:55.395926403+09:00&quot;,&quot;size&quot;:144810885,&quot;digest&quot;:&quot;68774fff90deced6a0f40ea48fd5bcf03d462d52999f058ec7176e27a142a97a&quot;,&quot;details&quot;:{&quot;parent_model&quot;:&quot;&quot;,&quot;format&quot;:&quot;gguf&quot;,&quot;family&quot;:&quot;llama&quot;,&quot;families&quot;:[&quot;llama&quot;],&quot;parameter_size&quot;:&quot;134.52M&quot;,&quot;quantization_level&quot;:&quot;Q8_0&quot;}}]}&lt;/code&gt;&lt;/pre&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 첫 모델 다운로드 및 실행&lt;/h2&gt;&lt;pre class=&quot;properties&quot;&gt;&lt;code&gt;# 환경 변수 로드 (새 터미널이라면)
source /data/ollama_app/ollama_env.sh

# DeepSeek 모델 다운로드
ollama pull deepseek-coder:6.7b

# 다른 추천 모델들
ollama pull deepseek-chat
ollama pull llama2:7b
ollama pull mistral:7b

# 모델 목록 확인
ollama list

# 모델 실행 (대화형)
ollama run deepseek-coder

# 종료는 /bye 또는 Ctrl+D
&lt;/code&gt;&lt;/pre&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. Python 통합 설정&lt;/h2&gt;&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;# Python 가상환경 생성
cd /data/ollama_app
python3 -m venv venv
source venv/bin/activate

# ollama 패키지 설치
pip install ollama

# 테스트 스크립트 생성
cat &amp;gt; test_ollama.py &amp;lt;&amp;lt; 'EOF'
#!/usr/bin/env python3
import ollama

def test_ollama():
    try:
        # 모델 목록 확인
        models = ollama.list()
        print(&quot;사용 가능한 모델:&quot;)
        for model in models.get('models', []):
            print(f&quot;  - {model['name']}&quot;)
        
        print(&quot;\n&quot; + &quot;=&quot;*50)
        
        # DeepSeek 모델 테스트
        print(&quot;\nDeepSeek 모델 테스트 중...&quot;)
        response = ollama.chat(
            model='deepseek-coder',
            messages=[
                {
                    'role': 'user',
                    'content': 'Write a Python function to calculate factorial'
                }
            ]
        )
        
        print(&quot;\n응답:&quot;)
        print(response['message']['content'])
        
    except Exception as e:
        print(f&quot;에러 발생: {e}&quot;)
        print(&quot;\nOllama 서비스가 실행 중인지 확인하세요:&quot;)
        print(&quot;sudo systemctl status ollama&quot;)

if __name__ == &quot;__main__&quot;:
    test_ollama()
EOF

chmod +x test_ollama.py

# 실행
python test_ollama.py
&lt;/code&gt;&lt;/pre&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;7. HTTPS 제한 환경을 위한 오프라인 설치&lt;/h2&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;7-1. 온라인 환경에서 준비 (다른 Ubuntu 22.04 머신)&lt;/h3&gt;&lt;pre class=&quot;jboss-cli&quot;&gt;&lt;code&gt;# 준비 디렉토리 생성
mkdir -p ~/ollama_offline_package
cd ~/ollama_offline_package

# 1. Ollama 바이너리 다운로드
wget https://ollama.com/download/ollama-linux-amd64 -O ollama
chmod +x ollama

# 2. 임시로 Ollama 시작하여 모델 다운로드
export OLLAMA_MODELS=./models
./ollama serve &amp;amp;
OLLAMA_PID=$!
sleep 5

# 3. 원하는 모델 다운로드
./ollama pull deepseek-coder:6.7b
./ollama pull deepseek-chat

# 4. Ollama 종료
kill $OLLAMA_PID

# 5. 설치 스크립트 복사
cp /path/to/install_ollama_ubuntu22.sh ./

# 6. 전체 패키징
cd ..
tar -czf ollama_offline_package.tar.gz ollama_offline_package/

# USB나 다른 저장장치로 이동
&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;7-2. 오프라인 환경에서 설치&lt;/h3&gt;&lt;pre class=&quot;haskell&quot;&gt;&lt;code&gt;# 패키지 압축 해제
tar -xzf ollama_offline_package.tar.gz
cd ollama_offline_package

# 설치 디렉토리 생성
sudo mkdir -p /data/ollama_app
sudo chown $USER:$USER /data/ollama_app

# 파일 복사
cp ollama /data/ollama_app/
cp -r models /data/ollama_app/

# 설치 스크립트 실행 (다운로드 부분 스킵)
# 또는 수동으로 환경 설정
source /data/ollama_app/ollama_env.sh

# 서비스 시작
/data/ollama_app/start_ollama.sh

# 모델 확인
ollama list
&lt;/code&gt;&lt;/pre&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;8. 유용한 관리 명령어 모음&lt;/h2&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;서비스 관리&lt;/h3&gt;&lt;pre class=&quot;properties&quot;&gt;&lt;code&gt;# 서비스 시작/정지/재시작
sudo systemctl start ollama
sudo systemctl stop ollama
sudo systemctl restart ollama

# 서비스 자동 시작 설정
sudo systemctl enable ollama
sudo systemctl disable ollama

# 상태 및 로그
sudo systemctl status ollama
sudo journalctl -u ollama -n 100 --no-pager
sudo journalctl -u ollama -f  # 실시간 로그
&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;모델 관리&lt;/h3&gt;&lt;pre class=&quot;vala&quot;&gt;&lt;code&gt;# 모델 검색
ollama search deepseek

# 모델 다운로드
ollama pull model_name:tag

# 설치된 모델 목록
ollama list

# 모델 정보 확인
ollama show deepseek-coder

# 모델 삭제
ollama rm model_name

# 모든 모델 삭제
ollama list | awk 'NR&amp;gt;1 {print $1}' | xargs -I {} ollama rm {}
&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;디스크 관리&lt;/h3&gt;&lt;pre class=&quot;haskell&quot;&gt;&lt;code&gt;# 모델 디렉토리 크기 확인
du -sh /data/ollama_app/models

# 개별 모델 크기
du -sh /data/ollama_app/models/blobs/*

# 사용하지 않는 모델 정리
ollama list  # 먼저 확인
ollama rm unused_model_name
&lt;/code&gt;&lt;/pre&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;9. 문제 해결&lt;/h2&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 1: 서비스가 시작되지 않음&lt;/h3&gt;&lt;pre class=&quot;vala&quot;&gt;&lt;code&gt;# 로그 확인
sudo journalctl -u ollama -n 50

# 수동으로 실행하여 에러 확인
/data/ollama_app/ollama serve

# 포트 충돌 확인
sudo netstat -tlnp | grep 11434
# 다른 프로세스가 사용 중이면 종료
&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 2: 모델 다운로드 실패&lt;/h3&gt;&lt;pre class=&quot;vala&quot;&gt;&lt;code&gt;# 네트워크 연결 확인
curl -I https://ollama.ai

# 디스크 공간 확인
df -h /data

# 프록시 설정 (필요시)
export HTTP_PROXY=http://proxy:port
export HTTPS_PROXY=http://proxy:port
&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 3: GPU 인식 안됨&lt;/h3&gt;&lt;pre class=&quot;properties&quot;&gt;&lt;code&gt;# NVIDIA 드라이버 확인
nvidia-smi

# 드라이버 재설치
sudo apt purge nvidia-*
sudo apt autoremove
sudo apt install nvidia-driver-535
sudo reboot

# Ollama가 GPU를 사용하는지 확인
# 모델 실행 중 nvidia-smi로 GPU 사용률 확인
watch -n 1 nvidia-smi
&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 4: 권한 에러&lt;/h3&gt;&lt;pre class=&quot;haskell&quot;&gt;&lt;code&gt;# 디렉토리 소유권 확인 및 수정
ls -la /data/ollama_app
sudo chown -R $USER:$USER /data/ollama_app
chmod -R 755 /data/ollama_app
&lt;/code&gt;&lt;/pre&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;10. 성능 최적화&lt;/h2&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;10-1. GPU 메모리 설정&lt;/h3&gt;&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;# /data/ollama_app/ollama_env.sh 편집
nano /data/ollama_app/ollama_env.sh

# 다음 줄 추가
export OLLAMA_GPU_MEMORY_FRACTION=0.9  # GPU 메모리의 90% 사용

# 서비스 재시작
sudo systemctl restart ollama
&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;10-2. 동시 요청 수 조정&lt;/h3&gt;&lt;pre class=&quot;clean&quot;&gt;&lt;code&gt;# ollama_env.sh에 추가
export OLLAMA_NUM_PARALLEL=2  # 동시 2개 요청 처리

# 또는 systemd 서비스 파일 수정
sudo nano /etc/systemd/system/ollama.service
# Environment=&quot;OLLAMA_NUM_PARALLEL=2&quot; 추가

sudo systemctl daemon-reload
sudo systemctl restart ollama
&lt;/code&gt;&lt;/pre&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;11. 백업 및 마이그레이션&lt;/h2&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;백업&lt;/h3&gt;&lt;pre class=&quot;mel&quot;&gt;&lt;code&gt;# 모델 백업
sudo tar -czf ollama_models_backup_$(date +%Y%m%d).tar.gz /data/ollama_app/models

# 전체 백업
sudo tar -czf ollama_full_backup_$(date +%Y%m%d).tar.gz /data/ollama_app
&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;복원&lt;/h3&gt;&lt;pre class=&quot;crmsh&quot;&gt;&lt;code&gt;# 서비스 정지
sudo systemctl stop ollama

# 백업 복원
sudo tar -xzf ollama_full_backup_20240101.tar.gz -C /

# 권한 수정
sudo chown -R $USER:$USER /data/ollama_app

# 서비스 시작
sudo systemctl start ollama
&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;이제 Ubuntu 22.04에서 /data/ollama_app에 Ollama를 완전히 설치하고 사용할 수 있습니다! 추가 질문이 있으시면 언제든 말씀해주세요.&lt;/p&gt;</description>
      <category>InfraPlatform</category>
      <category>LLM</category>
      <category>LLM install</category>
      <category>nvidia-smi</category>
      <category>ollama install</category>
      <category>windows wsl LLM환경 구축</category>
      <category>wsl ollama</category>
      <category>WSL Ollama 커스텀 설치</category>
      <category>챗봇 구축</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/903</guid>
      <comments>https://couplewith.tistory.com/903#entry903comment</comments>
      <pubDate>Tue, 6 Jan 2026 15:09:20 +0900</pubDate>
    </item>
    <item>
      <title>Ubunto python 3.10 to python3.12 설치</title>
      <link>https://couplewith.tistory.com/902</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nDk5b/dJMcaacTXtN/dmw5FmFYZqjqH3Kv5RI5y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nDk5b/dJMcaacTXtN/dmw5FmFYZqjqH3Kv5RI5y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nDk5b/dJMcaacTXtN/dmw5FmFYZqjqH3Kv5RI5y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnDk5b%2FdJMcaacTXtN%2Fdmw5FmFYZqjqH3Kv5RI5y1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;267&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ubunto python 3.10&amp;nbsp; upgrade&amp;nbsp; to python3.12&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 파이썬의 업그레이드와 이전 버전의 파이썬 삭제하여 정리하는 방법을 정리 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; Step 1: Update CA Certificates &lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1767666111449&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt update 
sudo apt install --reinstall ca-certificates -y 
sudo update-ca-certificates&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step 2 : &amp;nbsp;PPA (Personal Package Archive)&amp;nbsp; Repository&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1767666081349&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y
$ sudo apt install software-properties-common -y
$ sudo add-apt-repository ppa:deadsnakes/ppa&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; Step 3: Use Manual Source Instead of &lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1767666496521&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# use apt-repository install with apt

sudo apt update 
sudo apt install python3.12 -y


or

# Step 3: Use Manual Source Instead of add-apt-repository

# 1.Create a new .list file:
echo &quot;deb http://ppa.launchpad.net/deadsnakes/ppa/ubuntu $(lsb_release -sc) main&quot; | sudo tee /etc/apt/sources.list.d/deadsnakes-ppa.list

# 2. Import the GPG key:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6A755776



# installation with source
wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz
tar -xvf Python-3.12.0.tgz
cd Python-3.12.0
./configure
make
sudo make install&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step 4:&amp;nbsp; &lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;apt &lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;install &lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;python3.12 &lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;-y&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1767666512543&quot; class=&quot;shell&quot; style=&quot;letter-spacing: 0px;&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt update sudo apt install python3.12 -y


python3.12 --version&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* &lt;b&gt;manual &lt;/b&gt;.list&lt;b&gt; + GPG key method&lt;/b&gt; step by step (avoiding add-apt-repository&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;Step 5: &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; Optional: Set Python 3.12 as default &lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1767666702893&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 2
sudo update-alternatives --config python3&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&amp;nbsp;* /usr/bin/python3.12&lt;br /&gt;&amp;nbsp; &amp;nbsp;/usr/bin/python3 -&amp;gt; /etc/alternatives/python3 &lt;br /&gt;&amp;nbsp; &amp;nbsp;/etc/alternatives/python3 -&amp;gt; /usr/bin/python3.12*&amp;nbsp;&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step 6: Clean old packages&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1767666726471&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt autoremove -y&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* Since apt told you some packages are no longer required : for free space.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a title=&quot;파이썬 참고자료&quot; href=&quot;https://couplewith.tistory.com/search/python&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://couplewith.tistory.com/search/python&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://couplewith.tistory.com/11&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[DevOps] - Python + Django + Oracle&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://couplewith.tistory.com/322&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[Programming] - (Pycharm 설치) Pycharm 과 Conda &amp;amp; Anaconda 설치&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://couplewith.tistory.com/347&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[InfraPlatform] - 리눅스 설치시 해야 할일 10가지&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://couplewith.tistory.com/311&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[Programming] - 파이참(Pycharm) 설치와 pip 사용하기&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://couplewith.tistory.com/425&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[Programming] - [python] python virtualenv (가상환경) 사용하기&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #e6f5ff; color: #0070d1; text-align: start;&quot; href=&quot;https://couplewith.tistory.com/316&quot;&gt;[Programming] - (Pycharm 설치) PIP 패키지 설치 인증서 오류 해결- SSL: CERTIFICATE_VERIFY_FAILED&lt;/a&gt;&lt;/p&gt;</description>
      <category>Programming</category>
      <category>apt autoremove</category>
      <category>apt install python3.12</category>
      <category>PYTHON INSTALL</category>
      <category>python upgrade</category>
      <category>python 설치</category>
      <category>update-alternatives</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/902</guid>
      <comments>https://couplewith.tistory.com/902#entry902comment</comments>
      <pubDate>Tue, 6 Jan 2026 11:51:32 +0900</pubDate>
    </item>
    <item>
      <title>(꿀팁) 리눅스 시스템 시간 동기화 하기 (Chrony,NTP )</title>
      <link>https://couplewith.tistory.com/320</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mpiX0/btrxKh9BTnY/kFbw71hbbebTp6hb9X29mk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mpiX0/btrxKh9BTnY/kFbw71hbbebTp6hb9X29mk/img.jpg&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;400&quot; style=&quot;width: 49.4186%;&quot; data-is-animation=&quot;false&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mpiX0/btrxKh9BTnY/kFbw71hbbebTp6hb9X29mk/img.jpg&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmpiX0%2FbtrxKh9BTnY%2FkFbw71hbbebTp6hb9X29mk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;400&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ArsOH/btrxLljzoT3/QiHLhe3f7YLcgUmeKOlAq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ArsOH/btrxLljzoT3/QiHLhe3f7YLcgUmeKOlAq0/img.png&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot; style=&quot;width: 49.4186%;&quot; data-is-animation=&quot;false&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ArsOH/btrxLljzoT3/QiHLhe3f7YLcgUmeKOlAq0/img.png&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FArsOH%2FbtrxLljzoT3%2FQiHLhe3f7YLcgUmeKOlAq0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;225&quot; height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;(꿀팁) 리눅스 시스템 시간 동기화 하기 (Chrony,NTP )&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;#리눅스_시간동기화&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;NTP(Network Time Protocol)&lt;/li&gt;
&lt;li&gt;Chrony&lt;/li&gt;
&lt;li&gt;rdate -s&lt;/li&gt;
&lt;li&gt;hwclock -w&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;시스템의 시간은 운영체제의 시간으로 보통 알고 있다. 시스템의 시간은 운영체제가 관리하는 S/W 시간과 메인보드가 관리하는 H/W시간으로 나누어 볼수 있습니다. &lt;br /&gt;시스템을 재부팅하더라도 시간이 유지되는 것은 메인보드의 시간이 저장되어 있기 때문입니다. 또한 하드웨어의 시간과 S/W의 시간은 특정 시점 동기화가 된 이후 자체적인 시간 타이머를 통해서 관리가 됩니다.&lt;br /&gt;&lt;br /&gt;종종 시스템의 시간을 표준시로 설정을 하고 나면 조금씩 차이가 나는 경우가 있을수 있습니다. 그 차이를 눈으로 확인하기는 어렵지만, 하루이상 지나면 조금씩 차이가 발생 하는 경우가 있습니다. &lt;br /&gt;그 원인은 찾아본 사람만 알수 있는 부분이기 때문에 흔하게 경험해본 사람은 적을 것 같습니다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;시스템의 시간 오차 발생 원인&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;고수만 아는 시스템 시간의 오차 내용은 이런 내용입니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;시스템의 시간은 메인보드의 Clock을 발생하는 Oscillator (오실레이터)와 연관이 있습니다. 모든 H/W 부품에서 이런 클럭 주파수를 생성하는 제품이 똑같지 않기 때문에 H/W의 오차를 주기적으로 갱신을 해주어야 합니다. &lt;br /&gt;&lt;br /&gt;흔히 NTP, rdate 명령으로 시간을 동기화 해 놓으면 조금씩 시스템의 시간 오차가 생긴다는 것입니다. &lt;br /&gt;&lt;br /&gt;*그리고 최근 기술이 좋아서 발생가능성은 희박 하지만 하드웨어 타임클럭 Oscillator가 불량이면 시스템의 시간에 오차가 자주 발생한다고 생각하시면 될 것 같습니다.&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;자주 사용되는 표준시 타임서버들 은 알아 두세요.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;한국의 표준시 NTP 서버&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;kr.pool.ntp.org&lt;/li&gt;
&lt;li&gt;time.bora.net&lt;/li&gt;
&lt;li&gt;time.nuri.net&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;세계 NTP 서버 목록 - 아시아&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://www.ntppool.org/zone/asia&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;https://www.ntppool.org/zone/asia&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;java&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;# /etc/ntp.conf 에 아시아 NTP 서버 풀을 등록하면 된다.
server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;리눅스에서 시간 설정 하는 방법과 유의 사항&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. &lt;span style=&quot;color: #000000;&quot;&gt;Redhat Linux 7,8의 chrony 설정&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;2. NTP로 시간 설정&lt;/b&gt;&lt;br /&gt;&lt;b&gt;3. rdate로 시간 설정&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;시간 오차가 많이 생긴 경우 수동 시간 동기화 (중요)&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;hwclock 명령은&amp;nbsp;&amp;nbsp;RTC(실시간 시계)라고도 하는 하드웨어 시계(메인보드 시간)에 액세스하기 위한 유틸리티입니다. &lt;br /&gt;&lt;br /&gt;하드웨어 시계는 사용하는 운영 체제와 독립적이며 메인보드에 장착된 배터리를 이용하여&amp;nbsp;&amp;nbsp;시스템이 종료되고 전원이 차단된 경우에도 작동합니다. &lt;br /&gt;hwclock 유틸리티 명령은 하드웨어 시계에서 시간을 표시하는 데 사용됩니다.&lt;br /&gt;&lt;br /&gt;hwclock 또한 하드웨어 클록의 체계적인 드리프트를 보상하기 위한 기능이 포함되어 있습니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;/sbin/hwclock --hctosys 명령은 하드웨어 클럭 시간을 시스템 시간으로 동기화하여 시간을 일치시킵니다. &lt;br /&gt;&lt;br /&gt;/sbin/hwclock --systohc 는 시스템 시간으로 하드웨어 클럭의 시간에 동기화하여 변경합니다. (NTP 동기화후 실행 필요) &lt;br /&gt;&lt;br /&gt;또는 /sbin/hwclock --w &lt;br /&gt;&amp;nbsp;&amp;nbsp;( set the hardware clock to the current timezone )&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;* hwclock명령은 시스템을 종료하거나 재부팅할 때마다 자동으로 실행되었지만 Fedora 23에서는 그렇지 않습니다. &lt;br /&gt;시스템 시계가 NTP(Network Time Protocol) 또는 PTP(Precision Time Protocol)에 의해 동기화되면 커널이 자동으로 동기화합니다. 11분마다 하드웨어 시계를 시스템 시계로 변경합니다.&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;표준시를 관리하는 리눅스 시스템 데몬 서비스&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. chronyd&lt;/b&gt;&lt;br /&gt;# chronyc -a makestep&lt;br /&gt;# hwclock -w (현재 설정된 시간으로 하드웨어 시간 설정)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. ntpd&lt;/b&gt;&lt;br /&gt;# systemctl stop ntpd (ntpd가 실행 중일 경우 ntpdate가 실행되지 않습니다.)&lt;br /&gt;# ntpdate [NTP server] (한번 수행으로 차이가 크게 줄어들지 않으므로, 여러 번 수행하시기 바랍니다.)&lt;br /&gt;# hwclock -w (현재 설정된 시간으로 하드웨어 시간 설정)&lt;br /&gt;# systemctl start ntpd&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;ntpdate&amp;nbsp; time.bora.net &amp;rarr; 표준 NTP 포트(123/UDP) 사용&lt;br /&gt;ntpdate -u time.bora.net &amp;rarr; 비특권 포트(1024 이상) 사용, 방화벽 회피&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. &lt;span style=&quot;color: #000000;&quot;&gt;Redhat Linux 7,8의 chrony 설정&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt; &lt;span style=&quot;color: #555555; text-align: left;&quot;&gt;리눅스 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #555555; text-align: left;&quot;&gt;CentOS&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #555555; text-align: left;&quot;&gt;8&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #555555; text-align: left;&quot;&gt;이후,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #555555; text-align: left;&quot;&gt;RHEL&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;7&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #555555; text-align: left;&quot;&gt;최신&lt;/span&gt;&lt;span style=&quot;color: #555555; text-align: left;&quot;&gt;&amp;nbsp;버전 이후에서 NTP보다 개선된 chrony를 사용합니다.&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1) chrony 서비스 작동 상태 확인&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;# chronyd 설치&lt;br /&gt;yum remove ntp&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# ntp package가 설치 되어 있다면 삭제&lt;br /&gt;yum install chrony&lt;br /&gt;&lt;br /&gt;# 서비스 상태 확인&lt;br /&gt;systemctl status chronyd.service&lt;br /&gt;# 자동 서비스 시작 설정 등록&lt;br /&gt;systemctl enable chronyd.service&lt;br /&gt;# 서비스 재기동&lt;br /&gt;systemctl start chronyd.service&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# 시간을 점진적으로 동기화 합니다&lt;br /&gt;&amp;nbsp;chronyc -a makestep&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2)&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;chrony &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 설정&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;설정 파일: /etc/chrony.conf&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;# vi /etc/chronyconf &lt;br /&gt;&lt;br /&gt;# 한국 서버 주소 &lt;br /&gt;server time.bora.net &lt;br /&gt;server time.kornet.net &lt;br /&gt;server kr.pool.ntp.org &lt;br /&gt;&lt;br /&gt;# 아시아 서버 주소 &lt;br /&gt;server 0.asia.pool.ntp.org iburst &lt;br /&gt;server 1.asia.pool.ntp.org iburst &lt;br /&gt;server 2.asia.pool.ntp.org iburst &lt;br /&gt;server 3.asia.pool.ntp.org iburst&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;# iburst는 표준시와 시스템 시간의 오차가 클경우 조금씩 오차를 줄이므로 시간의 오차가 10분 이상 발생 될수 있다.&lt;/span&gt; &lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;# 시스템 시간을 즉시 수정해야 하는 상황에서는 iburst 를 추가 해야 합니다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3)&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;chrony &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;시간 작동 확인&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;# 동기화 상태 확인&lt;br /&gt;chronyc sources&lt;br /&gt;chronyc tracking&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;# chronyc의&amp;nbsp; 시간 동기화 상태 확인&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1767589840323&quot; class=&quot;angelscript&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* mail.pyeongga.com             2   6   377    27   -187us[ -249us] +/- 2259us
^- 121.174.142.82                3   7   377    28    -36us[  -97us] +/-   47ms
^- 203.32.26.46                  2   7   377    86    +34us[  -23us] +/-  193ms
^- kr.timeadjust.org             4   7   377    88    -57us[ -114us] +/- 4127us
^- time3.google.com              1   6   377    27  -2489us[-2551us] +/-   29ms
^- 27.96.158.81                  3   6   377    30   +219us[ +157us] +/- 6362us
^- time.bora.net                 2   7   377    92   +480us[ +417us] +/-   35ms&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. NTP로 시간 설정 (deprecated)&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;- NTP서버는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;CentOS&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;(7.x,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;8.x)에서 지원하며,&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;YUM 기반 배포판(RHEL, CentOS, Oracle Linux 등)에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;yum install ntp&lt;b&gt;로 설치 가능&lt;/b&gt;하며, 최신 배포판에서는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;chrony 사용을 권장&lt;/b&gt;합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;br /&gt;&lt;b&gt;1) NTP 서버 설치&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;shell&quot; data-language=&quot;Bash&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;# package install
yum install ntp


# service start
systemctl enable ntpd
systemctl start ntpd&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;br /&gt;&lt;b&gt;2) NTP 설정&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;java&quot; data-language=&quot;Bash&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;vi /etc/ntp.conf

# 한국 서버 주소
server time.bora.net
server time.kornet.net
server kr.pool.ntp.org

# 아시아 서버 주소
server 0.asia.pool.ntp.org  iburst
server 1.asia.pool.ntp.org  iburst
server 2.asia.pool.ntp.org  iburst
server 3.asia.pool.ntp.org  iburst&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;# 표준시와 시스템 시간의 오차가 클경우 조금씩 오차를 줄이게 됩니다. 이때 시간의 오차가 10분 이상 발생 될수 있다. &lt;/span&gt; &lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;# 시스템 시간을 즉시 수정해야 하는 상황에서는 iburst 를 추가 해야 합니다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;3) NTP 서버 실행&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;ntpd 시스템 데몬 실행은 리눅스 버전에 따라 시작 하면 됩니다. &lt;br /&gt;# /etc/init.d/ntpd start &lt;br /&gt;또는 &lt;br /&gt;# systemctl enable ntpd.service &lt;br /&gt;# systemctl start ntpd.service&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;4) NTP 시간 작동 확인&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;# 연결된 NTP 서버와 offset 확인&lt;br /&gt;# ntpq -p&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #666666;&quot;&gt;(1) 비정상 상태의 경우&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;# ntpstat&lt;/b&gt; &lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt; unsynchronised&lt;/span&gt; &lt;br /&gt;polling server every 64 s&lt;br /&gt;&lt;br /&gt;&lt;b&gt;# ntptime | grep returns&lt;/b&gt; &lt;br /&gt;&lt;span style=&quot;color: #409d00;&quot;&gt; ntp_gettime() returns code 5 (ERROR)&lt;/span&gt; &lt;br /&gt;&lt;span style=&quot;color: #409d00;&quot;&gt; ntp_adjtime() returns code 5 (ERROR)&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #666666;&quot;&gt;(2) 정상 상태 확인의 경우&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;# ntpstat&lt;/b&gt; &lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt; synchronised to NTP server (203.158.177.10) at stratum 3&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;time correct to within 98 ms &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;# ntptime | grep returns&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt; ntp_gettime() returns code 0 (OK)&lt;/span&gt; &lt;br /&gt;ntp_adjtime() returns code 0 (OK)&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. rdate로 시간 설정&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;rdate를 이용한 표준시 설정은 주로 crontab에 설정하여 관리하는 수동으로 사용시 용이한 방법입니다.&lt;br /&gt;&lt;br /&gt;오래된 방법이지만 주로 하루에 한 두번 정도 시스템을 동기화 하는데 용이게 많이 써온 방법입니다.&lt;br /&gt;외부로 NTP를 동기화 하거나 시간 설정을 명확하게 관리하고자 할때 시스템 시간을 관리하는 방법으로 유용합니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1) 표준시 확인&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;br /&gt;# /etc/cron.sync&lt;br /&gt;rdate -p time.bora.net&lt;br /&gt;/sbin/hwclock --systohc&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/sbin/hwclock --show&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;2) 표준시 설정&lt;/b&gt;&lt;br /&gt;아래 내용을 crontab에 설정하여 매시간 마다 작동되도록 설정하면 끝...&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;# /etc/cron.sync &lt;br /&gt;rdate -s time.bora.net &lt;br /&gt;/sbin/hwclock --systohc&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;MAILTO=&quot;&quot; &lt;br /&gt;10 * * * * rdate -s time.bora.net; hwclock --systohc &lt;br /&gt;or &lt;br /&gt;10 * * * * sh /etc/cron.sync&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. hwclock 으로&amp;nbsp; 하드웨어 시간 관리&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(중요)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot;&gt;hwclock --systohc&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; System Clock (커널이 사용하는 현재 시간)을 Hardware Clock (BIOS/RTC 칩에 저장된 시간)으로 복사합니다&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot;&gt;정기적으로 &quot;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot;&gt;hwclock --systohc &quot;&amp;nbsp; 실행 함으로써&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;시스템 재기동시 이전 시간을 가져올때 현재 시간과의 GAP을 줄일수 있습니다.&amp;nbsp; ntpd, chronyd 의 경우 서비스 종료시 현재 시간을 하드웨어에 자동으로 저장을 하므로 수동으로 실행을 할 필요는 없으나 우발적인 상황 또는 시스템 재기동을 자주 안하는 경우 실행 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot;&gt;정기적인 업데이트를 위해서 다음과 같이 crontab을 설정 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;MAILTO=&quot;&quot;&lt;br /&gt;10 * * * * rdate -s time.bora.net; hwclock --systohc&lt;br /&gt;or&lt;br /&gt;10 * * * * sh /etc/cron.sync&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* 왜 수동으로&amp;nbsp; hwclock을 조정해야 하는가?&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;초기 설정 시 HW Clock과 System Clock이 크게 차이날 경우&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;NTP/Chrony 서비스가 아직 실행되지 않았거나, 네트워크가 닿지 않는 환경에서 시간 동기화가 필요한 경우&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;HW Clock이 오래된 값(예: BIOS 배터리 문제)으로 남아 있을 때&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #666666;&quot;&gt;Sytem Timer 와 Oscillator 에 대한 정리&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;br /&gt;/sbin/hwclock --systohc는 오실레이터의 오차를 보정하기 위해 타이머 클럭을 보정한다고 합니다.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;시스템의 메인보드에는 시간 클럭을 발생하는 시스템 타이머 모듈이 있습니다. &lt;br /&gt;&lt;br /&gt;이런 타이머 클럭은 Oscillator를 통해 발생하는 전기적 주파수를 이용하는 것이라는 점에서 오차를 생각 할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/de8hez/btrxAaq0U0P/w5JcRRCRn9KLZat3hMjyDK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/de8hez/btrxAaq0U0P/w5JcRRCRn9KLZat3hMjyDK/img.jpg&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;165&quot; style=&quot;width: 35.3643%;&quot; data-is-animation=&quot;false&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/de8hez/btrxAaq0U0P/w5JcRRCRn9KLZat3hMjyDK/img.jpg&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fde8hez%2FbtrxAaq0U0P%2Fw5JcRRCRn9KLZat3hMjyDK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;220&quot; height=&quot;165&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwumkC/btrxNZgkspb/Eo58wnZ8MsdnC9TFSbrcp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwumkC/btrxNZgkspb/Eo58wnZ8MsdnC9TFSbrcp1/img.png&quot; data-origin-width=&quot;347&quot; data-origin-height=&quot;145&quot; style=&quot;width: 63.4729%;&quot; data-is-animation=&quot;false&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwumkC/btrxNZgkspb/Eo58wnZ8MsdnC9TFSbrcp1/img.png&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwumkC%2FbtrxNZgkspb%2FEo58wnZ8MsdnC9TFSbrcp1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;347&quot; height=&quot;145&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;Oscillator란 ? &lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Oscillator(오실레이터)는 주기적/반복적인 신호를 생성하는 전자 회로 이다. 이러한 신호를 이용하여 디바이스의 명령, 디지털 로직, 통신을 위한 클럭 주파수로 실행하게 됩니다. &lt;br /&gt;RC Oscillator, Crystal Oscillator, Ceramic Oscillator 등으로 나누어집니다.&lt;/blockquote&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Oscillator의 종류&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;RC Oscillator&lt;/b&gt; 는 저항, 캐퍼시터, 앰프 등에서 사용하는 것으로 가격이 저렴하고, 온도에 따라 주파수 변동이 발생하여 정확도는 보장하지 못합니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Crystal Oscillator&lt;/b&gt;는 클럭을 생성하기 위한 기계적인 진동을 이용하여 매우 정밀하고 온도변화에도 안정적인 동작을 합니다.&lt;br /&gt;주로 석영, 수정을 이용하므로 가격이 비쌉니다. ( 컴퓨터 메인보드에서 볼수 있습니다.)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ceramic Oscillato&lt;/b&gt;r는 크리스탈에 비해 값이 싸고 제조가 쉽습니다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/I7f4A/btrxD2SUHAA/s7cFxXH5O8KIaXwKL1MtX0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/I7f4A/btrxD2SUHAA/s7cFxXH5O8KIaXwKL1MtX0/img.jpg&quot; data-origin-width=&quot;212&quot; data-origin-height=&quot;205&quot; style=&quot;width: 28.3004%;&quot; data-is-animation=&quot;false&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/I7f4A/btrxD2SUHAA/s7cFxXH5O8KIaXwKL1MtX0/img.jpg&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI7f4A%2FbtrxD2SUHAA%2Fs7cFxXH5O8KIaXwKL1MtX0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;212&quot; height=&quot;205&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c3Lrm5/btrxLRbJ3VL/ZT679SlWGwzKGv6jSlZCRk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c3Lrm5/btrxLRbJ3VL/ZT679SlWGwzKGv6jSlZCRk/img.jpg&quot; data-origin-width=&quot;246&quot; data-origin-height=&quot;205&quot; style=&quot;width: 32.8391%;&quot; data-is-animation=&quot;false&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c3Lrm5/btrxLRbJ3VL/ZT679SlWGwzKGv6jSlZCRk/img.jpg&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3Lrm5%2FbtrxLRbJ3VL%2FZT679SlWGwzKGv6jSlZCRk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;246&quot; height=&quot;205&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GP5yG/btrxB5ix8Ux/9KVk1vQ3EhxUkg5QZNkHL1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GP5yG/btrxB5ix8Ux/9KVk1vQ3EhxUkg5QZNkHL1/img.jpg&quot; data-origin-width=&quot;259&quot; data-origin-height=&quot;194&quot; style=&quot;width: 36.5349%;&quot; data-is-animation=&quot;false&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GP5yG/btrxB5ix8Ux/9KVk1vQ3EhxUkg5QZNkHL1/img.jpg&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGP5yG%2FbtrxB5ix8Ux%2F9KVk1vQ3EhxUkg5QZNkHL1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;259&quot; height=&quot;194&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;&amp;amp;amp;amp;amp;amp;amp;amp;lt;메인보드용 크리스탈 발진기&amp;amp;amp;amp;amp;amp;amp;amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;1. &lt;a href=&quot;https://couplewith.tistory.com/180&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[꿀팁] Centos 8에서 표준시간 설정하는 방법&lt;/a&gt; : &amp;nbsp;&amp;nbsp;&lt;a href=&quot;https://couplewith.tistory.com/180&quot; target=&quot;_self&quot;&gt;&lt;span&gt;https://couplewith.tistory.com/180&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;2.&amp;nbsp;&lt;a href=&quot;https://couplewith.tistory.com/900&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[InfraPlatform] - (꿀팁) Red Hat 계열 리눅스 시간 관리 방법&lt;/a&gt;&amp;nbsp; &amp;nbsp;: &lt;a href=&quot;https://couplewith.tistory.com/900&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://couplewith.tistory.com/900&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;3. &lt;a href=&quot;https://couplewith.tistory.com/320&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;(꿀팁) 리눅스 시스템 시간 동기화 하기&lt;/a&gt; : &amp;nbsp;&lt;a href=&quot;https://couplewith.tistory.com/320&quot; target=&quot;_self&quot;&gt;&lt;span&gt;https://couplewith.tistory.com/320&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0070d1;&quot;&gt;#리눅스_시간동기화&lt;/span&gt;&lt;/p&gt;</description>
      <category>InfraPlatform</category>
      <category>chrony</category>
      <category>hwclock -w</category>
      <category>NTP(Network Time Protocol)</category>
      <category>NTP설정</category>
      <category>rdate -s</category>
      <category>리눅스_시간동기화</category>
      <category>서버시간동기화</category>
      <category>시스템시간설정</category>
      <category>타임서버설정</category>
      <category>표준시설정</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/320</guid>
      <comments>https://couplewith.tistory.com/320#entry320comment</comments>
      <pubDate>Mon, 5 Jan 2026 14:23:19 +0900</pubDate>
    </item>
    <item>
      <title>(꿀팁) Red Hat 계열 리눅스 시간 관리 방법</title>
      <link>https://couplewith.tistory.com/900</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;384&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MJDqQ/dJMcaacSw3u/4lAvP7uyquMOwvyEFJvM9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MJDqQ/dJMcaacSw3u/4lAvP7uyquMOwvyEFJvM9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MJDqQ/dJMcaacSw3u/4lAvP7uyquMOwvyEFJvM9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMJDqQ%2FdJMcaacSw3u%2F4lAvP7uyquMOwvyEFJvM9K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;384&quot; height=&quot;384&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;384&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;systemtimectl, ntpd, ntpdate, rdate, hwclock&lt;/b&gt; 의 개념 과 시스템 시간 차이 개선 방안&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 최근 시스템들은 개인정보 보호를 위해서 망분리를 하고 있기 때문에 일반적인 시스템 시간 관리는 많은 문제를 야기 합니다. 내부적으로 NPT 서버를 구성하고 내부 시스템의 시간을 동기화 하는 것은 금융과 같이 시간을 기반으로 하는 비즈니스에서는 치명적인 관리 포인트 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 연재에서는 일반적인 시간 관리의 방법보다는 시간 관리의 원리 측면에서 정리를 하고자 합니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Red Hat 계열 리눅스에서 시간 관리를 위해 NTP(네트워크 타임 프로토콜)와 Chrony 데몬을 사용합니다.&lt;br /&gt;NTP는 네트워크를 통해 표준 시간원과 주기적으로 통신하며 시스템 클록을 미세 조정하는 프로토콜입니다. Chrony는 NTP 클라이언트 및 서버로, 네트워크 상태에 맞춰 시간을 동기화하는 데 매우 효율적입니다.&lt;br /&gt;&lt;br /&gt;Red Hat Enterprise Linux 8부터 NTPd 대신 chronyd 데몬을 이용합니다.&amp;nbsp; nptd 패키지 대신 chronyd 패키지를 사용할 수 있습니다. &lt;br /&gt;NTPv4(RFC 5905) 서버 또는 피어로서 네트워크의 다른 컴퓨터에 시간 서비스를 제공합니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;리눅스 시스템의 시간은 &lt;b&gt;System Clock&lt;/b&gt;이 있고, ntpd 또는 chronyd 데몬이 이를 관리합니다.&lt;/li&gt;
&lt;li&gt;오른쪽에는 &lt;b&gt;Hardware Clock(RTC)&lt;/b&gt;이 있으며, 부팅 시 시스템 클럭으로 초기화되고 종료 시 hwclock --systohc로 갱신됩니다.&lt;/li&gt;
&lt;li&gt;중앙에는 timedatectl과 hwclock 명령어가 두 시계를 연결하는 흐름을 보여줍니다&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;다음 두가지 문제를 반드시 체크 하기 바랍니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 재부팅을 하고 나면 시스템 시간이 달라진다.&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;h/w시간과 Os의 시간이 달라서**&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. Cron으로 ntpdate로 시간 갱신이 안된다.&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ntp 데몬이 작동 중인 상태에서 ntpdate 명령은 오류가 난다.**&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;☆ nptd는 시스템시간을 관리하는 데몬으로 재부팅시 hwclock을 기반으로 재부팅이되며 , 재부팅시 시간의 변화로 인한 오류가 발생 가능하므로 하드웨어 시간도 정기적인 동기화를 요구합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt; ️ hwclock --systohc 개념:&lt;br /&gt;&lt;br /&gt;- hwclock --hctosys는 하드웨어 시계를 시스템 시간으로 복구하는 방법입니다.&lt;br /&gt;- System Clock &amp;rarr; Hardware Clock 동기화 하는 명령으로 현재 OS가 관리하는 시스템 시간(System Clock)을 하드웨어 시계(RTC, Real-Time Clock)에 저장합니다.&lt;br /&gt;- 즉, &quot;지금 OS가 맞춰둔 정확한 시간을 메인보드 배터리로 유지되는 RTC에 기록&quot;하는 동작입니다.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;ㅁ 시스템 시간의 동기화가 필요한 이유 : hwclock --systohc&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(1) 리눅스 시스템 재부팅 시 date 초기화 문제 방지 (hwclock 명령)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;리눅스는 부팅할 때 RTC 값을 읽어와서 시스템 시간을 초기화합니다.&lt;/li&gt;
&lt;li&gt;만약 RTC가 틀린 시간을 가지고 있으면, 부팅 직후 시스템 시간이 잘못 설정됩니다.&lt;/li&gt;
&lt;li&gt;ntpd나 chronyd가 다시 교정하긴 하지만, 그 사이 로그 타임스탬프나 서비스 시작 시간이 꼬일 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(2) 정전/네트워크 장애 대비&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;NTP 서버에 연결되지 못하는 상황(네트워크 장애, 방화벽 차단 등)에서는 RTC가 유일한 시간 기준이 됩니다.&lt;/li&gt;
&lt;li&gt;RTC가 정확하지 않으면 시스템이 잘못된 시간을 계속 사용하게 됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;리눅스 시간 Gap(차이) 최소화&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;ntpd/chronyd는 시스템 클럭만 맞추고 RTC는 자동 갱신하지 않습니다.&lt;/li&gt;
&lt;li&gt;따라서 주기적으로 hwclock --systohc를 실행해 RTC를 최신 상태로 유지해야, 시스템 클럭과 RTC 간의 차이가 줄어듭니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h1&gt;&lt;b&gt;Red Hat 계열 리눅스 서버에서의 시간 관리 방법&lt;/b&gt;&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;mdash; systemtimectl, ntpd, ntpdate, rdate, hwclock의 개념과 Gap 문제를 해결 방안&lt;/b&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Red Hat 계열 리눅스에서 시간 관리를 위해 사용되는 주요 명령어와 도구들&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;mdash;&lt;b&gt;&lt;code&gt;timedatectl&lt;/code&gt;, &lt;code&gt;ntpd&lt;/code&gt;, &lt;code&gt;ntpdate&lt;/code&gt;, chronyd , &lt;code&gt;rdate&lt;/code&gt;, &lt;code&gt;hwclock&lt;/code&gt;&lt;/b&gt;&amp;mdash;의 개념, 특징, 사용 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt; ️1. 시간 관련 구성 요소&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;System Clock (시스템 클럭)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;OS가 사용하는 현재 시간 (&lt;code&gt;date&lt;/code&gt; 명령).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ntpd&lt;/code&gt; 또는 &lt;code&gt;chronyd&lt;/code&gt;가 NTP 서버와 동기화하여 정확히 유지.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Hardware Clock (RTC, Real-Time Clock)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;메인보드에 있는 하드웨어 시계 (&lt;code&gt;hwclock&lt;/code&gt; 명령).&lt;/li&gt;
&lt;li&gt;전원이 꺼져도 배터리로 유지.&lt;/li&gt;
&lt;li&gt;부팅 시 RTC &amp;rarr; 시스템 클럭으로 복사, 종료 시 시스템 클럭 &amp;rarr; RTC로 복사.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;시스템 시간 (System Time)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시스템 클럭과 동일한 의미로 사용됨 .&lt;/li&gt;
&lt;li&gt;OS가 인식하는 현재 시간. 대부분 시스템 클럭을 지칭&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;시스템 시간 관리 (System Time Management)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시스템/하드웨어 클럭을 정확히 유지하는 작업 .&lt;/li&gt;
&lt;li&gt;ntpd, chronyd, hwclock, timedatectl 등으로 관리&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt; ️ 2. 리눅스 시간 관리 도구 개념 및 사용법 정리&lt;/h3&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;도구&lt;/th&gt;
&lt;th&gt;개념&lt;/th&gt;
&lt;th&gt;특징&lt;/th&gt;
&lt;th&gt;사용 예시&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;timedatectl&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;systemd 기반 시간 설정 관리 도구&lt;/td&gt;
&lt;td&gt;RHEL 7 이상에서 사용. NTP 활성화, 시간대 변경, RTC 설정 가능&lt;/td&gt;
&lt;td&gt;&lt;code&gt;timedatectl set-ntp true&lt;/code&gt; &lt;code&gt;timedatectl status&lt;/code&gt; &lt;code&gt;timedatectl set-timezone Asia/Seoul&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;ntpd&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;NTP(Network Time Protocol) 데몬&lt;/td&gt;
&lt;td&gt;시스템 클럭을 NTP 서버와 지속적으로 동기화. RHEL 6 이하에서 주로 사용&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ntpd -gq&lt;/code&gt; (초기 동기화) &lt;code&gt;systemctl start ntpd&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;ntpdate&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;NTP 서버와 1회 시간 동기화&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ntpd&lt;/code&gt;와 병행 사용 불가. 데몬 없이 단발성 동기화에 적합&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ntpdate -u pool.ntp.org&lt;/code&gt; &lt;code&gt;ntpdate -q ntp.example.com&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;chronyd&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;ntpd 대체, 빠르고 정확한 동기화&lt;/td&gt;
&lt;td&gt;chronyc tracking systemctl start chronyd&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;rdate&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;원격 서버에서 시간 받아오기 (TCP 기반)&lt;/td&gt;
&lt;td&gt;오래된 방식. 보안 취약점 많아 현대 시스템에서는 비권장&lt;/td&gt;
&lt;td&gt;&lt;code&gt;rdate -s time.bora.net&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;hwclock&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;하드웨어 클럭(RTC) 관리 도구&lt;/td&gt;
&lt;td&gt;시스템 클럭과 RTC 간 동기화. 부팅/종료 시 RTC 갱신에 사용&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hwclock --systohc&lt;/code&gt; &lt;code&gt;hwclock --hctosys&lt;/code&gt; &lt;code&gt;hwclock --show&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;RHEL 7 이상&lt;/b&gt;: chronyd + timedatectl로 자동 관리 가능&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RHEL 6 이하&lt;/b&gt;: ntpd + cron으로 hwclock --systohc 주기적 실행 필요&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RTC 갱신 필수&lt;/b&gt;: 시스템 클럭이 정확하더라도 RTC가 틀리면 재부팅 시 문제가 발생&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt; 3. 도구별 상세 설명&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;timedatectl, ntpd, ntpdate, chronyd, rdate, hwclock&lt;/b&gt; 여섯 가지 명령어의 &lt;b&gt;개념, 동작 원리, 사용 방법&lt;/b&gt;을 Red Hat 계열 리눅스 기준으로 정리&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt; ️ 리눅스 시간 관리 명령어 정리&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. &lt;b&gt;timedatectl&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;개념:&lt;/b&gt; systemd 기반의 시간 관리 명령어 (RHEL 7 이상).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;원리:&lt;/b&gt; systemd의 &lt;code&gt;systemd-timesyncd&lt;/code&gt; 또는 &lt;code&gt;chronyd&lt;/code&gt;와 연계하여 시스템 클럭과 RTC를 관리.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;특징:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;NTP 동기화 활성/비활성 제어&lt;/li&gt;
&lt;li&gt;시간대(Timezone) 변경&lt;/li&gt;
&lt;li&gt;RTC와 시스템 클럭 관계 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용 예시:&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;timedatectl status # 현재 시간/동기화 상태 확인 timedatectl set-ntp true # NTP 동기화 활성화 timedatectl set-timezone Asia/Seoul timedatectl set-time &quot;2026-01-02 15:00:00&quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. &lt;b&gt;ntpd&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;개념:&lt;/b&gt; NTP(Network Time Protocol) 데몬 (RHEL 6 이하 기본 설치).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;원리:&lt;/b&gt; NTP 서버와 지속적으로 통신하여 시스템 클럭을 보정.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;특징:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시스템 클럭을 NTP 서버와 지속적으로 동기화&lt;/li&gt;
&lt;li&gt;장기적으로 시스템 시간을 안정적으로 유지&lt;/li&gt;
&lt;li&gt;초기 오차가 큰 경우 &lt;code&gt;-gq&lt;/code&gt; 옵션으로 강제 동기화 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용 예시:&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ntpd -gq # 초기 강제 동기화 후 종료 systemctl start ntpd # ntpd 데몬 실행&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. &lt;b&gt;ntpdate&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;개념:&lt;/b&gt; NTP 서버와 &lt;b&gt;1회성&lt;/b&gt; 단발성 시간 동기화 명령어.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;주의&lt;/b&gt;: &lt;code&gt;ntpd&lt;/code&gt;와 병행 사용 불가 (포트 충돌)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;원리:&lt;/b&gt; NTP 서버에 요청을 보내 현재 시간을 받아 시스템 클럭을 즉시 맞춤.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;특징:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데몬 없이 NTP서버와 단발성 시간 동기화&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ntpd&lt;/code&gt;와 병행 사용 불가 (포트 충돌)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-u&lt;/code&gt; 옵션으로 임시 포트 사용 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용 예시:&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ntpdate -u pool.ntp.org # 단발성 동기화 ntpdate -q ntp.example.com # 시간 확인만&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4. &lt;b&gt;chronyd&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;개념:&lt;/b&gt; RHEL 7 이상에서 기본 제공되는 NTP 동기화 데몬.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;원리:&lt;/b&gt; NTP 서버와 빠르고 정확하게 동기화, 네트워크 불안정 환경에서도 안정적.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;특징:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ntpd보다 빠른 초기 동기화&lt;/li&gt;
&lt;li&gt;네트워크가 불안정해도 보정 능력이 뛰어남&lt;/li&gt;
&lt;li&gt;systemd와 연계 (&lt;code&gt;timedatectl set-ntp true&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용 예시:&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;# 설치 sudo dnf install chrony -y sudo systemctl enable --now chronyd # 기동/종료 systemctl start chronyd systemctl stop chronyd # 작동 확인 chronyc tracking # 동기화 상태 확인 chronyc makestep # 즉시 시간 보정 timedatectl status # 현재 시간/동기화 상태 확인&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5. &lt;b&gt;rdate&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;개념:&lt;/b&gt; 원격 서버에서 TCP 기반으로 시간을 가져오는 구식 명령어.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;원리:&lt;/b&gt; 지정된 시간 서버에 접속해 현재 시간을 받아 시스템 클럭을 맞춤.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;특징:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;보안 취약점 많음 (암호화 없음)&lt;/li&gt;
&lt;li&gt;TCP 기반으로 원격 시간 서버에서 시간 수신&lt;/li&gt;
&lt;li&gt;현대 시스템에서는 거의 사용하지 않음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용 예시:&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rdate -s time.bora.net # 원격 서버 시간으로 설정&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;6. &lt;b&gt;hwclock&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;개념:&lt;/b&gt; 하드웨어 클럭(RTC, Real-Time Clock)을 관리하는 리눅스 명령어.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;원리:&lt;/b&gt; 시스템 클럭과 RTC 간의 동기화 수행.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;특징:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하드웨어 클럭(RTC) 확인 및 설정&lt;/li&gt;
&lt;li&gt;시스템 클럭과 RTC 간 동기화 : 시스템 클럭 &amp;harr; RTC 간 동기화&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용 예시:&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hwclock --show # RTC 확인 hwclock --systohc # 시스템 클럭 &amp;rarr; RTC hwclock --hctosys # RTC &amp;rarr; 시스템 클럭&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h1&gt;  요약 비교&lt;/h1&gt;
&lt;table data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style5&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;명령어&lt;/th&gt;
&lt;th&gt;개념&lt;/th&gt;
&lt;th&gt;원리&lt;/th&gt;
&lt;th&gt;특징&lt;/th&gt;
&lt;th&gt;사용 예시&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;timedatectl&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;systemd 기반 시간 관리&lt;/td&gt;
&lt;td&gt;systemd-timesyncd/chronyd 연계&lt;/td&gt;
&lt;td&gt;RHEL7+, NTP 활성화/시간대 변경&lt;/td&gt;
&lt;td&gt;&lt;code&gt;timedatectl set-ntp true&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;ntpd&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;NTP 데몬&lt;/td&gt;
&lt;td&gt;NTP 서버와 지속 동기화&lt;/td&gt;
&lt;td&gt;RHEL6 기본, 장기적 안정성&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ntpd -gq&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;ntpdate&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;1회성 NTP 동기화&lt;/td&gt;
&lt;td&gt;NTP 서버에서 즉시 시간 수신&lt;/td&gt;
&lt;td&gt;데몬 없이 단발성, ntpd와 병행 불가&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ntpdate -u pool.ntp.org&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;chronyd&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;NTP 데몬 (RHEL7+)&lt;/td&gt;
&lt;td&gt;빠르고 정확한 동기화&lt;/td&gt;
&lt;td&gt;네트워크 불안정 환경에 강함&lt;/td&gt;
&lt;td&gt;&lt;code&gt;chronyc tracking&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;rdate&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;TCP 기반 시간 가져오기&lt;/td&gt;
&lt;td&gt;원격 서버에서 시간 수신&lt;/td&gt;
&lt;td&gt;구식, 보안 취약&lt;/td&gt;
&lt;td&gt;&lt;code&gt;rdate -s time.bora.net&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;hwclock&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;RTC 관리&lt;/td&gt;
&lt;td&gt;시스템 &amp;harr; RTC 동기화&lt;/td&gt;
&lt;td&gt;부팅/종료 시 RTC 갱신&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hwclock --systohc&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;✅ &lt;b&gt;운영 팁:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;RHEL 7 이상: &lt;code&gt;chronyd&lt;/code&gt; + &lt;code&gt;timedatectl&lt;/code&gt; 조합이 안정적인 표준&lt;/li&gt;
&lt;li&gt;RHEL 6 이하: &lt;code&gt;ntpd&lt;/code&gt; + &lt;code&gt;hwclock --systohc&lt;/code&gt; cron 등록 권장&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ntpdate&lt;/code&gt;는 단발성 동기화 에만 사용, &lt;code&gt;rdate&lt;/code&gt;는 보안상 사용 자제, ntp도구로 대체 사용 권장&lt;/li&gt;
&lt;li&gt;RTC는 주기적으로 시스템 클럭에 맞춰 갱신 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt; ️ Red Hat 계열 리눅스 시스템 시간 관리 방법 정리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;timedatectl, ntp, chrony로 서버 시간을 정확하게 맞추는 기술적인 방법들을 정리 합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. Red Hat 계열에서 시간 동기화 방식&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(1) RHEL 6 이하 (SysV init 기반)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;ntpd&lt;/b&gt; 데몬 사용.&lt;/li&gt;
&lt;li&gt;초기 동기화: &lt;code&gt;ntpd -gq&lt;/code&gt; &amp;rarr; 이후 &lt;code&gt;service ntpd start&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;종료 시 &lt;code&gt;/etc/init.d/halt&lt;/code&gt; 스크립트에서 &lt;code&gt;hwclock --systohc&lt;/code&gt; 실행.&lt;/li&gt;
&lt;li&gt;필요 시 cron으로 &lt;code&gt;hwclock --systohc&lt;/code&gt; 주기적 실행 가능.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(2) RHEL 7 이상 (systemd 기반)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;chronyd&lt;/b&gt;가 기본 시간 동기화 서비스 실행 (RTC 자동 갱신).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;systemctl enable chronyd &amp;amp;&amp;amp; systemctl start chronyd&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;RTC 갱신은 systemd가 자동 관리 (&lt;code&gt;timedatectl set-ntp true&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;초기 강제 동기화: &lt;code&gt;chronyc makestep&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(3) RHEL 8/9 최신&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;chronyd&lt;/code&gt;가 표준, &lt;code&gt;ntpd&lt;/code&gt;는 기본 제공되지 않음.&lt;/li&gt;
&lt;li&gt;RTC와 시스템 클럭 동기화는 systemd가 자동 처리.&lt;/li&gt;
&lt;li&gt;관리자는 필요 시 수동으로 &lt;code&gt;hwclock --systohc&lt;/code&gt; 실행 가능.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 주요 명령어 요약&lt;/h3&gt;
&lt;table data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style6&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;linux date 관리&lt;/th&gt;
&lt;th&gt;&amp;nbsp;&lt;/th&gt;
&lt;th&gt;&amp;nbsp;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;목적&lt;/td&gt;
&lt;td&gt;명령어&lt;/td&gt;
&lt;td&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;시스템 시간 확인&lt;/td&gt;
&lt;td&gt;&lt;code&gt;date&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;현재 시스템 클럭 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;하드웨어 시간 확인&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hwclock --show&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;RTC 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RTC &amp;rarr; 시스템 클럭 복사&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hwclock --hctosys&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;RTC 값을 시스템 클럭에 반영&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;시스템 클럭 &amp;rarr; RTC 복사&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hwclock --systohc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;시스템 시간을 RTC에 저장&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NTP 동기화 상태 확인&lt;/td&gt;
&lt;td&gt;&lt;code&gt;timedatectl status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;NTP 활성 여부 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;chrony 동기화 확인&lt;/td&gt;
&lt;td&gt;&lt;code&gt;chronyc tracking&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;chronyd 동기화 상태 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 시스템 date Gap 방지 전략&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;ntpd/chronyd는 시스템 클럭만 관리&lt;/b&gt; &amp;rarr; RTC는 자동 갱신되지 않음.&lt;/li&gt;
&lt;li&gt;Gap 방지를 위해:
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;systemd 환경&lt;/b&gt;: &lt;code&gt;timedatectl set-ntp true&lt;/code&gt; 설정 &amp;rarr; 종료 시 자동으로 RTC 갱신.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;구버전 환경&lt;/b&gt;: cron에 &lt;code&gt;hwclock --systohc&lt;/code&gt; 등록 (예: 매일 새벽 3시).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;0 3 * * * /sbin/hwclock --systohc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;부팅 시 초기 동기화&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;RHEL6: &lt;code&gt;ntpd -gq&lt;/code&gt; 후 데몬 실행.&lt;/li&gt;
&lt;li&gt;RHEL7+: &lt;code&gt;chronyc makestep&lt;/code&gt; 후 데몬 실행.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;  핵심 정리&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;ntpd/chronyd&lt;/code&gt; &amp;rarr; &lt;b&gt;시스템 클럭 관리&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hwclock&lt;/code&gt; &amp;rarr; &lt;b&gt;RTC 관리&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;시스템 시간 Gap 방지를 위해 &lt;b&gt;시스템 클럭을 RTC에 주기적으로 반영&lt;/b&gt;해야 함.&lt;/li&gt;
&lt;li&gt;최신 RHEL은 systemd가 자동 처리하므로 별도 cron 작업이 필요 없음.&lt;/li&gt;
&lt;li&gt;구버전은 cron으로 &lt;code&gt;hwclock --systohc&lt;/code&gt;를 등록하는 것이 안전.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(참고)&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;1.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://couplewith.tistory.com/180&quot;&gt;[꿀팁] Centos 8에서 표준시간 설정하는 방법&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&lt;/span&gt;&lt;a href=&quot;https://couplewith.tistory.com/180&quot;&gt;https://couplewith.tistory.com/180&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;2. &lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://couplewith.tistory.com/900&quot;&gt;(꿀팁) Red Hat 계열 리눅스 시간 관리 방법&lt;/a&gt;&amp;nbsp; :&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;a href=&quot;https://couplewith.tistory.com/900&quot;&gt;https://couplewith.tistory.com/900&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;3.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://couplewith.tistory.com/320&quot;&gt;(꿀팁) 리눅스 시스템 시간 동기화 하기&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;span&gt;&lt;/span&gt;&lt;a href=&quot;https://couplewith.tistory.com/320&quot;&gt;https://couplewith.tistory.com/320&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0070d1;&quot;&gt;&amp;nbsp; &amp;nbsp; #리눅스_시간동기화&lt;/span&gt;&lt;/p&gt;</description>
      <category>InfraPlatform</category>
      <category>chronyd</category>
      <category>hwclock</category>
      <category>hwclock --systohc</category>
      <category>nptd</category>
      <category>ntpd</category>
      <category>ntpdate</category>
      <category>rdate</category>
      <category>system time</category>
      <category>system time adjustment</category>
      <category>timedatectl</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/900</guid>
      <comments>https://couplewith.tistory.com/900#entry900comment</comments>
      <pubDate>Fri, 2 Jan 2026 14:23:48 +0900</pubDate>
    </item>
    <item>
      <title>무선 스파이칩 기반 무선 백도어 차단 과 WIPS 의 한계</title>
      <link>https://couplewith.tistory.com/899</link>
      <description>&lt;h2 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size26&quot;&gt;무선&amp;nbsp;스파이칩&amp;nbsp;기반&amp;nbsp;무선&amp;nbsp;백도어&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;무선 스파이칩 기반 무선 백도어는 서버·네트워크 장비에 숨겨진 RF 모듈을 통해 내부망과 외부 공격자를 은밀히 연결하는 하드웨어 공급망 공격의 한 유형이다. 이를 방어하기 위해 국내 금융권 등에서는 RF 전대역 스캔·위치추적 기능을 갖춘 Alpha-H와 같은 24×365 무선 백도어 탐지 시스템을 도입하는 추세다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size23&quot;&gt;1.&amp;nbsp;무선&amp;nbsp;스파이칩·무선&amp;nbsp;백도어&amp;nbsp;개념&lt;/h3&gt;&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;br&gt;(1) 무선 스파이칩:&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;서버 메인보드, BMC 주변, USB/PCIe 주변기기 등에 위장 삽입된 초소형 칩으로, RF 통신(예: 수십 kHz~수 GHz)을 사용해 외부와 통신하며 설정 변경, 패킷 탈취, 명령 전달 등을 수행한다. &lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;(2) 무선 백도어:&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;이 스파이칩이 형성하는 비인가 RF 경로를 통해 망분리·방화벽을 우회하여 내부망에 원격 쉘·제어 채널을 여는 공격 채널을 의미하며, 유선망·무선랜 보안 정책 밖에서 작동한다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;무선백도어 해킹 : 통신 모듈과 초소형 CPU 칩으로 구성된 무선 스파이칩을 활용한 신종 해킹&lt;/b&gt;&lt;br&gt;- 공급망 해킹 또는 하드웨어 백도어 해킹으로도 불리우며,&lt;br&gt;- 반입된 무선 스파이칩의 무선주파수 통신을 통해 데이터 탈취 또는 시스템 셧다운&lt;br&gt;- 망분리 보안 무력화, WIPS(무선 침입방지 시스템)·방화벽 등 기존 보안체계 우회&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;473&quot; data-origin-height=&quot;531&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sRv1w/dJMcadtOsy4/drFE4XoP1cDnrJF1hwQFNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sRv1w/dJMcadtOsy4/drFE4XoP1cDnrJF1hwQFNK/img.png&quot; data-alt=&quot;무선스파이칩 -백도어 유형&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sRv1w/dJMcadtOsy4/drFE4XoP1cDnrJF1hwQFNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsRv1w%2FdJMcadtOsy4%2FdrFE4XoP1cDnrJF1hwQFNK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;473&quot; height=&quot;531&quot; data-origin-width=&quot;473&quot; data-origin-height=&quot;531&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;무선스파이칩 -백도어 유형&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;h3 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size23&quot;&gt;무선 스파이침 백도어 유형&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;무선 스파이칩은 서버 메인보드·BMC·주변기기에 삽입되어 RF로 외부 C2(Command &amp;amp; Control) 채널을 형성하여 정보를 유출합니다. 삽입위치와 작동 방식에 따른 유형을 다음과 같이 정리 합니다.&lt;/p&gt;&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot; data-ke-align=&quot;alignLeft&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;&quot;&gt;유형&lt;/td&gt;&lt;td style=&quot;text-align: left;&quot;&gt;백도어 위치&lt;/td&gt;&lt;td style=&quot;text-align: left;&quot;&gt;RF특성&lt;/td&gt;&lt;td style=&quot;text-align: left;&quot;&gt;공격 기능&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;&quot;&gt;메인보드/BMC 삽입형&lt;/td&gt;&lt;td style=&quot;text-align: left;&quot;&gt;서버 마더보드 저항·필터 대체, BMC 라인&lt;/td&gt;&lt;td style=&quot;text-align: left;&quot;&gt;협대역(300~400MHz 선호), 간헐 송수신&lt;/td&gt;&lt;td style=&quot;text-align: left;&quot;&gt;펌웨어 변조, 로그 유출, 원격 쉘&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;&quot;&gt;주변기기 위장형&lt;/td&gt;&lt;td style=&quot;text-align: left;&quot;&gt;USB 허브, KVM, IP카메라, 전원장치&lt;/td&gt;&lt;td style=&quot;text-align: left;&quot;&gt;전대역(25kHz~3GHz), 저출력·장거리&lt;/td&gt;&lt;td style=&quot;text-align: left;&quot;&gt;데이터 탈취, 패킷 가로채기, 재부팅 명령&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;&quot;&gt;단방향 트리거형&lt;/td&gt;&lt;td style=&quot;text-align: left;&quot;&gt;IoT 센서·키보드 내장&lt;/td&gt;&lt;td style=&quot;text-align: left;&quot;&gt;브로드캐스트(수신만), 임의 주파수&lt;/td&gt;&lt;td style=&quot;text-align: left;&quot;&gt;페이로드 활성화, 설정 변경 트리거&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;&quot;&gt;양방향 세션형&lt;/td&gt;&lt;td style=&quot;text-align: left;&quot;&gt;네트워크 장비 주변&lt;/td&gt;&lt;td style=&quot;text-align: left;&quot;&gt;세션 기반 송수신, 벽 투과&lt;/td&gt;&lt;td style=&quot;text-align: left;&quot;&gt;완전 C2 채널, APT 잠복·확산&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;⚠️&amp;nbsp;&lt;b&gt;왜 WIPS만으로는 부족한가?&lt;/b&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;무선 백도어 해킹은 서버 내부에 은닉된 무선 스파이칩이 외부와 직접 통신하는 방식으로, 망분리 시스템도 우회할 수 있습니다.&lt;/li&gt;&lt;li&gt;무선 스파이칩 기반 무선 백도어는 기존 WIPS(무선 침입 방지 시스템)가 커버하지 못하는 RF 전대역(25kHz~3GHz)을 사용하는 은닉 채널을 통해 망분리를 우회합니다.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #006DD7;&quot;&gt;WIPS는 근거리 한정: 실내 근접 Wi-Fi 침입만 방어하지만, 무선 백도어는 10km 외부 원격 조종 가능하며 망분리 우회가 가능합니다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;WIPS는 Wi-Fi 프로토콜 기반의 트래픽만 분석하므로, RF 신호 기반의 스파이칩 통신은 감지하지 못합니다.&lt;/li&gt;&lt;li&gt;&amp;nbsp;WIPS는 Wi-Fi(2.4/5GHz) 중심으로 설계되어 무선 백도어 차단에 근본적 한계를 보이며, RF 기반 탐지 시스템(예: Alpha-H)이 이를 보완할 수 있습니다.&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;무선백도어&amp;nbsp;해킹에&amp;nbsp;노출된&amp;nbsp;주요&amp;nbsp;장소들&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;&lt;br&gt;-&amp;nbsp;고객&amp;nbsp;및&amp;nbsp;경영&amp;nbsp;관련&amp;nbsp;주요&amp;nbsp;데이터가&amp;nbsp;저장된&amp;nbsp;데이터센터 &lt;br&gt;-&amp;nbsp;장비&amp;nbsp;도입,&amp;nbsp;테스트,&amp;nbsp;유지관리&amp;nbsp;등으로&amp;nbsp;외주&amp;nbsp;인력이&amp;nbsp;자주&amp;nbsp;출입하는&amp;nbsp;본사&amp;nbsp;및&amp;nbsp;지역&amp;nbsp;IT&amp;nbsp;관리&amp;nbsp;구역&amp;nbsp;(서버실·통신실&amp;nbsp;등) &lt;br&gt;-&amp;nbsp;유지보수나&amp;nbsp;장비&amp;nbsp;교체를&amp;nbsp;위해&amp;nbsp;외부&amp;nbsp;인력이&amp;nbsp;방문하는&amp;nbsp;영업점,&amp;nbsp;해외법인·지점&amp;nbsp;및&amp;nbsp;365코너(ATM&amp;nbsp;설치&amp;nbsp;구역)&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;924&quot; data-origin-height=&quot;452&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bledcx/dJMcafkUlsV/vW3qf1beK4UnChnWMkuce1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bledcx/dJMcafkUlsV/vW3qf1beK4UnChnWMkuce1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bledcx/dJMcafkUlsV/vW3qf1beK4UnChnWMkuce1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbledcx%2FdJMcafkUlsV%2FvW3qf1beK4UnChnWMkuce1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;924&quot; height=&quot;452&quot; data-origin-width=&quot;924&quot; data-origin-height=&quot;452&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;지슨의 무선 백도어 방지 시스템(Alpha-H)과 WIPS(Wireless Intrusion Prevention System)의 주요 차이점입니다:&lt;br&gt;지슨의 무선 백도어 탐지 시스템은 WIPS로는 탐지할 수 없는 ‘RF 기반 무선 스파이칩’ 위협을 실시간으로 감지하는 특화된 차세대 무선백도어 탐지 솔루션입니다.&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt; ️ 무선 스파이칩 백도어 탐지와 WIPS 차이점 &lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;비교&lt;/span&gt; (지슨 Alpha-H vs WIPS)&lt;/p&gt;&lt;table style=&quot;border-collapse: collapse; width: 856px;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot; data-ke-align=&quot;alignLeft&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;항목&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;무선 백도어 탐지(&lt;span style=&quot;color: #FFFFFF;&quot;&gt;지슨 Alpha-H &lt;/span&gt;)&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;무선 침입 방지 시스템(&lt;span style=&quot;color: #FFFFFF;&quot;&gt;WIPS &lt;/span&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;탐지 대상&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;무선 스파이칩, RF 기반 백도어&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;Wi-Fi 기반 무선 침입 (불법 AP, Rogue Device 등)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;탐지 방식&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;RF 주파수 스캔 (25kHz~3GHz)&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;Wi-Fi 프로토콜 기반 패킷 분석&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;탐지 범위&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Wi-Fi 외에도 블루투스, LTE, LoRa 등 다양한 무선 통신 포함&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Wi-Fi (2.4GHz, 5GHz) 중심&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;탐지 위치 추정&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;가능 (이상 RF 신호 위치 추정)&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;일부 고급 제품만 가능&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;실시간성&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;1초 단위 스캔, 24시간 365일 상시 감시&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;실시간 감시 가능하나 RF 기반은 탐지 불가&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;적용 환경&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;망분리된 서버실, 군사시설, 금융기관 등&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;일반 기업, 공공기관의 무선 네트워크 환경&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;탐지 불가능 위협&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;없음 (RF 기반 위협까지 탐지)&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;무선 스파이칩, RF 백도어는 탐지 불가&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;✅&lt;b&gt; 무선 RF차단의 강점 (지슨 Alpha-H)&lt;/b&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;b&gt;전역대역 이상 신호 검출:&lt;/b&gt;&lt;br&gt;- RF 계측 특허 기술 기반으로, Wi-Fi 외의 모든 무선 주파수 이상 신호를 탐지&lt;br&gt;(스캔 범위: 25kHz~3GHz 전 대역을 1초 주기 고속 스캔(RF 수신기+스펙트럼 분석기)&lt;br&gt;- 비표준&amp;nbsp;변조(OOK,&amp;nbsp;CW),&amp;nbsp;예상&amp;nbsp;밖&amp;nbsp;주파수&amp;nbsp;사용,&amp;nbsp;짧은&amp;nbsp;버스트&amp;nbsp;신호&amp;nbsp;등&amp;nbsp;스파이칩&amp;nbsp;패턴&amp;nbsp;매칭&lt;/li&gt;&lt;li&gt;&lt;b&gt;위치 추적 기능으로 위협 장비의 물리적 위치 파악 가능&lt;/b&gt;&lt;br&gt;- &lt;b&gt;위치&amp;nbsp;계산:&amp;nbsp;&lt;/b&gt;다수&amp;nbsp;탐지&amp;nbsp;단말(150㎡&amp;nbsp;커버)의&amp;nbsp;신호&amp;nbsp;세기·도착&amp;nbsp;시간&amp;nbsp;차이(ToA/TDoA)로&amp;nbsp;삼각측량&lt;br&gt;-&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;b&gt;망분리 환경에서도 작동하여 기존 보안 체계의 사각지대 보완&lt;/b&gt;&lt;br&gt;- WIPS와 달리 '전파 자체' 모니터링으로 네트워크 독립구성&amp;nbsp;&lt;br&gt;- 24/365 운영: 상시 전원·자동화로 잠복 백도어(원격 ON/OFF)도 포착&lt;/li&gt;&lt;/ul&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size23&quot;&gt;무선&amp;nbsp;스파이칩&amp;nbsp;관련&amp;nbsp;보안&amp;nbsp;위협&amp;nbsp;급증에&amp;nbsp;따른&amp;nbsp;강화된&amp;nbsp;법적·정책적&amp;nbsp;보안&amp;nbsp;조치&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;ㅁ 금융데이터센터 무선망 보호 가이드 주요 내용&lt;/b&gt; &lt;br&gt;- 무선망에서는 강력한 암호화(AES 등) 및 사용자 인증을 반드시 적용해야 하며, TKIP 대신 AES 암호화를 권장합니다. &lt;br&gt;- 무선&amp;nbsp;AP(접속점)의&amp;nbsp;MAC&amp;nbsp;주소&amp;nbsp;변조&amp;nbsp;공격에&amp;nbsp;대비해&amp;nbsp;서비스&amp;nbsp;지역과&amp;nbsp;AP를&amp;nbsp;지정하고&amp;nbsp;사용&amp;nbsp;지역&amp;nbsp;외에는&amp;nbsp;접속을&amp;nbsp;차단해야&amp;nbsp;합니다. &lt;br&gt;- 무선&amp;nbsp;AP의&amp;nbsp;DHCP&amp;nbsp;서비스는&amp;nbsp;비활성화하고&amp;nbsp;고정&amp;nbsp;IP를&amp;nbsp;할당하는&amp;nbsp;방식으로&amp;nbsp;네트워크&amp;nbsp;관리&amp;nbsp;및&amp;nbsp;보안&amp;nbsp;강화가&amp;nbsp;필요합니다. &lt;br&gt;- 무선망의&amp;nbsp;전파&amp;nbsp;범위를&amp;nbsp;제한하여&amp;nbsp;특정&amp;nbsp;공간에서만&amp;nbsp;사용&amp;nbsp;가능하도록&amp;nbsp;하며,&amp;nbsp;무선망과&amp;nbsp;유선망(내부망)&amp;nbsp;분리를&amp;nbsp;철저히&amp;nbsp;해야&amp;nbsp;합니다. &lt;br&gt;- 무선망&amp;nbsp;운영&amp;nbsp;시&amp;nbsp;보안&amp;nbsp;정책과&amp;nbsp;사용자&amp;nbsp;교육을&amp;nbsp;시행하여&amp;nbsp;무선&amp;nbsp;보안&amp;nbsp;위협과&amp;nbsp;내부&amp;nbsp;정보&amp;nbsp;유출을&amp;nbsp;방지합니다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size23&quot;&gt;법적&amp;nbsp;근거&amp;nbsp;및&amp;nbsp;기준&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;「정보통신망&amp;nbsp;이용촉진&amp;nbsp;및&amp;nbsp;정보보호&amp;nbsp;등에&amp;nbsp;관한&amp;nbsp;법률」&amp;nbsp;2024.&amp;nbsp;1.&amp;nbsp;23.&amp;nbsp;개정&lt;/b&gt; &lt;br&gt;제48조(정보통신망 침해행위 등의 금지) ➃ 누구든지 정당한 사유 없이 정보통신망의 정상적인 보호ㆍ인증 절차를 우회하여 정보통신망에 접근할 수 있도록 &lt;br&gt;하는&amp;nbsp;프로그램이나&amp;nbsp;&lt;b&gt;&lt;u&gt;기술적 장치(하드웨어 백도어)&lt;/u&gt;&lt;/b&gt;&amp;nbsp;등을&amp;nbsp;정보통신망&amp;nbsp;또는&amp;nbsp;이와&amp;nbsp;관련된&amp;nbsp;정보시스템에&amp;nbsp;설치하거나&amp;nbsp;이를&amp;nbsp;전달ㆍ유포하여서는&amp;nbsp;아니&amp;nbsp;된다.&amp;nbsp;&amp;lt;신설&amp;nbsp;2024.&amp;nbsp;1.&amp;nbsp;23.&amp;gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;「전자금융감독규정」&amp;nbsp;2025.&amp;nbsp;2.&amp;nbsp;5.&lt;/b&gt; &lt;br&gt;제15조(해킹&amp;nbsp;등&amp;nbsp;방지대책)&amp;nbsp;➀금융회사&amp;nbsp;또는&amp;nbsp;전자금융&amp;nbsp;업자는&amp;nbsp;정보처리시스템&amp;nbsp;및&amp;nbsp;정보통신망을&amp;nbsp;해킹&amp;nbsp;등&amp;nbsp;전자적&amp;nbsp;침해&amp;nbsp;행위로부터&amp;nbsp;방지하기&amp;nbsp;위하여 &lt;br&gt;다음&amp;nbsp;각&amp;nbsp;호의&amp;nbsp;대책을&amp;nbsp;수립,&amp;nbsp;운용하여야&amp;nbsp;한다.&amp;nbsp;해킹&amp;nbsp;등&amp;nbsp;전자적&amp;nbsp;침해행위로&amp;nbsp;인한&amp;nbsp;사고를&amp;nbsp;방지하기&amp;nbsp;위한&amp;nbsp;정보보호시스템&amp;nbsp;설치&amp;nbsp;및&amp;nbsp;운영 &lt;br&gt;&lt;b&gt;「‘금융분야&amp;nbsp;망분리&amp;nbsp;개선&amp;nbsp;로드맵’에&amp;nbsp;따른&amp;nbsp;보완&amp;nbsp;대책」&amp;nbsp;2024.&amp;nbsp;8.&amp;nbsp;13.&amp;nbsp;발표&lt;/b&gt; &lt;br&gt;물리적&amp;nbsp;망분리&amp;nbsp;규제&amp;nbsp;완화에&amp;nbsp;따른&amp;nbsp;보완책으로&amp;nbsp;‘단말기&amp;nbsp;보완’&amp;nbsp;및&amp;nbsp;‘외부&amp;nbsp;통신&amp;nbsp;통제’를&amp;nbsp;대폭&amp;nbsp;강화해야&amp;nbsp;함 &lt;br&gt;[입법&amp;nbsp;동향]&amp;nbsp;디지털&amp;nbsp;금융안전법(가칭)&amp;nbsp;제정&amp;nbsp;추진&amp;nbsp;2026.&amp;nbsp;예정 &lt;br&gt;중대한&amp;nbsp;해킹&amp;nbsp;사고&amp;nbsp;발생&amp;nbsp;시&amp;nbsp;징벌적&amp;nbsp;과징금&amp;nbsp;부과&amp;nbsp;및&amp;nbsp;경영진&amp;nbsp;책임&amp;nbsp;명문화,&amp;nbsp;외부&amp;nbsp;업체&amp;nbsp;납품&amp;nbsp;장비(공급망)에&amp;nbsp;숨겨진&amp;nbsp;백도어&amp;nbsp;등&amp;nbsp;취약점&amp;nbsp;점검&amp;nbsp;의무화(제3자&amp;nbsp;리스크&amp;nbsp;관리&amp;nbsp;강화)&amp;nbsp;등&lt;/p&gt;</description>
      <category>Tech-Trends</category>
      <category>WIPS 와 RF방식 차이</category>
      <category>WIPS 한계</category>
      <category>무선 스파이침 백도어 유형</category>
      <category>무선백도어방지</category>
      <category>무선탐지기술</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/899</guid>
      <comments>https://couplewith.tistory.com/899#entry899comment</comments>
      <pubDate>Mon, 15 Dec 2025 18:36:45 +0900</pubDate>
    </item>
    <item>
      <title>(PostgreSQL) DBA를 위한 베스트 GUI 툴 추천: pgAdmin부터 Luna Modeler까지</title>
      <link>https://couplewith.tistory.com/898</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;567&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUUijg/dJMcajtVBnI/r7edPGnzmrHfsrZkbnejwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUUijg/dJMcajtVBnI/r7edPGnzmrHfsrZkbnejwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUUijg/dJMcajtVBnI/r7edPGnzmrHfsrZkbnejwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUUijg%2FdJMcajtVBnI%2Fr7edPGnzmrHfsrZkbnejwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;567&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;567&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;무료&amp;nbsp;PostgreSQL&amp;nbsp;클라이언트&amp;nbsp;대결:&amp;nbsp;DBeaver&amp;nbsp;CE&amp;nbsp;vs&amp;nbsp;Beekeeper&amp;nbsp;Studio&amp;nbsp;어떤&amp;nbsp;게&amp;nbsp;나을까?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PostgreSQL GUI Client Tool의&amp;nbsp; 목적은 (전문 관리, 멀티 DB 지원, 단순 질의, 설계 연동 등)에 따라 강점이 뚜렷하게 갈립니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;PostgreSQL 관리 툴 선택법: 멀티 DB vs 전용 GUI, 장단점 총정리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PostgreSQL 클라이언트는 크게 &amp;ldquo;PostgreSQL 전용/공식 계열&amp;rdquo;과 &amp;ldquo;멀티 DB / 범용 SQL 클라이언트&amp;rdquo;, 그리고 &amp;ldquo;ERD&amp;middot;모델링 + 스크립트 생성 도구&amp;rdquo;로 나눌 수 있습니다. 실무에서는 SQL 스크립트 실행, 다중 DB 운영, 성능 모니터링, 데이터 모델 설계 등 사용 목적에 따라 서로 다른 툴을 조합하는 경우가 많습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;목표&lt;/b&gt;: PostgreSQL 전용 관리 vs 다중 DB 관리&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;환경&lt;/b&gt;: 데스크톱(네이티브) vs 웹/데스크톱(Electron)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;기능 우선순위&lt;/b&gt;: 고급 튜닝&amp;middot;모니터링, 쿼리 편집기, 데이터 모델링 등&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;예산&lt;/b&gt;: 오픈소스 무료 vs 유료 엔터프라이즈 기능 필요 여부. 참고: 각 툴의 무료/유료 정책과 제한&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;PostgreSQL 전용&amp;middot;공식 계열&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;pgAdmin&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;솔루션명: pgAdmin&amp;nbsp;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #f4f4f4; color: #333333; text-align: left;&quot;&gt;URL:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.pgadmin.org/&quot;&gt;https://www.pgadmin.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;특징: PostgreSQL 공식 관리 툴로, 서버/DB 관리부터 모니터링까지 지원하는 가장 대표적인 GUI.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;주요 기능 : 서버 관리, 쿼리 툴, 모니터링&lt;/b&gt;.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서버/데이터베이스/스키마/테이블 등 객체 관리 및 생성&amp;middot;수정&amp;middot;삭제&lt;/li&gt;
&lt;li&gt;라이브 SQL Query Tool, 결과 그리드에서 직접 데이터 편집&lt;/li&gt;
&lt;li&gt;대시보드를 통한 세션, 트랜잭션, 튜플 입출력, I/O 등 활동 모니터링&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;장점 : 공식 지원&amp;middot;풍부한 PostgreSQL 기능&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PostgreSQL 공식 도구이자 사실상 표준 도구로 인지도와 레퍼런스가 매우 높음&lt;/li&gt;
&lt;li&gt;웹&amp;middot;데스크톱 모두 지원하며, 풍부한 PostgreSQL 고급 기능을 지원&lt;/li&gt;
&lt;li&gt;완전 무료, 오픈소스, 커뮤니티와 문서가 매우 풍부함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;단점 : 무겁고 복잡, 초기 로드 느림&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인터페이스가 복잡하고 초보자에게는 다소 난이도가 높음[2]&lt;/li&gt;
&lt;li&gt;설치 용량이 크고 시작 속도가 느리다는 평가가 많음[2]&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;사용자수(추정): PostgreSQL 커뮤니티에서 사실상 표준 GUI로 취급될 정도로 사용자가 매우 많은 대표 도구이나, 공식 집계 수치는 공개되지 않음.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;라이선스: 오픈소스 라이선스(무료 사용 가능).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유료/무료: 무료(오픈소스).&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1274&quot; data-origin-height=&quot;900&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lRBkM/dJMcadHfLRV/Mg5o0ICRfuAkTioCEiB9ok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lRBkM/dJMcadHfLRV/Mg5o0ICRfuAkTioCEiB9ok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lRBkM/dJMcadHfLRV/Mg5o0ICRfuAkTioCEiB9ok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlRBkM%2FdJMcadHfLRV%2FMg5o0ICRfuAkTioCEiB9ok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;627&quot; height=&quot;443&quot; data-origin-width=&quot;1274&quot; data-origin-height=&quot;900&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;멀티 DB&amp;middot;범용 SQL 클라이언트&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;DBeaver (Community Edition 기준)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;솔루션명: DBeaver Community&lt;/li&gt;
&lt;li&gt;URL : dbeaver.io &lt;a href=&quot;https://dbeaver.io/download/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dbeaver.io/download/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;특징: 다중 DB 지원, 강력한 SQL 편집기&lt;/b&gt; &lt;br /&gt;Java 기반 범용 DB 클라이언트로, PostgreSQL 포함 대부분의 주요 RDBMS와 일부 NoSQL까지 지원.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;주요 기능 : JDBC 기반 연결, ER 보기, 데이터 편집.&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PostgreSQL, MySQL, Oracle, SQL Server, MongoDB 등 다양한 DB 접속 및 스키마 브라우징&lt;/li&gt;
&lt;li&gt;SQL 에디터(문법 하이라이트, 자동완성, 포맷팅), ER 다이어그램, 데이터 편집, 간단한 데이터 내보내기&amp;middot;가져오기 기능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;장점 : 다양한 DB 통합 관리에 적합.&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;멀티 DB 환경에서 단일 도구로 대부분의 작업을 처리 가능&lt;/li&gt;
&lt;li&gt;커뮤니티 에디션은 무료이지만 기능이 매우 풍부하고, 업데이트도 활발함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;단점 : UI 복잡; 일부 고급 기능은 유료 에디션.&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Eclipse 계열 UI라 다소 복잡하고 직관성이 떨어진다는 의견이 존재&lt;/li&gt;
&lt;li&gt;일부 고급 기능은 유료(Enterprise/PRO)에서만 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;사용자수(추정): 공식 다운로드 누계&amp;middot;사용자 수는 공개되지 않지만, 다수 버전 릴리스와 활발한 커뮤니티로 볼 때 대형 사용자군 보유.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;라이선스: Community Edition는 오픈소스 라이선스(무료), PRO/Enterprise는 상용 라이선스.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유료/무료: 커뮤니티 에디션 무료, 상용 에디션 유료(혼합).&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;692&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/su05c/dJMcabpaCme/OMUOXFpvvWliM0nsjUlBaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/su05c/dJMcabpaCme/OMUOXFpvvWliM0nsjUlBaK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/su05c/dJMcabpaCme/OMUOXFpvvWliM0nsjUlBaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fsu05c%2FdJMcabpaCme%2FOMUOXFpvvWliM0nsjUlBaK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;658&quot; height=&quot;356&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;692&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;DataGrip&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;솔루션명: DataGrip&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사이트명&lt;/b&gt;: &lt;a href=&quot;https://www.jetbrains.com/datagrip&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.jetbrains.com/datagrip&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;특징: JetBrains가 제공하는 상용 DB IDE로, IntelliJ 계열의 강력한 코딩 보조 기능을 제공.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;주요 기능 : 스마트 코드 완성, 리팩터링.&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SQL 코드 자동완성, 리팩토링, 코드 분석 등 &amp;ldquo;IDE 수준&amp;rdquo;의 스마트 에디터&lt;/li&gt;
&lt;li&gt;PostgreSQL 포함 여러 DB 및 SQL 방언을 지원하는 멀티 DB 클라이언트&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;장점 : 강력한 SQL 편집 보조.&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;개발자 친화적인 코드 지원과 편리한 UI, 프로젝트 단위 관리에 강점&lt;/li&gt;
&lt;li&gt;다양한 DB를 동일한 워크플로우로 관리 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;단점: 유료(구독) 모델.&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;상용 라이선스 기반으로, 지속적인 구독 비용이 발생&lt;/li&gt;
&lt;li&gt;단순 관리 위주 사용자에게는 기능이 과도할 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;사용자수(추정): JetBrains IDE 사용자 기반이 매우 크지만, DataGrip 단독 사용자 공식 수치는 미공개.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;라이선스: 상용(유료) 라이선스, 평가판 제공.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유료/무료: 유료(상용), 무료 평가판.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;958&quot; data-origin-height=&quot;499&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/41A2h/dJMcahpo4Yx/GTTgzdvoPMP8Tg5D91O6fK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/41A2h/dJMcahpo4Yx/GTTgzdvoPMP8Tg5D91O6fK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/41A2h/dJMcahpo4Yx/GTTgzdvoPMP8Tg5D91O6fK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F41A2h%2FdJMcahpo4Yx%2FGTTgzdvoPMP8Tg5D91O6fK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;680&quot; height=&quot;354&quot; data-origin-width=&quot;958&quot; data-origin-height=&quot;499&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;782&quot; data-origin-height=&quot;385&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTJGCT/dJMcafd2SRT/OJh3151IDdklBTIBhMn3ZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTJGCT/dJMcafd2SRT/OJh3151IDdklBTIBhMn3ZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTJGCT/dJMcafd2SRT/OJh3151IDdklBTIBhMn3ZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTJGCT%2FdJMcafd2SRT%2FOJh3151IDdklBTIBhMn3ZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;658&quot; height=&quot;324&quot; data-origin-width=&quot;782&quot; data-origin-height=&quot;385&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;TablePlus&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;솔루션명: TablePlus&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사이트명&lt;/b&gt;: &lt;span data-url=&quot;https://tableplus.com&quot;&gt;tableplus.com &lt;a href=&quot;https://tableplus.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://tableplus.com&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;특징: 가볍고 네이티브한 UI, 다중 DB 지원&lt;/b&gt; &lt;br /&gt;Mac/Windows 중심의 가볍고 현대적인 DB GUI 도구.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;주요 기능: 빠른 쿼리 편집, 데이터 편집&lt;/b&gt;.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PostgreSQL 등 여러 DB 지원, SQL 에디터(자동완성, 하이라이트, 포매터)&lt;/li&gt;
&lt;li&gt;직관적인 테이블 뷰, 데이터 편집, 간단한 관계 탐색 기능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;장점 : 깔끔한 UX, 빠른 반응성&lt;/b&gt;.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;심플하고 네이티브에 가까운 UI로 빠르게 적응 가능&lt;/li&gt;
&lt;li&gt;MacOS&amp;middot;Windows 양쪽 모두 자연스러운 사용 경험 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;단점: 일부 고급 기능 부족.&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Linux, 웹 기반 사용에는 적합하지 않음.&lt;/li&gt;
&lt;li&gt;고급 기능은 유료 라이선스가 필요하며, 무료판 제약이 있을 수 있음(공식 정책 참고 필요).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;사용자수(추정): 공식 수치는 없지만, Mac 개발자 커뮤니티에서 널리 사용되는 도구로 알려져 있음.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;라이선스: 기본적으로 상용(유료) 모델, 제한된 무료/트라이얼 제공 구조.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유료/무료: 유료(상용 중심), 제한적 무료/트라이얼.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;595&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brcbCS/dJMcadAtu9M/JbmLvJvQSInAK2dLWb8q21/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brcbCS/dJMcadAtu9M/JbmLvJvQSInAK2dLWb8q21/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brcbCS/dJMcadAtu9M/JbmLvJvQSInAK2dLWb8q21/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrcbCS%2FdJMcadAtu9M%2FJbmLvJvQSInAK2dLWb8q21%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;599&quot; height=&quot;348&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;595&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;DbVisualizer&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;솔루션명: DbVisualizer&lt;/li&gt;
&lt;li&gt;사이트명: dbvis.com &lt;a href=&quot;https://www.dbvis.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.dbvis.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;특징: JDBC 기반 범용 DB 관리 도구로, 다양한 DBMS를 단일 인터페이스에서 관리.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;주요 기능&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PostgreSQL, MySQL, Oracle, SQL Server, SQLite 등 대부분의 JDBC 지원 DB 접속&lt;/li&gt;
&lt;li&gt;&lt;b&gt;스키마 브라우징, SQL 실행, 데이터 편집, 기본적인 ER 뷰 등&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;장점&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;macOS, Windows, Linux에서 동일한 UI로 동작&lt;/li&gt;
&lt;li&gt;무료 버전에서도 필수적인 기능은 대부분 사용 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;단점&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;일부 고급 기능은 유료 에디션에서만 제공&lt;/li&gt;
&lt;li&gt;Eclipse 스타일 UI에 익숙하지 않으면 초기 진입 장벽이 있을 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;사용자수(추정): 공식 수치는 없지만, JDBC 기반 범용 툴로서 기업&amp;middot;개발자 커뮤니티에서 널리 사용되는 도구.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;라이선스: 무료 버전 + 상용(유료) Pro 버전 병행.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유료/무료: Free 에디션 무료, Pro 유료(혼합)&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;675&quot; data-origin-height=&quot;367&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJA9EU/dJMcabJutwG/JcwGHIuXRnk0nRQcbni1d1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJA9EU/dJMcabJutwG/JcwGHIuXRnk0nRQcbni1d1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJA9EU/dJMcabJutwG/JcwGHIuXRnk0nRQcbni1d1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJA9EU%2FdJMcabJutwG%2FJcwGHIuXRnk0nRQcbni1d1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;486&quot; height=&quot;264&quot; data-origin-width=&quot;675&quot; data-origin-height=&quot;367&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1266&quot; data-origin-height=&quot;793&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvApJX/dJMcadHfN9B/mfl07lZwZRqdw1GtmkUfQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvApJX/dJMcadHfN9B/mfl07lZwZRqdw1GtmkUfQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvApJX/dJMcadHfN9B/mfl07lZwZRqdw1GtmkUfQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvApJX%2FdJMcadHfN9B%2Fmfl07lZwZRqdw1GtmkUfQ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;376&quot; data-origin-width=&quot;1266&quot; data-origin-height=&quot;793&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;DbGate&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;솔루션명: DbGate&lt;/li&gt;
&lt;li&gt;사이트명: &lt;a href=&quot;https://www.dbgate.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.dbgate.io/&lt;/a&gt;/ GitHub 저장소(dbgate/dbgate)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;특징: 웹+데스크톱, 현대적 UI, Docker/웹 배포 가능&lt;/b&gt; &lt;br /&gt;Electron + Svelte 기반, 웹&amp;middot;데스크톱 모두 지원하는 비교적 최신 멀티 DB 클라이언트.&lt;/li&gt;
&lt;li&gt;주요 기능
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PostgreSQL, MySQL, SQLite, MongoDB, SQL Server 등 여러 DB 지원&lt;/li&gt;
&lt;li&gt;데이터 브라우징, SQL 실행, 대용량 데이터셋에 대한 빠른 응답성, Docker 기반 서버 배포 옵션&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;장점: 웹 배포 가능&amp;middot;빠른 성능.&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;웹/데스크톱 모두 동일한 경험을 제공하는 모던한 UI&lt;/li&gt;
&lt;li&gt;오픈소스 기반이며, Docker&amp;middot;npm 등으로 손쉽게 배포 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;단점: 신생 프로젝트, 일부 고급 기능은 프리미엄.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다른 전통적 툴에 비해 역사가 짧아, 기능&amp;middot;에코시스템이 성숙한 툴에 비해 상대적으로 새로움&lt;/li&gt;
&lt;li&gt;시각적 쿼리 디자이너, DB 비교 등 일부 기능은 유료 프리미엄으로 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;사용자수(추정): GitHub에서 수백 개 릴리스・수십 명 기여자가 있는 활성 프로젝트지만, 정확한 설치 수&amp;middot;사용자 수는 비공개.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;라이선스: 오픈소스(무료) + 프리미엄 기능은 별도 라이선스.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유료/무료: 핵심 기능은 무료(오픈소스), 일부 고급 기능은 유료(혼합).&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;353&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nPltH/dJMcagcXEfx/5YjHXW3BupPvGvkWBkiNLK/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nPltH/dJMcagcXEfx/5YjHXW3BupPvGvkWBkiNLK/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nPltH/dJMcagcXEfx/5YjHXW3BupPvGvkWBkiNLK/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnPltH%2FdJMcagcXEfx%2F5YjHXW3BupPvGvkWBkiNLK%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;612&quot; height=&quot;353&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;353&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1091&quot; data-origin-height=&quot;626&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JPzwU/dJMcahQsIGb/mWYIWf5zkqFJUGkpVx4uxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JPzwU/dJMcahQsIGb/mWYIWf5zkqFJUGkpVx4uxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JPzwU/dJMcahQsIGb/mWYIWf5zkqFJUGkpVx4uxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJPzwU%2FdJMcahQsIGb%2FmWYIWf5zkqFJUGkpVx4uxK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;661&quot; height=&quot;379&quot; data-origin-width=&quot;1091&quot; data-origin-height=&quot;626&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;HeidiSQL&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;솔루션명: HeidiSQL&lt;/li&gt;
&lt;li&gt;사이트 : &lt;a href=&quot;https://www.heidisql.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.heidisql.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;특징: Windows 중심, 가볍고 무료; UI 구식 &lt;br /&gt;원래 MySQL용으로 시작한 오래된 Windows 전용(또는 Wine 활용) DB 클라이언트.&lt;/li&gt;
&lt;li&gt;주요 기능
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PostgreSQL, MySQL, MariaDB, MSSQL 등의 접속 및 SQL 실행&lt;/li&gt;
&lt;li&gt;가벼운 데이터 편집, 스키마 관리, 백업/복원 등 기본 기능에 충실&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;장점
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;매우 가볍고 빠른 구동 속도&lt;/li&gt;
&lt;li&gt;오랜 기간 개발되어 온 성숙한 안정성&lt;/li&gt;
&lt;li&gt;완전 무료, 오픈소스&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;단점
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Windows 중심(다른 OS는 Wine 등 우회 필요)&lt;/li&gt;
&lt;li&gt;UI가 오래된 스타일이라 현대적 UX를 선호하는 사용자에게는 매력도가 낮을 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;사용자수(추정): 1999년부터 이어진 성숙한 프로젝트로 사용자층이 상당하지만, 공식 수치는 미공개.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;라이선스: 무료, 오픈소스.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유료/무료: 무료.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;430&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N9syg/dJMcafylnfx/mzEbaYrnOztchkoNQncYZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N9syg/dJMcafylnfx/mzEbaYrnOztchkoNQncYZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N9syg/dJMcafylnfx/mzEbaYrnOztchkoNQncYZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN9syg%2FdJMcafylnfx%2FmzEbaYrnOztchkoNQncYZ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;638&quot; height=&quot;329&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;430&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테이블 에디터&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;862&quot; data-origin-height=&quot;600&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tCUft/dJMcacBCXF9/0GlXXlqrCEl1kn4BHGPD8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tCUft/dJMcacBCXF9/0GlXXlqrCEl1kn4BHGPD8k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tCUft/dJMcacBCXF9/0GlXXlqrCEl1kn4BHGPD8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtCUft%2FdJMcacBCXF9%2F0GlXXlqrCEl1kn4BHGPD8k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;624&quot; height=&quot;434&quot; data-origin-width=&quot;862&quot; data-origin-height=&quot;600&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Beekeeper Studio&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;솔루션명: Beekeeper Studio&lt;/li&gt;
&lt;li&gt;사이트명 : &lt;a href=&quot;https://www.beekeeperstudio.io/pricing/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.beekeeperstudio.io/pricing/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;특징: Electron + VueJS 기반의 모던 UI에 집중한 SQL 에디터&amp;middot;DB 관리자.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;주요 기능
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PostgreSQL, MySQL, SQLite, SQL Server 등 지원&lt;/li&gt;
&lt;li&gt;직관적인 SQL 에디터, 간단한 테이블 조회&amp;middot;필터링 기능 제공&lt;/li&gt;
&lt;li&gt;&lt;b&gt;로컬 , 원격 LLM 에이전트 지원&lt;/b&gt; : Claude, OpenAI, Gemini 및 OpenAI API 사양을 지원하는 LLM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;장점&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;현대적인 인터페이스와 사용성이 좋아, 간단 작업에 빠르게 적응 가능&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;최근 몇 년간 인기가 증가한 개발자 친화 툴&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;단점&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;커뮤니티(무료) 에디션은 고급 기능이 제한적이며, 필터 개수&amp;middot;결과 행 수 등 제약 존재&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;비교적 최근 상용화되면서 무료판에서 업셀 메시지 등 제한이 많다는 지적&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;사용자수(추정): 기술적으로 신규 툴이며, 커뮤니티 규모는 성장 중이나 공식 사용자 수치는 미공개.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;라이선스: 커뮤니티 에디션은 오픈소스, Ultimate는 상용 라이선스.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유료/무료: 커뮤니티 무료, Ultimate 유료(혼합). &lt;br /&gt;Free for Perfect for hobbyists, students, or folks trying out the app.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;887&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QuciX/dJMcadAtxpH/vC0MrZ24ae8y2U5bsZCsCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QuciX/dJMcadAtxpH/vC0MrZ24ae8y2U5bsZCsCk/img.png&quot; data-alt=&quot;Beekeeper Studio SQL AI&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QuciX/dJMcadAtxpH/vC0MrZ24ae8y2U5bsZCsCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQuciX%2FdJMcadAtxpH%2FvC0MrZ24ae8y2U5bsZCsCk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;887&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;887&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Beekeeper Studio SQL AI&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;데이터 모델링&amp;middot;ERD + 스크립트 생성&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Luna Modeler&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;솔루션명: Luna Modeler&lt;/li&gt;
&lt;li&gt;사이트명 : &lt;a href=&quot;https://www.datensen.com/luna-modeler-for-relational-databases.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.datensen.com/luna-modeler-for-relational-databases.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;특징: PostgreSQL 등 관계형 DB용 데이터 모델링&amp;middot;ERD&amp;middot;SQL 스크립트 생성 도구.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;주요 기능
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;테이블&amp;middot;관계&amp;middot;컬럼 등을 시각적으로 설계하고 ER 다이어그램 작성&lt;/li&gt;
&lt;li&gt;설계 완료 후 PostgreSQL용 DDL SQL 스크립트 자동 생성&lt;/li&gt;
&lt;li&gt;다른 DB 플랫폼에서 PostgreSQL로 변환용 스크립트 생성 기능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;장점
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 모델을 DB 연결 없이 오프라인으로 설계 가능&lt;/li&gt;
&lt;li&gt;복잡한 ER 구조를 시각적으로 관리하여 품질&amp;middot;일관성 향상에 도움&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;단점
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;런타임에서의 관리&amp;middot;모니터링보다는 설계와 스크립트 생성에 특화되어 있어, 일반적인 &amp;ldquo;클라이언트&amp;rdquo; 도구로는 역할이 제한적.&lt;/li&gt;
&lt;li&gt;라이선스/가격 정책은 공식 사이트 확인 필요(본문은 기능 중심 서술).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;사이트명: datensen.com / 공식 제품 페이지 링크 안내&lt;/li&gt;
&lt;li&gt;사용자수(추정): 특정 수치는 언급되지 않았으나, PostgreSQL&amp;middot;ERD 설계용 니치 도구로 홍보.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;라이선스: 상용(유료) 중심 구조로 소개되며, 상세 플랜은 별도.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유료/무료: 유료 중심(평가판 여부는 공식 사이트 확인 필요).&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1250&quot; data-origin-height=&quot;621&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFOZPY/dJMcacn5r54/kDruwXEzopgJPEE4yL31nk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFOZPY/dJMcacn5r54/kDruwXEzopgJPEE4yL31nk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFOZPY/dJMcacn5r54/kDruwXEzopgJPEE4yL31nk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFOZPY%2FdJMcacn5r54%2FkDruwXEzopgJPEE4yL31nk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;695&quot; height=&quot;345&quot; data-origin-width=&quot;1250&quot; data-origin-height=&quot;621&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;636&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0Bzay/dJMcadtIzyH/sR8QXf0k5Hr9b4f8JGP2QK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0Bzay/dJMcadtIzyH/sR8QXf0k5Hr9b4f8JGP2QK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0Bzay/dJMcadtIzyH/sR8QXf0k5Hr9b4f8JGP2QK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0Bzay%2FdJMcadtIzyH%2FsR8QXf0k5Hr9b4f8JGP2QK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;652&quot; height=&quot;451&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;636&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;906&quot; data-origin-height=&quot;324&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c54w6I/dJMcaaw2ths/cIaRLpb3cFvVVY7xp1Zk20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c54w6I/dJMcaaw2ths/cIaRLpb3cFvVVY7xp1Zk20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c54w6I/dJMcaaw2ths/cIaRLpb3cFvVVY7xp1Zk20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc54w6I%2FdJMcaaw2ths%2FcIaRLpb3cFvVVY7xp1Zk20%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;623&quot; height=&quot;223&quot; data-origin-width=&quot;906&quot; data-origin-height=&quot;324&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;무료 PostgreSQL 클라이언트 요약 표&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 표는 질문하신 항목을 중심으로, 대표 무료 사용이 가능한 툴을 비교한 것입니다.[7][6][4][2][1]&lt;/p&gt;
&lt;table style=&quot;width: 775px;&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;width: 775px;&quot; colspan=&quot;8&quot;&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;PostgreSQL 클라이언트&lt;span&gt; 비교&lt;/span&gt;&lt;/h2&gt;
&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 60px;&quot;&gt;솔루션명&lt;/td&gt;
&lt;td style=&quot;width: 122px;&quot;&gt;특징 요약&lt;/td&gt;
&lt;td style=&quot;width: 111px;&quot;&gt;주요 기능(요약)&lt;/td&gt;
&lt;td style=&quot;width: 122px;&quot;&gt;장점 요약&lt;/td&gt;
&lt;td style=&quot;width: 109px;&quot;&gt;단점 요약&lt;/td&gt;
&lt;td style=&quot;width: 97px;&quot;&gt;사용자수&lt;/td&gt;
&lt;td style=&quot;width: 93px;&quot;&gt;라이선스&lt;/td&gt;
&lt;td style=&quot;width: 61px;&quot;&gt;유료/무료&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 60px;&quot;&gt;pgAdmin&lt;/td&gt;
&lt;td style=&quot;width: 122px;&quot;&gt;PostgreSQL 공식 관리 툴, 전용 기능에 최적화&lt;/td&gt;
&lt;td style=&quot;width: 111px;&quot;&gt;객체 관리, SQL 실행, 대시보드 모니터링&lt;/td&gt;
&lt;td style=&quot;width: 122px;&quot;&gt;공식&amp;middot;표준 도구, 기능 풍부, 완전 무료&lt;/td&gt;
&lt;td style=&quot;width: 109px;&quot;&gt;UI 복잡, 무거움, PostgreSQL 전용&lt;/td&gt;
&lt;td style=&quot;width: 97px;&quot;&gt;매우 많음(공식 수치 미공개)[4]&lt;/td&gt;
&lt;td style=&quot;width: 93px;&quot;&gt;오픈소스, 무료[4]&lt;/td&gt;
&lt;td style=&quot;width: 61px;&quot;&gt;무료&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 60px;&quot;&gt;DBeaver CE&lt;/td&gt;
&lt;td style=&quot;width: 122px;&quot;&gt;멀티 DB 범용 클라이언트, Java 기반&lt;/td&gt;
&lt;td style=&quot;width: 111px;&quot;&gt;멀티 DB 접속, SQL/ER, 데이터 편집&lt;/td&gt;
&lt;td style=&quot;width: 122px;&quot;&gt;기능 풍부, 업데이트 활발, 커뮤니티 무료판 존재&lt;/td&gt;
&lt;td style=&quot;width: 109px;&quot;&gt;UI 복잡, 일부 기능 유료판 한정&lt;/td&gt;
&lt;td style=&quot;width: 97px;&quot;&gt;대규모 사용자 추정, 공식 수치 없음&lt;/td&gt;
&lt;td style=&quot;width: 93px;&quot;&gt;CE 오픈소스, PRO 상용&lt;/td&gt;
&lt;td style=&quot;width: 61px;&quot;&gt;무료 + 유료 혼합&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 60px;&quot;&gt;DbGate&lt;/td&gt;
&lt;td style=&quot;width: 122px;&quot;&gt;웹+데스크톱 모두 지원하는 모던 멀티 DB&lt;/td&gt;
&lt;td style=&quot;width: 111px;&quot;&gt;멀티 DB, SQL 실행, 대용량 데이터 처리&lt;/td&gt;
&lt;td style=&quot;width: 122px;&quot;&gt;모던 UI, Docker 등 배포 유연, 무료&amp;middot;오픈소스&lt;/td&gt;
&lt;td style=&quot;width: 109px;&quot;&gt;비교적 신생, 일부 기능은 프리미엄&lt;/td&gt;
&lt;td style=&quot;width: 97px;&quot;&gt;GitHub 중심 활성, 수치 미공개&lt;/td&gt;
&lt;td style=&quot;width: 93px;&quot;&gt;오픈소스 + 프리미엄&lt;/td&gt;
&lt;td style=&quot;width: 61px;&quot;&gt;무료 + 유료 혼합&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 60px;&quot;&gt;HeidiSQL&lt;/td&gt;
&lt;td style=&quot;width: 122px;&quot;&gt;Windows 중심 경량 DB 클라이언트[2]&lt;/td&gt;
&lt;td style=&quot;width: 111px;&quot;&gt;PostgreSQL/MySQL 등 SQL 실행&amp;middot;편집&lt;/td&gt;
&lt;td style=&quot;width: 122px;&quot;&gt;매우 가벼움, 성숙한 안정성, 완전 무료&lt;/td&gt;
&lt;td style=&quot;width: 109px;&quot;&gt;Windows 위주, 구식 UI&lt;/td&gt;
&lt;td style=&quot;width: 97px;&quot;&gt;오래된 프로젝트, 사용자 다수 추정&lt;/td&gt;
&lt;td style=&quot;width: 93px;&quot;&gt;오픈소스, 무료&lt;/td&gt;
&lt;td style=&quot;width: 61px;&quot;&gt;무료&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 60px;&quot;&gt;Beekeeper Studio&lt;/td&gt;
&lt;td style=&quot;width: 122px;&quot;&gt;UX 중심 모던 SQL 에디터&lt;/td&gt;
&lt;td style=&quot;width: 111px;&quot;&gt;멀티 DB, 단순 질의&amp;middot;테이블 조회&lt;/td&gt;
&lt;td style=&quot;width: 122px;&quot;&gt;현대적 UI, 사용성 높음&lt;/td&gt;
&lt;td style=&quot;width: 109px;&quot;&gt;커뮤니티판 제약 많음, 상용화로 제한 증가&lt;/td&gt;
&lt;td style=&quot;width: 97px;&quot;&gt;성장 중, 수치 미공개&lt;/td&gt;
&lt;td style=&quot;width: 93px;&quot;&gt;커뮤니티 오픈소스, Ultimate 상용&lt;/td&gt;
&lt;td style=&quot;width: 61px;&quot;&gt;무료 + 유료 혼합&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 60px;&quot;&gt;Luna Modeler&lt;/td&gt;
&lt;td style=&quot;width: 122px;&quot;&gt;모델링&amp;middot;ERD&amp;middot;SQL 생성 특화&lt;/td&gt;
&lt;td style=&quot;width: 111px;&quot;&gt;ERD 설계, PostgreSQL DDL 생성&lt;/td&gt;
&lt;td style=&quot;width: 122px;&quot;&gt;시각적 설계, 스키마 품질 향상&lt;/td&gt;
&lt;td style=&quot;width: 109px;&quot;&gt;런타임 관리 기능 제한, 사실상 설계용 도구&lt;/td&gt;
&lt;td style=&quot;width: 97px;&quot;&gt;니치 모델링 도구, 수치 미공개&lt;/td&gt;
&lt;td style=&quot;width: 93px;&quot;&gt;상용(세부는 사이트 확인)&lt;/td&gt;
&lt;td style=&quot;width: 61px;&quot;&gt;주로 유료&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;상황별 추천&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;PostgreSQL만 깊게 쓰는 DBA/엔지니어&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;pgAdmin + (필요 시) DBeaver 또는 DbGate 보조.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;여러 DB를 한 툴에서 관리해야 하는 개발자&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DBeaver CE(기본), 가볍고 웹까지 필요한 경우 DbGate 고려.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Windows 위주의 경량 환경, 단순 작업&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;HeidiSQL.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;모던 UI&amp;middot;간단 쿼리 중심&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Beekeeper Studio 커뮤니티 에디션(제약 감수 시).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ERD 설계 후 PostgreSQL 스키마 자동 생성&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Luna Modeler(설계) + pgAdmin/DBeaver/DbGate(실제 배포&amp;middot;운영) 조합.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[참고자료]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1]top5&amp;nbsp;gui&amp;nbsp;clients&amp;nbsp;for&amp;nbsp;psql(&lt;a href=&quot;https://www.datensen.com/blog/postgresql/top-5-gui-tools-for-postgresql/)&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.datensen.com/blog/postgresql/top-5-gui-tools-for-postgresql/)&lt;/a&gt;&amp;nbsp;&lt;br /&gt;[2]free&amp;nbsp;sql&amp;nbsp;clients&amp;nbsp;for&amp;nbsp;psql(&lt;a href=&quot;https://www.dbgate.io/news/2025-02-09-free-postgresql-clients/)&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.dbgate.io/news/2025-02-09-free-postgresql-clients/)&lt;/a&gt;&amp;nbsp;&lt;br /&gt;[3]pgadmin(&lt;a href=&quot;https://www.enterprisedb.com/blog/dashboards-pgadmin-4)&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.enterprisedb.com/blog/dashboards-pgadmin-4)&lt;/a&gt;&amp;nbsp;&lt;br /&gt;[4]pgadmin&amp;nbsp;interface&amp;nbsp;(&lt;a href=&quot;https://www.pgadmin.org/docs/pgadmin4/8.14/user_interface.html)&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.pgadmin.org/docs/pgadmin4/8.14/user_interface.html)&lt;/a&gt;&amp;nbsp;&lt;br /&gt;[5]pgadmin4(&lt;a href=&quot;https://www.pgadmin.org/docs/pgadmin4/9.9/tabbed_browser.html)&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.pgadmin.org/docs/pgadmin4/9.9/tabbed_browser.html)&lt;/a&gt;&amp;nbsp;&lt;br /&gt;[6]pgadmin-for-postgresql(&lt;a href=&quot;https://learnomate.org/pgadmin-for-postgresql-database-management/)&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://learnomate.org/pgadmin-for-postgresql-database-management/)&lt;/a&gt;&amp;nbsp;&lt;br /&gt;[7]dbaver&amp;nbsp;(&lt;a href=&quot;https://dbeaver.io/download/)&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dbeaver.io/download/)&lt;/a&gt;&amp;nbsp;&lt;br /&gt;[8]dbeaver-community(&lt;a href=&quot;https://dbeaver-community.updatestar.com)&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dbeaver-community.updatestar.com)&lt;/a&gt;&amp;nbsp;&lt;br /&gt;[9]dbgate(&lt;a href=&quot;https://github.com/dbgate/dbgate)&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/dbgate/dbgate)&lt;/a&gt;&amp;nbsp;&lt;br /&gt;[10](&lt;a href=&quot;https://github.com/dbgate/dbgate/releases)&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/dbgate/dbgate/releases)&lt;/a&gt;&amp;nbsp;&lt;br /&gt;[11]dbgate(&lt;a href=&quot;https://github.com/janproch/dbgate-svelte)&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/janproch/dbgate-svelte)&lt;/a&gt;&amp;nbsp;&lt;br /&gt;[12]postgresql-mornitoring(&lt;a href=&quot;https://www.postgresql.org/docs/current/monitoring-stats.html)&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.postgresql.org/docs/current/monitoring-stats.html)&lt;/a&gt;&amp;nbsp;&lt;br /&gt;[13]postgresql-mornitoring(&lt;a href=&quot;https://postgresql.kr/docs/9.2/monitoring-stats.html)&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://postgresql.kr/docs/9.2/monitoring-stats.html)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>DevOps</category>
      <category>Beekeeper Studio</category>
      <category>DataGrip vs pgAdmin</category>
      <category>DBeaver Community</category>
      <category>DbGate 리뷰</category>
      <category>HeidiSQL PostgreSQL</category>
      <category>Luna Modeler ERD</category>
      <category>pgAdmin 대안</category>
      <category>PostgreSQL GUI 추천</category>
      <category>PostgreSQL 클라이언트</category>
      <category>무료 PostgreSQL 툴</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/898</guid>
      <comments>https://couplewith.tistory.com/898#entry898comment</comments>
      <pubDate>Tue, 9 Dec 2025 13:52:00 +0900</pubDate>
    </item>
    <item>
      <title>(추천) 소프트웨어 개발을 위한 최고의 실시간 커뮤니케이션 협업 도구</title>
      <link>https://couplewith.tistory.com/897</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byNtxZ/dJMcai9Bw35/YzbCKUWHRohI7YemP871N0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byNtxZ/dJMcai9Bw35/YzbCKUWHRohI7YemP871N0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byNtxZ/dJMcai9Bw35/YzbCKUWHRohI7YemP871N0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyNtxZ%2FdJMcai9Bw35%2FYzbCKUWHRohI7YemP871N0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;1024&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(추천) &lt;b&gt;소프트웨어 개발을 위한 최고의 실시간 커뮤니케이션 협업 도구&lt;/b&gt; : Private 협업 환경 구축 방안&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  &lt;b&gt;개념 정의&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;개발자 실시간 커뮤니케이션 도구&lt;/b&gt;는 &lt;b&gt;코드 리뷰, 버그 디버깅, 배포 알림, 페어 프로그래밍&lt;/b&gt; 등 소프트웨어 개발 워크플로우에서 &lt;b&gt;즉각적인 대화와 협업&lt;/b&gt;을 지원하는 플랫폼입니다.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Private 환경에서 협업 환경 구축을 위한 실시간 커뮤니케이션 도구를 비교해 보았습니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;ㅁ 핵심 요구사항&lt;/b&gt;:&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;✅ GitHub/GitLab/Jira 실시간 통합&lt;br /&gt;✅ 코드 스니펫 공유 (Syntax Highlight)&lt;br /&gt;✅ @멘션 + 스레드 대화&lt;br /&gt;✅ 모바일 푸시 알림&lt;br /&gt;✅ 음성/화상 회의 (Quick Sync-up)&lt;br /&gt;✅ 봇/Webhook 풍부&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;소프트웨어 개발을 위한 최고의 실시간 커뮤니케이션 협업 도구&lt;/b&gt; 특징&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;div_wrap&quot;&gt;- 기준 : 2025년
&lt;table data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;솔루션명&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;주요특징&lt;/td&gt;
&lt;td&gt;오픈소스/라이선스&lt;/td&gt;
&lt;td&gt;유료/무료 사용가능(제한사항)&lt;/td&gt;
&lt;td&gt;가격정책&lt;/td&gt;
&lt;td&gt;폐쇄형 서버 구성가능&lt;/td&gt;
&lt;td&gt;최종 버전&lt;/td&gt;
&lt;td&gt;지원OS&lt;/td&gt;
&lt;td&gt;(RPM,소스) 지원여부&lt;/td&gt;
&lt;td&gt;EOS/EOSL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Rocket.Chat&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;모바일/데스크톱 앱, 푸시,화상/음성 통화, 파일 공유, 플러그인&lt;/td&gt;
&lt;td&gt;MIT (완전 오픈소스)&lt;/td&gt;
&lt;td&gt;무료(Community), 유료(Enterprise 기능 제한)&lt;/td&gt;
&lt;td&gt;Pro: $3/user/mo Enterprise: 맞춤&lt;/td&gt;
&lt;td&gt;O (Self-hosted)&lt;/td&gt;
&lt;td&gt;6.11.x (2025.11)&lt;/td&gt;
&lt;td&gt;Ubuntu, Debian, RHEL, Docker&lt;/td&gt;
&lt;td&gt;O (Snap, Docker, 소스)&lt;/td&gt;
&lt;td&gt;장기 지원 (LTS 3년)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Mattermost&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Slack-like UI, 플레이북, 보안 중심, 엔터프라이즈&lt;/td&gt;
&lt;td&gt;Apache 2.0 + Enterprise&lt;/td&gt;
&lt;td&gt;무료(Team)+Pro($10/user/mo)&lt;/td&gt;
&lt;td&gt;Pro: $10/user/mo Enterprise: 맞춤&lt;/td&gt;
&lt;td&gt;O (Self-hosted)&lt;/td&gt;
&lt;td&gt;10.11.x (2025.11)&lt;/td&gt;
&lt;td&gt;RHEL, Ubuntu, Debian&lt;/td&gt;
&lt;td&gt;O (RPM, DEB, Docker)&lt;/td&gt;
&lt;td&gt;v10.5 EOSL: 2025.11.15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Zulip&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;토픽 기반 스레드, 고급 검색, GitHub 통합&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;td&gt;무료+Business($6.67/user/mo)&lt;/td&gt;
&lt;td&gt;Business: $6.67/user/mo (25인 최소)&lt;/td&gt;
&lt;td&gt;O (Self-hosted)&lt;/td&gt;
&lt;td&gt;10.3.x (2025.10)&lt;/td&gt;
&lt;td&gt;Ubuntu, Debian, Docker&lt;/td&gt;
&lt;td&gt;O (DEB, Docker, 소스)&lt;/td&gt;
&lt;td&gt;장기 지원 (3년)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Element (Matrix)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;분산형, E2E 암호화, 브릿지 지원, 연합&lt;/td&gt;
&lt;td&gt;AGPLv3&lt;/td&gt;
&lt;td&gt;무료+ESS Pro(유료)&lt;/td&gt;
&lt;td&gt;ESS Pro: 맞춤 (LTS $/user)&lt;/td&gt;
&lt;td&gt;O (Self-hosted)&lt;/td&gt;
&lt;td&gt;ESS 25.11.1 (2025.11)&lt;/td&gt;
&lt;td&gt;Ubuntu 20.04/22.04/24.04&lt;/td&gt;
&lt;td&gt;O (DEB, Docker)&lt;/td&gt;
&lt;td&gt;LTS 6개월 주기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Discord&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;고품질 음성/영상, 서버 부스트, 봇 생태계&lt;/td&gt;
&lt;td&gt;Proprietary&lt;/td&gt;
&lt;td&gt;무료+Nitro(개인용)&lt;/td&gt;
&lt;td&gt;Nitro: $2.99~$9.99/mo (개인)&lt;/td&gt;
&lt;td&gt;X (Cloud 전용)&lt;/td&gt;
&lt;td&gt;Stable (2025 최신)&lt;/td&gt;
&lt;td&gt;클라이언트만 (Windows/Mac/Linux)&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;무한 지원 (상업)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Slack&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;워크플로 자동화, AI 기능, 2500+ 앱 통합&lt;/td&gt;
&lt;td&gt;Proprietary&lt;/td&gt;
&lt;td&gt;무료(90일 히스토리 제한)&lt;/td&gt;
&lt;td&gt;Pro: $7.25/user/mo Business+: $12.50&lt;/td&gt;
&lt;td&gt;X (Cloud 전용)&lt;/td&gt;
&lt;td&gt;최신 (2025)&lt;/td&gt;
&lt;td&gt;클라이언트만&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;무한 지원 (상업)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Microsoft Teams&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Office 365 통합, 회의 중심, AI Copilot&lt;/td&gt;
&lt;td&gt;Proprietary&lt;/td&gt;
&lt;td&gt;무료+Microsoft 365 연동&lt;/td&gt;
&lt;td&gt;Business: $6~$22/user/mo Premium: +$10&lt;/td&gt;
&lt;td&gt;X (Cloud 전용)&lt;/td&gt;
&lt;td&gt;최신 (2025)&lt;/td&gt;
&lt;td&gt;클라이언트만&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;무한 지원 (Microsoft)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  비교 요약&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1위 추천: Mattermost&lt;/b&gt;  &lt;/h3&gt;
&lt;pre class=&quot;gcode&quot;&gt;&lt;code&gt;✅ Rocket.Chat, Slack과 가장 유사한 UI/UX
✅ 엔터프라이즈 보안 기능 완벽, ESR(Extended Support Release) 9개월 안정 지원
✅ RPM/DEB 공식 지원 : RHEL 공식 RPM 패키지 제공
✅ 활발한 커뮤니티 + 상용 지원
✅ 폐쇄형 서버 완벽 지원
✅ DevOps 통합 우수 (GitLab/Jenkins)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;**지원 현황&lt;/b&gt;: v10.5 ESR은 2025.11.15 EOSL &amp;rarr; v10.11 ESR로 업그레이드 권장**&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2위 추천: Zulip&lt;/b&gt;  &lt;/h3&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;✅ 완전 무료로 Enterprise급 사용 가능
✅ 스레드 기반 채팅 (토픽 기반) 대화로 효율적
✅ Ubuntu/Debian 최적화 (RPM 미지원)
✅ 가벼운 리소스 사용
✅ 25인 이상 Business 플랜 합리적
✅ 18개월 롱텀 지원&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;지원 현황&lt;/b&gt;: OS EOL과 연동, Ubuntu 22.04 지원&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3위 추천: Element (**&lt;/b&gt;Matrix Synapse)** &lt;/h3&gt;
&lt;pre class=&quot;gcode&quot;&gt;&lt;code&gt;✅ 완전 분산형 아키텍처,분산형 연합 채팅
✅ E2EE 암호화 기본 제공(최고 보안)
✅ Slack/Discord 브릿지 지원
✅ 공공 연합 가능
✅ RHEL EPEL 공식 RPM
✅ 지속 활발 개발 (매월 릴리스)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;지원 현황&lt;/b&gt;: 명시적 EOSL 없음, PostgreSQL 13 지원 중단 (2025)&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. Nextcloud Talk&lt;/b&gt;&lt;/h3&gt;
&lt;pre class=&quot;asciidoc&quot;&gt;&lt;code&gt;- 파일 공유 + 채팅 통합
- Nextcloud Hub 생태계
- RHEL EPEL 지원&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;지원 현황&lt;/b&gt;: N-2 버전 18개월 &amp;rarr; Hub 9 EOL 2025 가을[7][8]&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  선택 가이드&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;폐쇄형 서버 + 무료 &amp;rarr; Zulip 또는 Rocket.Chat&lt;/li&gt;
&lt;li&gt;엔터프라이즈 보안 &amp;rarr; Mattermost&lt;/li&gt;
&lt;li&gt;분산형/연합 &amp;rarr; Element (Matrix)&lt;/li&gt;
&lt;li&gt;클라우드 전용 &amp;rarr; Slack/Teams/Discord&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;⚠️ 주의사항&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Rocket.Chat&lt;/b&gt;: 최근 라이선스 논란으로 일부 &quot;완전 오픈소스&quot; 아님 주장&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mattermost&lt;/b&gt;: v10.5 이후 EOSL 주의 (2025.11 종료)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Discord&lt;/b&gt;: 서버 소스 공개 안됨, 클라우드 의존도 높음&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Slack/Teams&lt;/b&gt;: 데이터 제어 불가, 벤더 락인 위험&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Mattermost + Zulip 조합&lt;/b&gt;으로 Rocket.Chat 완벽 대체 가능!&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  &lt;b&gt;Red Hat 환경 추천 순위&lt;/b&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Mattermost&lt;/b&gt; ⭐⭐⭐
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;RPM 공식 지원, ESR 롱텀 안정성&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo yum install mattermost&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Matrix Synapse&lt;/b&gt; ⭐⭐⭐
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;EPEL RPM, 분산형 보안&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo dnf install matrix-synapse&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Nextcloud Talk&lt;/b&gt; ⭐⭐
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파일 공유 필요시 최적&lt;/li&gt;
&lt;li&gt;Nextcloud와 통합&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  &lt;b&gt;빠른 설치 가이드 (RHEL)&lt;/b&gt;&lt;/h3&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;# Mattermost (RPM)
sudo dnf install https://releases.mattermost.com/10.11.0/mattermost-10.11.0.rhel-9.x86_64.rpm

# Matrix Synapse (EPEL)
sudo dnf install epel-release
sudo dnf install matrix-synapse

# Nextcloud (EPEL)
sudo dnf install epel-release
sudo dnf install nextcloud&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;# 소프트웨어 개발을 위한 최고의 실시간 커뮤니케이션 협업 도구 (추천)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Mattermost가 Rocket.Chat의 가장 완벽한 오픈소스 실시간 커뮤니케이션 / 협업 도구의 대안&lt;/b&gt;으로 추천 합니다. RHEL 환경에서 공식 RPM과 ESR 롱텀 지원으로 안정적 운영 가능한 부분으로 쉽게 구축 가능 합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;</description>
      <category>DevOps</category>
      <category>Private Chat</category>
      <category>Rocket.chat 대체</category>
      <category>개발 커뮤니케이션 도구</category>
      <category>개발커뮤니케이션</category>
      <category>소프트웨어 개발 협업 도구</category>
      <category>소프트웨어 개발을 위한 최고의 실시간 커뮤니케이션 협업 도구</category>
      <category>실시간 커뮤니케이션 도구</category>
      <category>오픈소스 개발 소통 채널</category>
      <category>오픈소스 협업도구</category>
      <category>채팅환경</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/897</guid>
      <comments>https://couplewith.tistory.com/897#entry897comment</comments>
      <pubDate>Fri, 5 Dec 2025 15:47:06 +0900</pubDate>
    </item>
    <item>
      <title>리눅스에서 숫자 계정 생성 정책 허용 (useradd --badname 활용)</title>
      <link>https://couplewith.tistory.com/896</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;384&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1hcZp/dJMcaiBMFRV/DpczfloKXKwPLyPmK4kcB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1hcZp/dJMcaiBMFRV/DpczfloKXKwPLyPmK4kcB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1hcZp/dJMcaiBMFRV/DpczfloKXKwPLyPmK4kcB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1hcZp%2FdJMcaiBMFRV%2FDpczfloKXKwPLyPmK4kcB0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;384&quot; height=&quot;384&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;384&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;리눅스에서&amp;nbsp;숫자&amp;nbsp;계정&amp;nbsp;생성&amp;nbsp;정책&amp;nbsp;허용&amp;nbsp;(useradd&amp;nbsp;--badname&amp;nbsp;활용)&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;Linux에서 사용자 이름은 일반적으로 소문자 알파벳으로 시작해야 하며, 완전 숫자 이름은 기본적으로 금지하고 있습니다.&lt;br /&gt;&lt;br /&gt;숫자로 구성된 계정생성이 실패하는 경우 강제로 계정을 만들기 위해 다음과 같이 &quot;--badname&quot;을 입력 하 계정을 생성 할 수 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;--badname : 를 이용하여 숫자 계정 사용자 추가&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# useradd: invalid user name use --badname to ignore

useradd --badname &quot;11111&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㅁ &quot;[리눅스] useradd &quot;invalid user name '11111'&quot; 오류 해결&quot;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#sudo useradd -u 3000 -m -s /bin/bash 11111&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;useradd: invalid user name '11111': use --badname to ignore&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;위와 같이 useradd 명령어가 &quot;invalid user name '11111'&quot; 오류를 발생시키는 이유는 사용자 이름이 숫자로만 구성되어 있기 때문입니다.&lt;br /&gt;이 제한은 /etc/login.defs의 NAME_REGEX 설정이나 shadow 유틸리티의 기본 규칙에 의해 적용되며, 시스템 안정성과 충돌 방지를 위한 것입니다&lt;br /&gt;다음과 같이 &quot;--badname&quot; 을 이용하여 강제적으로 사용자 &quot;11111&quot;을 추가 할 수 있습니다.&lt;/p&gt;
&lt;pre class=&quot;yaml&quot;&gt;&lt;code&gt;# --badname 옵션을 추가하여 이름 검증을 무시하고 사용자를 생성
sudo useradd --badname -u 3000 -m -s /bin/bash 11111 &amp;amp;&amp;amp; sudo passwd 11111&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;&lt;b&gt;ㅁ useradd 옵션 비교&lt;/b&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;div&gt;
&lt;table style=&quot;text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;옵션&lt;/td&gt;
&lt;td&gt;기능&lt;/td&gt;
&lt;td&gt;배포본&lt;/td&gt;
&lt;td&gt;작동여부&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;--badname&lt;/td&gt;
&lt;td&gt;이름 검증 무시&lt;/td&gt;
&lt;td&gt;RedHat, CentOS, Ubuntu&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;--force-badname&lt;/td&gt;
&lt;td&gt;강제 이름 허용&lt;/td&gt;
&lt;td&gt;일부 최신 버전&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;기본 (없이)&lt;/td&gt;
&lt;td&gt;엄격한 이름 규칙&lt;/td&gt;
&lt;td&gt;모든 배포본&lt;/td&gt;
&lt;td&gt;❌ (숫자 이름 불가)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>InfraPlatform</category>
      <category>badname</category>
      <category>useradd &amp;quot;invalid user name&amp;quot;</category>
      <category>useradd 계정생성</category>
      <category>강제 계정생성</category>
      <category>계정생성</category>
      <category>계정정책</category>
      <category>리눅스 명령어</category>
      <category>숫자계정</category>
      <category>숫자로 구성된 계정 생성</category>
      <category>시스템관리</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/896</guid>
      <comments>https://couplewith.tistory.com/896#entry896comment</comments>
      <pubDate>Sat, 29 Nov 2025 01:26:31 +0900</pubDate>
    </item>
    <item>
      <title>매월 높은 이자를 지급하는 안정적인 - 핀크온투업 서비스 이용 후기 - 핀크Pick -</title>
      <link>https://couplewith.tistory.com/895</link>
      <description>&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;601&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K5Z2P/dJMcahQniT5/4mZ5IOmzXn9wSKEBtaHZPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K5Z2P/dJMcahQniT5/4mZ5IOmzXn9wSKEBtaHZPk/img.png&quot; data-alt=&quot;핀크온투업-온투업투자&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K5Z2P/dJMcahQniT5/4mZ5IOmzXn9wSKEBtaHZPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK5Z2P%2FdJMcahQniT5%2F4mZ5IOmzXn9wSKEBtaHZPk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;367&quot; height=&quot;368&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;601&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;핀크온투업-온투업투자&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;매월 높은 이자를 지급하는 안정적인 - 핀크온투업 서비스 이용 후기 - 핀크Pick -&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;하나금융 핀테크 전문 회사 &quot;핀크&quot;&lt;/b&gt;에서&amp;nbsp; &lt;b&gt;(온투업투자)&lt;/b&gt; &lt;b&gt;&lt;u&gt;상품을 중개하는 서비스&lt;/u&gt;&lt;/b&gt;를 오픈 하였다고 합니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;온라인P2P투자(온투업투자)&lt;/b&gt;라고 하면&amp;nbsp; 높은 수익율을 제공하지만&amp;nbsp; 리스크가 많아 불안하게 느껴지는 분야이기도 합니다.&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;&amp;nbsp;- 안정적이고 높은 수익이 가능한 투자처가 있을까 !! --&lt;/b&gt;&lt;br&gt;&amp;nbsp;많은 분들이 은행이나 보험, 증권, 저축은행에서 적금과 투자를&amp;nbsp; 하고 있지만,&amp;nbsp; &lt;br&gt;안정적인 수익은 보장 받지만,&amp;nbsp; 적은 이자율로 투자를 해도 수익에서는&amp;nbsp; 만족을 느끼지는 못합니다.&amp;nbsp;&lt;br&gt;&lt;b&gt;온투업 투자는 매월 높은 이자가 지급되면서&amp;nbsp; 주식의 ETF 같은 장점도 있습니다.&lt;/b&gt; &lt;br&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;674&quot; data-origin-height=&quot;198&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biZb1A/dJMcaawW1Gq/YOukWLtG6PBhGgk84c1Oi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biZb1A/dJMcaawW1Gq/YOukWLtG6PBhGgk84c1Oi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biZb1A/dJMcaawW1Gq/YOukWLtG6PBhGgk84c1Oi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiZb1A%2FdJMcaawW1Gq%2FYOukWLtG6PBhGgk84c1Oi1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;674&quot; height=&quot;198&quot; data-origin-width=&quot;674&quot; data-origin-height=&quot;198&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #5733B1;&quot;&gt;핀크에서 런칭한 온라인투자 서비스&amp;nbsp; &amp;nbsp;-&amp;nbsp; &lt;b&gt;&quot;핀크Pick&quot;&lt;/b&gt; 상품에 주목&lt;/span&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;불안했던 온라인 투자 서비스 시장에서 상품의 안정성을 한번더 검증한 상품을&amp;nbsp; &quot;핀크Pick&quot;이라고 합니다.&lt;/b&gt;&lt;br&gt;같은 온라인 투자 상품이지만 한번더 검증하고, 수익율이 높고 안정적인 상품으로&amp;nbsp; 제공한다는 것이 무엇보다 만족스럽습니다.&lt;br&gt;처음에는 이러한 서비스가 있는줄도 모르는 분들이 대부분인 &quot;온라인투자&quot; 상품은 요즘같이&amp;nbsp; 대출제한으로 급한 대출을 받지 못하는 시장에서 저신용자 분들도 있지만, &lt;b&gt;고신용자 분들도 온라인 P2P로 대출을 받고 있어요.&lt;/b&gt;&lt;br&gt;그래서 더 안정적인 상품들도 많이 있다는 점도 알게 되었습니다.&lt;br&gt;투자자 보호를 신경쓰고 , 안전한 신용 대출을 중개하는&amp;nbsp; &quot;핀크Pick&quot; 상품은 서울,과천,분당 지역의 아파트 담보나 신용이 높은 분들의 대출을 중개하는 상품으로 더 안전한 상품이라고 볼 수 있습니다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;642&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAvfLH/dJMcaihrM5z/cJC8KuYNV3c9NLNHB8cRi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAvfLH/dJMcaihrM5z/cJC8KuYNV3c9NLNHB8cRi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAvfLH/dJMcaihrM5z/cJC8KuYNV3c9NLNHB8cRi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAvfLH%2FdJMcaihrM5z%2FcJC8KuYNV3c9NLNHB8cRi0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;464&quot; height=&quot;276&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;642&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p7yyU/dJMcadG98cv/qCciKcFnBmkhBeHu8exnTk/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p7yyU/dJMcadG98cv/qCciKcFnBmkhBeHu8exnTk/tfile.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1458&quot; style=&quot;width: 53.4642%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p7yyU/dJMcadG98cv/qCciKcFnBmkhBeHu8exnTk/tfile.jpg&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp7yyU%2FdJMcadG98cv%2FqCciKcFnBmkhBeHu8exnTk%2Ftfile.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1458&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beLmpp/dJMcaaX1eIb/YPMCOXOmVTKUPa8OmCMhw0/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beLmpp/dJMcaaX1eIb/YPMCOXOmVTKUPa8OmCMhw0/tfile.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1718&quot; style=&quot;width: 45.373%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beLmpp/dJMcaaX1eIb/YPMCOXOmVTKUPa8OmCMhw0/tfile.jpg&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeLmpp%2FdJMcaaX1eIb%2FYPMCOXOmVTKUPa8OmCMhw0%2Ftfile.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1718&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;핀크Pick상품이란 - 핀크온투업-온투업투자&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot;&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;ㅁ 온라인 투자연계 금융업이란 ?&lt;/b&gt;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PMVpy/dJMcadG98cx/X0k79yF9DMPEUpDF6IDCi1/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PMVpy/dJMcadG98cx/X0k79yF9DMPEUpDF6IDCi1/tfile.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1961&quot; style=&quot;width: 46.8051%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PMVpy/dJMcadG98cx/X0k79yF9DMPEUpDF6IDCi1/tfile.jpg&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPMVpy%2FdJMcadG98cx%2FX0k79yF9DMPEUpDF6IDCi1%2Ftfile.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1961&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDgipc/dJMcadG98cA/nyKPC3aZkwztLyKS56mup0/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDgipc/dJMcadG98cA/nyKPC3aZkwztLyKS56mup0/tfile.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1764&quot; style=&quot;width: 52.0322%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDgipc/dJMcadG98cA/nyKPC3aZkwztLyKS56mup0/tfile.jpg&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDgipc%2FdJMcadG98cA%2FnyKPC3aZkwztLyKS56mup0%2Ftfile.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1764&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;온라인투자중계금융업-핀크온투업 투자&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;온라인 투자 연계 상품이란&lt;/b&gt; &lt;br&gt;온라인 플랫폼을 통해 투자자를 모집하고, 그 자금을 대출자에게 연결해주는 금융 서비스를 의미합니다. 투자자는 대출자에게 빌려준 금액에 대해 매월 이자를 받으며, 주로 아파트 담보나 신용도가 높은 대출자를 대상으로 한 안전한 상품들이 많습니다. &lt;b&gt;은행 에스크로 계좌를 통해 자금을 안전하게 관리하며, 대출자의 신용도와 담보 비율을 꼼꼼히 검증하여 투자자 보호에 신경 쓰는 점이 특징&lt;/b&gt;입니다.&lt;br&gt;&lt;br&gt;온라인 투자 연계 상품은 &lt;b&gt;&lt;u&gt;전통적인 은행 예금보다 상대적으로 높은 수익을 기대할 수 있으면서도, 담보 설정과 대출자의 신용 평가 등 안전장치를 갖추고 있어 안정적인 수익을 원하는 투자자들에게 적합한 투자 방법입니다&lt;/u&gt;&lt;/b&gt;. 또한, 핀크Pick 같은 검증된 온라인투자 플랫폼을 통해 투자가 이루어지며, 투자 금액과 예상 수익을 미리 확인할 수 있어 접근성이 좋습니다.&amp;nbsp;&lt;/blockquote&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;핀크Pick은&lt;/b&gt;&lt;br&gt;하나금융그룹의 핀크에서 제공하는 온라인 투자 연계 상품 중 엄선된 온라인투자상품 브랜드입니다. &lt;br&gt;핀크가 직접 검증하고 일부를 법인 투자자로서 참여하는 상품으로, 서울·과천·분당 등 부동산 담보와 신용도 높은 대출자를 대상으로 합니다. 담보물의 소유관계와 권리선순위, 담보가액 등 공적 데이터를 교차 검증해 투자 정보를 투명하게 제공하며, 연 8~14.5%의 세전 수익률이 기대됩니다. 핀크Pick은 투자자 보호를 최우선으로 하여 권원보험, 매입확약 등 원금과 이자 회수 장치를 갖추고 있습니다.&lt;/blockquote&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;figure data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;friends1&quot; data-emoticon-name=&quot;003&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/003.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/003.gif&quot; width=&quot;150&quot;&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;ㅁ 온라인투자상품&amp;nbsp; 이렇게&amp;nbsp; 투자를 시작해 보세요&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;가입하면 5천원을 드립니다.&lt;br&gt;&lt;/span&gt;&amp;nbsp;- 온투가 무엇인지 모르시거나 두려움이 있다면 ..&lt;br&gt;&lt;b&gt;핀크온라인투자 서비스에 가입하고&amp;nbsp; 지급되는&amp;nbsp; 5천원 쿠폰으로 투자를 해보세요&amp;nbsp;&lt;/b&gt;&lt;/blockquote&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;br&gt;&lt;a href=&quot;https://pop.finnq.com/event/p2p/P2PBridge.html?productId=CP0000361&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;(상품링크) 서울 도봉구 창동 동아 아파트 투자상품을 핀크에서 확인해 보세요.&lt;/span&gt;&lt;/a&gt;&lt;br&gt;&amp;nbsp;- https://pop.finnq.com/event/p2p/P2PBridge.html?productId=CP0000361&lt;/blockquote&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 핀크 앱 설치&amp;nbsp;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Google / Apple App Store에서 &quot;핀크&quot; 를 검색하고 앱을 설치합니다.&lt;/b&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1079&quot; data-origin-height=&quot;273&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZqwsE/dJMcadG98Di/UyXf3xskdgq9BbkIkYTaY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZqwsE/dJMcadG98Di/UyXf3xskdgq9BbkIkYTaY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZqwsE/dJMcadG98Di/UyXf3xskdgq9BbkIkYTaY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZqwsE%2FdJMcadG98Di%2FUyXf3xskdgq9BbkIkYTaY1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;489&quot; height=&quot;124&quot; data-origin-width=&quot;1079&quot; data-origin-height=&quot;273&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 온라인투자를 위해서 은행 에스크로 계좌를 연동합니다.&amp;nbsp;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;br&gt;내가 가지고 있는 은행 계좌를&amp;nbsp; 은행 에스크로 계좌에 충전하여 투자가 가능합니다.&lt;br&gt;&amp;nbsp;등록금 납입처럼 에스크로 계좌를 이용하므로 개인정보나&amp;nbsp; 금융정보가 외부로 유출되지 않습니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1597&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIKCtM/dJMcadG98cy/0DqBskovVdQomob7jU3vcK/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIKCtM/dJMcadG98cy/0DqBskovVdQomob7jU3vcK/tfile.jpg&quot; data-alt=&quot;핀크온투 - 가입 -투자방법&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIKCtM/dJMcadG98cy/0DqBskovVdQomob7jU3vcK/tfile.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIKCtM%2FdJMcadG98cy%2F0DqBskovVdQomob7jU3vcK%2Ftfile.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;444&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1597&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;핀크온투 - 가입 -투자방법&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 온라인투자 관련 상품 투자 방법들의 가이드를 살펴 봅니다.&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;. 온라인투자의 특성과 리스크를 잘 읽어보시고 , &quot;핀크Pick&quot;이 어떤 도움이 되는지 살펴보세요.&amp;nbsp;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 다음과 같은 온라인투자연계업과&amp;nbsp; 투자 상품들은 어떤것을 보아야 하는지 이해하는 것도 좋은 과정입니다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;759&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5YCqa/dJMcadG99FA/lU4xMKRrVgzSvn6BmPAEd0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5YCqa/dJMcadG99FA/lU4xMKRrVgzSvn6BmPAEd0/img.png&quot; data-alt=&quot;핀크온투 - 투자상품 리스크&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5YCqa/dJMcadG99FA/lU4xMKRrVgzSvn6BmPAEd0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5YCqa%2FdJMcadG99FA%2FlU4xMKRrVgzSvn6BmPAEd0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;760&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;759&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;핀크온투 - 투자상품 리스크&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;br&gt;꼭 처음부터 많은 돈을 투자하지 않아도 되요 ..&amp;nbsp; 가입 축하금으로 지급되는 5천원 부터 투자를 해보면서 어떤 상품구조 인지도 보세요.&lt;/p&gt;&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;투자를 하면 매월 이자가 지급됩니다.&amp;nbsp; &amp;nbsp;&lt;br&gt;ETF투자 상품처럼 1년 ~2년 계약된 금액이 매월 지급된다는 점이 좋습니다.&lt;/span&gt;&lt;/blockquote&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot;&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;4.&amp;nbsp; &quot;핀크&quot; 앱의 홈에서&amp;nbsp; 모집 중인 상품들을 살펴 봅니다.&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp; &amp;nbsp;* 핀크Pick 상품 과&amp;nbsp; 일반상품의 차이도 비교 해 보면서 가입시 지급했던 쿠폰과 투자금을 충전해서 투자를 하면됩니다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;다음과 같은&amp;nbsp; 핀크Pick 상품을 눈여겨 봅니다.&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://pop.finnq.com/event/p2p/P2PBridge.html?productId=CP0000361&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;(상품링크) 서울 도봉구 창동 동아 아파트 투자상품을 핀크에서 확인해 보세요.&lt;/span&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1063&quot; data-origin-height=&quot;708&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpbOIt/dJMcahJCnaT/wk89QxDXKagoUzeySiKjr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpbOIt/dJMcahJCnaT/wk89QxDXKagoUzeySiKjr0/img.png&quot; data-alt=&quot;핀크온투 - 핀크Pick상품&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpbOIt/dJMcahJCnaT/wk89QxDXKagoUzeySiKjr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpbOIt%2FdJMcahJCnaT%2Fwk89QxDXKagoUzeySiKjr0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;537&quot; height=&quot;358&quot; data-origin-width=&quot;1063&quot; data-origin-height=&quot;708&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;핀크온투 - 핀크Pick상품&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1736&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMhUHw/dJMcadmQSN6/KbUtrYjsvdTVJ7VNWJSBMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMhUHw/dJMcadmQSN6/KbUtrYjsvdTVJ7VNWJSBMk/img.png&quot; data-alt=&quot;핀크온투 - 핀크Pick상품 상세정보&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMhUHw/dJMcadmQSN6/KbUtrYjsvdTVJ7VNWJSBMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMhUHw%2FdJMcadmQSN6%2FKbUtrYjsvdTVJ7VNWJSBMk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;643&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1736&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;핀크온투 - 핀크Pick상품 상세정보&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 1&amp;nbsp; &quot;상품의 감정가&quot; 와 대출금액 대비&amp;nbsp; &quot;근저당 비율&quot; 인 유효담보비율을 확인합니다.&lt;/h3&gt;&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 감정가가 9.9억이고 선순위 대출 담보가 3.8억이면서&amp;nbsp; &amp;nbsp;대출은 8천만원 모집하는 상품입니다.&lt;/span&gt; &lt;/u&gt;&lt;/b&gt;&lt;/blockquote&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;아래와 같이 유효담보비율 (자산가치 대비 근저당 설정이 되어 있는 담보율)이 적정한지 보세요&lt;br&gt;50%이하이면 안전하지 않을까요 ?&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1052&quot; data-origin-height=&quot;1661&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l74dp/dJMcadNVjmG/X8uZ0nnV69Ksfdgv2BHhx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l74dp/dJMcadNVjmG/X8uZ0nnV69Ksfdgv2BHhx0/img.png&quot; data-alt=&quot;핀크온투 - 유효담보비율&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l74dp/dJMcadNVjmG/X8uZ0nnV69Ksfdgv2BHhx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl74dp%2FdJMcadNVjmG%2FX8uZ0nnV69Ksfdgv2BHhx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;474&quot; data-origin-width=&quot;1052&quot; data-origin-height=&quot;1661&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;핀크온투 - 유효담보비율&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;4.2&amp;nbsp; &quot;대출자의 신용도&quot; 를 확인합니다.&amp;nbsp;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 대출자의 신용도에 대한 내용을 상세하게 볼 수 있습니다.&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1041&quot; data-origin-height=&quot;1734&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/laHpu/dJMcagKHvD6/hcAn74K5dZaWPwz8sfyWIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/laHpu/dJMcagKHvD6/hcAn74K5dZaWPwz8sfyWIK/img.png&quot; data-alt=&quot;핀크온투 투자- 대출자신용도 확인&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/laHpu/dJMcagKHvD6/hcAn74K5dZaWPwz8sfyWIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlaHpu%2FdJMcagKHvD6%2FhcAn74K5dZaWPwz8sfyWIK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;500&quot; data-origin-width=&quot;1041&quot; data-origin-height=&quot;1734&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;핀크온투 투자- 대출자신용도 확인&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;4.3&amp;nbsp; &quot;투자하기&quot; 전에 한번 더 확인해봅니다.&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 대출자가 이자를 납입하지 못하면 아래와 같이 권원보험과, 매입확약으로 원급을 회수하여 이자를 지급하게 됩니다.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1357&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sUBJp/dJMcaa4MExB/zoufKq0zZw805IsesuVrl1/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sUBJp/dJMcaa4MExB/zoufKq0zZw805IsesuVrl1/tfile.jpg&quot; data-alt=&quot;핀크온투 투자- 투자하기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sUBJp/dJMcaa4MExB/zoufKq0zZw805IsesuVrl1/tfile.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsUBJp%2FdJMcaa4MExB%2FzoufKq0zZw805IsesuVrl1%2Ftfile.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;377&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1357&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;핀크온투 투자- 투자하기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot;&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;4.4&amp;nbsp; &quot;투자하기&quot;&amp;nbsp; 한번 해봅니다.&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 투자를 하려면 아래와 같이&amp;nbsp; 에스크로 계좌에 (전북은행) 계좌로 충전을 해서 투자가 가능합니다.&lt;br&gt;&lt;br&gt;&lt;b&gt;&quot;투자하기&quot;&lt;/b&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;에스크로 계좌와 본인의 은행 계좌를 연결하여 충전하도록 하고 있습니다. 아래와 같이 미리 설정한 은행에서 에스크로 계좌로 송금을 하면 충전이 됩니다.&lt;br&gt;&lt;br&gt;&lt;b&gt;&quot;충전하기&quot;&lt;/b&gt;&lt;br&gt;충전금이 없으면&amp;nbsp; 충전을 해야 합니다. &lt;b&gt;&quot;충전하기&quot;&lt;/b&gt;를 누르면 해당 은행앱으로 이동을 합니다.&amp;nbsp; 은행앱으로 이동 하기전에 &quot;계좌복사&quot; 를 하고 &quot;공식앱열기&quot;를 눌러 주세요 . 그리고 해당 은행에서 복사한 계좌(크플:제휴사)로 송금을 하여 충전합니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;다시 &quot;투자하기&quot;&amp;nbsp; 한번더&lt;/b&gt;&lt;br&gt;&lt;b&gt;다시 핀크 앱으로 돌아 오셔야 해요&amp;nbsp; &amp;gt;&amp;gt; 우측 상단의 &quot;x&quot; 표시를 닫고 다시&amp;nbsp; &quot;투자하기&quot; 화면으로 이동 하면 됩니다&lt;/b&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;687&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvcekP/dJMcaa4MExx/ikTEmEzxgwnEOQWvsujmHK/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvcekP/dJMcaa4MExx/ikTEmEzxgwnEOQWvsujmHK/tfile.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvcekP/dJMcaa4MExx/ikTEmEzxgwnEOQWvsujmHK/tfile.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvcekP%2FdJMcaa4MExx%2FikTEmEzxgwnEOQWvsujmHK%2Ftfile.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;191&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;687&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;2186&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNOnZ3/dJMcacVPNad/w4yntObgGpZKEKtoOjq3x1/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNOnZ3/dJMcacVPNad/w4yntObgGpZKEKtoOjq3x1/tfile.jpg&quot; data-alt=&quot;계좌복사후 은행 앱으로 가서 송금을 합니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNOnZ3/dJMcacVPNad/w4yntObgGpZKEKtoOjq3x1/tfile.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNOnZ3%2FdJMcacVPNad%2Fw4yntObgGpZKEKtoOjq3x1%2Ftfile.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;607&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;2186&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;계좌복사후 은행 앱으로 가서 송금을 합니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot;&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;4.5&amp;nbsp; &quot;투자하기&quot;&amp;nbsp; &amp;nbsp;상세 정보를 확인합니다.&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 아래와 같이 투자 금액과 투자예상 수익을 확인하고&amp;nbsp; &quot;투자하기&quot; 를 진행 하면 끝입니다.&lt;br&gt;&amp;nbsp; &amp;nbsp; 투자하는 과정이 어렵지만 실제 여러번 해보면 좀더 익숙해 질듯 합니다. 은행 이나 증권 계좌 처음 만들때도 어려웠는데&amp;nbsp; 온라인투자도 새로운 방식이라 어렵게 느껴 질수 있지만&lt;br&gt;여러번 하다 보면 꼼꼼한 익숙해 지겠지요 .. 그러나 여러 과정들이 있어더 좀더&amp;nbsp; 안전한 투자가 될 것이라는 점도 보셔야 합니다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1683&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Nqp6p/dJMb995SOyK/kOomQsz838j1Uy0NhNGwe1/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Nqp6p/dJMb995SOyK/kOomQsz838j1Uy0NhNGwe1/tfile.jpg&quot; data-alt=&quot;투자하기-온투업투자&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Nqp6p/dJMb995SOyK/kOomQsz838j1Uy0NhNGwe1/tfile.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNqp6p%2FdJMb995SOyK%2FkOomQsz838j1Uy0NhNGwe1%2Ftfile.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;468&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1683&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;투자하기-온투업투자&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;friends1&quot; data-emoticon-name=&quot;007&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/007.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/007.gif&quot; width=&quot;150&quot;&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;드디어 성공 했습니다.~~~~~&amp;nbsp; &amp;nbsp;매월 ETF처럼 이자 받을수도 있겠네요&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;한가지 상품에 많은 투자보다&amp;nbsp; 건전한 상품에 나누어 투자하는 전략도 좋은 방법 같습니다.&lt;br&gt;&lt;/span&gt;&lt;b&gt;한달에 10만원씩 한가지 상품에 투자하면 10만원 적금이 된다고 생각하면 좀더 이해가 쉬울듯 합니다.&lt;/b&gt;&lt;/blockquote&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;좋은 수익 투자처에 대하여&amp;nbsp; 조금씩 배워가면서 새로운 투자 방식을 알아 보았습니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;(참고)&lt;br&gt;■ 핀크 온라인투자연계금융업 사용후기 따라하기&lt;br&gt;&lt;a href=&quot;https://blog.naver.com/agilebus/224086611277&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://blog.naver.com/agilebus/224086611277&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;매월 높은 이자를 지급하는 안정적인  핀크온투업 서비스 이용 후기 - 핀크Pick&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;#핀크 #핀크온투업 #핀크Pick #온투업투자 #하나임직원이벤트 #온라인P2P투자, #안전한온투투자가이드, ...&quot; data-og-host=&quot;blog.naver.com&quot; data-og-source-url=&quot;https://blog.naver.com/agilebus/224086611277&quot; data-og-image=&quot;https://blog.kakaocdn.net/dna/i94XU/hyZOOkBfc5/AAAAAAAAAAAAAAAAAAAAAJsUmQRh9RbZsC_ZlUy32b5Q56-dnM19YK_1p5mpyNDx/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1767193199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=QJHG1G793rTjIqBj7hqdTdJ8xDw%3D&quot; data-og-url=&quot;https://blog.naver.com/agilebus/224086611277&quot;&gt;&lt;a href=&quot;https://blog.naver.com/agilebus/224086611277&quot; target=&quot;_blank&quot; data-source-url=&quot;https://blog.naver.com/agilebus/224086611277&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://blog.kakaocdn.net/dna/i94XU/hyZOOkBfc5/AAAAAAAAAAAAAAAAAAAAAJsUmQRh9RbZsC_ZlUy32b5Q56-dnM19YK_1p5mpyNDx/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1767193199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=QJHG1G793rTjIqBj7hqdTdJ8xDw%3D')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;매월 높은 이자를 지급하는 안정적인&amp;nbsp;&amp;nbsp;핀크온투업 서비스 이용 후기 - 핀크Pick&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;#핀크 #핀크온투업 #핀크Pick #온투업투자 #하나임직원이벤트 #온라인P2P투자, #안전한온투투자가이드, ...&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;blog.naver.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;br&gt;■ 하나금융그룹의 핀테크 계열사 핀크가 금융권 최초로 ‘온투업 연계투자상품 비교·추천 서비스’를 공식 출시&lt;br&gt;&lt;br&gt;■ 투명하게 비교·검증한 온투 금융상품을 간편하게 투자하기&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://www.finnq.com/service/p2p&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://www.finnq.com/service/p2p&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;핀크 투자하기 - 온투 금융상품 비교 및 간편투자&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;핀크가 직접 검증한 온투금융상품만 제공합니다. 지금 핀크에서 쉽고 빠르게 투자해보세요.&quot; data-og-host=&quot;www.finnq.com&quot; data-og-source-url=&quot;https://www.finnq.com/service/p2p&quot; data-og-image=&quot;https://blog.kakaocdn.net/dna/bwKqrV/hyZOGtky6b/AAAAAAAAAAAAAAAAAAAAAPg6cw1A5S2-LTFVCa8salHhQqT_XlEJQ-VpdM27ZenE/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1767193199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=N9ITPDHfBJ%2F1u1wNVFhoxvqukms%3D&quot; data-og-url=&quot;https://www.finnq.com/service/p2p&quot;&gt;&lt;a href=&quot;https://www.finnq.com/service/p2p&quot; target=&quot;_blank&quot; data-source-url=&quot;https://www.finnq.com/service/p2p&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://blog.kakaocdn.net/dna/bwKqrV/hyZOGtky6b/AAAAAAAAAAAAAAAAAAAAAPg6cw1A5S2-LTFVCa8salHhQqT_XlEJQ-VpdM27ZenE/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1767193199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=N9ITPDHfBJ%2F1u1wNVFhoxvqukms%3D')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;핀크 투자하기 - 온투 금융상품 비교 및 간편투자&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;핀크가 직접 검증한 온투금융상품만 제공합니다. 지금 핀크에서 쉽고 빠르게 투자해보세요.&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;www.finnq.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;</description>
      <category>Tech-Trends</category>
      <category>안전한온라인투자방법</category>
      <category>안전한온투투자가이드</category>
      <category>온라인P2P투자</category>
      <category>온라인투자서비스</category>
      <category>온라인투자연계금융업 따라하기</category>
      <category>온투업투자</category>
      <category>핀크Pick</category>
      <category>핀크온투서비스</category>
      <category>핀크온투업</category>
      <category>하나임직원이벤트</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/895</guid>
      <comments>https://couplewith.tistory.com/895#entry895comment</comments>
      <pubDate>Mon, 24 Nov 2025 16:15:09 +0900</pubDate>
    </item>
    <item>
      <title>볼보 건설장비 위치 정보 종합 - 지도맵 만들기</title>
      <link>https://couplewith.tistory.com/894</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;# 볼보 건설장비 위치 정보 종합 - 지도맵 만들기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;다음과 같은 지도에 주소 정보를 매핑하는 방법을 소개 드립니다.&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; [첨부소스]&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bs7xvk/dJMcafdXh98/V5DUpEUgWcOqUSYUm40720/%EC%A0%95%EB%B9%84%EC%84%BC%ED%84%B0%EC%9C%84%EC%B9%98_volvos.html?attach=1&amp;amp;knm=tfile.html&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;정비센터위치_volvos.html&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.01MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;834&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tEA8i/dJMcabvQ898/3xKWPCQQJLk588aC1KDni0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tEA8i/dJMcabvQ898/3xKWPCQQJLk588aC1KDni0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tEA8i/dJMcabvQ898/3xKWPCQQJLk588aC1KDni0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtEA8i%2FdJMcabvQ898%2F3xKWPCQQJLk588aC1KDni0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;597&quot; height=&quot;834&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;834&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;볼보 건설기계 정비센터와 부품 대리점 위치를 지도로 맵을 작성하는 것을 해 보았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요즘은 GPT(코파일럿, 재미나이, 퍼플렉시티, 챗GPT, 클로드 등) 어떤 것을 이용해도 아래와 같은 결과를 얻을수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(중요) GPT에게 일을 시키려면 다만 이런 지도에 맵핑하는 방법의 기본적인 작동 원리는&amp;nbsp; 알아야 겠지요 ^^&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;0 단계 : 볼보 정비 센터의 주소 정보를 수집 합니다.&lt;/h4&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; -&amp;nbsp; (볼보건설기계 전국 영업 지사)&amp;nbsp; &lt;a href=&quot;https://www.volvoce.com/south-korea/ko-kr/contact-us/dealer/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.volvoce.com/south-korea/ko-kr/contact-us/dealer/&lt;/a&gt;&lt;br /&gt;&amp;nbsp; - (볼보순정부품 대리점 현황 ) &lt;a href=&quot;http://seannivy.com/volvo/site/volvocekr.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;http://seannivy.com/volvo/site/volvocekr.html&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; -&amp;nbsp; 위의 사이트에서 notepad 창을 열고 종류별 주소 목록을 복사합니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; font-size: 1.25em; letter-spacing: -1px;&quot;&gt;1 단계 : GPT를 통해 기본 소스 만들기&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; GPT의 도움으로 주소 목록을 올리고 지도에 마크를 해달라고 합니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;아래 각 지역의 지점을 지도에 표시해줘&lt;br /&gt;- &quot;볼보&quot;라는 지점은 빨간색, 나머지는 파란색, &lt;br /&gt;- 범례에 빨강: 직영점, 파랑:대리점 으로 표기하고 &lt;br /&gt;- 지도 마크 기호는 동그라미로 만들어줘 (서울/경기도)&lt;br /&gt;-------------------------------------------------------&lt;br /&gt;삼방중기(주) 02 2677-4425 서울특별시 영등포구 버드나루로50(영등포동2가 -리버타워오피스텔102) &lt;br /&gt;(주)삼성센타 02 2676-1181 서울특별시 영등포구 버드나루로 44 (영등포동 2가) 세원빌딩 1층 &lt;br /&gt;법운건설기계(주) 031 755-8900 경기도 성남시 수정구대왕판교로 982길7-20(고등동) &lt;br /&gt;수원센타 031 238-9752 경기도 화성시 정조로 73-1(진안동) &lt;br /&gt;삼성산업 031 234-2488 경기도 수원시 권선구 경수대로 370번길 7(권선동) &lt;br /&gt;중부부품센타(주) 031 657-6426 경기도 안성시 만세로 1034 (원곡면 칠곡리 170-4)&lt;br /&gt;볼보 직영 부품직판점 054 858-8900 경상북도 안동시 경북대로 551(송현동) 볼보 경북지사 &lt;br /&gt;&amp;nbsp; ... 이하 생략 ...&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;응답 소스&lt;/p&gt;
&lt;pre id=&quot;code_1763965024837&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!doctype html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset=&quot;utf-8&quot; /&amp;gt;
  &amp;lt;title&amp;gt;Branches Map&amp;lt;/title&amp;gt;
  &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://unpkg.com/leaflet@1.9.4/dist/leaflet.css&quot; /&amp;gt;
  &amp;lt;style&amp;gt;
    html, body, #map { height:100%; margin:0; }
    .legend { background:white; padding:6px; line-height:1.5; }
    .legend i { width:15px; height:15px; float:left; margin-right:8px; opacity:0.7; }
  &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;div id=&quot;map&quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;script src=&quot;https://unpkg.com/leaflet@1.9.4/dist/leaflet.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script&amp;gt;
// 지도 초기화
const map = L.map('map').setView([36.5, 127.8], 7);
L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', {
  attribution: '&amp;amp;copy; OpenStreetMap &amp;amp;copy; CARTO',
  subdomains: 'abcd',
  maxZoom: 19
}).addTo(map);

// 지점 데이터 (일부 예시 좌표는 실제 주소 기반으로 변환 필요)
const locations = [
  { name:&quot;삼방중기(주)&quot;, addr:&quot;서울특별시 영등포구 버드나루로50&quot;, lat:37.518, lng:126.931, type:&quot;dealer&quot;},
  { name:&quot;(주)삼성센타&quot;, addr:&quot;서울특별시 영등포구 버드나루로 44&quot;, lat:37.517, lng:126.930, type:&quot;dealer&quot;},
  { name:&quot;법운건설기계(주)&quot;, addr:&quot;경기도 성남시 수정구 대왕판교로 982길7-20&quot;, lat:37.410, lng:127.120, type:&quot;dealer&quot;},
  { name:&quot;수원센타&quot;, addr:&quot;경기도 화성시 정조로 73-1&quot;, lat:37.217, lng:127.030, type:&quot;dealer&quot;},
  { name:&quot;삼성산업&quot;, addr:&quot;경기도 수원시 권선구 경수대로 370번길 7&quot;, lat:37.257, lng:127.017, type:&quot;dealer&quot;},
  { name:&quot;중부부품센타(주)&quot;, addr:&quot;경기도 안성시 만세로 1034&quot;, lat:37.006, lng:127.270, type:&quot;dealer&quot;},
  { name:&quot;볼보북부센타&quot;, addr:&quot;경기도 의정부시 금오로151&quot;, lat:37.739, lng:127.047, type:&quot;direct&quot;},
  { name:&quot;신진상사&quot;, addr:&quot;경기도 이천시 증신로218&quot;, lat:37.280, lng:127.442, type:&quot;dealer&quot;},
  { name:&quot;(주)인천부품센타&quot;, addr:&quot;인천광역시 남구 송림로327&quot;, lat:37.466, lng:126.680, type:&quot;dealer&quot;},

 
  { name:&quot;제주센타&quot;, addr:&quot;제주시 번영로 439&quot;, lat:33.498, lng:126.606, type:&quot;dealer&quot;}
  // ... 나머지 지점도 동일하게 추가
];

// 지도에 원형 마커 추가
locations.forEach(loc =&amp;gt; {
  // const isVolvo = loc.name.includes(&quot;볼보&quot;);
  // const color = isVolvo ? &quot;red&quot; : &quot;blue&quot;;
  const color = (loc.type === &quot;direct&quot;) ? &quot;red&quot; : &quot;blue&quot;;
 

  L.circleMarker([loc.lat, loc.lng], {
    radius: 8,
    color: color,
    fillColor: color,
    fillOpacity: 0.8
  }).addTo(map)
    .bindPopup(`&amp;lt;b&amp;gt;${loc.name}&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;${loc.addr}`);
});

// 범례 추가
const legend = L.control({ position: &quot;bottomright&quot; });
legend.onAdd = function(map) {
  const div = L.DomUtil.create(&quot;div&quot;, &quot;legend&quot;);
  div.innerHTML = `
    &amp;lt;i style=&quot;background:red&quot;&amp;gt;&amp;lt;/i&amp;gt; 직영점&amp;lt;br&amp;gt;
    &amp;lt;i style=&quot;background:blue&quot;&amp;gt;&amp;lt;/i&amp;gt; 대리점
  `;
  return div;
};
legend.addTo(map);

&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같은 지도가 만들어 집니다.(브라우저에 html을 로딩해봅니다.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;651&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9IhEx/dJMcafruqFS/kcpPflS6KoGZA2I71sUShk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9IhEx/dJMcafruqFS/kcpPflS6KoGZA2I71sUShk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9IhEx/dJMcafruqFS/kcpPflS6KoGZA2I71sUShk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9IhEx%2FdJMcafruqFS%2FkcpPflS6KoGZA2I71sUShk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;697&quot; height=&quot;651&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;651&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2 단계: 전체 주소를 좌표로 만들기&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[질문]&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;전체 주소&amp;nbsp; .&lt;br /&gt;..중략...&lt;br /&gt;한진종합중기 055 943-8799 경상남도 거창군 거창읍 밤티재로 1321 &lt;br /&gt;(제주) &lt;br /&gt;------------------------------------------------------- &lt;br /&gt;제주센타 064 702-7800 제주특별자치도 제주시 번영로 439(봉개동) &lt;br /&gt;&lt;br /&gt;위의 주소를 다음 형식으로 위치를 포함하여 작성해줘 &lt;br /&gt;{ name:&quot;볼보 직영 부품직판점(김해)&quot;, addr:&quot;경남 김해시 한림면 김해대로 1522&quot;, lat:35.272, lng:128.870 , type=&quot;direct&quot;},&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;응답&lt;/p&gt;
&lt;pre id=&quot;code_1763964974295&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const locations = [
  { name:&quot;삼방중기(주)&quot;, addr:&quot;서울특별시 영등포구 버드나루로50&quot;, lat:37.518, lng:126.931, type:&quot;dealer&quot;},
  { name:&quot;(주)삼성센타&quot;, addr:&quot;서울특별시 영등포구 버드나루로 44&quot;, lat:37.517, lng:126.930, type:&quot;dealer&quot;},
  { name:&quot;법운건설기계(주)&quot;, addr:&quot;경기도 성남시 수정구 대왕판교로 982길7-20&quot;, lat:37.410, lng:127.120, type:&quot;dealer&quot;},
  { name:&quot;수원센타&quot;, addr:&quot;경기도 화성시 정조로 73-1&quot;, lat:37.217, lng:127.030, type:&quot;dealer&quot;},
  { name:&quot;삼성산업&quot;, addr:&quot;경기도 수원시 권선구 경수대로 370번길 7&quot;, lat:37.257, lng:127.017, type:&quot;dealer&quot;},
  { name:&quot;중부부품센타(주)&quot;, addr:&quot;경기도 안성시 만세로 1034&quot;, lat:37.006, lng:127.270, type:&quot;dealer&quot;},
  { name:&quot;볼보북부센타&quot;, addr:&quot;경기도 의정부시 금오로151&quot;, lat:37.739, lng:127.047, type:&quot;direct&quot;},
  { name:&quot;신진상사&quot;, addr:&quot;경기도 이천시 증신로218&quot;, lat:37.280, lng:127.442, type:&quot;dealer&quot;},
  { name:&quot;(주)인천부품센타&quot;, addr:&quot;인천광역시 남구 송림로327&quot;, lat:37.466, lng:126.680, type:&quot;dealer&quot;},

  { name:&quot;(주)동해센타&quot;, addr:&quot;강원도 동해시 전천로157&quot;, lat:37.507, lng:129.124, type:&quot;dealer&quot;},
  { name:&quot;(주)동해센타(강릉지점)&quot;, addr:&quot;강원도 강릉시 옥가로 60&quot;, lat:37.751, lng:128.876, type:&quot;dealer&quot;},
  { name:&quot;유진상사&quot;, addr:&quot;강원도 원주시 흥업면 남원로 47&quot;, lat:37.307, lng:127.922, type:&quot;dealer&quot;},

  { name:&quot;볼보 직영 부품직판점(대전)&quot;, addr:&quot;대전광역시 대덕구 상서당1길12&quot;, lat:36.428, lng:127.434, type:&quot;direct&quot;},
  { name:&quot;(주)태성물산&quot;, addr:&quot;대전광역시 중구 충무로 154&quot;, lat:36.327, lng:127.423, type:&quot;dealer&quot;},
  { name:&quot;주영상사&quot;, addr:&quot;대전광역시 서구 동서대로1036&quot;, lat:36.351, lng:127.378, type:&quot;dealer&quot;},

  { name:&quot;볼보 직영 부품직판점(아산)&quot;, addr:&quot;충남 아산시 순천향로 612&quot;, lat:36.783, lng:127.003, type:&quot;direct&quot;},
  { name:&quot;삼성중기부품상사&quot;, addr:&quot;충남 천안시 서북구 두정공단2길43-2&quot;, lat:36.824, lng:127.152, type:&quot;dealer&quot;},
  { name:&quot;한빛중기부품&quot;, addr:&quot;충남 서산시 소탐1로 100&quot;, lat:36.784, lng:126.450, type:&quot;dealer&quot;},
  { name:&quot;거성중기&quot;, addr:&quot;충남 부여군 부여읍 계백로316-1&quot;, lat:36.275, lng:126.909, type:&quot;dealer&quot;},

  { name:&quot;(주)대원상사&quot;, addr:&quot;충북 청주시 청원구 무심동로596&quot;, lat:36.642, lng:127.489, type:&quot;dealer&quot;},
  { name:&quot;태운상사&quot;, addr:&quot;충북 청주시 청원구 충청대로229&quot;, lat:36.642, lng:127.489, type:&quot;dealer&quot;},
  { name:&quot;동남중기&quot;, addr:&quot;충북 충주시 봉방천변길 20&quot;, lat:36.970, lng:127.933, type:&quot;dealer&quot;},
  { name:&quot;(주)한일중기&quot;, addr:&quot;충북 제천시 바이오밸리로 52&quot;, lat:37.132, lng:128.190, type:&quot;dealer&quot;},

  { name:&quot;볼보 직영 부품직판점(안동)&quot;, addr:&quot;경북 안동시 경북대로 551&quot;, lat:36.565, lng:128.725, type:&quot;direct&quot;},
  { name:&quot;삼성중기상사&quot;, addr:&quot;경북 구미시 수출대로 1길 17&quot;, lat:36.119, lng:128.344, type:&quot;dealer&quot;},
  { name:&quot;(주)삼성중기&quot;, addr:&quot;경북 포항시 남구 연일읍 형산강남로 418번길 76&quot;, lat:35.995, lng:129.345, type:&quot;dealer&quot;},
  { name:&quot;삼성중기부품센타&quot;, addr:&quot;경북 문경시 신흥2길 3-13&quot;, lat:36.586, lng:128.187, type:&quot;dealer&quot;},
  { name:&quot;한진중기상사&quot;, addr:&quot;경북 경산시 진량읍 낙산길 55-4&quot;, lat:35.825, lng:128.741, type:&quot;dealer&quot;},
  { name:&quot;현대사&quot;, addr:&quot;대구광역시 중구 달성로22길 13&quot;, lat:35.870, lng:128.600, type:&quot;dealer&quot;},

  { name:&quot;볼보 직영 부품직판점(김해)&quot;, addr:&quot;경남 김해시 한림면 김해대로 1522&quot;, lat:35.272, lng:128.870, type:&quot;direct&quot;},
  { name:&quot;(주)신화중기&quot;, addr:&quot;부산광역시 사상구 광장로 20번길 36&quot;, lat:35.152, lng:128.990, type:&quot;dealer&quot;},
  { name:&quot;신화중기&quot;, addr:&quot;경남 창원시 마산회원구 봉암공단로6&quot;, lat:35.220, lng:128.580, type:&quot;dealer&quot;},
  { name:&quot;삼성중기센타&quot;, addr:&quot;경남 창원시 의창구 무역로 541&quot;, lat:35.250, lng:128.650, type:&quot;dealer&quot;},
  { name:&quot;조일중기센타&quot;, addr:&quot;울산광역시 남구 삼산로 169번길 9&quot;, lat:35.543, lng:129.338, type:&quot;dealer&quot;},
  { name:&quot;울산건설기계&quot;, addr:&quot;울산광역시 북구 효자로 7&quot;, lat:35.583, lng:129.361, type:&quot;dealer&quot;},
  { name:&quot;삼성중기센타&quot;, addr:&quot;경남 진주시 큰들로97&quot;, lat:35.180, lng:128.107, type:&quot;dealer&quot;},
  { name:&quot;명문중기센타&quot;, addr:&quot;경남 진주시 대신로 168&quot;, lat:35.180, lng:128.107, type:&quot;dealer&quot;},
  { name:&quot;대영중기부품&quot;, addr:&quot;경남 진주시 남강로 1049&quot;, lat:35.180, lng:128.107, type:&quot;dealer&quot;},
  { name:&quot;한진종합중기&quot;, addr:&quot;경남 거창군 거창읍 밤티재로 1321&quot;, lat:35.686, lng:127.909, type:&quot;dealer&quot;},

  { name:&quot;제주센타&quot;, addr:&quot;제주시 번영로 439&quot;, lat:33.498, lng:126.606, type:&quot;dealer&quot;}
];&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3 단계: 코드의 색상이나 마크의 모양을 변형하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- GPT를 통해 원하는 내용을 추가로 입력하여 수정 사항을 입력하면서 약간의 수정을 하면 됩니다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;질문&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;각 지점의 마크 는&amp;nbsp; 센터지사는 중심반경 50km으로 밝은 빨강색으로 원을 그리고,&amp;nbsp;&lt;br /&gt;일반지사는 10km 반경으로&amp;nbsp; 밝은 파란색으로&amp;nbsp; 원을 그려서 작성해줘&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;응답&lt;/p&gt;
&lt;pre id=&quot;code_1763964954551&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!doctype html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset=&quot;utf-8&quot; /&amp;gt;
  &amp;lt;title&amp;gt;Branches with Circles&amp;lt;/title&amp;gt;
  &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://unpkg.com/leaflet@1.9.4/dist/leaflet.css&quot; /&amp;gt;
  &amp;lt;style&amp;gt;html,body,#map{height:100%;margin:0}&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;div id=&quot;map&quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;script src=&quot;https://unpkg.com/leaflet@1.9.4/dist/leaflet.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script&amp;gt;
// 지도 초기화
const map = L.map('map').setView([36.5, 127.8], 7);
L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', {
  attribution: '&amp;amp;copy; OpenStreetMap &amp;amp;copy; CARTO',
  subdomains: 'abcd',
  maxZoom: 19
}).addTo(map);

// 커스텀 마커 아이콘 (빨강, 파랑)
const redIcon = new L.Icon({
  iconUrl: 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-red.png',
  shadowUrl: 'https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png',
  iconSize: [25, 41],
  iconAnchor: [12, 41],
  popupAnchor: [1, -34],
  shadowSize: [41, 41]
});

const blueIcon = new L.Icon({
  iconUrl: 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-blue.png',
  shadowUrl: 'https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png',
  iconSize: [25, 41],
  iconAnchor: [12, 41],
  popupAnchor: [1, -34],
  shadowSize: [41, 41]
});

// 지점 데이터
const locations = [
  { name: &quot;직할영업팀(법인영업)&quot;, addr: &quot;서울특별시 용산구 한남대로 130 5층&quot;, lat: 37.5345, lng: 127.0007, type: &quot;branch&quot; },
  { name: &quot;서울지사&quot;, addr: &quot;서울 마포구 서강로 82,1층&quot;, lat: 37.5466, lng: 126.9353, type: &quot;branch&quot; },
  { name: &quot;의정부지점&quot;, addr: &quot;경기 의정부시 충의로 73 산광빌딩 201호&quot;, lat: 37.7398, lng: 127.0471, type: &quot;branch&quot; },
  { name: &quot;경기센터지사&quot;, addr: &quot;경기도 화성시 봉담읍 최루백로 247&quot;, lat: 37.2177, lng: 126.9513, type: &quot;center&quot; },
  { name: &quot;충청센터지사&quot;, addr: &quot;충북 청주시 흥덕구 옥산면 호죽화산로 98&quot;, lat: 36.6295, lng: 127.3895, type: &quot;center&quot; },
  { name: &quot;중부센터지사&quot;, addr: &quot;대전광역시 대덕구 상서당1길 12&quot;, lat: 36.4285, lng: 127.4340, type: &quot;center&quot; },
  { name: &quot;전남센터지사&quot;, addr: &quot;광주광역시 광산구 송도로 124&quot;, lat: 35.1730, lng: 126.8110, type: &quot;center&quot; },
  { name: &quot;대구경북센터지사&quot;, addr: &quot;경북 칠곡군 동명면 경북대로 72&quot;, lat: 36.0610, lng: 128.4010, type: &quot;center&quot; },
  { name: &quot;부산경남센터지사&quot;, addr: &quot;경남 김해시 한림면 김해대로 1522&quot;, lat: 35.2720, lng: 128.8700, type: &quot;center&quot; },
  { name: &quot;인천지점&quot;, addr: &quot;인천광역시 서구 서곶로 341,301호&quot;, lat: 37.5475, lng: 126.6753, type: &quot;branch&quot; },
  { name: &quot;강원지사&quot;, addr: &quot;강원도 원주시 흥업면 남원로 47, 2층&quot;, lat: 37.3070, lng: 127.9225, type: &quot;branch&quot; },
  { name: &quot;이천지점&quot;, addr: &quot;경기도 이천시 증신로 218 (송정동)&quot;, lat: 37.2805, lng: 127.4421, type: &quot;branch&quot; },
  { name: &quot;강릉지점&quot;, addr: &quot;강원 강릉시 동해대로 3380, 2층&quot;, lat: 37.7519, lng: 128.8761, type: &quot;branch&quot; },
  { name: &quot;춘천지점&quot;, addr: &quot;강원특별자치도 춘천시 옛경춘로 483 YWCA, 1층&quot;, lat: 37.8747, lng: 127.7342, type: &quot;branch&quot; },
  { name: &quot;아산지점&quot;, addr: &quot;충남 아산시 순천향로 612, 2층&quot;, lat: 36.7836, lng: 127.0032, type: &quot;branch&quot; },
  { name: &quot;충주지점&quot;, addr: &quot;충북 충주시 연수동산로3길 15, 201호&quot;, lat: 36.9706, lng: 127.9330, type: &quot;branch&quot; },
  { name: &quot;제천지점&quot;, addr: &quot;충북 제천시 송학주천로 55&quot;, lat: 37.1326, lng: 128.1905, type: &quot;branch&quot; },
  { name: &quot;서산지점&quot;, addr: &quot;충남 서산시 수석순환로 228&quot;, lat: 36.7846, lng: 126.4505, type: &quot;branch&quot; },
  { name: &quot;전북지점&quot;, addr: &quot;전북 완주군 삼례읍 삼례나들목로 55, 2층&quot;, lat: 35.9132, lng: 127.1230, type: &quot;branch&quot; },
  { name: &quot;군산지점&quot;, addr: &quot;전북 군산시 미성로 475&quot;, lat: 35.9670, lng: 126.7365, type: &quot;branch&quot; },
  { name: &quot;순천지점&quot;, addr: &quot;전남 순천시 구암2길 3, 3층&quot;, lat: 34.9507, lng: 127.4870, type: &quot;branch&quot; },
  { name: &quot;목포지점&quot;, addr: &quot;전남 무안군 삼향읍 삼향로 127-39&quot;, lat: 34.8110, lng: 126.4340, type: &quot;branch&quot; },
  { name: &quot;안동지점&quot;, addr: &quot;경북 안동시 경북대로 652-2&quot;, lat: 36.5650, lng: 128.7250, type: &quot;branch&quot; },
  { name: &quot;포항지점&quot;, addr: &quot;경북 포항시 남구 연일읍 형산강남로 418번길 74 2층&quot;, lat: 35.9950, lng: 129.3450, type: &quot;branch&quot; },
  { name: &quot;진주지점&quot;, addr: &quot;경남 진주시 대신로 168 (상평동, 2층)&quot;, lat: 35.1800, lng: 128.1070, type: &quot;branch&quot; },
  { name: &quot;거창지점&quot;, addr: &quot;경남 거창군 거창읍 밤티재로 1321&quot;, lat: 35.6860, lng: 127.9090, type: &quot;branch&quot; },
  { name: &quot;제주지점&quot;, addr: &quot;제주 제주시 번영로 439 (봉개동, 2층)&quot;, lat: 33.4980, lng: 126.6060, type: &quot;branch&quot; },
  { name: &quot;울산지점&quot;, addr: &quot;울산광역시 북구 효자로 7&quot;, lat: 35.5830, lng: 129.3610, type: &quot;branch&quot; }
];


// 지도에 마커와 원 추가
locations.forEach(loc =&amp;gt; {
  const icon = (loc.type === &quot;center&quot;) ? redIcon : blueIcon;
  //const color = (loc.type === &quot;center&quot;) ? &quot;red&quot; : &quot;light-blue&quot;;
  const color = (loc.type === &quot;center&quot;) ? &quot;#ff6666&quot; : &quot;#66b2ff&quot;;
  const radius = (loc.type === &quot;center&quot;) ? 70000 : 40000; // 센터=70km, 지점=40km

  // 마커 추가
  L.marker([loc.lat, loc.lng], { icon: icon }).addTo(map)
    .bindPopup(`&amp;lt;b&amp;gt;${loc.name}&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;${loc.addr}`);

  // 원 추가
  L.circle([loc.lat, loc.lng], {
    radius: radius,
    color: color,
    weight: 2,
    fillColor: color,
    fillOpacity: 0.2
  }).addTo(map);
});

&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IRcSA/dJMcahCP0XD/jy0nGDj4NXWCzQyIXEDfJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IRcSA/dJMcahCP0XD/jy0nGDj4NXWCzQyIXEDfJK/img.png&quot; data-origin-width=&quot;522&quot; data-origin-height=&quot;629&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;43.67&quot; style=&quot;width: 43.158%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IRcSA/dJMcahCP0XD/jy0nGDj4NXWCzQyIXEDfJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIRcSA%2FdJMcahCP0XD%2Fjy0nGDj4NXWCzQyIXEDfJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;522&quot; height=&quot;629&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dx9Pt7/dJMcadAn3Xm/F75IY1x7zUKZdPE9ZCe821/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dx9Pt7/dJMcadAn3Xm/F75IY1x7zUKZdPE9ZCe821/img.png&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;651&quot; data-is-animation=&quot;false&quot; style=&quot;width: 55.6792%;&quot; data-widthpercent=&quot;56.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dx9Pt7/dJMcadAn3Xm/F75IY1x7zUKZdPE9ZCe821/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdx9Pt7%2FdJMcadAn3Xm%2FF75IY1x7zUKZdPE9ZCe821%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;697&quot; height=&quot;651&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 지도를 합쳐서 아래와 같이 만들어 봅니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;581&quot; data-origin-height=&quot;694&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdOBYd/dJMcadmQRp4/mEtJZ5jK4gkNfrUAJZCWl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdOBYd/dJMcadmQRp4/mEtJZ5jK4gkNfrUAJZCWl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdOBYd/dJMcadmQRp4/mEtJZ5jK4gkNfrUAJZCWl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdOBYd%2FdJMcadmQRp4%2FmEtJZ5jK4gkNfrUAJZCWl1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;581&quot; height=&quot;694&quot; data-origin-width=&quot;581&quot; data-origin-height=&quot;694&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4. 단계 : 볼보 영업 센터와 대리점 지도 합치기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;위의 두 소스를 합쳐 달라고 하면 다음과 같이 합쳐 줍니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1763964931908&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!doctype html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset=&quot;utf-8&quot; /&amp;gt;
  &amp;lt;title&amp;gt;Unified Branches Map&amp;lt;/title&amp;gt;
  &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://unpkg.com/leaflet@1.9.4/dist/leaflet.css&quot; /&amp;gt;
  &amp;lt;style&amp;gt;
    html, body, #map { height:100%; margin:0; }
    .legend { background:white; padding:6px; line-height:1.5; }
    .legend i { width:15px; height:15px; float:left; margin-right:8px; opacity:0.7; }
  &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;div id=&quot;map&quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;script src=&quot;https://unpkg.com/leaflet@1.9.4/dist/leaflet.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script&amp;gt;
// 지도 초기화
const map = L.map('map').setView([36.5, 127.8], 7);
L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', {
  attribution: '&amp;amp;copy; OpenStreetMap &amp;amp;copy; CARTO',
  subdomains: 'abcd',
  maxZoom: 19
}).addTo(map);

// 커스텀 마커 아이콘 (센터/지사용)
const redIcon = new L.Icon({
  iconUrl: 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-red.png',
  shadowUrl: 'https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png',
  iconSize: [25, 41],
  iconAnchor: [12, 41],
  popupAnchor: [1, -34],
  shadowSize: [41, 41]
});
const blueIcon = new L.Icon({
  iconUrl: 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-blue.png',
  shadowUrl: 'https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png',
  iconSize: [25, 41],
  iconAnchor: [12, 41],
  popupAnchor: [1, -34],
  shadowSize: [41, 41]
});

// ----------------------
// 데이터 1: 직영점/대리점
// ----------------------
const dealerLocations = [
  { name:&quot;삼방중기(주)&quot;, addr:&quot;서울특별시 영등포구 버드나루로50&quot;, lat:37.518, lng:126.931, type:&quot;dealer&quot;},
  { name:&quot;(주)삼성센타&quot;, addr:&quot;서울특별시 영등포구 버드나루로 44&quot;, lat:37.517, lng:126.930, type:&quot;dealer&quot;},
  { name:&quot;법운건설기계(주)&quot;, addr:&quot;경기도 성남시 수정구 대왕판교로 982길7-20&quot;, lat:37.410, lng:127.120, type:&quot;dealer&quot;},
  { name:&quot;수원센타&quot;, addr:&quot;경기도 화성시 정조로 73-1&quot;, lat:37.217, lng:127.030, type:&quot;dealer&quot;},
  { name:&quot;삼성산업&quot;, addr:&quot;경기도 수원시 권선구 경수대로 370번길 7&quot;, lat:37.257, lng:127.017, type:&quot;dealer&quot;},
  { name:&quot;중부부품센타(주)&quot;, addr:&quot;경기도 안성시 만세로 1034&quot;, lat:37.006, lng:127.270, type:&quot;dealer&quot;},
  { name:&quot;볼보북부센타&quot;, addr:&quot;경기도 의정부시 금오로151&quot;, lat:37.739, lng:127.047, type:&quot;direct&quot;},
  { name:&quot;신진상사&quot;, addr:&quot;경기도 이천시 증신로218&quot;, lat:37.280, lng:127.442, type:&quot;dealer&quot;},
  { name:&quot;(주)인천부품센타&quot;, addr:&quot;인천광역시 남구 송림로327&quot;, lat:37.466, lng:126.680, type:&quot;dealer&quot;},

  { name:&quot;(주)동해센타&quot;, addr:&quot;강원도 동해시 전천로157&quot;, lat:37.507, lng:129.124, type:&quot;dealer&quot;},
  { name:&quot;(주)동해센타(강릉지점)&quot;, addr:&quot;강원도 강릉시 옥가로 60&quot;, lat:37.751, lng:128.876, type:&quot;dealer&quot;},
  { name:&quot;유진상사&quot;, addr:&quot;강원도 원주시 흥업면 남원로 47&quot;, lat:37.307, lng:127.922, type:&quot;dealer&quot;},

  { name:&quot;볼보 직영 부품직판점(대전)&quot;, addr:&quot;대전광역시 대덕구 상서당1길12&quot;, lat:36.428, lng:127.434, type:&quot;direct&quot;},
  { name:&quot;(주)태성물산&quot;, addr:&quot;대전광역시 중구 충무로 154&quot;, lat:36.327, lng:127.423, type:&quot;dealer&quot;},
  { name:&quot;주영상사&quot;, addr:&quot;대전광역시 서구 동서대로1036&quot;, lat:36.351, lng:127.378, type:&quot;dealer&quot;},

  { name:&quot;볼보 직영 부품직판점(아산)&quot;, addr:&quot;충남 아산시 순천향로 612&quot;, lat:36.783, lng:127.003, type:&quot;direct&quot;},
  { name:&quot;삼성중기부품상사&quot;, addr:&quot;충남 천안시 서북구 두정공단2길43-2&quot;, lat:36.824, lng:127.152, type:&quot;dealer&quot;},
  { name:&quot;한빛중기부품&quot;, addr:&quot;충남 서산시 소탐1로 100&quot;, lat:36.784, lng:126.450, type:&quot;dealer&quot;},
  { name:&quot;거성중기&quot;, addr:&quot;충남 부여군 부여읍 계백로316-1&quot;, lat:36.275, lng:126.909, type:&quot;dealer&quot;},

  { name:&quot;(주)대원상사&quot;, addr:&quot;충북 청주시 청원구 무심동로596&quot;, lat:36.642, lng:127.489, type:&quot;dealer&quot;},
  { name:&quot;태운상사&quot;, addr:&quot;충북 청주시 청원구 충청대로229&quot;, lat:36.642, lng:127.489, type:&quot;dealer&quot;},
  { name:&quot;동남중기&quot;, addr:&quot;충북 충주시 봉방천변길 20&quot;, lat:36.970, lng:127.933, type:&quot;dealer&quot;},
  { name:&quot;(주)한일중기&quot;, addr:&quot;충북 제천시 바이오밸리로 52&quot;, lat:37.132, lng:128.190, type:&quot;dealer&quot;},

  { name:&quot;볼보 직영 부품직판점(안동)&quot;, addr:&quot;경북 안동시 경북대로 551&quot;, lat:36.565, lng:128.725, type:&quot;direct&quot;},
  { name:&quot;삼성중기상사&quot;, addr:&quot;경북 구미시 수출대로 1길 17&quot;, lat:36.119, lng:128.344, type:&quot;dealer&quot;},
  { name:&quot;(주)삼성중기&quot;, addr:&quot;경북 포항시 남구 연일읍 형산강남로 418번길 76&quot;, lat:35.995, lng:129.345, type:&quot;dealer&quot;},
  { name:&quot;삼성중기부품센타&quot;, addr:&quot;경북 문경시 신흥2길 3-13&quot;, lat:36.586, lng:128.187, type:&quot;dealer&quot;},
  { name:&quot;한진중기상사&quot;, addr:&quot;경북 경산시 진량읍 낙산길 55-4&quot;, lat:35.825, lng:128.741, type:&quot;dealer&quot;},
  { name:&quot;현대사&quot;, addr:&quot;대구광역시 중구 달성로22길 13&quot;, lat:35.870, lng:128.600, type:&quot;dealer&quot;},

  { name:&quot;볼보 직영 부품직판점(김해)&quot;, addr:&quot;경남 김해시 한림면 김해대로 1522&quot;, lat:35.272, lng:128.870, type:&quot;direct&quot;},
  { name:&quot;(주)신화중기&quot;, addr:&quot;부산광역시 사상구 광장로 20번길 36&quot;, lat:35.152, lng:128.990, type:&quot;dealer&quot;},
  { name:&quot;신화중기&quot;, addr:&quot;경남 창원시 마산회원구 봉암공단로6&quot;, lat:35.220, lng:128.580, type:&quot;dealer&quot;},
  { name:&quot;삼성중기센타&quot;, addr:&quot;경남 창원시 의창구 무역로 541&quot;, lat:35.250, lng:128.650, type:&quot;dealer&quot;},
  { name:&quot;조일중기센타&quot;, addr:&quot;울산광역시 남구 삼산로 169번길 9&quot;, lat:35.543, lng:129.338, type:&quot;dealer&quot;},
  { name:&quot;울산건설기계&quot;, addr:&quot;울산광역시 북구 효자로 7&quot;, lat:35.583, lng:129.361, type:&quot;dealer&quot;},
  { name:&quot;삼성중기센타&quot;, addr:&quot;경남 진주시 큰들로97&quot;, lat:35.180, lng:128.107, type:&quot;dealer&quot;},
  { name:&quot;명문중기센타&quot;, addr:&quot;경남 진주시 대신로 168&quot;, lat:35.180, lng:128.107, type:&quot;dealer&quot;},
  { name:&quot;대영중기부품&quot;, addr:&quot;경남 진주시 남강로 1049&quot;, lat:35.180, lng:128.107, type:&quot;dealer&quot;},
  { name:&quot;한진종합중기&quot;, addr:&quot;경남 거창군 거창읍 밤티재로 1321&quot;, lat:35.686, lng:127.909, type:&quot;dealer&quot;},

  { name:&quot;제주센타&quot;, addr:&quot;제주시 번영로 439&quot;, lat:33.498, lng:126.606, type:&quot;dealer&quot;}
  // ... 나머지 dealer 데이터도 동일하게 추가
];

// ----------------------
// 데이터 2: 센터/지사
// ----------------------
const centerLocations = [
  { name: &quot;직할영업팀(법인영업)&quot;, addr: &quot;서울특별시 용산구 한남대로 130 5층&quot;, lat: 37.5345, lng: 127.0007, type: &quot;branch&quot; },
  { name: &quot;서울지사&quot;, addr: &quot;서울 마포구 서강로 82,1층&quot;, lat: 37.5466, lng: 126.9353, type: &quot;branch&quot; },
  { name: &quot;의정부지점&quot;, addr: &quot;경기 의정부시 충의로 73 산광빌딩 201호&quot;, lat: 37.7398, lng: 127.0471, type: &quot;branch&quot; },
  { name: &quot;경기센터지사&quot;, addr: &quot;경기도 화성시 봉담읍 최루백로 247&quot;, lat: 37.2177, lng: 126.9513, type: &quot;center&quot; },
  { name: &quot;충청센터지사&quot;, addr: &quot;충북 청주시 흥덕구 옥산면 호죽화산로 98&quot;, lat: 36.6295, lng: 127.3895, type: &quot;center&quot; },
  { name: &quot;중부센터지사&quot;, addr: &quot;대전광역시 대덕구 상서당1길 12&quot;, lat: 36.4285, lng: 127.4340, type: &quot;center&quot; },
  { name: &quot;전남센터지사&quot;, addr: &quot;광주광역시 광산구 송도로 124&quot;, lat: 35.1730, lng: 126.8110, type: &quot;center&quot; },
  { name: &quot;대구경북센터지사&quot;, addr: &quot;경북 칠곡군 동명면 경북대로 72&quot;, lat: 36.0610, lng: 128.4010, type: &quot;center&quot; },
  { name: &quot;부산경남센터지사&quot;, addr: &quot;경남 김해시 한림면 김해대로 1522&quot;, lat: 35.2720, lng: 128.8700, type: &quot;center&quot; },
  { name: &quot;인천지점&quot;, addr: &quot;인천광역시 서구 서곶로 341,301호&quot;, lat: 37.5475, lng: 126.6753, type: &quot;branch&quot; },
  { name: &quot;강원지사&quot;, addr: &quot;강원도 원주시 흥업면 남원로 47, 2층&quot;, lat: 37.3070, lng: 127.9225, type: &quot;branch&quot; },
  { name: &quot;이천지점&quot;, addr: &quot;경기도 이천시 증신로 218 (송정동)&quot;, lat: 37.2805, lng: 127.4421, type: &quot;branch&quot; },
  { name: &quot;강릉지점&quot;, addr: &quot;강원 강릉시 동해대로 3380, 2층&quot;, lat: 37.7519, lng: 128.8761, type: &quot;branch&quot; },
  { name: &quot;춘천지점&quot;, addr: &quot;강원특별자치도 춘천시 옛경춘로 483 YWCA, 1층&quot;, lat: 37.8747, lng: 127.7342, type: &quot;branch&quot; },
  { name: &quot;아산지점&quot;, addr: &quot;충남 아산시 순천향로 612, 2층&quot;, lat: 36.7836, lng: 127.0032, type: &quot;branch&quot; },
  { name: &quot;충주지점&quot;, addr: &quot;충북 충주시 연수동산로3길 15, 201호&quot;, lat: 36.9706, lng: 127.9330, type: &quot;branch&quot; },
  { name: &quot;제천지점&quot;, addr: &quot;충북 제천시 송학주천로 55&quot;, lat: 37.1326, lng: 128.1905, type: &quot;branch&quot; },
  { name: &quot;서산지점&quot;, addr: &quot;충남 서산시 수석순환로 228&quot;, lat: 36.7846, lng: 126.4505, type: &quot;branch&quot; },
  { name: &quot;전북지점&quot;, addr: &quot;전북 완주군 삼례읍 삼례나들목로 55, 2층&quot;, lat: 35.9132, lng: 127.1230, type: &quot;branch&quot; },
  { name: &quot;군산지점&quot;, addr: &quot;전북 군산시 미성로 475&quot;, lat: 35.9670, lng: 126.7365, type: &quot;branch&quot; },
  { name: &quot;순천지점&quot;, addr: &quot;전남 순천시 구암2길 3, 3층&quot;, lat: 34.9507, lng: 127.4870, type: &quot;branch&quot; },
  { name: &quot;목포지점&quot;, addr: &quot;전남 무안군 삼향읍 삼향로 127-39&quot;, lat: 34.8110, lng: 126.4340, type: &quot;branch&quot; },
  { name: &quot;안동지점&quot;, addr: &quot;경북 안동시 경북대로 652-2&quot;, lat: 36.5650, lng: 128.7250, type: &quot;branch&quot; },
  { name: &quot;포항지점&quot;, addr: &quot;경북 포항시 남구 연일읍 형산강남로 418번길 74 2층&quot;, lat: 35.9950, lng: 129.3450, type: &quot;branch&quot; },
  { name: &quot;진주지점&quot;, addr: &quot;경남 진주시 대신로 168 (상평동, 2층)&quot;, lat: 35.1800, lng: 128.1070, type: &quot;branch&quot; },
  { name: &quot;거창지점&quot;, addr: &quot;경남 거창군 거창읍 밤티재로 1321&quot;, lat: 35.6860, lng: 127.9090, type: &quot;branch&quot; },
  { name: &quot;제주지점&quot;, addr: &quot;제주 제주시 번영로 439 (봉개동, 2층)&quot;, lat: 33.4980, lng: 126.6060, type: &quot;branch&quot; },
  { name: &quot;울산지점&quot;, addr: &quot;울산광역시 북구 효자로 7&quot;, lat: 35.5830, lng: 129.3610, type: &quot;branch&quot; }
  // ... 나머지 center/branch 데이터도 동일하게 추가
];

// ----------------------
// 지도에 표시
// ----------------------

// 직영점/대리점 &amp;rarr; 원형 마커
dealerLocations.forEach(loc =&amp;gt; {
  const color = (loc.type === &quot;direct&quot;) ? &quot;red&quot; : &quot;blue&quot;;
  L.circleMarker([loc.lat, loc.lng], {
    radius: 8,
    color: color,
    fillColor: color,
    fillOpacity: 0.8
  }).addTo(map)
    .bindPopup(`&amp;lt;b&amp;gt;${loc.name}&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;${loc.addr}`);
});

// 센터/지사 &amp;rarr; 마커 + 반경 원
centerLocations.forEach(loc =&amp;gt; {
  const icon = (loc.type === &quot;center&quot;) ? redIcon : blueIcon;
  const color = (loc.type === &quot;center&quot;) ? &quot;#ff6666&quot; : &quot;#66b2ff&quot;;
  const radius = (loc.type === &quot;center&quot;) ? 70000 : 40000;

  L.marker([loc.lat, loc.lng], { icon: icon }).addTo(map)
    .bindPopup(`&amp;lt;b&amp;gt;${loc.name}&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;${loc.addr}`);

  L.circle([loc.lat, loc.lng], {
    radius: radius,
    color: color,
    weight: 2,
    fillColor: color,
    fillOpacity: 0.2
  }).addTo(map);
});

// ----------------------
// 범례 추가
// ----------------------
const legend = L.control({ position: &quot;bottomright&quot; });
legend.onAdd = function(map) {
  const div = L.DomUtil.create(&quot;div&quot;, &quot;legend&quot;);
  div.innerHTML = `
    &amp;lt;i style=&quot;background:red&quot;&amp;gt;&amp;lt;/i&amp;gt; 직영점&amp;lt;br&amp;gt;
    &amp;lt;i style=&quot;background:blue&quot;&amp;gt;&amp;lt;/i&amp;gt; 대리점&amp;lt;br&amp;gt;
    &amp;lt;i style=&quot;background:#ff6666&quot;&amp;gt;&amp;lt;/i&amp;gt; 센터&amp;lt;br&amp;gt;
    &amp;lt;i style=&quot;background:#66b2ff&quot;&amp;gt;&amp;lt;/i&amp;gt; 지사
  `;
  return div;
};
legend.addTo(map);

&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이와 같이 GPT를 이용해서 쉽게 지도에 주소를 매핑하는 소스를 작성해 보았습니다.&lt;/p&gt;</description>
      <category>Programming</category>
      <category>오픈지도 POI 입력</category>
      <category>오픈지도 맵작성</category>
      <category>지도에 주소정보 매핑</category>
      <author>IT오이시이</author>
      <guid isPermaLink="true">https://couplewith.tistory.com/894</guid>
      <comments>https://couplewith.tistory.com/894#entry894comment</comments>
      <pubDate>Mon, 24 Nov 2025 15:13:24 +0900</pubDate>
    </item>
  </channel>
</rss>