<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>자동차 산업을 위한 IT기술을 연구 합니다.  Blog</title>
        <link>https://bigdata-car.github.io/usecase</link>
        <description>자동차 산업을 위한 IT기술을 연구 합니다.  Blog</description>
        <lastBuildDate>Mon, 23 Mar 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[KADaP ide 에서 나만의 container 사용하기]]></title>
            <link>https://bigdata-car.github.io/usecase/KADaP ide 에서 나만의 container 사용하기</link>
            <guid>https://bigdata-car.github.io/usecase/KADaP ide 에서 나만의 container 사용하기</guid>
            <pubDate>Mon, 23 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[KADaP ide 에서 나만의 container 사용하기]]></description>
            <content:encoded><![CDATA[<p>본 문서에서는 KADaP GPUaaS 내 ide 에서 나만의 container 를 업로드하여 사용할 수 있는 방법 소개합니다.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="개요">개요<a class="hash-link" aria-label="Direct link to 개요" title="Direct link to 개요" href="https://bigdata-car.github.io/usecase/KADaP%20ide%20%EC%97%90%EC%84%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20container%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#%EA%B0%9C%EC%9A%94">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="1-kadap-gpuaas">1. KADaP GPUaaS<a class="hash-link" aria-label="Direct link to 1. KADaP GPUaaS" title="Direct link to 1. KADaP GPUaaS" href="https://bigdata-car.github.io/usecase/KADaP%20ide%20%EC%97%90%EC%84%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20container%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#1-kadap-gpuaas">​</a></h3>
<p>자동차데이터플랫폼 (KADaP; Korea Automotive Data Platform) 에는 AI 모델 개발 및 학습을 위한 KADaP GPUaaS 를 제공합니다.</p>
<p>기본적으로 jupyter lab 환경과 visual studio code 를 web ide 형태로 제공합니다.</p>
<p>제공되는 환경 외에 docker hub 에 저장되어 있는 container 환경을 로드하여 사용할 수 있는 기능을 제공합니다.</p>
<p>뿐만 아니라, web ide 에서 사용자가 추가 업데이트한 환경을 private image 로 저장해두고 지속적으로 로드하여 사용할 수 있습니다.</p>
<br>
<p>본 문서에서는 docker hub 에 저장된 public/private 이미지를 불러와 실행하는 방법과 사용자 정의 환경을 저장하는 방법에 대해 소개합니다.</p>
<p>구체적인 이해를 위해 Visual studio code server 를 docker container 로 직접 구성하고, KADaP GPUaaS 에서 사용할 수 있도록 docker hub 에 업로드 후 로드하여 사용하는 과정에 대해 설명합니다.</p>
<p>KADaP CLOUD 의 docker agent 환경에서 ubuntu 22.04 를 기반으로 진행합니다.</p>
<p>외부 서버에서 진행 시 docker agent 환경이 필요합니다.</p>
<br>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>KADaP GPUaaS 에 대한 자세한 내용은 <a href="https://bigdata-car.github.io/manual/%EB%8D%B0%EC%9D%B4%ED%84%B0%ED%8F%AC%ED%84%B8/ide-colab">문서</a> 에서 확인 가능합니다.</p></div></div>
<br>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="docker-image-생성">Docker image 생성<a class="hash-link" aria-label="Direct link to Docker image 생성" title="Direct link to Docker image 생성" href="https://bigdata-car.github.io/usecase/KADaP%20ide%20%EC%97%90%EC%84%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20container%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#docker-image-%EC%83%9D%EC%84%B1">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="1-dockerfile-작성">1. Dockerfile 작성<a class="hash-link" aria-label="Direct link to 1. Dockerfile 작성" title="Direct link to 1. Dockerfile 작성" href="https://bigdata-car.github.io/usecase/KADaP%20ide%20%EC%97%90%EC%84%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20container%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#1-dockerfile-%EC%9E%91%EC%84%B1">​</a></h3>
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="1-1-ubuntu-2204-환경-구성">1-1. Ubuntu 22.04 환경 구성<a class="hash-link" aria-label="Direct link to 1-1. Ubuntu 22.04 환경 구성" title="Direct link to 1-1. Ubuntu 22.04 환경 구성" href="https://bigdata-car.github.io/usecase/KADaP%20ide%20%EC%97%90%EC%84%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20container%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#1-1-ubuntu-2204-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%84%B1">​</a></h4>
<p>CLI 환경에서 아래의 명령어를 통해 Dockerfile 을 생성하고 내용을 작성합니다.</p>
<p><code>vi Dockerfile</code></p>
<p>국내 미러를 사용하기 위해 kaist 미러를 사용하고, 서울 시간대로 구성합니다.</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">FROM ubuntu:22.04</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ENV DEBIAN_FRONTEND=noninteractive</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 한국 미러로 변경 (kaist)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN sed -i 's|http://archive.ubuntu.com/ubuntu|http://ftp.kaist.ac.kr/ubuntu|g' /etc/apt/sources.list &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    sed -i 's|http://security.ubuntu.com/ubuntu|http://ftp.kaist.ac.kr/ubuntu|g' /etc/apt/sources.list</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># apt update + 최소 패키지</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN apt-get update &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    apt-get install -y \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      curl \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      ca-certificates \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      sudo \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      git \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    &amp;&amp; rm -rf /var/lib/apt/lists/*</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 서울 시간대 설정</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    echo "Asia/Seoul" &gt; /etc/timezone</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ENV TZ=Asia/Seoul</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="1-2-visual-studio-code-server-설치">1-2. Visual Studio Code Server 설치<a class="hash-link" aria-label="Direct link to 1-2. Visual Studio Code Server 설치" title="Direct link to 1-2. Visual Studio Code Server 설치" href="https://bigdata-car.github.io/usecase/KADaP%20ide%20%EC%97%90%EC%84%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20container%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#1-2-visual-studio-code-server-%EC%84%A4%EC%B9%98">​</a></h4>
<p>1-1 에서 작성한 Dockerfile 에 Visual Studio Code Server 를 설치하고 자동 실행되도록 아래의 명령어를 추가합니다.</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># code-server 설치</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN curl -fsSL https://code-server.dev/install.sh | sh</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 사용자 추가 (kadap)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN useradd -m kadap &amp;&amp; echo "kadap ALL=(ALL) NOPASSWD:ALL" &gt;&gt; /etc/sudoers</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">USER kadap</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">WORKDIR /home/kadap</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># config</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN mkdir -p /home/kadap/.config/code-server</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN echo "bind-addr: 0.0.0.0:8080" &gt; /home/kadap/.config/code-server/config.yaml &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    echo "auth: none" &gt;&gt; /home/kadap/.config/code-server/config.yaml &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    echo "cert: false" &gt;&gt; /home/kadap/.config/code-server/config.yaml</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN chown -R kadap:kadap /home/kadap/.config</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">EXPOSE 8080</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">CMD ["sh", "-lc", "code-server ."]</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>최종적으로 작성된 Dockerfile 은 아래와 같습니다.</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">FROM ubuntu:22.04</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ENV DEBIAN_FRONTEND=noninteractive</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 한국 미러로 변경 (kaist)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN sed -i 's|http://archive.ubuntu.com/ubuntu|http://ftp.kaist.ac.kr/ubuntu|g' /etc/apt/sources.list &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    sed -i 's|http://security.ubuntu.com/ubuntu|http://ftp.kaist.ac.kr/ubuntu|g' /etc/apt/sources.list</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># apt update + 최소 패키지</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN apt-get update &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    apt-get install -y \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      curl \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      ca-certificates \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      sudo \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      git \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    &amp;&amp; rm -rf /var/lib/apt/lists/*</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 서울 시간대 설정</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    echo "Asia/Seoul" &gt; /etc/timezone</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ENV TZ=Asia/Seoul</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># code-server 설치</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN curl -fsSL https://code-server.dev/install.sh | sh</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 사용자 추가 (kadap)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN useradd -m kadap &amp;&amp; echo "kadap ALL=(ALL) NOPASSWD:ALL" &gt;&gt; /etc/sudoers</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">USER kadap</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">WORKDIR /home/kadap</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># config</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN mkdir -p /home/kadap/.config/code-server</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN echo "bind-addr: 0.0.0.0:8080" &gt; /home/kadap/.config/code-server/config.yaml &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    echo "auth: none" &gt;&gt; /home/kadap/.config/code-server/config.yaml &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    echo "cert: false" &gt;&gt; /home/kadap/.config/code-server/config.yaml</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN chown -R kadap:kadap /home/kadap/.config</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">EXPOSE 8080</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">CMD ["sh", "-lc", "code-server ."]</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<br>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Dockerfile 작성하는 방법에 대해서는 본 문서에서는 다루지 않습니다. <br>
자세한 내용은 Docker 공식 <a href="https://docs.docker.com/reference/dockerfile/" target="_blank" rel="noopener noreferrer">문서</a>에서 확인 가능합니다.</p></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="2-docker-image-생성-및-업로드">2. Docker image 생성 및 업로드<a class="hash-link" aria-label="Direct link to 2. Docker image 생성 및 업로드" title="Direct link to 2. Docker image 생성 및 업로드" href="https://bigdata-car.github.io/usecase/KADaP%20ide%20%EC%97%90%EC%84%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20container%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#2-docker-image-%EC%83%9D%EC%84%B1-%EB%B0%8F-%EC%97%85%EB%A1%9C%EB%93%9C">​</a></h3>
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="2-1-docker-build">2-1. Docker build<a class="hash-link" aria-label="Direct link to 2-1. Docker build" title="Direct link to 2-1. Docker build" href="https://bigdata-car.github.io/usecase/KADaP%20ide%20%EC%97%90%EC%84%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20container%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#2-1-docker-build">​</a></h4>
<p><strong>1</strong> 에서 작성한 Dockerfile 을 빌드하여 docker image 를 생성합니다.</p>
<p>Dockerfile 이 있는 디렉토리에서 아래 명령어를 실행합니다. <br></p>
<p><code>docker build --network=host -t {이미지이름:태그} .</code> <br></p>
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="2-2-docker-push">2-2. Docker push<a class="hash-link" aria-label="Direct link to 2-2. Docker push" title="Direct link to 2-2. Docker push" href="https://bigdata-car.github.io/usecase/KADaP%20ide%20%EC%97%90%EC%84%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20container%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#2-2-docker-push">​</a></h4>
<p><strong>2-1</strong> 에서 생성한 docker image 를 docker hub 에 push 합니다.</p>
<p><code>docker push &lt;이미지이름:태그&gt;</code></p>
<br>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>push 전 docker login 필요할 수 있습니다. <br>
<code>docker login -u &lt;username&gt;</code> 입력하여 로그인할 수 있습니다.</p></div></div>
<br>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="kadap-gpuaas-에서-container-로드">KADaP GPUaaS 에서 container 로드<a class="hash-link" aria-label="Direct link to KADaP GPUaaS 에서 container 로드" title="Direct link to KADaP GPUaaS 에서 container 로드" href="https://bigdata-car.github.io/usecase/KADaP%20ide%20%EC%97%90%EC%84%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20container%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#kadap-gpuaas-%EC%97%90%EC%84%9C-container-%EB%A1%9C%EB%93%9C">​</a></h2>
<p>KADaP GPUaaS 에는 기본 제공되는 container 외에 사용자가 추가로 사용하고자 하는 container 를 로드하여 사용할 수 있습니다.</p>
<p>워크로드 생성 시 <code>Pubilc Image</code> 또는 <code>Private Image</code> 를 선택하여 docker hub 이미지를 로드할 수 있습니다.</p>
<img src="https://bigdata-car.github.io/img/usecase/jklee2/ide-container/workload_1.png" alt="워크로드 생성">
<br>
<br>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Private Image 의 경우 docker hub 로그인을 위한 credential 정보를 입력해야 합니다. <br></p><img src="https://bigdata-car.github.io/img/usecase/jklee2/ide-container/workload_2.png" alt="Credential 등록"></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="1-워크로드-설정">1. 워크로드 설정<a class="hash-link" aria-label="Direct link to 1. 워크로드 설정" title="Direct link to 1. 워크로드 설정" href="https://bigdata-car.github.io/usecase/KADaP%20ide%20%EC%97%90%EC%84%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20container%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#1-%EC%9B%8C%ED%81%AC%EB%A1%9C%EB%93%9C-%EC%84%A4%EC%A0%95">​</a></h3>
<p><strong>2</strong> 에서 생성한 docker image 를 불러와 워크로드를 실행할 수 있습니다.</p>
<p>아래와 같이 Pubilc Image 를 선택하고 위에서 docker hub 에 업로드 한 이미지 이름 <code>kadap/code-server:latest</code> 를 입력합니다.</p>
<img src="https://bigdata-car.github.io/img/usecase/jklee2/ide-container/workload_3.png" alt="이미지 로드">
<br>
<br>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>본 예시에서는 이미지 실행 명령어, 환경 변수 및 포트 추가하지 않아도 실행되도록 Dockerfile 을 작성하였습니다. <br>
필요 시 실행 명렁어, 환경 변수 및 포트 추가하여 워크로드를 실행할 수 있습니다.</p><img src="https://bigdata-car.github.io/img/usecase/jklee2/ide-container/workload_4.png" alt="변수 추가"></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="2-워크로드-실행">2. 워크로드 실행<a class="hash-link" aria-label="Direct link to 2. 워크로드 실행" title="Direct link to 2. 워크로드 실행" href="https://bigdata-car.github.io/usecase/KADaP%20ide%20%EC%97%90%EC%84%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20container%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#2-%EC%9B%8C%ED%81%AC%EB%A1%9C%EB%93%9C-%EC%8B%A4%ED%96%89">​</a></h3>
<p>정상적으로 동작하는 이미지 로드 시 워크로드가 실행되고 code-server 에 접속할 수 있습니다.</p>
<p>워크로드 정상 동작 확인 후 연결 버튼을 클릭하여 워크로드에 접속합니다.</p>
<img src="https://bigdata-car.github.io/img/usecase/jklee2/ide-container/workload_6.png" alt="워크로드 실행">
<br>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[LLM API로 나만의 챗봇 UI만들기]]></title>
            <link>https://bigdata-car.github.io/usecase/LLM API로 나만의 챗봇 UI만들기</link>
            <guid>https://bigdata-car.github.io/usecase/LLM API로 나만의 챗봇 UI만들기</guid>
            <pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[KADaP API 로 나만의 챗봇 만들기]]></description>
            <content:encoded><![CDATA[<p>본 문서에서는 <a href="https://api.bigdata-car.kr/" target="_blank" rel="noopener noreferrer">KADaP API</a>와 <a href="https://docs.openwebui.com/" target="_blank" rel="noopener noreferrer">Open WebUI</a>를 이용한 나만의 챗봇을 만드는 방법 소개합니다.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="개요">개요<a class="hash-link" aria-label="Direct link to 개요" title="Direct link to 개요" href="https://bigdata-car.github.io/usecase/LLM%20API%EB%A1%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20%EC%B1%97%EB%B4%87%20UI%EB%A7%8C%EB%93%A4%EA%B8%B0#%EA%B0%9C%EC%9A%94">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="1-kadap-api">1. KADaP API<a class="hash-link" aria-label="Direct link to 1. KADaP API" title="Direct link to 1. KADaP API" href="https://bigdata-car.github.io/usecase/LLM%20API%EB%A1%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20%EC%B1%97%EB%B4%87%20UI%EB%A7%8C%EB%93%A4%EA%B8%B0#1-kadap-api">​</a></h3>
<p>자동차데이터플랫폼 (KADaP; Korea Automotive Data Platform) 에는 AI 및 자동차 산업에 특화된 API 를 이용할 수 있는 KADaP API 서비스를 제공하고 있습니다.</p>
<p>KADaP API 는 <a href="https://www.bigdata-car.kr/" target="_blank" rel="noopener noreferrer">자동차데이터포털</a> 계정으로 로그인 후 이용 가능하며, 필요한 API 에 대하여 사용 신청 후 사용 가능합니다.</p>
<p>사용자가 분석 및 개발한 결과물 (e.g., 알고리즘) 을 API 형태로 공유할 수 있는 API Gateway 기능을 제공합니다.</p>
<img src="https://bigdata-car.github.io/img/usecase/jklee2/open-webui/market_1.png" alt="KADaP_API">
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="2-open-webui">2. Open WebUI<a class="hash-link" aria-label="Direct link to 2. Open WebUI" title="Direct link to 2. Open WebUI" href="https://bigdata-car.github.io/usecase/LLM%20API%EB%A1%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20%EC%B1%97%EB%B4%87%20UI%EB%A7%8C%EB%93%A4%EA%B8%B0#2-open-webui">​</a></h3>
<p>Open WebUI 는 Ollama 및 OpenAI 호환 프로토콜을 지원하는 AI 배포 솔루션입니다.
대규모 언어모델 (LLM) 과 상효작용을 위한 웹 기반 인터페이스로, 명령줄 도구 (CLI) 대신 그래픽 사용자 인터페이스 (GUI) 를 제공합니다.
Docker/Kubernetes 또는 uv 를 통해 간편하게 설치할 수 있으며, GPU 지원 (CUDA) 및 Ollama 번들 이미지 등을 제공하여 쉽게 배포하고 관리할 수 있습니다.</p>
<img src="https://bigdata-car.github.io/img/usecase/jklee2/open-webui/open_webui.png" alt="Open WebUI">
<br>
<p>본 문서에서는 <a href="https://cloud.bigdata-car.kr/" target="_blank" rel="noopener noreferrer">KADaP CLOUD</a> 환경에서 Docker 를 이용한 Open WebUI 설치 및 사용 방법에 대한 가이드를 제공합니다.</p>
<hr>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="open-webui-설치">Open WebUI 설치<a class="hash-link" aria-label="Direct link to Open WebUI 설치" title="Direct link to Open WebUI 설치" href="https://bigdata-car.github.io/usecase/LLM%20API%EB%A1%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20%EC%B1%97%EB%B4%87%20UI%EB%A7%8C%EB%93%A4%EA%B8%B0#open-webui-%EC%84%A4%EC%B9%98">​</a></h2>
<p>Open WebUI 는 Docker 를 사용하여 빠르게 설치할 수 있습니다.
Docker 사용하기 위해서는 현재 서버 또는 PC 내부에 Docker 에이전트가 설치되어 있어야 합니다.</p>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>KADaP CLOUD 의 Docker 에이전트 이미지를 사용하면 별도의 설치없이 바로 사용 가능합니다.
자세한 내용은 <a href="https://bigdata-car.github.io/manual/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C/cloud-project">문서</a> 에서 확인 가능합니다.</p></div></div>
<img src="https://bigdata-car.github.io/img/usecase/jklee2/open-webui/docker_agent.png" alt="KADaP CLOUD">
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="1-open-webui-이미지-다운로드">1. Open WebUI 이미지 다운로드<a class="hash-link" aria-label="Direct link to 1. Open WebUI 이미지 다운로드" title="Direct link to 1. Open WebUI 이미지 다운로드" href="https://bigdata-car.github.io/usecase/LLM%20API%EB%A1%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20%EC%B1%97%EB%B4%87%20UI%EB%A7%8C%EB%93%A4%EA%B8%B0#1-open-webui-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C">​</a></h3>
<p>아래 명령어를 통해 최신 Open WebUI Docker 이미지를 가져옵니다.</p>
<p><code>docker pull ghcr.io/open-webui/open-webui:main</code></p>
<br>
<p>또는 제한적인 환경을 위해 사전 번들 모델을 제외한 간소화된 이미지 버전을 아래 명령어를 통해 가져올 수 있습니다.
이미지 크기는 작지만, 처음 사용할 때 필요한 모델 (whisper, 임베딩 모델) 을 별도로 다운로드 받아야합니다.</p>
<p><code>docker pull ghcr.io/open-webui/open-webui:main-slim</code></p>
<p>본 문서에서는 slim 모델이 아닌 원본 모델을 사용합니다.</p>
<br>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="2-컨테이너-실행">2. 컨테이너 실행<a class="hash-link" aria-label="Direct link to 2. 컨테이너 실행" title="Direct link to 2. 컨테이너 실행" href="https://bigdata-car.github.io/usecase/LLM%20API%EB%A1%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20%EC%B1%97%EB%B4%87%20UI%EB%A7%8C%EB%93%A4%EA%B8%B0#2-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%8B%A4%ED%96%89">​</a></h3>
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="2-1-kadap-cloud-환경">2-1. KADaP CLOUD 환경<a class="hash-link" aria-label="Direct link to 2-1. KADaP CLOUD 환경" title="Direct link to 2-1. KADaP CLOUD 환경" href="https://bigdata-car.github.io/usecase/LLM%20API%EB%A1%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20%EC%B1%97%EB%B4%87%20UI%EB%A7%8C%EB%93%A4%EA%B8%B0#2-1-kadap-cloud-%ED%99%98%EA%B2%BD">​</a></h4>
<p>KADaP CLOUD 환경에서 기본 설정으로 컨테이너 실행을 위해서는 아래의 명령어를 이용합니다.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sudo docker run -d \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  --network=host \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  --add-host=host.docker.internal:host-gateway \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  -v open-webui:/app/backend/data \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  --name open-webui \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  --restart always \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  ghcr.io/open-webui/open-webui:main</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>볼륨 매핑 위치를 변경하려면 <code>-v {볼륨 위치}:/app/backend/data</code> 부분을 수정하면 됩니다.</p>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>CLOUD 사양에 따라 Docker 실행에 시간이 소요될 수 있습니다.</p></div></div>
<br>
<p>간소화된 slim 버전의 이미지를 사용한다면 아래의 명령어로 컨테이너 실행할 수 있습니다.
기본 명령어의 실행 이미지만 변경하면 됩니다.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sudo docker run -d \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  --network=host \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  --add-host=host.docker.internal:host-gateway \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  -v open-webui:/app/backend/data \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  --name open-webui \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  --restart always \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  ghcr.io/open-webui/open-webui:main-slim</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>이외의 컨테이너 실행 명령어는 Docker 공식 <a href="https://docs.docker.com/" target="_blank" rel="noopener noreferrer">문서</a> 에서 확인할 수 있습니다.</p></div></div>
<br>
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="2-2-ubuntu-wsl-환경">2-2. Ubuntu (WSL) 환경<a class="hash-link" aria-label="Direct link to 2-2. Ubuntu (WSL) 환경" title="Direct link to 2-2. Ubuntu (WSL) 환경" href="https://bigdata-car.github.io/usecase/LLM%20API%EB%A1%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20%EC%B1%97%EB%B4%87%20UI%EB%A7%8C%EB%93%A4%EA%B8%B0#2-2-ubuntu-wsl-%ED%99%98%EA%B2%BD">​</a></h4>
<p>Ubuntu (리눅스) 서버 혹은 WSL 환경에서 기본 설정으로 컨테이너 실행을 위해서는 아래의 명령어를 이용합니다.
이 명령에는 컨테이너 데이터 저장을 위한 볼륨 매핑이 포함되어 있습니다.</p>
<p><code>sudo docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main</code></p>
<p>볼륨 매핑 위치를 변경하려면 <code>-v {볼륨 위치}:/app/backend/data</code> 부분을 수정하면 됩니다.</p>
<br>
<p>간소화된 slim 버전의 이미지를 사용한다면 아래의 명령어로 컨테이너 실행할 수 있습니다.
기본 명령어의 실행 이미지만 변경하면 됩니다.</p>
<p><code>sudo docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main-slim</code></p>
<br>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="open-webui-설정-및-챗봇-연결">Open WebUI 설정 및 챗봇 연결<a class="hash-link" aria-label="Direct link to Open WebUI 설정 및 챗봇 연결" title="Direct link to Open WebUI 설정 및 챗봇 연결" href="https://bigdata-car.github.io/usecase/LLM%20API%EB%A1%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20%EC%B1%97%EB%B4%87%20UI%EB%A7%8C%EB%93%A4%EA%B8%B0#open-webui-%EC%84%A4%EC%A0%95-%EB%B0%8F-%EC%B1%97%EB%B4%87-%EC%97%B0%EA%B2%B0">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="1-클라우드-환경-설정">1. 클라우드 환경 설정<a class="hash-link" aria-label="Direct link to 1. 클라우드 환경 설정" title="Direct link to 1. 클라우드 환경 설정" href="https://bigdata-car.github.io/usecase/LLM%20API%EB%A1%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20%EC%B1%97%EB%B4%87%20UI%EB%A7%8C%EB%93%A4%EA%B8%B0#1-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95">​</a></h3>
<p>KADaP CLOUD 와 KADaP API 연동을 위해서는 클라우드 내 hosts 파일 수정이 필요합니다.
아래 명령어를 통해 클라우드 서버의 hosts 파일에 접근할 수 있습니다.</p>
<p><code>sudo vi /etc/hosts</code></p>
<p>hosts 파일 내 아래의 내용을 추가하여 KADaP API 서버에 연결할 수 있도록 수정합니다.</p>
<p><code>10.10.50.100 api-gateway.bigdata-car.kr</code></p>
<p>내용을 추가했을 때 <code>/etc/hosts</code> 파일의 내용은 아래와 같은 형태가 됩니다.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">127.0.0.1 localhost</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">10.10.50.100 api-gateway.bigdata-car.kr</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># The following lines are desirable for IPv6 capable hosts</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">::1 ip6-localhost ip6-loopback</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fe00::0 ip6-localnet</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ff00::0 ip6-mcastprefix</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ff02::1 ip6-allnodes</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ff02::2 ip6-allrouters</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ff02::3 ip6-allhosts</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="2-챗봇-만들기">2. 챗봇 만들기<a class="hash-link" aria-label="Direct link to 2. 챗봇 만들기" title="Direct link to 2. 챗봇 만들기" href="https://bigdata-car.github.io/usecase/LLM%20API%EB%A1%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20%EC%B1%97%EB%B4%87%20UI%EB%A7%8C%EB%93%A4%EA%B8%B0#2-%EC%B1%97%EB%B4%87-%EB%A7%8C%EB%93%A4%EA%B8%B0">​</a></h3>
<p>KADaP API 는 OpenAI 의 gpt, LG AI 의 EXAONE 을 포함한 약 600 여개의 LLM 모델을 API 형태로 지원합니다.
본 문서에서는 LG AI 의 EXAONE-3.5-7.8B-Instruct 모델을 API 로 연결하는 방법에 대해 설명합니다.</p>
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="2-1-kadap-api-연결정보-확인">2-1. KADaP API 연결정보 확인<a class="hash-link" aria-label="Direct link to 2-1. KADaP API 연결정보 확인" title="Direct link to 2-1. KADaP API 연결정보 확인" href="https://bigdata-car.github.io/usecase/LLM%20API%EB%A1%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20%EC%B1%97%EB%B4%87%20UI%EB%A7%8C%EB%93%A4%EA%B8%B0#2-1-kadap-api-%EC%97%B0%EA%B2%B0%EC%A0%95%EB%B3%B4-%ED%99%95%EC%9D%B8">​</a></h4>
<p>KADaP API 상세정보에는 해당 API 를 외부에서 쉽게 연결할 수 있도록 연결정보를 제공하고 있습니다.
<code>API DOCS 바로가기</code> 버튼을 통해 연결정보를 확인할 수 있습니다.</p>
<img src="https://bigdata-car.github.io/img/usecase/jklee2/open-webui/api_docs.png" alt="API DOCS">
<p>DOCS 페이지에서 해당 API 호출을 위한 endpoint, request body 등 정보를 확인할 수 있습니다.</p>
<img src="https://bigdata-car.github.io/img/usecase/jklee2/open-webui/market_2.png" alt="API DOCS 2">
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="2-2-open-webui-설정">2-2. Open WebUI 설정<a class="hash-link" aria-label="Direct link to 2-2. Open WebUI 설정" title="Direct link to 2-2. Open WebUI 설정" href="https://bigdata-car.github.io/usecase/LLM%20API%EB%A1%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20%EC%B1%97%EB%B4%87%20UI%EB%A7%8C%EB%93%A4%EA%B8%B0#2-2-open-webui-%EC%84%A4%EC%A0%95">​</a></h4>
<p>도커 이미지로 실행시킨 Open WebUI 에 접속합니다.
Open WebUI 는 8080 포트를 통해 배포되며, KADaP CLOUD 사용자는 CLOUD 의 <a href="https://bigdata-car.github.io/manual/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C/VM">포트포워딩</a> 기능을 사용하여 외부 포트를 할당받아 접속할 수 있습니다.</p>
<p>최초 접속 시 사용자 이름, 이메일, 비밀번호를 등록해야합니다.
해당 정보는 Docker 컨테이너의 <code>/app/backend/.webui_secret_key</code> 파일에 암호화되어 저장되고, 추후 접속 시 로그인을 위해 사용됩니다.</p>
<br>
<h5 class="anchor anchorWithStickyNavbar_LWe7" id="챗봇-연결"><strong>[챗봇 연결]</strong><a class="hash-link" aria-label="Direct link to 챗봇-연결" title="Direct link to 챗봇-연결" href="https://bigdata-car.github.io/usecase/LLM%20API%EB%A1%9C%20%EB%82%98%EB%A7%8C%EC%9D%98%20%EC%B1%97%EB%B4%87%20UI%EB%A7%8C%EB%93%A4%EA%B8%B0#%EC%B1%97%EB%B4%87-%EC%97%B0%EA%B2%B0">​</a></h5>
<p>로그인 후, 관리자 패널의 설정 페이지에 접속합니다.</p>
<img src="https://bigdata-car.github.io/img/usecase/jklee2/open-webui/chatbot_1.png" alt="관리자 패널 접속">
<br>
<p><em>연결</em> 탭으로 이동 후 우측의 OpenAI API 연결 추가 (+) 버튼을 클릭합니다.</p>
<img src="https://bigdata-car.github.io/img/usecase/jklee2/open-webui/chatbot_2.png" alt="관리자 패널 접속 2">
<br>
<p>연결 추가 팝업 내 URL, Headers, 모델 ID 를 추가합니다.</p>
<p>URL 은 KADaP API 의 DOCS 에서 확인한 Server 주소 뒤에 <mark>/api/v1</mark> 을 붙여 입력합니다.
Headers 에 DOCS 에서 확인한 개인 API key 를 "X-Api-Key" 이름으로 입력합니다.
모델 ID 는 DOCS 에서 확인한 Request body 의 model 이름을 입력합니다.</p>
<p>해당 예시는 KADaP API 의 EXAONE-3.5-7.8B-Instruct 모델에 대한 예시이며, 모델 명은 <code>/.exaone</code> 입니다.</p>
<p>OpenAI 의 모델을 사용한다면 <code>gpt-4o</code> 와 같은 모델 명을 입력할 수 있습니다.</p>
<img src="https://bigdata-car.github.io/img/usecase/jklee2/open-webui/chatbot_3.png" alt="챗봇 연결 설정">
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>OpenAI Client 를 이용하여 챗봇 호출하는 구조이며, 이 때 <code>/api/v1/chat/completions</code> 형태로 호출합니다. <br>
<code>/chat/completion</code> 는 자동으로 붙여서 호출되어 해당 API 등록 시 URL 에 <code>/api/v1</code> 부분만 추가 입력하여 사용합니다.</p></div></div>
<p>연결 성공 시 <code>OpenAI API 설정이 업데이트되었습니다.</code> 알림과 함께 API 가 등록됩니다.</p>
<img src="https://bigdata-car.github.io/img/usecase/jklee2/open-webui/chatbot_4.png" alt="연결 성공">
<p>이제 홈 화면에서 등록한 모델을 사용하여 채팅할 수 있습니다!</p>
<img src="https://bigdata-car.github.io/img/usecase/jklee2/open-webui/chatbot_5.png" alt="연결 성공 (홈)">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[웹 애플리케이션 배포를 위한 Vercel 사용하기]]></title>
            <link>https://bigdata-car.github.io/usecase/Vercel</link>
            <guid>https://bigdata-car.github.io/usecase/Vercel</guid>
            <pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[웹 애플리케이션 배포를 위한 Vercel 사용하기]]></description>
            <content:encoded><![CDATA[<img src="https://bigdata-car.github.io/img/usecase/minju/01_vercel/image-2.png" alt="vercel">
<p>웹 애플리케이션 배포를 위해서는 서버, 도메인, SSL 설정, CI/CD 구성, 캐시 최적화 등 많은 작업이 필요합니다.</p>
<p>Vercel은 이런 과정을 자동화하여, 개발자가 코드 작성에 집중하여 쉽고 빠르게 배포할 수 있도록 도와줍니다.
Vercel은 Next.js를 만든 회사에서 운영하는 클라우드 플랫폼으로 React 및 Next.js 기반 웹 애플리케이션을 가장 효율적으로 배포할 수 있도록 설계되어있습니다.</p>
<h1>2. Vercel의 주요 기능</h1>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="2-1-정적-및-동적-사이트-배포">2-1. 정적 및 동적 사이트 배포<a class="hash-link" aria-label="Direct link to 2-1. 정적 및 동적 사이트 배포" title="Direct link to 2-1. 정적 및 동적 사이트 배포" href="https://bigdata-car.github.io/usecase/Vercel#2-1-%EC%A0%95%EC%A0%81-%EB%B0%8F-%EB%8F%99%EC%A0%81-%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B0%B0%ED%8F%AC">​</a></h2>
<ul>
<li>
<p>Vercel은 Gatsby, Next.js, SvelteKit와 같은 웹 프레임워크로 개발한 정적 웹페이지를 쉽게 호스팅 할 수 있습니다.</p>
<p>예를 들어 블로그나 랜딩 페이지처럼 내용이 거의 변하지 않는 사이트는 정정 사이트로, 로그인, 게시판, API 호출이 필요한 서비스는 동적 사이트로 운영 할 수 있습니다.
Vercel은 두 타입 사이트를 하나의 플랫폼에서 모두 처리할 수 있습니다.</p>
</li>
<li>
<p>Vercel의 큰 강점은 동적 사이트 또한 무중단 배포가 가능합니다.</p>
<p>무중단 배포란 서비스의 중단 없이 새 버전을 배포하는 것으로, 사용자가 서비스를 이용하는 동안에도 업데이트가 가능합니다.</p>
<img src="https://bigdata-car.github.io/img/usecase/minju/01_vercel/image-5.png" alt="vercel">
</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="2-2-자동-cicd-파이프라인">2-2. 자동 CI/CD 파이프라인<a class="hash-link" aria-label="Direct link to 2-2. 자동 CI/CD 파이프라인" title="Direct link to 2-2. 자동 CI/CD 파이프라인" href="https://bigdata-car.github.io/usecase/Vercel#2-2-%EC%9E%90%EB%8F%99-cicd-%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8">​</a></h2>
<ul>
<li>
<p>GitHub, GitLab, Bitbucker 등의 Git 리포지토리에 연동하여 배포 파이프라인이 자동화되어 코드 변경 시 마다 새로운 빌드와 배포가 가능합니다.</p>
<img src="https://bigdata-car.github.io/img/usecase/minju/01_vercel/image-6.png" alt="vercel">
<p>Vercel은 Zero-Config 배포로 별도의 설정 파일이나 빌드 스크립트 작성 없이, 시스템이 소스 코드를 분석하여 필요한 빌드 및 최적화를 수행합니다. 따라서, 개발자의 수동 개입 없이 일관된 배포가 가능합니다. 이를 통해 배포 실수, 환경 차이로 인한 오류를 크게 줄일 수 있습니다.</p>
</li>
<li>
<p>브랜치 기반 배포를 지원하기 때문에 지정된 프로덕션 브랜치에 merge 되면 자동으로 프로덕션 사이트에 적용되고, 기타 브랜치에 merge할 경우 프리뷰 배포를 생성합니다.</p>
</li>
<li>
<p>Vercel은 roll-back 기능도 제공하여 장애 발생시 이전 버전으로 재적용할 수 있습니다.</p>
</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="2-3-edge-functions">2-3. Edge Functions<a class="hash-link" aria-label="Direct link to 2-3. Edge Functions" title="Direct link to 2-3. Edge Functions" href="https://bigdata-car.github.io/usecase/Vercel#2-3-edge-functions">​</a></h2>
<ul>
<li>
<p>Edge Functions은 사용자와 가장 가까운 위치에서 코드가 실행할 수 있게 만드는 서버측 TypeScript 함수입니다.</p>
<p>일반적인 Serverless 함수가 AWS 리전 등 중앙에서 실행되는 반면, Edge Function은 전 세계에 분포된 Vercel 엣지 네트워크 상에서 배포할 수 있어 지연 시간을 줄이고 성능을 향상 시킬 수 있습니다.</p>
</li>
<li>
<p>로그인 토큰 검증, 국가/지역별 페이지 분기, 간단한 API응답 같은 작업에 사용한다.</p>
</li>
</ul>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Serverless?</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">개발자 또는 운영자가 직접 서버를 관리하지 않아도 되는 경우를 의미한다.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="2-4-이미지-최적화image-optimization">2-4. 이미지 최적화(Image Optimization)<a class="hash-link" aria-label="Direct link to 2-4. 이미지 최적화(Image Optimization)" title="Direct link to 2-4. 이미지 최적화(Image Optimization)" href="https://bigdata-car.github.io/usecase/Vercel#2-4-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%B5%9C%EC%A0%81%ED%99%94image-optimization">​</a></h2>
<ul>
<li>
<p>Vercel은 이미지 최적화 기능을 플랫폼에 내장하여 제공하고 있습니다.</p>
<p><code>&lt;</code>img<code>&gt;</code> 태그 대신 <code>&lt;</code>Image<code>&gt;</code> 컴포넌트를 사용하면 별도의 설정 없이 자동으로 이미지 최적화 할 수 있습니다.
이미지는 요청에 맞게 리사이징/압축되며, CDN 엣지에 캐시되어 이후 요청 시 빠르게 제공됩니다.</p>
</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="2-5-프리뷰-배포preview-deployments">2-5. 프리뷰 배포(Preview Deployments)<a class="hash-link" aria-label="Direct link to 2-5. 프리뷰 배포(Preview Deployments)" title="Direct link to 2-5. 프리뷰 배포(Preview Deployments)" href="https://bigdata-car.github.io/usecase/Vercel#2-5-%ED%94%84%EB%A6%AC%EB%B7%B0-%EB%B0%B0%ED%8F%ACpreview-deployments">​</a></h2>
<ul>
<li>Git 브랜치나 Pull request에 대해서 자동으로 프리뷰용 배포 URL이 생성되며 반영된 웹사이트를 누구나 접속할 수 있습니다.
해당 기능은 프로덕션 환경과 동일한 조건에서 테스트를 진행할 수 있어 로컬에서 작업시 발생하는 문제를 조기에 발견할 수 있습니다.</li>
<li>Vercel은 로컬, 프리뷰, 프로덕션 세 가지 환경을 지원합니다.<br>
<!-- -->이를 통해 개발 단계에서 사용하던 백엔드 API 엔드포인트와 프로덕션에서 엔드포인트를 분리할 수 있습니다.</li>
<li>디자이너, 기획자, QA 담당자에게 URL만 전달하면 즉시 결과물을 확인시킬 수 있어 협업 효율이 크게 향상됩니다.</li>
</ul>
<h1>3. 웹 호스팅/배포 유사 서비스</h1>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="3-1-netlify">3-1. Netlify<a class="hash-link" aria-label="Direct link to 3-1. Netlify" title="Direct link to 3-1. Netlify" href="https://bigdata-car.github.io/usecase/Vercel#3-1-netlify">​</a></h2>
<img src="https://bigdata-car.github.io/img/usecase/minju/01_vercel/image-7.png" alt="vercel">
<p>Vercel과 많은 공통점을 가진 플랫폼으로 Git 연동 자동 배포, Serverless Function, Edge Function, 브랜치별 프리뷰 배포 기능을 가지고 있습니다. 기본적으로 Jamstack 기능을 제공하며, 프론트엔드 개발자에게 초점을 맞추고 있습니다.</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Jamstack 이란?</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">JavaScript, API, Markup 의 약자로 빠르고 안전하며 확장 가능한 웹사이트 구축을 위한 아키텍처 패턴입니다.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<ul>
<li>Vercel은 React/Next.js 애플리케이션에 최적화되어 있어, 빌드 시 성능 최적화를 자동으로 적용하여 글로벌 Edge 네트워크로 배포 가능합니다.</li>
<li>Netlify는 Jamstack 올인원 플랫폼으로 정적 사이트 배포, 사용자 인증, 서버리스 함수, 플러그인 생태계 등 폭넓은 부가 기능을 제공합니다.</li>
<li>Netify는 광범위한 무료 플랜을 제공하는 반면 Vercel은 한 계정당 200개 프로젝트, 팀멤버 1인 제한이 있습니다.(Netlify 500개 사이트 호스팅 가능, 무제한 팀멤버)</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="3-2-aws-amplify">3-2. AWS Amplify<a class="hash-link" aria-label="Direct link to 3-2. AWS Amplify" title="Direct link to 3-2. AWS Amplify" href="https://bigdata-car.github.io/usecase/Vercel#3-2-aws-amplify">​</a></h2>
<img src="https://bigdata-car.github.io/img/usecase/minju/01_vercel/image-8.png" alt="vercel">
<p>아마존 웹 서비스가 2018년에 출시한 풀스택 프론트엔드 플랫폼으로, AWS의 인프라와 서비스를 프론트엔드 개발자가 쉽게 활용할 수 있습니다.</p>
<p>AWS에서 개발한 플랫폼인 만큼, AWS의 다른 서비스들과 쉽게 연동할 수 있어 Database, Cognito 인증, S3 스토리지, AL/ML서비스까지 앱에 연동할 수 있습니다.
하지만, Amplify는 복잡한 설정과 AWS 지식을 요구하기 때문에 AWS를 잘 모르는 개발자에게는 부담이 될 수 있습니다.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="3-3-cloudflare-page">3-3. cloudflare page<a class="hash-link" aria-label="Direct link to 3-3. cloudflare page" title="Direct link to 3-3. cloudflare page" href="https://bigdata-car.github.io/usecase/Vercel#3-3-cloudflare-page">​</a></h2>
<img src="https://bigdata-car.github.io/img/usecase/minju/01_vercel/image-9.png" alt="vercel">
<p>CloudFlare에서 2020년에 출시한 정적 사이트 호스팅 및 Functions 서비스입니다.</p>
<p>CloudFlare는 세계 최대 CDN 네트워크 중 하나로, Cloudflare page는 압도적인 글로벌 분산 인프라와 비용 효율성을 제공합니다.
Cloudflare page는 프리요금제에도 무제한 대역폭을 제공하고 있어, 웹 트래픽이 급증하더라고 추가 비용 없이 서비스를 지속할 수 있습니다.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="3-4-vercel--netlify--amplify--cloudflare-page-특징-및-비교">3-4. Vercel / Netlify / Amplify / Cloudflare page 특징 및 비교<a class="hash-link" aria-label="Direct link to 3-4. Vercel / Netlify / Amplify / Cloudflare page 특징 및 비교" title="Direct link to 3-4. Vercel / Netlify / Amplify / Cloudflare page 특징 및 비교" href="https://bigdata-car.github.io/usecase/Vercel#3-4-vercel--netlify--amplify--cloudflare-page-%ED%8A%B9%EC%A7%95-%EB%B0%8F-%EB%B9%84%EA%B5%90">​</a></h2>
<table><thead><tr><th>구분</th><th>Vercel</th><th>Netlify</th><th>Cloudflare Pages</th></tr></thead><tbody><tr><td>핵심 포지션</td><td>프론트엔드 전용 고성능 배포 플랫폼</td><td>Jamstack 올인원 배포 플랫폼</td><td>CDN 기반 초고속 정적 사이트 플랫폼</td></tr><tr><td>최적화 대상</td><td>Next.js / React 중심</td><td>프레임워크 전반 범용</td><td>정적 사이트 중심</td></tr><tr><td>정적 사이트(SSG)</td><td>지원</td><td>지원</td><td>최강점</td></tr><tr><td>SSR 지원</td><td>매우 강력 (Next.js 네이티브)</td><td>가능하나 설정 필요</td><td>제한적</td></tr><tr><td>Edge 실행</td><td>Edge Functions 제공</td><td>Edge Functions 제공</td><td>Workers 기반 Edge Functions</td></tr><tr><td>서버리스</td><td>Serverless Functions 제공</td><td>Functions 제공</td><td>Workers로 대체</td></tr><tr><td>성능 지향</td><td>동적·정적 모두 고성능</td><td>정적 위주 안정적</td><td>정적 성능 최상</td></tr><tr><td>CI/CD</td><td>Git 연동 자동화, 프리뷰 최강</td><td>Git 연동 자동화, 안정적</td><td>Git 연동 자동화, 단순</td></tr><tr><td>프리뷰 배포</td><td>매우 강력 (코멘트 포함)</td><td>기본 제공</td><td>기본 제공</td></tr><tr><td>부가 기능</td><td>배포·성능 집중, 외부 서비스 연동</td><td>Form, Auth, Add-ons 등 풍부</td><td>보안·CDN·대역폭 강점</td></tr><tr><td>무료 정책</td><td>비교적 제한적</td><td>가장 관대</td><td>대역폭 무제한</td></tr><tr><td>적합한 경우</td><td>Next.js 기반 서비스, 제품형 웹앱</td><td>정적 사이트 + 기능 빠른 구축</td><td>대규모 트래픽 정적 사이트</td></tr></tbody></table>
<ul>
<li>Vercel: Next.js에 최적화된 프론트엔드 배포 플랫폼</li>
<li>Netlify: 다양한 부가기능을 제공하는 Jamstack 올인원 플랫폼</li>
<li>Cloudflare Pages: 대역폭 무제한 CDN 기반 정적 호스팅</li>
</ul>
<h1>4. Vercel을 활용한 웹페이지 배포하기</h1>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="4-1-vercel-platform을-활용한-domain-생성-및-배포">4-1. Vercel Platform을 활용한 Domain 생성 및 배포<a class="hash-link" aria-label="Direct link to 4-1. Vercel Platform을 활용한 Domain 생성 및 배포" title="Direct link to 4-1. Vercel Platform을 활용한 Domain 생성 및 배포" href="https://bigdata-car.github.io/usecase/Vercel#4-1-vercel-platform%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%9C-domain-%EC%83%9D%EC%84%B1-%EB%B0%8F-%EB%B0%B0%ED%8F%AC">​</a></h2>
<ol>
<li>
<p>Vercel 접속 및 Log In</p>
<img src="https://bigdata-car.github.io/img/usecase/minju/01_vercel/image-15.png" alt="vercel">
</li>
<li>
<p>프로젝트 생성</p>
<img src="https://bigdata-car.github.io/img/usecase/minju/01_vercel/image-16.png" alt="vercel">
<img src="https://bigdata-car.github.io/img/usecase/minju/01_vercel/image-19.png" alt="vercel">
<ol>
<li>
<p>GitHub 계정 선택</p>
</li>
<li>
<p>배포할 Repository 선택</p>
<p>배포할 repository가 없는 경우, Permission 변경</p>
</li>
<li>
<p>원하는 repository Import</p>
</li>
</ol>
</li>
<li>
<p>배포</p>
<img src="https://bigdata-car.github.io/img/usecase/minju/01_vercel/image-23.png" alt="vercel">
<ul>
<li>도메인 생성: <a href="https://react-dashboard-z2dj.vercel.app/" target="_blank" rel="noopener noreferrer">https://react-dashboard-z2dj.vercel.app</a></li>
</ul>
</li>
<li>
<p>접속</p>
<img src="https://bigdata-car.github.io/img/usecase/minju/01_vercel/image-24.png" alt="vercel">
</li>
</ol>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="4-2-cli를-활용한-domain-생성-및-배포">4-2. CLI를 활용한 Domain 생성 및 배포<a class="hash-link" aria-label="Direct link to 4-2. CLI를 활용��한 Domain 생성 및 배포" title="Direct link to 4-2. CLI를 활용한 Domain 생성 및 배포" href="https://bigdata-car.github.io/usecase/Vercel#4-2-cli%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-domain-%EC%83%9D%EC%84%B1-%EB%B0%8F-%EB%B0%B0%ED%8F%AC">​</a></h3>
<ol>
<li>
<p>Installing Vercel CLI</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># pnpm 설치</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">npm install -g pnpm </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># pnpm 환경변수 설정</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pnpm setup</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># vercel 설치 </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pnpm i -g vercel</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<img src="https://bigdata-car.github.io/img/usecase/minju/01_vercel/image-25.png" alt="vercel">
</li>
<li>
<p>Update Vercel CLI</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># update vercel CLI</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pnpm i -g vercel@latest</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 버전 확인</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">vercel --version</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
</li>
<li>
<p>Deploying from source</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># Deploys the current Vercel project, when run from the Vercel Project root.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">vercel</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<img src="https://bigdata-car.github.io/img/usecase/minju/01_vercel/image-26.png" alt="vercel">
<img src="https://bigdata-car.github.io/img/usecase/minju/01_vercel/image-27.png" alt="vercel">
<img src="https://bigdata-car.github.io/img/usecase/minju/01_vercel/image-32.png" alt="vercel">
</li>
<li>
<p>접속</p>
<p>생성된 도메인 주소: <a href="https://argon-dashboard-react-omega.vercel.app/" target="_blank" rel="noopener noreferrer">https://argon-dashboard-react-omega.vercel.app/</a></p>
<img src="https://bigdata-car.github.io/img/usecase/minju/01_vercel/image-33.png" alt="vercel">
</li>
</ol>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Node.js 설치부터 React 프로젝트 시작까지]]></title>
            <link>https://bigdata-car.github.io/usecase/React</link>
            <guid>https://bigdata-car.github.io/usecase/React</guid>
            <pubDate>Mon, 09 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Node.js 설치부터 React 프로젝트 시작까지]]></description>
            <content:encoded><![CDATA[<p>프론트엔드 개발을 시작할 때 가장 먼저 진행하는 것은 개발 환경 셋팅입니다.</p>
<p>React 프로젝트를 시작하기 위해서 반드시 Node.js가 필요합니다.</p>
<p>왜냐하면, Node.js 위에서 모든 빌드 도구와 패키지 관리가 동작하기 때문입니다.</p>
<p>본 글에서는 <strong>Ubuntu 환경에서 Node.js 설치 -&gt; React 프로젝트 생성 -&gt; 무료 대시보드 템플릿 실행</strong>까지 내용을 정리합니다.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="0-javascript-nodejs-react의-관계">0. JavaScript, Node.js, React의 관계<a class="hash-link" aria-label="Direct link to 0. JavaScript, Node.js, React의 관계" title="Direct link to 0. JavaScript, Node.js, React의 관계" href="https://bigdata-car.github.io/usecase/React#0-javascript-nodejs-react%EC%9D%98-%EA%B4%80%EA%B3%84">​</a></h2>
<p>글을 시작하기 전 JavaScript와 Node.js, React 관계에 대해 간단하게 소개합니다.
React는 브라우저에서 실행되지만, 개발 과정에서 사용하는 빌드, 패키지 설치, 서버 실행은 모두 Node.js가 담당하고 있습니다.
<br> 따라서, React 개발을 위해서는 Node.js 설치가 필요합니다.</p>
<table><thead><tr><th>구분</th><th>역할</th></tr></thead><tbody><tr><td>JavaScript</td><td>프로그래밍 언어</td></tr><tr><td>Node.js</td><td>JavaScript 실행 환경(런타임)</td></tr><tr><td>React</td><td>JavaScript로 UI를 만드는 라이브러리</td></tr></tbody></table>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="1-nodejs-설치">1. Node.js 설치<a class="hash-link" aria-label="Direct link to 1. Node.js 설치" title="Direct link to 1. Node.js 설치" href="https://bigdata-car.github.io/usecase/React#1-nodejs-%EC%84%A4%EC%B9%98">​</a></h2>
<p>Node.js의 필요성에 대해 알아보았으니 설치를 진행해보겠습니다.
<br>저는 Linux에서 24.13.0 버전을 설치하였습니다.</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">1) nvm 다운로드 및 설치</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">2) nvm 적용</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">source ~/.bashrc</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">3) nvm 설치 확인</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">nvm -v</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">4) Node.js 다운로드 및 설치</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">nvm install 24</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">5) 설치 Node.js 버전 확인 및 npm 버전 확인</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">node -v</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">npm -v</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>KADaP Cloud 사용시, ssh를 통해 VM 접속 후 동일한 방법으로 설치하시면 됩니다.</p>
<img src="https://bigdata-car.github.io/img/usecase/minju/02_react/image-10.png" alt="react">
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="2-react-프로젝트-생성">2. React 프로젝트 생성<a class="hash-link" aria-label="Direct link to 2. React 프로젝트 생성" title="Direct link to 2. React 프로젝트 생성" href="https://bigdata-car.github.io/usecase/React#2-react-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1">​</a></h2>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">1 or 2 둘 중 하나 선택</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">1) npm create-react-app my-react-app</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">2) npm create vite@latest my-react-app</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">npm start</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">http://localhost:3000 접속 (KADaP Cloud 사용자: http://&lt;vm ip&gt;:3000)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<img src="https://bigdata-car.github.io/img/usecase/minju/02_react/image-15.png" alt="react">
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="3-무료-react-dashboard-templete-실행하기">3. 무료 React Dashboard Templete 실행하기<a class="hash-link" aria-label="Direct link to 3. 무료 React Dashboard Templete 실행하기" title="Direct link to 3. 무료 React Dashboard Templete 실행하기" href="https://bigdata-car.github.io/usecase/React#3-%EB%AC%B4%EB%A3%8C-react-dashboard-templete-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0">​</a></h2>
<p>오픈된 무료 Dashboard 템플릿을 통해 빠르게 개발 및 배포 할 수 있습니다.</p>
<p>아래는 대표적인 무료 React dashboard templete 입니다.</p>
<ul>
<li>
<p>Argon Dashboard React</p>
<img src="https://bigdata-car.github.io/img/usecase/minju/02_react/image-16.png" alt="react">
</li>
<li>
<p>Material Dashboard React</p>
<img src="https://bigdata-car.github.io/img/usecase/minju/02_react/image-17.png" alt="react">
</li>
<li>
<p>CoreUI React</p>
<img src="https://bigdata-car.github.io/img/usecase/minju/02_react/image-18.png" alt="react">
</li>
<li>
<p>AdminLTE Reac</p>
<img src="https://bigdata-car.github.io/img/usecase/minju/02_react/image-19.png" alt="react">
</li>
</ul>
<p>본 글에서는 Argon Dashboard로 시작해보겠습니다.</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="31-템플릿-가져오기git-clone">3.1 템플릿 가져오기(Git clone)<a class="hash-link" aria-label="Direct link to 3.1 템플릿 가져오기(Git clone)" title="Direct link to 3.1 템플릿 가져오기(Git clone)" href="https://bigdata-car.github.io/usecase/React#31-%ED%85%9C%ED%94%8C%EB%A6%BF-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0git-clone">​</a></h3>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">git clone https://github.com/creativetimofficial/argon-dashboard-react.git</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="32-폴더-이동">3.2 폴더 이동<a class="hash-link" aria-label="Direct link to 3.2 폴더 이동" title="Direct link to 3.2 폴더 이동" href="https://bigdata-car.github.io/usecase/React#32-%ED%8F%B4%EB%8D%94-%EC%9D%B4%EB%8F%99">​</a></h3>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">cd argon-dashboard-react</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="33-패키지-설치">3.3 패키지 설치<a class="hash-link" aria-label="Direct link to 3.3 패키지 설치" title="Direct link to 3.3 패키지 설치" href="https://bigdata-car.github.io/usecase/React#33-%ED%8C%A8%ED%82%A4%EC%A7%80-%EC%84%A4%EC%B9%98">​</a></h3>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">npm install</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="34-실행">3.4 실행<a class="hash-link" aria-label="Direct link to 3.4 실행" title="Direct link to 3.4 실행" href="https://bigdata-car.github.io/usecase/React#34-%EC%8B%A4%ED%96%89">​</a></h3>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">npm start (또는) npm run dev</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<img src="https://bigdata-car.github.io/img/usecase/minju/02_react/image-20.png" alt="react">
<p>연결 성공!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Titanic 생존률 분석 AI 바이브 코딩으로 하기 2]]></title>
            <link>https://bigdata-car.github.io/usecase/Titanic 생존률 분석 AI 바이브 코딩으로 하기 2</link>
            <guid>https://bigdata-car.github.io/usecase/Titanic 생존률 분석 AI 바이브 코딩으로 하기 2</guid>
            <pubDate>Mon, 19 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[데이터 분석의 시작인 타이타닉 생존률 분석을 AI 코딩으로 배워 봅니다. 구글의 Antigravity 툴에 대하여 소개 합니다.]]></description>
            <content:encoded><![CDATA[<p>본 장에서는 구글의 AI 코딩툴인 <code>Antigravity</code> 툴에 대하여 살펴 보겠습니다.</p>
<p><code>Antigravity</code>는 MS VSCode를 기반으로 개발 되었습니다. 기본 개발 및 IDE관련 기능은 VSCode를 활용한 AI 코딩 부분은 우측 확장 기능(??)형식으로 제공하고 있습니다. 따라서 본 장에서는 VSCode에 대한 기본 내용을 포함 하고 있습니다.</p>
<p>Microsoft에서 2015년에 제작하여 무료로 배포 하고 있는 IDE 툴입니다. Windows, macOS, Linux 를 지웒고 있으면 홈페이지에서 무료로 다운 받을수 있습니다.</p>
<blockquote>
<p><code>Antigravity</code>를 설치하면  VSCode도 포함되므로 별도로 설치할 필요는 없습니다.</p>
</blockquote>
<img width="1744" height="1125" alt="Image" src="https://github.com/user-attachments/assets/37b912b9-ef22-47d5-bbf9-42b559c01c24">
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="1-tile--menu-bar">1. Tile &amp; Menu Bar<a class="hash-link" aria-label="Direct link to 1. Tile &amp; Menu Bar" title="Direct link to 1. Tile &amp; Menu Bar" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#1-tile--menu-bar">​</a></h2>
<p>화면 상단에는 **Title Bar(타이틀 바)**와 **Menu Bar(메뉴 바)**가 있습니다.</p>
<ul>
<li><strong>Title Bar</strong>는 현재 열려 있는 폴더나 파일의 이름을 표시하며, 작업 중인 프로젝트의 상태를 한눈에 파악할 수 있습니다.</li>
<li><strong>Menu Bar</strong>에서는 <code>File</code>, <code>Edit</code>, <code>View</code>, <code>Run</code> 등 주요 메뉴를 통해 VS Code의 거의 모든 기능에 접근할 수 있습니다.</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="2-activitiry-bar-작업-막대">2. Activitiry Bar (작업 막대)<a class="hash-link" aria-label="Direct link to 2. Activitiry Bar (작업 막대)" title="Direct link to 2. Activitiry Bar (작업 막대)" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#2-activitiry-bar-%EC%9E%91%EC%97%85-%EB%A7%89%EB%8C%80">​</a></h2>
<p>화면의 <strong>왼쪽 세로 영역</strong>에 있는 막대로, 프로젝트 탐색이나 소스 제어, 디버깅 같은 주요 활동을 전환하는 역할을 합니다.</p>
<p>대표적인 아이콘은 다음과 같습니다:</p>
<img width="41" height="248" alt="Image" src="https://github.com/user-attachments/assets/b4a0b569-a68f-490e-806e-98675dfd3e55">
<ul>
<li><strong>Explorer (탐색기)</strong>: 파일과 폴더 구조를 확인</li>
<li><strong>Search (검색)</strong>: 프로젝트 전체 검색</li>
<li><strong>Source Control (소스 제어)</strong>: Git 등 버전 관리</li>
<li><strong>Run &amp; Debug (디버그)</strong>: 코드 실행 및 디버깅 제어</li>
<li><strong>Remote Explorer</strong>: 원격 서버나 컨테이너 연결 관리</li>
<li><strong>Extensions (확장)</strong>: 기능 확장 및 플러그인 설치</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="3-status-bar">3. Status Bar<a class="hash-link" aria-label="Direct link to 3. Status Bar" title="Direct link to 3. Status Bar" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#3-status-bar">​</a></h2>
<p>화면 맨 아래에 위치하며, <strong>현재 편집 중인 파일의 언어, 줄 번호, Git 브랜치, 오류 상태</strong> 등을 실시간으로 보여줍니다.
작업 환경의 상태를 빠르게 확인할 수 있어, 특히 협업이나 디버깅 시 매우 유용합니다.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="4-side-bar">4. Side Bar<a class="hash-link" aria-label="Direct link to 4. Side Bar" title="Direct link to 4. Side Bar" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#4-side-bar">​</a></h2>
<p>Activity Bar에서 선택한 기능에 따라 내용이 바뀌며, 다양한 작업 창을 제공합니다.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="5-editor">5. Editor<a class="hash-link" aria-label="Direct link to 5. Editor" title="Direct link to 5. Editor" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#5-editor">​</a></h2>
<p>VS Code의 중심 부분으로, 실제 <strong>코드를 작성하고 편집하는 공간</strong>입니다.
여러 파일을 동시에 열 수 있으며, 탭 형태로 관리됩니다.
문법 강조, 자동완성, 코드 포맷팅 등 다양한 기능이 제공되어 생산성을 높여줍니다.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="6-panel">6. Panel<a class="hash-link" aria-label="Direct link to 6. Panel" title="Direct link to 6. Panel" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#6-panel">​</a></h2>
<p>화면 하단에 위치하며, <strong>출력(Output), 터미널(Terminal), 디버그 콘솔, 문제(Problems)</strong> 등의 정보를 확인할 수 있습니다.
예를 들어 빌드 에러 로그를 보거나, 명령어를 실행하는 터미널로 활용할 수 있습니다.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="7-agent-antigravity">7. Agent (Antigravity)<a class="hash-link" aria-label="Direct link to 7. Agent (Antigravity)" title="Direct link to 7. Agent (Antigravity)" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EF%BF%BD%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#7-agent-antigravity">​</a></h2>
<p>AI 코딩 관련 확장 기능, 기본 VSCode에는 이 영역이 없습니다.</p>
<h1>VScode의 Agent (우측 영역)</h1>
<img width="516" height="1041" alt="Image" src="https://github.com/user-attachments/assets/97367b98-01d7-412f-8191-e59d680ea3e9">
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="1-상단-메뉴">1. 상단 메뉴<a class="hash-link" aria-label="Direct link to 1. 상단 메뉴" title="Direct link to 1. 상단 메뉴" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#1-%EC%83%81%EB%8B%A8-%EB%A9%94%EB%89%B4">​</a></h2>
<p>다음 기능들을 수행 할 수 있습니다.</p>
<ul>
<li>새 대화</li>
<li>대화 히스토리 보기</li>
<li>옵션 설정</li>
</ul>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="11-옵션-설정---customization">1.1 옵션 설정 - Customization<a class="hash-link" aria-label="Direct link to 1.1 옵션 설정 - Customization" title="Direct link to 1.1 옵션 설정 - Customization" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#11-%EC%98%B5%EC%85%98-%EC%84%A4%EC%A0%95---customization">​</a></h3>
<img width="1522" height="411" alt="Image" src="https://github.com/user-attachments/assets/508731b9-fb0a-4036-b7f2-45e05dfe4a51">
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="a-rule">A. Rule<a class="hash-link" aria-label="Direct link to A. Rule" title="Direct link to A. Rule" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#a-rule">​</a></h4>
<p>지켜야 하는 원칙을 지정 할수 있습니다.</p>
<p>Global Rules와 Workspace Rule을 나누어서 지정 할수 있습니다.</p>
<ul>
<li>Global Rules : 모든 개발 과정에서 지켜야 하는 규칙을 지정 합니다. <code>~/.gemini/ antigravity/GEMINI.md</code>에 저장 됩니다.</li>
</ul>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">1. 모든 대답은 '한국어'로 해주세요. </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">2. 코드를 수정할 때는 기존 스타일(Prettier 설정)을 반드시 따르세요. </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">3. 모든 함수에 한글 주석 작성 필수 </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">4. 주석은 한글로 친절하고 구체적으로 달아주세요.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">OR </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">1.  **Language**: Always respond in **Korean (한국어)**.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">2.  **Code Comments**: 주석도 반드시 **한국어**로 작성할 것.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">3.  **Explanation**: 기술적인 용어는 영어를 병기하되(ex: 변수(Variable)), 설명은 쉽게 한국어로 풀어서 할 것.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<ul>
<li>Workspace Rule : 해당 워크스페이스에 적용될 규칙을 지정 합니다. <code>&nbsp;~/.agent/rules/{이름}.md</code>에 저장 됩니다.</li>
</ul>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">1. 당신은 고급 데이터 분석가 입니다.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">2. python 언어를 주로 사용합니다. </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">3. 모든 코드는 PEP 8 스타일 가이드 준수</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">4. main.py는 진입점만, 기능은 별도 파일로 분리</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="b-workflow">B. Workflow<a class="hash-link" aria-label="Direct link to B. Workflow" title="Direct link to B. Workflow" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#b-workflow">​</a></h4>
<p>반복적으로 사용되는 절차를 저장 하여 호출 하여 사용할수 있습니다.</p>
<img width="1526" height="411" alt="Image" src="https://github.com/user-attachments/assets/bd193fc5-6303-4968-85b7-ceb74f0f41a4">
<p>Global Workflow 와 Workspace Workflow 을 나누어서 지정 할수 있습니다.</p>
<ul>
<li>Global Workflow : <code>~/.gemini/antigravity/global_workflows</code>에 저장 됩니다.</li>
<li>Workspace Workflow : <code>&nbsp;.agent/workflows</code>에 저장 됩니다.</li>
</ul>
<p>저장된 이후 <code>/</code>로 호출 하여 사용 가능합니다.</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="12-옵션-설정---mcp-server">1.2 옵션 설정 - MCP Server<a class="hash-link" aria-label="Direct link to 1.2 옵션 설정 - MCP Server" title="Direct link to 1.2 옵션 설정 - MCP Server" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#12-%EC%98%B5%EC%85%98-%EC%84%A4%EC%A0%95---mcp-server">​</a></h3>
<img width="1346" height="461" alt="Image" src="https://github.com/user-attachments/assets/36b8a0d0-9cab-479a-8c0b-807a1bfa877e">
<p>antigravity에서 제공하는 MCP들을 검색 하여 활용 할수 있습니다.</p>
<img width="1346" height="211" alt="Image" src="https://github.com/user-attachments/assets/66305364-db05-4e3f-b706-438e55993c3a">
<p>직접 코드를 입력하여 MCP 서버를 추가 할 수도 있습니다.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="2-채팅-창">2. 채팅 창<a class="hash-link" aria-label="Direct link to 2. 채팅 창" title="Direct link to 2. 채팅 창" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#2-%EC%B1%84%ED%8C%85-%EC%B0%BD">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="21-채팅-창---">2.1 채팅 창 - '+'<a class="hash-link" aria-label="Direct link to 2.1 채팅 창 - '+'" title="Direct link to 2.1 채팅 창 - '+'" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#21-%EC%B1%84%ED%8C%85-%EC%B0%BD---">​</a></h3>
<p>참고할 이밎, 코드, 파일 등을 지정 할때 사용합니다.</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="22-채팅-창---planinng--fast">2.2 채팅 창 - Planinng / Fast<a class="hash-link" aria-label="Direct link to 2.2 채팅 창 - Planinng / Fast" title="Direct link to 2.2 채팅 창 - Planinng / Fast" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#22-%EC%B1%84%ED%8C%85-%EC%B0%BD---planinng--fast">​</a></h3>
<img width="894" height="413" alt="Image" src="https://github.com/user-attachments/assets/307525b8-629a-4221-b516-a5b588e1bfc5">
<ul>
<li>Planning : 실행 전에 체계적인 계획 수립 및 작업을 세분화 후작업 진행</li>
<li>Fast : 계획 단계 생략 합니다. 단순 작업 및 명령어 실행</li>
</ul>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="23-채팅-창---ai-모델-선택">2.3 채팅 창 - AI 모델 선택<a class="hash-link" aria-label="Direct link to 2.3 채팅 창 - AI 모델 선택" title="Direct link to 2.3 채팅 창 - AI 모델 선택" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#23-%EC%B1%84%ED%8C%85-%EC%B0%BD---ai-%EB%AA%A8%EB%8D%B8-%EC%84%A0%ED%83%9D">​</a></h3>
<img width="906" height="611" alt="Image" src="https://github.com/user-attachments/assets/ae400c3f-587c-4000-b2fa-4fc939cea5b8">
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="3-설정-창">3. 설정 창<a class="hash-link" aria-label="Direct link to 3. 설정 창" title="Direct link to 3. 설정 창" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#3-%EC%84%A4%EC%A0%95-%EC%B0%BD">​</a></h2>
<img width="936" height="799" alt="Image" src="https://github.com/user-attachments/assets/1efa287b-6580-4884-a646-088166b1e3fc">
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="31-설정창---auto-execution">3.1 설정창 - Auto Execution<a class="hash-link" aria-label="Direct link to 3.1 설정창 - Auto Execution" title="Direct link to 3.1 설정창 - Auto Execution" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#31-%EC%84%A4%EC%A0%95%EC%B0%BD---auto-execution">​</a></h3>
<p>터미널 명령어나 코드 실행 부분을 사용자 허가 후 실행(Always Review)할지, 자동 실행(Always  procced)하지 설정 합니다.</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="32-설정창---review-policy">3.2 설정창 - Review Policy<a class="hash-link" aria-label="Direct link to 3.2 설정창 - Review Policy" title="Direct link to 3.2 설정창 - Review Policy" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#32-%EC%84%A4%EC%A0%95%EC%B0%BD---review-policy">​</a></h3>
<p>계획된 작업을 사용자 허가 후 실행(Always Review)할지, 자동 실행(Always  procced)하지 설정 합니다.</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="34-설정창---customization">3.4 설정창 - Customization<a class="hash-link" aria-label="Direct link to 3.4 설정창 - Customization" title="Direct link to 3.4 설정창 - Customization" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%202#34-%EC%84%A4%EC%A0%95%EC%B0%BD---customization">​</a></h3>
<p>Global Rule을 수정 할수 있습니다.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Titanic 생존률 분석 AI 바이브 코딩으로 하기 1]]></title>
            <link>https://bigdata-car.github.io/usecase/Titanic 생존률 분석 AI 바이브 코딩으로 하기 1</link>
            <guid>https://bigdata-car.github.io/usecase/Titanic 생존률 분석 AI 바이브 코딩으로 하기 1</guid>
            <pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[데이터 분석의 시작인 타이타닉 생존률 분석을 AI 코딩으로 배워 봅니다. 바이브코딩의 개념 및 툴 설명을 다루고 있습니다.]]></description>
            <content:encoded><![CDATA[<p>본문에서는 데이터 분석 시작시 많이 다루는 타이타닉호 생존율 분석을 AI 바이브 코딩으로 진행 해보면서 바이브 코딩을 위한 환경 설정과 간단한 사용법을 익히려 합니다. 분석환경은 원격 리눅스 서버에 Google의 Antigravity라는 개발툴을 통해 ssh 접속을 통해 이루어 집니다. 본문에서는 리눅스 서버로 <code>자동차 산업 클라우드</code>를 활용하지만 개인이 보유한 리눅스 서버나 aws 등을 사용 할 수 있습니다.</p>
<p>전체 문서의 구성은 3단계로 되어 있습니다.</p>
<ol>
<li>(개요) 바이브 코딩 용어, 바이브코딩을 위한 툴, 접속 환경 설정</li>
<li>(설정) 바이브 코딩을 위한 툴 설정 및 기능 설명</li>
<li>(분석) 바이브 코딩으로 타이타닉 데이터 분석 및 보고서 작성하기</li>
</ol>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="1-개요">1. 개요<a class="hash-link" aria-label="Direct link to 1. 개요" title="Direct link to 1. 개요" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%201#1-%EA%B0%9C%EC%9A%94">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="11-바이브-코딩">1.1 바이브 코딩<a class="hash-link" aria-label="Direct link to 1.1 바이브 코딩" title="Direct link to 1.1 바이브 코딩" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%201#11-%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%94%A9">​</a></h3>
<p>바이브Vibe 코딩의 바이브는 <code>느낌</code> 란 의미로 코딩 하고자 하는 것을 문장으로 느낌을 전달 하면 코드는 <code>생성형 AI</code>가 생성한다는 의미  입니다.</p>
<img width="480" alt="Image" src="https://github.com/user-attachments/assets/4baa47a7-dadf-4115-805c-f8367a196a9e">
<p>2023년 OpenAI 창립자인  <code>Andrej Karpathy</code> 처음 개념을 언급한 이후,  2025년 2월 용어 사전 등재되고, 이후 2025년 중반 Copilot 데모로 상업적 가능성을 보였습니다.</p>
<img width="480" alt="Image" src="https://github.com/user-attachments/assets/21c02401-8e8f-4161-80b8-92377fd538ae">
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="12-생성형-ai">1.2 생성형 AI<a class="hash-link" aria-label="Direct link to 1.2 생성형 AI" title="Direct link to 1.2 생성형 AI" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%201#12-%EC%83%9D%EC%84%B1%ED%98%95-ai">​</a></h3>
<p>바이브 코딩의 기술을 설명할때 등장하는 단어 중 하나는 <code>생성형AI</code>입니다. 생성형 AI는 기존 데이터를 학습하여 텍스트, 이미지, 오디오, 비디오 등 새로운 콘텐츠를 스스로 만들어내는 인공지능 기술 중의 하나 입니다. 우리가 익히 알고 있는 <code>ChatGPT</code>는 텍스트를 학습하여 답변을 하는 <code>생성형AI</code> 기술을 활용하는 대표적인 예 입니다.  그외 다양한 분야의 서비스 및 AI 모델명은 다음과 같습니다.</p>
<ul>
<li>텍스트 : ChatGPT, Gemini, Llama 3</li>
<li>이미지 : Nano Banana, DALL-E 3, Midjourney</li>
<li>오디오 : Bark, ElevenLabs, MusicGen</li>
<li>비디오 : Sora, Google's Veo, Runway ML</li>
<li>코딩 : Copilot , Cursor, Tabnine</li>
</ul>
<p>생성형 AI 중 텍스트(언어)를 기반으로 하는 LLM(Large Language Model)은 확률을 기반으로 한 끝말잇기와 비슷한 원리로 이해 하면 됩니다.
정보는 사전 학습한 지식이나 외부 검색(RAG)을 참고 하여 자연스런 문장을 생성 하는데 초점을 두고 있습니다.</p>
<table><thead><tr><th><img width="400" alt="Image" src="https://github.com/user-attachments/assets/23b2980c-81b4-40db-af93-d5f465507bb4"></th><th><img width="400" alt="Image" src="https://github.com/user-attachments/assets/1f1f71b5-b638-455b-b702-6c1709485675"></th></tr></thead><tbody><tr><td>잘된 끝말잇기로 문장 생성 예</td><td>잘못된 끝말잇기로 문장 생성 예</td></tr></tbody></table>
<p>AI 입장에서는 사람의 언어(한글, 영어)와 컴퓨터 언어(C, Python)은 유사 하기 때문에 바이브 코딩도 가능한것입니다.</p>
<ul>
<li><code>동해물과 백두산이 …..</code></li>
<li><code>Print (hello….</code></li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="2-바이브-코딩-툴">2. 바이브 코딩 툴<a class="hash-link" aria-label="Direct link to 2. 바이브 코딩 툴" title="Direct link to 2. 바이브 코딩 툴" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%201#2-%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%94%A9-%ED%88%B4">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="21-비교-분석">2.1 비교 분석<a class="hash-link" aria-label="Direct link to 2.1 비교 분석" title="Direct link to 2.1 비교 분석" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%201#21-%EB%B9%84%EA%B5%90-%EB%B6%84%EC%84%9D">​</a></h3>
<p>다음은 2026년 1월 현재 많이 알려진 바이브 코딩을 위한 <code>AI 코딩 도구</code> 목록입니다.</p>
<table><thead><tr><th>도구</th><th>개발사</th><th>최초   출시일</th><th>점유율</th><th>GUI</th><th>CLI</th><th>가격</th></tr></thead><tbody><tr><td>Cursor</td><td>Anysphere</td><td>2023년 3월</td><td>18%​</td><td>✓    (VS Code 기반)</td><td>✗</td><td>무료(제한) ~   $20/월 Pro​</td></tr><tr><td>Copilot</td><td>GitHub (MS)</td><td>2021년 6월</td><td>42%​</td><td>✓    (VS Code 등 확장)</td><td>✗</td><td>$10/월 개인​</td></tr><tr><td>Grok Studio</td><td>xAI</td><td>2025년 4월</td><td>~2%   (신규)</td><td>✓    (협업   워크스페이스)</td><td>✗</td><td>$300/월 SuperGrok</td></tr><tr><td>Windsurf</td><td>Codeium</td><td>2024년 11월</td><td>~10%​</td><td>✓   &nbsp;(전용 IDE)</td><td>✗</td><td>$15/월​</td></tr><tr><td>Replit AI</td><td>Replit</td><td>2022년 10월</td><td>12%​</td><td>✓    (클라우드   IDE)</td><td>✓</td><td>무료~$20/월</td></tr><tr><td>Claude Code</td><td>Anthropic</td><td>2025년 2월</td><td>~8%​</td><td>✗</td><td>✓ (터미널)</td><td>$20/월</td></tr><tr><td>OpenAI Codex</td><td>OpenAI</td><td>2021년 5월</td><td>15%   (Copilot 포함)​</td><td>✓   &nbsp;(ChatGPT 통합)</td><td>✓</td><td>API 토큰제 / $20/월+</td></tr><tr><td>Gemini Code Assist</td><td>Google</td><td>2025년 2월</td><td>13~15%</td><td>✗   (VS   Code 확장</td><td>✓</td><td>무료~$19/월</td></tr><tr><td>Google AntiGravity*</td><td>Google</td><td>2025년 11월</td><td>3~5%​</td><td>✓ (IDE)</td><td>✗</td><td>무료</td></tr><tr><td>AI Toolkit**   (VS   Code 확장형)</td><td>Microsoft</td><td>2024년 5월</td><td>~6%   (VS Code 내)</td><td>✓   (VS Code 확장)</td><td>✗</td><td>무료</td></tr><tr><td>Continue   (VS   Code 확장형)</td><td>Continue.dev (오픈소스)</td><td>2023년 6월</td><td>~4%   (오픈소스   부문)</td><td>✓   (VS Code/JetBrains)</td><td>✓</td><td>무료   (Hub $10/월 팀)</td></tr></tbody></table>
<p>가장 많은 사용자를 보유 하고 있는것은 MS가 인수한 Github의 <code>Copilot</code>입니다. 소스코드 저장소인 github의 공개된 방대한 데이터에도 접속할 수 있으니 좋은 성능을 보이지 않을까 합니다(개인의견).</p>
<p>본 타이타닉 생존율 분석 바이브 코딩하기에서는 구글의 <code>Antigravity</code>를 사용합니다. 후발 주자이기는 하지만 여러 AI 모델을 무료로 제공하고(현재까지는), 개발 툴로 익숙한 VS Code를 기반으로 하고 있어 선택 하였습니다.</p>
<img width="400" height="389" alt="Image" src="https://github.com/user-attachments/assets/7f34a3c2-3beb-4795-ae9d-acb5d361ef4e">
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="22-google-antigravity-설치-하기">2.2 Google Antigravity 설치 하기<a class="hash-link" aria-label="Direct link to 2.2 Google Antigravity 설치 하기" title="Direct link to 2.2 Google Antigravity 설치 하기" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%201#22-google-antigravity-%EC%84%A4%EC%B9%98-%ED%95%98%EA%B8%B0">​</a></h3>
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="a-윈도우-os">A. 윈도우 OS<a class="hash-link" aria-label="Direct link to A. 윈도우 OS" title="Direct link to A. 윈도우 OS" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%201#a-%EC%9C%88%EB%8F%84%EC%9A%B0-os">​</a></h4>
<p>Google Antigravity의 공식 홈페이지 에 접속하여 다운로드 받을 수 있습니다. <a href="https://antigravity.google/download" target="_blank" rel="noopener noreferrer">[다운로드 링크]</a></p>
<img width="1048" height="425" alt="Image" src="https://github.com/user-attachments/assets/eefc72e3-efdf-4dc3-8257-20b0a8f572f6">
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="b-리눅스-osubuntu-2204">B. 리눅스 OS(ubuntu 22.04)<a class="hash-link" aria-label="Direct link to B. 리눅스 OS(ubuntu 22.04)" title="Direct link to B. 리눅스 OS(ubuntu 22.04)" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%201#b-%EB%A6%AC%EB%88%85%EC%8A%A4-osubuntu-2204">​</a></h4>
<p>리눅스 deb 기반 설치는 아래 명령어를 터미널에서 입력 하시면 됩니다.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">$ sudo mkdir -p /etc/apt/keyrings</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">$ curl -fsSL https://us-central1-apt.pkg.dev/doc/repo-signing-key.gpg | \ sudo gpg --dearmor --yes -o /etc/apt/keyrings/antigravity-repo-key.gpg</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">$ echo "deb [signed-by=/etc/apt/keyrings/antigravity-repo-key.gpg] https://us-central1-apt.pkg.dev/projects/antigravity-auto-updater-dev/ antigravity-debian main" | \  sudo tee /etc/apt/sources.list.d/antigravity.list &gt; /dev/null</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">$ sudo apt update &amp;&amp; sudo apt install antigravity</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h5 class="anchor anchorWithStickyNavbar_LWe7" id="자동차-산업-클라우드-사용자">[자동차 산업 클라우드 사용자]<a class="hash-link" aria-label="Direct link to [자동차 산업 클라우드 사용자]" title="Direct link to [자동차 산업 클라우드 사용자]" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%201#%EC%9E%90%EB%8F%99%EC%B0%A8-%EC%82%B0%EC%97%85-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%82%AC%EC%9A%A9%EC%9E%90">​</a></h5>
<p>KADaP 사용자는 클라우드내 OS선택 메뉴에서 <code>DevTools</code> &gt; Antigravity를 선택 하면 설치 없이 활용 가능 합니다.</p>
<blockquote>
<img width="1560" height="539" alt="Image" src="https://github.com/user-attachments/assets/912abf1d-8144-4fa4-b04d-da09849f04e7">
</blockquote>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="34-원격-개발-서버-연결하기">3.4 원격 개발 서버 연결하기<a class="hash-link" aria-label="Direct link to 3.4 원격 개발 서버 연결하기" title="Direct link to 3.4 원격 개발 서버 연결하기" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%201#34-%EC%9B%90%EA%B2%A9-%EA%B0%9C%EB%B0%9C-%EC%84%9C%EB%B2%84-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0">​</a></h3>
<blockquote>
<p>개발환경은 윈도우 보다 리눅스가 자유도 및 지원하는 패키지가 많아 본 문서에서는 리눅스 서버에서 개발을 진행 합니다.</p>
</blockquote>
<p>Window 운영체제에서 리눅스 기반 개발 환경 구축 방법은 3가지가 있습니다.</p>
<ul>
<li>방안 1 : 윈도우 OS 에 개발 라이브러리, 모듈을 설치 하여 활용 : 비추천, 지원SW 및 문제 해결 정보 적음</li>
<li>방안 2 : 윈도우 OS에 리눅스 OS를 설치(WSL) 하여 개발 라이브러리, 모듈을 설치 하여 활용 : 추천, 잠재적 위험 존재</li>
<li>방안 3 : 윈도우 OS에서 리눅스 OS로 접속(SSH) 하여 개발 라이브러리, 모듈을 설치 하여 활용 : 추천</li>
</ul>
<p><code>방안 3 : 윈도우 OS에서 리눅스 OS로 접속(SSH) 하여 개발 라이브러리, 모듈을 설치 하여 활용</code>을 위한 별도의 리눅스 서버구축은 다루지 않습니다.</p>
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="a-antigravity-ssh-접속-설정-하기">A. <code>Antigravity</code> SSH 접속 설정 하기<a class="hash-link" aria-label="Direct link to a-antigravity-ssh-접속-설정-하기" title="Direct link to a-antigravity-ssh-접속-설정-하기" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%201#a-antigravity-ssh-%EC%A0%91%EC%86%8D-%EC%84%A4%EC%A0%95-%ED%95%98%EA%B8%B0">​</a></h4>
<p>사전 준비 작업</p>
<ol>
<li>접속할 리눅스 서버의 ssh 서비스 설치 및 실행</li>
<li>접속할 리눅스 서버의 키파일(*.pem)다운로드</li>
<li>다운로드 한 키파일의 권한 변경 (윈도우 OS 사용자만) <a href="https://velog.io/@dani_ca/%EC%9C%88%EB%8F%84%EC%9A%B0%EC%97%90%EC%84%9C-Permissions-for-key.pem-are-too-open" target="_blank" rel="noopener noreferrer">[참고]</a></li>
</ol>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># Powershell 관리자 권한 열기 </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># PEM 파일 경로로 이동</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">cd C:\Users\사용자명\.ssh</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 현재 사용자만 Full Control 권한 설정</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">icacls server_key.pem /inheritance:r</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">icacls server_key.pem /grant:r "$env:USERNAME`:F"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 권한 확인 (현재 사용자만 나와야 함)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">icacls C:\Users\사용자명\.ssh\server_key.pem</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<img width="1456" height="431" alt="Image" src="https://github.com/user-attachments/assets/e929de94-cbea-4bb2-b5fc-8cc38d479fa8">
<ol>
<li>Antigravity를 실행 합니다.</li>
<li>좌측 메뉴 중 <code>Remote Explorer</code>를 선택 후 <code>Add New(+)</code> 아이콘을 클릭 합니다.</li>
<li>새 창이 열린 후 아래 내용을 맞게 입력 합니다.</li>
</ol>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">  Host 10.10.17.63  #표기될 이름</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    HostName 10.10.17.63  #접속 할 서버 IP </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    User kadap  #서버 로그인 ID </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    IdentityFile "C:\Users\admin\Downloads\2-82_default.pem"  #로그인시 사용할 키 파일 위치 (중요)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    Port 22  # 서버 접속 Port </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    StrictHostKeyChecking accept-new # 신규 접속시 호스트의 키를 자동으로 추가하고 연결 허용</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h5 class="anchor anchorWithStickyNavbar_LWe7" id="자동차-산업-클라우드-사용자-1">[자동차 산업 클라우드 사용자]<a class="hash-link" aria-label="Direct link to [자동차 산업 클라우드 사용자]" title="Direct link to [자동차 산업 클라우드 사용자]" href="https://bigdata-car.github.io/usecase/Titanic%20%EC%83%9D%EC%A1%B4%EB%A5%A0%20%EB%B6%84%EC%84%9D%20AI%20%EB%B0%94%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EA%B8%B0%201#%EC%9E%90%EB%8F%99%EC%B0%A8-%EC%82%B0%EC%97%85-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%82%AC%EC%9A%A9%EC%9E%90-1">​</a></h5>
<p>자동차 산업 클라우드에서는 VM &gt; 접속 정보 &gt; 접속 인증 키(Key) : default 를 클릭하여 다운로드 받을수 있습니다.</p>
<table><thead><tr><th><img width="600" height="601" alt="Image" src="https://github.com/user-attachments/assets/d35f5ec0-c1cf-4c0c-a225-887d21b7a33c"></th><th><img width="503" height="147" alt="Image" src="https://github.com/user-attachments/assets/5d49a35b-0c7b-4714-945f-6c5f505af91f"></th></tr></thead><tbody><tr><td>키파일 다운로드</td><td>접속 설정파일</td></tr></tbody></table>
<p>클라우드 서비스의 경우 가상머신의 생성시 동일한 IP주소를 할당 받을수도 있습니다. 아래 옵션을 추가 하면 쉽게 접속이 가능합니다.</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">    StrictHostKeyChecking no  #호스트 키 확인 완전 비활성화 (새/변경 모두 자동 통과)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    UpdateHostKeys yes  #키 변경 시 known_hosts 자동 업데이트</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<img width="1714" height="833" alt="Image" src="https://github.com/user-attachments/assets/340eb395-8cfa-4746-9c6b-bc1e6a034d5b">
<p>연결을 위해서는 좌측 메뉴 중 <code>Remote Explorer</code>를 선택 후 접속 할 서버의 두개의 아이콘 중 원하는 방식을 선택 하면 됩니다.</p>
<p>접속 완료후에는 하단의 <code>SSH: {서버IP}가 활성화 됩니다. </code></p>
<p>여기까지 확인 되면 사용할 준비가 끝난것입니다.</p>
<blockquote>
<p>다음시간에는  바이브 코딩을 위한 Antigravity에 대하여 툴 설정 및 기능에 대하여 설명 드리겠습니다.</p>
</blockquote>]]></content:encoded>
        </item>
    </channel>
</rss>