<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>콘월 이층집</title>
    <link>https://cornwall.tistory.com/</link>
    <description>Computer Vision | AI Engineer &amp;amp; Expert | 공학 박사(진)</description>
    <language>ko</language>
    <pubDate>Wed, 20 May 2026 11:56:34 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>세드릭</managingEditor>
    <image>
      <title>콘월 이층집</title>
      <url>https://tistory1.daumcdn.net/tistory/7682909/attach/75e308a35e094e76a43c46501cf38867</url>
      <link>https://cornwall.tistory.com</link>
    </image>
    <item>
      <title>에이전트로 KTX 표를 예매하려다 Korail2에 N카드 기능을 붙인 이야기</title>
      <link>https://cornwall.tistory.com/65</link>
      <description>&lt;h1&gt;에이전트로 KTX 표를 예매하려다 Korail2에 N카드 기능을 붙인 이야기&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작성일: 2026-05-11&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에 하고 싶었던 건 단순했다. 에이전트에게 &amp;ldquo;내일 대전에서 서울 가는 KTX 표를 찾아서 예약해줘&amp;rdquo;라고 맡기고 싶었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 실제로 내가 쓰는 예매 방식은 일반 승차권 예매가 아니었다. 나는 코레일에서 파는 &lt;code&gt;N카드&lt;/code&gt;라는 할인 서비스를 이미 구매해 둔 상태였고, 평소에는 코레일톡에서 &lt;code&gt;나의 티켓 &amp;gt; 정기권패스 &amp;gt; N카드 &amp;gt; 승차권 예매&lt;/code&gt;로 들어가 할인승차권을 예매하고 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제는 기존 자동화가 기대고 있던 &lt;code&gt;korail2&lt;/code&gt;에는 이 N카드 할인승차권 흐름이 없었다는 점이다. 그래서 오늘 작업은 &amp;ldquo;KTX 예매 자동화&amp;rdquo;에서 시작했지만, 실제로는 &lt;code&gt;korail2&lt;/code&gt;에 보유 N카드 기반 조회와 예약 흐름을 추가하는 일이 됐다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고한 리포지토리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 작업에서 기준이 된 프로젝트는 두 개였다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;korail2&lt;/code&gt; 원본: &lt;a href=&quot;https://github.com/carpedm20/korail2&quot;&gt;https://github.com/carpedm20/korail2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;korail2&lt;/code&gt; fork: &lt;a href=&quot;https://github.com/ce-dric/korail2&quot;&gt;https://github.com/ce-dric/korail2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k-skill&lt;/code&gt; 원본: &lt;a href=&quot;https://github.com/NomaDamas/k-skill&quot;&gt;https://github.com/NomaDamas/k-skill&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k-skill&lt;/code&gt; fork: &lt;a href=&quot;https://github.com/ce-dric/k-skill&quot;&gt;https://github.com/ce-dric/k-skill&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;korail2&lt;/code&gt;는 실제 코레일 로그인, 열차 조회, 예약 API를 다루는 Python 라이브러리이고, &lt;code&gt;k-skill&lt;/code&gt;은 그 위에 KTX 예매 자동화 skill을 제공하는 프로젝트다.&lt;br /&gt;그래서 N카드 자동화를 하려면 아래 레이어인 &lt;code&gt;korail2&lt;/code&gt;와 위 레이어인 &lt;code&gt;k-skill&lt;/code&gt;을 둘 다 봐야 했다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 문제 정의&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자동 예매를 만들려면 먼저 기존 도구가 무엇을 할 수 있고, 무엇을 못 하는지 확인해야 했다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;korail2&lt;/code&gt;는 코레일 로그인을 하고 일반 KTX/Korail 열차를 조회하거나 예약하는 기능을 제공한다.&lt;/li&gt;
&lt;li&gt;내가 원하는 건 그 위에서 N카드 할인을 적용한 승차권을 찾고 예약하는 것이다.&lt;/li&gt;
&lt;li&gt;하지만 기존 &lt;code&gt;korail2&lt;/code&gt;에는 보유 N카드를 조회하거나, N카드 할인승차권 목록을 조회하는 기능이 없었다.&lt;/li&gt;
&lt;li&gt;따라서 에이전트가 표를 예매하려면 먼저 &lt;code&gt;korail2&lt;/code&gt;에 N카드 플로우를 추가해야 했다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 핵심은 &lt;code&gt;N카드&lt;/code&gt;가 승차권 자체가 아니라 할인 수단이라는 점이었다.&lt;br /&gt;즉, 일반 승차권 예약 API에 할인값만 얹는 것으로는 부족하고, KorailTalk 앱의 N카드 전용 흐름을 따로 분석해야 했다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 왜 그냥 일반 예약으로는 안 됐나&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 &amp;ldquo;일반 예약 요청에 N카드 번호나 할인 코드만 추가하면 되지 않을까?&amp;rdquo;라고 생각할 수 있다.&lt;br /&gt;하지만 실제 코레일톡 앱을 보면 N카드 할인승차권은 별도 화면에서 출발한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;먼저 사용자는 N카드를 구매한다.&lt;/li&gt;
&lt;li&gt;구매한 N카드는 &lt;code&gt;나의 티켓 &amp;gt; 정기권패스&lt;/code&gt;에 나타난다.&lt;/li&gt;
&lt;li&gt;그 N카드 안에서 &lt;code&gt;승차권 예매&lt;/code&gt;를 눌러야 할인승차권 조회 화면으로 간다.&lt;/li&gt;
&lt;li&gt;그 화면에서 방향과 날짜를 조정한 뒤 &lt;code&gt;열차 조회하기&lt;/code&gt;를 누르면 할인율, 매진, 입석, 예약 가능 여부가 나온다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자 화면에서 확인한 정보도 중요했다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;카드 상태: &lt;code&gt;6회 / 10회&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;유효기간: &lt;code&gt;2026년 4월 11일 ~ 2026년 7월 9일&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;예매 화면에서 출발/도착 방향과 날짜를 바꿀 수 있음&lt;/li&gt;
&lt;li&gt;&lt;code&gt;열차 조회하기&lt;/code&gt;를 누르면 할인율, 매진, 입석, 예약 가능 여부가 함께 보임&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 흐름을 기준으로 KorailTalk APK를 분석해 보니, N카드에는 크게 두 흐름이 있었다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;N카드 상품 조회/구매&lt;/code&gt; 흐름&lt;/li&gt;
&lt;li&gt;&lt;code&gt;이미 구매한 N카드로 할인승차권을 예매&lt;/code&gt;하는 흐름&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에 눈에 띈 &lt;code&gt;dcntCrdScheduleView.do&lt;/code&gt;는 N카드 상품/종류 기반 조회에 가까웠다.&lt;br /&gt;반면 실제로 필요한 건 보유 N카드의 &lt;code&gt;승차권 예매&lt;/code&gt; 화면에서 호출되는 &lt;code&gt;assignScheduleView.do&lt;/code&gt; 흐름이었다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 구현한 것&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 &lt;code&gt;korail2&lt;/code&gt;에 보유 N카드 기준 기능을 추가했다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;추가한 기능&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;owned_ncards()&lt;/code&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현재 계정의 보유 N카드를 &lt;code&gt;MyTicketList&lt;/code&gt; / &lt;code&gt;SelTicketInfo&lt;/code&gt; 기반으로 읽어온다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;search_owned_ncard_trains()&lt;/code&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;보유 N카드를 넣으면 KorailTalk의 N카드 예매 화면과 같은 열차 조회를 한다.&lt;/li&gt;
&lt;li&gt;조회 결과에서 &lt;code&gt;15%할인&lt;/code&gt;, &lt;code&gt;예약하기&lt;/code&gt;, &lt;code&gt;입석&lt;/code&gt;, 잔여석 같은 상태를 읽을 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NCard&lt;/code&gt; / &lt;code&gt;NCardTrain&lt;/code&gt; 확장
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;N카드의 구간, 유효성, 회차, 할인 정보, 잔여 좌석 정보를 더 자세히 다룰 수 있게 했다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;README 갱신
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;N카드 흐름은 &amp;ldquo;상품 조회&amp;rdquo;보다 &amp;ldquo;보유 카드 기준 조회&amp;rdquo;를 먼저 쓰도록 설명을 고쳤다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;구현 방향&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자동 결제는 넣지 않았다.&lt;/li&gt;
&lt;li&gt;예약 제출은 결제 직전까지 확인만 했다.&lt;/li&gt;
&lt;li&gt;사용자에게 필요한 건 &amp;ldquo;어떤 열차를 고를 수 있는지&amp;rdquo;와 &amp;ldquo;그 예약이 어떤 좌석으로 잡히는지&amp;rdquo;였기 때문에, 그 경계까지만 구현했다.&lt;/li&gt;
&lt;li&gt;에이전트가 무조건 결제까지 밀어붙이는 건 위험하다고 보고, 결제는 사용자가 직접 마무리하는 구조를 유지했다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 실제 검증 결과&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 계정 세션을 써서 조회를 재현했다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;날짜: &lt;code&gt;2026-05-12&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;구간: &lt;code&gt;대전 -&amp;gt; 서울&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;시간대: &lt;code&gt;10:00 ~ 12:00&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;대상: &lt;code&gt;KTX&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조회 결과:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;KTX 후보가 정상적으로 나왔다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;15%할인&lt;/code&gt; 라벨이 응답에 들어왔다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;022&lt;/code&gt;편은 &lt;code&gt;10:58 -&amp;gt; 11:53&lt;/code&gt;으로 확인됐다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 다음 실제 예약도 해 봤다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;대상 열차: &lt;code&gt;022&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;좌석 조건: 8번, 9번은 피하기&lt;/li&gt;
&lt;li&gt;선호: &lt;code&gt;A/D&lt;/code&gt; 창가석&lt;/li&gt;
&lt;li&gt;결과: &lt;code&gt;13호차 10A&lt;/code&gt;로 예약이 잡혔다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 요청한 조건을 만족하는 결제 전 예약 상태까지는 실제로 재현됐다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 얻은 결론&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에 확인한 핵심 결론은 네 가지였다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;에이전트가 KTX를 예약하게 하려면, 기반 라이브러리가 내가 실제로 쓰는 예매 방식을 지원해야 한다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;N카드 할인승차권&lt;/code&gt;은 일반 예매와 다른 진입점이 있다.&lt;/li&gt;
&lt;li&gt;보유 N카드 기준으로 조회해야 앱과 같은 할인승차권 목록을 얻을 수 있다.&lt;/li&gt;
&lt;li&gt;예약은 가능하지만, 결제 자동화는 별도 검증 없이 넣지 않는 편이 맞다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. 작업하다가 k-skill을 발견했다&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 작업을 하던 중 LinkedIn에서 &lt;code&gt;k-skill&lt;/code&gt;이라는 프로젝트를 발견했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;k-skill&lt;/code&gt;은 여러 자동화 skill을 모아 둔 프로젝트였고, 그 안에 &lt;code&gt;ktx-booking&lt;/code&gt;이라는 기능이 있었다. 문서를 보니 KTX/Korail 열차 조회, 좌석 확인, 예약 진행, 예약 내역 확인, 예약 취소 같은 기능을 제공하고 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 내부적으로는 결국 &lt;code&gt;korail2&lt;/code&gt;를 기반으로 코레일 조회와 예약을 처리하는 구조였다. 즉, 내가 처음에 부딪힌 문제와 연결된다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;k-skill&lt;/code&gt;은 KTX 예매 자동화를 제공한다.&lt;/li&gt;
&lt;li&gt;그 자동화는 &lt;code&gt;korail2&lt;/code&gt;를 기반으로 한다.&lt;/li&gt;
&lt;li&gt;하지만 &lt;code&gt;korail2&lt;/code&gt;에는 N카드 할인승차권 흐름이 없었다.&lt;/li&gt;
&lt;li&gt;따라서 &lt;code&gt;k-skill&lt;/code&gt;에서 N카드 예매를 제대로 지원하려면, 먼저 &lt;code&gt;korail2&lt;/code&gt; 쪽에 기능이 있어야 했다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 작업 방향이 더 분명해졌다. 단순히 내 로컬에서 동작하는 스크립트를 만드는 대신, 먼저 &lt;code&gt;korail2&lt;/code&gt; fork에 N카드 기능을 정리하고 PR로 남기는 쪽이 맞았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후에는 같은 흐름을 &lt;code&gt;k-skill&lt;/code&gt;에도 연결했다. &lt;code&gt;k-skill&lt;/code&gt;의 &lt;code&gt;ktx-booking&lt;/code&gt; skill이 N카드 할인승차권을 다룰 수 있도록 fork를 받아 작업했고, 원본 프로젝트에도 PR을 올렸다.&lt;br /&gt;결과적으로 작업은 두 단계가 됐다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;code&gt;korail2&lt;/code&gt;에 N카드 기반 조회/예약에 필요한 저수준 기능을 추가한다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k-skill&lt;/code&gt;의 &lt;code&gt;ktx-booking&lt;/code&gt;에서 그 기능을 사용자-facing 자동화로 노출한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;7. PyPI에 배포했다&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;k-skill&lt;/code&gt;에서 N카드 기능을 쓰려면 &lt;code&gt;korail2&lt;/code&gt;에 N카드 코드가 있어야 했다. 그런데 원본 &lt;code&gt;korail2&lt;/code&gt;에는 없으니, 내 fork를 PyPI에 올리는 게 맞다는 결론이 됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;패키지 이름은 &lt;code&gt;korail2-ncard&lt;/code&gt;로 정했다. &lt;code&gt;korail2&lt;/code&gt;와 구분되면서도 N카드 지원 fork임을 바로 알 수 있는 이름이었다.&lt;/p&gt;
&lt;pre class=&quot;cmake&quot;&gt;&lt;code&gt;pip install korail2-ncard pycryptodome&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;빌드는 &lt;code&gt;pyproject.toml&lt;/code&gt; + &lt;code&gt;setuptools&lt;/code&gt; + &lt;code&gt;twine&lt;/code&gt;으로 진행했다. 시스템 Python이 PEP 668로 외부 패키지 설치를 막아서 venv를 따로 만들어서 빌드했다. 배포 후 &lt;code&gt;pip install korail2-ncard&lt;/code&gt;가 실제로 되는지, README에 있는 예시가 동작하는지 확인했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PyPI 페이지: &lt;a href=&quot;https://pypi.org/project/korail2-ncard/&quot;&gt;https://pypi.org/project/korail2-ncard/&lt;/a&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;8. 커밋과 PR&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PR은 두 곳에 나누어 정리했다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;korail2&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PR: &lt;a href=&quot;https://github.com/ce-dric/korail2/pull/1&quot;&gt;https://github.com/ce-dric/korail2/pull/1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;원본 리포지토리: &lt;a href=&quot;https://github.com/carpedm20/korail2&quot;&gt;https://github.com/carpedm20/korail2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;fork 리포지토리: &lt;a href=&quot;https://github.com/ce-dric/korail2&quot;&gt;https://github.com/ce-dric/korail2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;브랜치: &lt;code&gt;ncard-discount-poc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;주요 변경 파일: &lt;code&gt;korail2/korail2.py&lt;/code&gt;, &lt;code&gt;README.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;목적: &lt;code&gt;k-skill&lt;/code&gt; 같은 상위 자동화 도구가 N카드 할인승차권 플로우를 재사용할 수 있게 기반 기능을 추가하는 것&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 PR에는 다음 내용을 담았다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;KorailTalk의 현재 모바일 API 인증 흐름 대응&lt;/li&gt;
&lt;li&gt;보유 N카드 조회&lt;/li&gt;
&lt;li&gt;보유 N카드 기준 할인승차권 열차 조회&lt;/li&gt;
&lt;li&gt;위험한 예약/취소 테스트는 명시적으로 켜야만 실행되도록 제한&lt;/li&gt;
&lt;li&gt;결제 자동화는 범위 밖으로 유지&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;k-skill&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PR: &lt;a href=&quot;https://github.com/NomaDamas/k-skill/pull/231&quot;&gt;https://github.com/NomaDamas/k-skill/pull/231&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;원본 리포지토리: &lt;a href=&quot;https://github.com/NomaDamas/k-skill&quot;&gt;https://github.com/NomaDamas/k-skill&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;fork 리포지토리: &lt;a href=&quot;https://github.com/ce-dric/k-skill&quot;&gt;https://github.com/ce-dric/k-skill&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;브랜치: &lt;code&gt;feat/ncard-v2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;제목: &lt;code&gt;feat: N카드 할인 예매 지원 추가 (ktx-booking)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 PR은 &lt;code&gt;korail2&lt;/code&gt;에 추가한 N카드 흐름을 &lt;code&gt;k-skill&lt;/code&gt;의 &lt;code&gt;ktx-booking&lt;/code&gt; 기능에서 사용할 수 있게 연결하는 쪽이다.&lt;br /&gt;즉, &lt;code&gt;korail2&lt;/code&gt; PR이 기반 라이브러리 작업이라면, &lt;code&gt;k-skill&lt;/code&gt; PR은 에이전트가 실제로 호출할 수 있는 자동화 인터페이스 쪽 작업이다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;9. 짧은 회고&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 작업은 &amp;ldquo;에이전트로 KTX 표를 예매하고 싶다&amp;rdquo;에서 시작했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 막상 들여다보니 내가 원하는 예매 방식은 일반 승차권 예매가 아니라 N카드 할인승차권 예매였다. 그리고 그 기능은 &lt;code&gt;korail2&lt;/code&gt;에 없었다. 그래서 먼저 기반 라이브러리에 없는 플로우를 분석하고 추가해야 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중간에 &lt;code&gt;k-skill&lt;/code&gt;을 발견하면서 이 작업의 위치도 더 명확해졌다. 에이전트가 KTX 표를 예매하는 최종 사용자 경험은 &lt;code&gt;k-skill&lt;/code&gt; 같은 상위 자동화에서 만들 수 있지만, 실제 코레일 API를 다루는 기반은 &lt;code&gt;korail2&lt;/code&gt;다. 그래서 N카드 기능은 아래쪽 라이브러리에 먼저 넣고, 그 다음 &lt;code&gt;k-skill&lt;/code&gt;에서 자동화 명령으로 연결하는 흐름이 자연스러웠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 작업에서 제일 중요했던 건 &amp;ldquo;어떤 endpoint를 써야 하는지&amp;rdquo;를 잘못 짚지 않는 것이었다. 처음에는 N카드 상품 조회 endpoint를 보게 되는데, 실제 사용자가 앱에서 누르는 흐름은 &lt;code&gt;보유 카드 -&amp;gt; 승차권 예매 -&amp;gt; 열차 조회&lt;/code&gt;였다.&lt;br /&gt;그 차이를 잡아낸 뒤에는 응답 필드 해석과 예약 결과 검증이 훨씬 선명해졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 이건 단순한 자동 예약 스크립트 추가가 아니라, 내가 실제로 쓰는 코레일 할인 예매 방식을 에이전트가 다룰 수 있도록 기반 라이브러리와 상위 자동화 skill 양쪽에 기능을 채워 넣고, 그 결과를 오픈소스 PR로 정리한 작업이었다.&lt;/p&gt;</description>
      <category>ai에이전트</category>
      <category>ktx예매</category>
      <category>N카드</category>
      <category>pypi</category>
      <category>개발일지</category>
      <category>오픈소스</category>
      <category>코레일</category>
      <category>파이썬</category>
      <author>세드릭</author>
      <guid isPermaLink="true">https://cornwall.tistory.com/65</guid>
      <comments>https://cornwall.tistory.com/65#entry65comment</comments>
      <pubDate>Tue, 12 May 2026 00:00:00 +0900</pubDate>
    </item>
    <item>
      <title>uv 패키지 관리자: 빠르고 효율적인 차세대 도구</title>
      <link>https://cornwall.tistory.com/64</link>
      <description>&lt;h1&gt;uv 패키지 관리자: 빠르고 효율적인 차세대 도구&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://images.pexels.com/photos/1181671/pexels-photo-1181671.jpeg?auto=compress&amp;cs=tinysrgb&amp;h=650&amp;w=940&quot; alt=&quot;A person reads &amp;#39;Python for Unix and Linux System Administration&amp;#39; indoors.&quot;&gt;&lt;br&gt;&lt;em&gt;Photo by &lt;a href=&quot;https://www.pexels.com/photo/python-book-1181671/&quot;&gt;Christina Morillo&lt;/a&gt; on Pexels&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;패키지 관리는 현대 소프트웨어 개발의 필수 요소입니다. Python 개발자라면 pip를 사용해 봤을 겁니다. 그런데 최근 개발 커뮤니티에서 빠르게 주목받는 새로운 패키지 관리자가 있습니다. 바로 &lt;strong&gt;uv&lt;/strong&gt;입니다.&lt;/p&gt;
&lt;p&gt;uv는 Rust로 만들어진 차세대 패키지 관리자로, 기존 도구들보다 훨씬 빠른 속도와 간결한 사용성을 자랑합니다. Python 프로젝트 관리를 획기적으로 개선할 수 있습니다. 이 글에서는 uv가 무엇인지, 어떻게 설치하고 사용하는지 차근차근 알아보겠습니다.&lt;/p&gt;
&lt;h2&gt;1. uv란 무엇인가요?&lt;/h2&gt;
&lt;h3&gt;uv의 탄생 배경&lt;/h3&gt;
&lt;p&gt;uv는 Astral이라는 회사에서 만든 &lt;strong&gt;Python 전용&lt;/strong&gt; 패키지 관리자입니다. Python 생태계에서 느려진 패키지 설치 속도를 개선하기 위해 Rust라는 고성능 프로그래밍 언어로 개발되었습니다.&lt;/p&gt;
&lt;p&gt;기존의 pip 같은 도구는 Python으로 만들어져 있었는데, 프로젝트가 커질수록 설치 속도가 눈에 띄게 느려지는 문제가 있었습니다. uv는 이 문제를 근본적으로 해결하려고 등장했습니다.&lt;/p&gt;
&lt;h3&gt;핵심 특징&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;압도적인 속도&lt;/strong&gt;&lt;br&gt;가장 큰 장점은 설치 속도입니다. pip 대비 10~100배 빠르다고 알려져 있습니다. 복잡한 의존성을 가진 프로젝트도 몇 초 안에 설정할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;효율적인 캐싱&lt;/strong&gt;&lt;br&gt;패키지를 한 번 다운로드하면 로컬에 캐시해 두었다가 다른 프로젝트에서도 재사용합니다. 디스크 공간을 효율적으로 사용할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;단순하고 직관적인 명령어&lt;/strong&gt;&lt;br&gt;학습 곡선이 낮습니다. pip의 복잡한 옵션 없이도 필요한 기능을 간단하게 사용할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Python 버전 자동 관리&lt;/strong&gt;&lt;br&gt;프로젝트에 필요한 Python 버전을 자동으로 다운로드하고 관리합니다.&lt;/p&gt;
&lt;h2&gt;2. 왜 uv를 사용해야 할까요?&lt;/h2&gt;
&lt;h3&gt;장점&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;개발 생산성 향상&lt;/strong&gt;&lt;br&gt;느린 설치 시간은 개발자의 집중력을 방해합니다. uv로 바꾸면 패키지 설치 시간을 크게 단축해 더 빠르게 개발에 집중할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CI/CD 파이프라인 가속화&lt;/strong&gt;&lt;br&gt;서버에서 프로젝트를 배포할 때도 uv의 빠른 속도가 큰 도움이 됩니다. 빌드 시간이 줄어드는 만큼 배포 주기도 단축됩니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;디스크 공간 절약&lt;/strong&gt;&lt;br&gt;효율적인 캐싱 덕분에 같은 패키지를 여러 프로젝트에서 중복으로 저장하지 않습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;현대적인 설계&lt;/strong&gt;&lt;br&gt;보안 검증, 의존성 해결 알고리즘 등 최신 모범 사례를 적용해 만들어졌습니다.&lt;/p&gt;
&lt;h3&gt;고려할 점&lt;/h3&gt;
&lt;p&gt;아직 비교적 새로운 도구라서 생태계가 pip나 poetry만큼 성숙하지 않을 수 있습니다. 모든 패키지가 uv와 완벽하게 호환되는지 확인해야 할 수도 있습니다.&lt;/p&gt;
&lt;h2&gt;3. uv 설치하기&lt;/h2&gt;
&lt;h3&gt;시스템 요구 사항&lt;/h3&gt;
&lt;p&gt;uv는 macOS, Linux, Windows에서 모두 작동합니다. 특별한 프로그래밍 언어를 미리 설치할 필요도 없습니다.&lt;/p&gt;
&lt;h3&gt;macOS / Linux 설치&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;curl을 사용한 설치 (가장 간단)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;터미널을 열고 다음 명령어를 입력합니다:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -LsSf https://astral.sh/uv/install.sh | sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;설치가 완료되면 터미널을 재시작합니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Homebrew 사용 (macOS)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Homebrew가 설치되어 있다면:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;brew install uv&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Windows 설치&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;PowerShell 사용&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;PowerShell을 관리자 권한으로 열고 다음을 입력합니다:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;powershell -ExecutionPolicy ByPass -c &amp;quot;irm https://astral.sh/uv/install.ps1 | iex&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;설치 확인&lt;/h3&gt;
&lt;p&gt;설치가 제대로 되었는지 확인하려면:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uv --version&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;버전 번호가 나타나면 설치가 완료된 것입니다.&lt;/p&gt;
&lt;h2&gt;4. uv 기본 사용법 익히기&lt;/h2&gt;
&lt;h3&gt;새 프로젝트 시작하기&lt;/h3&gt;
&lt;p&gt;가장 먼저 할 일은 프로젝트를 초기화하는 것입니다. &lt;code&gt;my-project&lt;/code&gt;라는 이름의 새 프로젝트를 만들어 보겠습니다:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uv init my-project
cd my-project&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;이 명령어를 실행하면 다음과 같은 파일들이 생성됩니다:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pyproject.toml&lt;/code&gt; - 프로젝트 설정 파일&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.python-version&lt;/code&gt; - 사용할 Python 버전 정보&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;패키지 설치하기&lt;/h3&gt;
&lt;p&gt;이미 존재하는 프로젝트로 이동했다면, 의존성 파일에 정의된 패키지들을 한 번에 동기화합니다:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uv sync&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;특정 패키지만 설치하려면:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uv add requests&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;이 명령어는 &lt;code&gt;requests&lt;/code&gt; 패키지를 설치하고 자동으로 &lt;code&gt;pyproject.toml&lt;/code&gt;과 &lt;code&gt;uv.lock&lt;/code&gt;에 추가합니다.&lt;/p&gt;
&lt;h3&gt;패키지 버전 지정하기&lt;/h3&gt;
&lt;p&gt;특정 버전의 패키지가 필요하면:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uv add &amp;quot;requests==2.31.0&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;또는 최소 버전을 지정할 수 있습니다:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uv add &amp;quot;requests&amp;gt;=2.30.0&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;패키지 업데이트하기&lt;/h3&gt;
&lt;p&gt;특정 패키지의 잠금 파일을 업데이트합니다:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uv lock --upgrade-package requests&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;모든 패키지를 업데이트하고 동기화하려면:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uv sync --upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;패키지 제거하기&lt;/h3&gt;
&lt;p&gt;더 이상 필요 없는 패키지를 제거합니다:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uv remove requests&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;개발용 의존성 관리&lt;/h3&gt;
&lt;p&gt;테스트나 개발 단계에서만 필요한 패키지는 따로 관리할 수 있습니다. 예를 들어 pytest는 개발 시에만 필요합니다:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uv add --dev pytest&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;이렇게 설치한 패키지는 &lt;code&gt;pyproject.toml&lt;/code&gt;의 &lt;code&gt;[dependency-groups]&lt;/code&gt; 섹션에 저장됩니다.&lt;/p&gt;
&lt;h3&gt;프로젝트 실행하기&lt;/h3&gt;
&lt;p&gt;uv가 관리하는 환경에서 Python 스크립트를 실행하려면:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uv run python main.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;또는 간단하게:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uv run main.py&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;5. 좀 더 깊게 알아보기&lt;/h2&gt;
&lt;h3&gt;Python 버전 관리&lt;/h3&gt;
&lt;p&gt;uv는 프로젝트에 필요한 Python 버전을 자동으로 다운로드하고 관리합니다:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uv python install 3.11&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;.python-version&lt;/code&gt; 파일에 명시된 버전을 프로젝트에서 자동으로 사용합니다.&lt;/p&gt;
&lt;h3&gt;도구 실행 (uvx)&lt;/h3&gt;
&lt;p&gt;외부 패키지의 명령어를 직접 실행할 수 있습니다. 별도 설치 없이도 최신 버전을 자동으로 다운로드해 실행합니다:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uv tool run black main.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;또는:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uvx black main.py&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;pyproject.toml 이해하기&lt;/h3&gt;
&lt;p&gt;uv는 Python 프로젝트의 표준 설정 파일인 &lt;code&gt;pyproject.toml&lt;/code&gt;을 사용합니다. 간단한 예시는 다음과 같습니다:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-toml&quot;&gt;[project]
name = &amp;quot;my-project&amp;quot;
version = &amp;quot;0.1.0&amp;quot;
description = &amp;quot;나의 첫 Python 프로젝트&amp;quot;
requires-python = &amp;quot;&amp;gt;=3.8&amp;quot;
dependencies = [
    &amp;quot;requests&amp;gt;=2.30.0&amp;quot;,
    &amp;quot;flask&amp;gt;=2.0.0&amp;quot;,
]

[dependency-groups]
dev = [
    &amp;quot;pytest&amp;gt;=7.0.0&amp;quot;,
    &amp;quot;black&amp;gt;=23.0.0&amp;quot;,
]&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;가상 환경의 이점&lt;/h3&gt;
&lt;p&gt;uv는 자동으로 각 프로젝트를 위한 격리된 가상 환경을 만듭니다. 이는 다른 프로젝트의 패키지와 충돌하지 않도록 보장합니다. 직접 가상 환경을 활성화할 필요가 없습니다. uv가 자동으로 관리합니다.&lt;/p&gt;
&lt;h3&gt;기존 pip 프로젝트에서 전환하기&lt;/h3&gt;
&lt;p&gt;이미 pip를 사용하는 프로젝트가 있다면 uv로 전환할 수 있습니다. &lt;code&gt;uv init&lt;/code&gt;을 실행하면 기존 &lt;code&gt;requirements.txt&lt;/code&gt;를 자동으로 읽어 &lt;code&gt;pyproject.toml&lt;/code&gt;으로 변환합니다:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uv init
uv sync&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;6. uv vs 기존 Python 패키지 관리자&lt;/h2&gt;
&lt;h3&gt;속도 비교&lt;/h3&gt;
&lt;p&gt;실제 벤치마크에 따르면:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;pip&lt;/strong&gt;: 평균 10~30초 (대규모 프로젝트)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;poetry&lt;/strong&gt;: 평균 5~15초&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;pdm&lt;/strong&gt;: 평균 3~8초&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;uv&lt;/strong&gt;: 평균 0.5~1초&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;이러한 속도 차이는 프로젝트가 크고 의존성이 많을수록 더 벌어집니다.&lt;/p&gt;
&lt;h3&gt;기능 비교&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;기능&lt;/th&gt;
&lt;th&gt;uv&lt;/th&gt;
&lt;th&gt;pip&lt;/th&gt;
&lt;th&gt;poetry&lt;/th&gt;
&lt;th&gt;pdm&lt;/th&gt;
&lt;th&gt;conda&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;속도&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;사용 편의성&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Python 버전 관리&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;커뮤니티&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;안정성&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;어떤 상황에 어떤 도구를 선택할까?&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;uv를 추천하는 경우:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;최신 기술 스택을 좋아하고 설치 속도를 최우선으로 생각하는 경우&lt;/li&gt;
&lt;li&gt;개인 프로젝트나 스타트업에서 빠른 개발 속도가 중요한 경우&lt;/li&gt;
&lt;li&gt;Python 버전 관리를 자동화하고 싶은 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;기존 도구를 유지하는 것이 좋은 경우:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;큰 기업 환경에서 검증된 도구를 선호하는 경우&lt;/li&gt;
&lt;li&gt;레거시 시스템과의 호환성이 중요한 경우&lt;/li&gt;
&lt;li&gt;풍부한 커뮤니티 리소스와 문제 해결 방법이 필요한 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. uv 사용 시 팁과 주의사항&lt;/h2&gt;
&lt;h3&gt;캐시 관리&lt;/h3&gt;
&lt;p&gt;한 번 다운로드한 패키지는 로컬 캐시에 저장되어 인터넷 연결이 끊어진 경우에도 사용할 수 있습니다. 이는 특히 CI/CD 환경에서 유용합니다.&lt;/p&gt;
&lt;p&gt;문제 발생 시 캐시를 초기화할 수 있습니다:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uv cache clean&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;잠금 파일 관리&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;uv.lock&lt;/code&gt; 파일은 정확한 버전의 의존성을 기록합니다. 이를 버전 관리 시스템에 커밋하면 팀 전체가 동일한 환경에서 작업할 수 있습니다.&lt;/p&gt;
&lt;h3&gt;커뮤니티 지원&lt;/h3&gt;
&lt;p&gt;uv는 빠르게 발전하는 프로젝트입니다. 공식 문서와 GitHub 저장소에서 최신 정보를 확인하세요:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;공식 사이트&lt;/strong&gt;: &lt;a href=&quot;https://astral.sh/uv&quot;&gt;https://astral.sh/uv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href=&quot;https://github.com/astral-sh/uv&quot;&gt;https://github.com/astral-sh/uv&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 결론&lt;/h2&gt;
&lt;p&gt;uv는 Python 개발의 속도를 획기적으로 높일 수 있는 도구입니다. 특히 개발 초기 단계에서 빠른 속도의 중요성이 커지면서, uv는 점점 더 많은 개발자들에게 주목받고 있습니다.&lt;/p&gt;
&lt;p&gt;기존 패키지 관리자를 완벽하게 대체하는 솔루션은 아니지만, 새로운 프로젝트를 시작한다면 uv를 시도해 볼 가치가 있습니다. 빠른 설치 속도와 간단한 사용법, 자동 Python 버전 관리가 개발 경험을 크게 개선할 것입니다.&lt;/p&gt;
&lt;p&gt;앞으로 uv가 어떻게 발전할지 지켜보는 것도 흥미로울 것 같습니다.&lt;/p&gt;</description>
      <category>CSE/알쓸모</category>
      <category>PIP</category>
      <category>poetry</category>
      <category>Python</category>
      <category>rust</category>
      <category>UV</category>
      <category>개발도구</category>
      <category>패키지관리자</category>
      <author>세드릭</author>
      <guid isPermaLink="true">https://cornwall.tistory.com/64</guid>
      <comments>https://cornwall.tistory.com/64#entry64comment</comments>
      <pubDate>Sat, 9 May 2026 15:14:22 +0900</pubDate>
    </item>
    <item>
      <title>엔비디아 API, 모델을 무료로 사용한다? 진실 혹은 오해</title>
      <link>https://cornwall.tistory.com/63</link>
      <description>&lt;h1&gt;엔비디아 API, 모델을 무료로 사용한다? 진실 혹은 오해&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://images.pexels.com/photos/343239/pexels-photo-343239.jpeg?auto=compress&amp;cs=tinysrgb&amp;h=650&amp;w=940&quot; alt=&quot;Detailed close-up of a laptop keyboard featuring Intel Core i7 and NVIDIA GeForce stickers, highlighting technology components.&quot;&gt;&lt;br&gt;&lt;em&gt;Photo by &lt;a href=&quot;https://www.pexels.com/photo/gray-laptop-computer-343239/&quot;&gt;Jordan Harrison&lt;/a&gt; on Pexels&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;quot;엔비디아에서 API로 AI 모델을 무료로 사용할 수 있다&amp;quot;는 말을 들으셨나요? 너무 좋은 것 같아서 의심스럽다면, 정확히 반반입니다. 엔비디아는 정말로 100개 이상의 AI 모델을 무료로 제공하고 있습니다. 다만 &amp;quot;무료&amp;quot;의 범위와 조건을 정확히 알아야 현명하게 활용할 수 있습니다.&lt;/p&gt;
&lt;h2&gt;1. 엔비디아의 AI 생태계와 무료 API의 현실&lt;/h2&gt;
&lt;p&gt;GPU 제조사로 시작한 엔비디아는 이제 AI 시대의 핵심 기업입니다. 개발자들이 AI를 쉽게 접근하고 활용할 수 있도록 다양한 플랫폼과 서비스를 제공하고 있죠.&lt;/p&gt;
&lt;p&gt;엔비디아가 제공하는 AI 서비스는 크게 다음과 같이 나뉩니다:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;NGC(NVIDIA GPU Cloud)&lt;/strong&gt;: 오픈소스 모델, 사전학습된 모델, SDK 등을 다운로드할 수 있는 카탈로그&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NIM(NVIDIA Inference Microservices)&lt;/strong&gt;: API 형태로 모델을 바로 사용할 수 있는 서비스&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI Enterprise&lt;/strong&gt;: 기업용 라이센스 기반 솔루션&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;1.1 &amp;quot;무료 API&amp;quot;라는 말, 정말 가능할까?&lt;/h3&gt;
&lt;p&gt;네, 실제입니다. 다만 다음 세 가지를 이해해야 합니다:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;무료지만 제한이 있다&lt;/strong&gt;: 사용량 제한이나 요청 속도에 제한이 있을 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;개인/연구 목적에 최적화&lt;/strong&gt;: 상업적 대규모 사용은 유료 플랜으로 전환해야 합니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;프로토타이핑용&lt;/strong&gt;: 아이디어를 검증하거나 학습할 용도로 최적화되어 있습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;2. 엔비디아에서 무료로 접근 가능한 AI 모델 및 API 종류&lt;/h2&gt;
&lt;h3&gt;2.1 NVIDIA NIM: 100개 이상의 모델을 무료로 사용하는 가장 쉬운 방법&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;NIM(NVIDIA Inference Microservices)&lt;/strong&gt;은 엔비디아가 제공하는 무료 서비스로, 다양한 AI 모델에 접근하는 가장 매력적인 방법입니다.&lt;/p&gt;
&lt;h4&gt;2.1.1 NIM이란 무엇인가?&lt;/h4&gt;
&lt;p&gt;NIM은 엔비디아가 호스팅하는 AI 모델들을 &lt;strong&gt;REST API&lt;/strong&gt; 형태로 제공하는 서비스입니다. OpenAI의 API와 호환되도록 설계되었으므로, OpenAI를 사용해본 개발자라면 거의 동일한 방식으로 사용할 수 있습니다.&lt;/p&gt;
&lt;p&gt;간단하게 말해, 서버에 &amp;quot;이 텍스트를 분석해줘&amp;quot; 또는 &amp;quot;이 이미지를 생성해줘&amp;quot;라고 요청하면, 엔비디아의 GPU가 처리해서 결과를 돌려주는 것입니다.&lt;/p&gt;
&lt;h4&gt;2.1.2 NIM에서 무료로 사용할 수 있는 모델들&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;텍스트 생성 (대화형 모델)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Meta의 &lt;strong&gt;Llama 3.1&lt;/strong&gt; (8B, 70B)&lt;/li&gt;
&lt;li&gt;Mistral AI의 &lt;strong&gt;Mistral 7B Instruct&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;엔비디아 자체 모델 &lt;strong&gt;Nemotron 3.5&lt;/strong&gt; (한국어 지원이 있는 모델)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DeepSeek-R1&lt;/strong&gt;, &lt;strong&gt;DeepSeek-V3&lt;/strong&gt; (중국 AI 스타트업의 고성능 모델)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GLM-5.1&lt;/strong&gt; (중국 Zhipu의 멀티모달 모델)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kimi 2.5&lt;/strong&gt; (중국 모델)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;이미지 관련&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Stable Diffusion (이미지 생성)&lt;/li&gt;
&lt;li&gt;이미지 분석 및 자막 생성 모델&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;코드 생성&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CodeLLaMA&lt;/li&gt;
&lt;li&gt;다양한 프로그래밍 언어 특화 모델&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;임베딩 (벡터 변환)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;텍스트를 수치 형태로 변환하여 검색, 유사도 분석 등에 활용&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;2.1.3 API 연동은 정말 간단합니다&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;# OpenAI 라이브러리를 사용하듯이 쓸 수 있습니다
from openai import OpenAI

client = OpenAI(
    base_url=&amp;quot;https://integrate.api.nvidia.com/v1&amp;quot;,
    api_key=&amp;quot;YOUR_NVIDIA_API_KEY&amp;quot;  # build.nvidia.com에서 발급
)

response = client.chat.completions.create(
    model=&amp;quot;meta/llama-3.1-8b-instruct&amp;quot;,
    messages=[
        {&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;안녕하세요! 오늘은 무엇을 도와드릴까요?&amp;quot;}
    ]
)

print(response.choices[0].message.content)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;정말 간단하죠? OpenAI API를 써봤다면 이 코드는 거의 동일합니다.&lt;/p&gt;
&lt;h3&gt;2.2 NGC(NVIDIA GPU Cloud): 오픈소스 모델 다운로드&lt;/h3&gt;
&lt;p&gt;엔비디아는 NGC 카탈로그를 통해 &lt;strong&gt;오픈소스 모델을 직접 다운로드&lt;/strong&gt;할 수 있는 기회를 제공합니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NGC 카탈로그의 특징:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;사전학습된 모델 (Pre-trained models)&lt;/li&gt;
&lt;li&gt;엔비디아가 최적화한 SDK 및 도구&lt;/li&gt;
&lt;li&gt;기상 예측, 단백질 구조 예측 등 특화 모델&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;무료 다운로드&lt;/strong&gt; (회원가입 필요)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;다운로드 후 자신의 환경에서 실행하므로, API 요청량 제한이 없습니다. 다만 GPU가 필요합니다.&lt;/p&gt;
&lt;h3&gt;2.3 NVIDIA 개발자 프로그램: 자체 호스팅까지 무료&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;NIM을 자체 서버에서 호스팅하고 싶다면?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;엔비디아 개발자 프로그램(무료 가입)에 등록하면:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NIM 컨테이너를 &lt;strong&gt;자신의 GPU에서 실행&lt;/strong&gt; 가능&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;개발/연구 용도로 무료 이용&lt;/strong&gt; 가능&lt;/li&gt;
&lt;li&gt;API 요청량 제한 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;이는 자신의 서버를 운영하고 싶지만 비용을 절감하고 싶은 개발자나 스타트업에게 매력적입니다. 구체적인 조건은 &lt;a href=&quot;https://docs.nvidia.com/nim/&quot;&gt;공식 문서&lt;/a&gt;를 참고하세요.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;3. 무료 AI 모델, 어떻게 활용해야 할까? (실전 가이드)&lt;/h2&gt;
&lt;h3&gt;3.1 엔비디아 NIM 무료 사용을 위한 단계별 절차&lt;/h3&gt;
&lt;h4&gt;단계 1: 계정 생성 및 환경 설정 (5분)&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://build.nvidia.com/&quot;&gt;build.nvidia.com&lt;/a&gt;에 방문&lt;/li&gt;
&lt;li&gt;무료 회원가입 (이메일 인증)&lt;/li&gt;
&lt;li&gt;API 키 발급 페이지에서 &lt;strong&gt;&amp;quot;Generate API Key&amp;quot;&lt;/strong&gt; 클릭&lt;/li&gt;
&lt;li&gt;발급받은 키를 안전한 곳에 저장 (절대 공개하지 말 것)&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;단계 2: 파이썬 환경 준비 (5분)&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Python이 설치되어 있으면, OpenAI 라이브러리 설치
pip install openai requests

# 또는 다른 언어의 경우:
# JavaScript: npm install openai
# Java: Maven으로 설치
# Go, C# 등도 지원&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;단계 3: 첫 번째 API 호출 테스트 (2분)&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;import os
from openai import OpenAI

# API 키 설정 (환경 변수 권장)
client = OpenAI(
    base_url=&amp;quot;https://integrate.api.nvidia.com/v1&amp;quot;,
    api_key=os.getenv(&amp;quot;NVIDIA_API_KEY&amp;quot;)
)

# 간단한 테스트
response = client.chat.completions.create(
    model=&amp;quot;meta/llama-3.1-8b-instruct&amp;quot;,
    messages=[
        {&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;Python으로 &amp;#39;Hello World&amp;#39;를 출력하는 코드를 작성해줘&amp;quot;}
    ],
    temperature=0.7,
    top_p=0.7,
    max_tokens=256
)

print(response.choices[0].message.content)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;실행 결과&lt;/strong&gt;: 몇 초 후 AI가 Python 코드를 생성해줄 것입니다.&lt;/p&gt;
&lt;h4&gt;단계 4: 더 복잡한 활용 (선택사항)&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;웹 애플리케이션 통합 예시:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from flask import Flask, request, jsonify
from openai import OpenAI

app = Flask(__name__)
client = OpenAI(base_url=&amp;quot;https://integrate.api.nvidia.com/v1&amp;quot;, api_key=&amp;quot;YOUR_KEY&amp;quot;)

@app.route(&amp;quot;/ask&amp;quot;, methods=[&amp;quot;POST&amp;quot;])
def ask_ai():
    user_message = request.json.get(&amp;quot;message&amp;quot;)

    response = client.chat.completions.create(
        model=&amp;quot;meta/llama-3.1-8b-instruct&amp;quot;,
        messages=[{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: user_message}]
    )

    return jsonify({&amp;quot;answer&amp;quot;: response.choices[0].message.content})

if __name__ == &amp;quot;__main__&amp;quot;:
    app.run(debug=True)&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3.2 어떤 AI 모델을 선택해야 할까? (용도별 추천)&lt;/h3&gt;
&lt;h4&gt;텍스트 생성 및 대화 (챗봇, 콘텐츠 작성)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;추천&lt;/strong&gt;: Llama 3.1 8B (가볍고 빠름), Nemotron 3.5 (한국어 지원)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;언제&lt;/strong&gt;: 블로그 글 초안, 고객 상담 봇, 콘텐츠 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;이미지 생성&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;추천&lt;/strong&gt;: Stable Diffusion&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;언제&lt;/strong&gt;: 블로그 썸네일, 광고 이미지, 게임 에셋&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;분석 및 요약&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;추천&lt;/strong&gt;: DeepSeek-V3 또는 Llama 3.1 70B (더 정확)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;언제&lt;/strong&gt;: 문서 분석, 회의록 요약, 뉘앙스 있는 질문&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;코드 생성 및 디버깅&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;추천&lt;/strong&gt;: DeepSeek-R1 (추론 능력 강함)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;언제&lt;/strong&gt;: 프로그래밍 질문, 버그 찾기, 코드 리뷰&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3.3 무료 크레딧과 사용량 제한: 정확히 알아야 할 사항&lt;/h3&gt;
&lt;p&gt;엔비디아 무료 크레딧 정책은 시간에 따라 변할 수 있습니다. &lt;strong&gt;정확한 한도(월 요청 수, 크레딧 액수 등)는 &lt;a href=&quot;https://build.nvidia.com/&quot;&gt;build.nvidia.com&lt;/a&gt; 대시보드에서 실시간으로 확인해야 합니다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;일반적으로:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;개인 프로젝트나 학습 목적으로는 충분한 수준의 무료 크레딧 제공&lt;/li&gt;
&lt;li&gt;대규모 이용을 고려하면 유료 플랜 전환 필요&lt;/li&gt;
&lt;li&gt;정책 변경 가능성이 있으므로 정기적인 확인 권장&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;4. 주의해야 할 점! 무료 API 사용 시 놓치지 말아야 할 것들&lt;/h2&gt;
&lt;h3&gt;4.1 &amp;quot;무료&amp;quot;의 함정: 사용량 제한 및 속도 제약&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;항목&lt;/th&gt;
&lt;th&gt;무료 플랜&lt;/th&gt;
&lt;th&gt;상용 플랜&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;요청 속도&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;제한 있음&lt;/td&gt;
&lt;td&gt;더 높음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;동시 요청&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;제한 있음&lt;/td&gt;
&lt;td&gt;제한 완화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;월간 크레딧&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;제한 있음&lt;/td&gt;
&lt;td&gt;무제한 (비용 청구)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;응답 시간&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2~5초&lt;/td&gt;
&lt;td&gt;더 빠를 수 있음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;현실적 영향:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;개인 프로젝트나 학습용: &lt;strong&gt;문제없음&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;소규모 스타트업: &lt;strong&gt;초반에는 충분하다가 나중에 유료 전환 필요&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;대규모 서비스: &lt;strong&gt;처음부터 유료 플랜 고려&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.2 상업적 이용 가능 여부&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;무료 크레딧의 제한:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;✅ 개인 프로젝트&lt;/li&gt;
&lt;li&gt;✅ 학습 및 연구&lt;/li&gt;
&lt;li&gt;✅ 포트폴리오 프로젝트&lt;/li&gt;
&lt;li&gt;❓ 수익을 직간접적으로 얻는 프로젝트 → &lt;strong&gt;약관 및 공식 안내 확인 필수&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;❌ 대규모 상업 서비스&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;상용 환경에서 사용하려면:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;NIM API 유료 플랜&lt;/strong&gt; 전환&lt;/li&gt;
&lt;li&gt;또는 &lt;strong&gt;NVIDIA AI Enterprise 라이센스&lt;/strong&gt; (구체적 정보는 공식 문서 참고)&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;4.3 기술 지원 및 업데이트&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;무료 사용자:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;공식 문서 열람 가능&lt;/li&gt;
&lt;li&gt;커뮤니티 포럼 이용 (엔비디아 개발자 커뮤니티)&lt;/li&gt;
&lt;li&gt;전용 기술 지원 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;유료 고객:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;우선 기술 지원&lt;/li&gt;
&lt;li&gt;전담 담당자&lt;/li&gt;
&lt;li&gt;SLA(서비스 수준 협약)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.4 데이터 보안 및 개인 정보 보호&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;중요 주의사항:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;API를 통해 전송하는 데이터는 엔비디아 서버를 경유합니다.&lt;/li&gt;
&lt;li&gt;민감한 정보(개인정보, 사내 기밀 등)는 &lt;strong&gt;신중하게&lt;/strong&gt; 전송해야 합니다.&lt;/li&gt;
&lt;li&gt;자체 환경에서 실행하려면 NGC에서 모델을 다운로드한 후 자신의 서버에서 운영하세요.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;권장 사항:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;민감 데이터는 자체 호스팅된 NIM 사용&lt;/li&gt;
&lt;li&gt;API 키는 환경 변수에 저장 (코드에 직접 작성 금지)&lt;/li&gt;
&lt;li&gt;주기적으로 API 키 회전&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.5 향후 무료 정책의 불확실성&lt;/h3&gt;
&lt;p&gt;엔비디아가 무료 정책을 언제까지 유지할지는 불명확합니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;가능성 있는 시나리오&lt;/strong&gt;: 사용자 증가에 따른 정책 조정 또는 강화&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;현실&lt;/strong&gt;: 개발자 생태계 확대가 엔비디아에 전략적으로 중요함&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;현명한 대응:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;현재 무료 혜택으로 프로토타입을 만들고 검증하기&lt;/li&gt;
&lt;li&gt;상용화 단계에서는 비용을 예산에 포함하기&lt;/li&gt;
&lt;li&gt;정책 변화에 대비해 정기적으로 공식 안내 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;5. 엔비디아 무료 API vs. 다른 AI 서비스 비교&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;서비스&lt;/th&gt;
&lt;th&gt;모델 수&lt;/th&gt;
&lt;th&gt;무료 혜택&lt;/th&gt;
&lt;th&gt;속도&lt;/th&gt;
&lt;th&gt;한국어 지원&lt;/th&gt;
&lt;th&gt;상용 이용&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NVIDIA NIM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;100+&lt;/td&gt;
&lt;td&gt;개발자 크레딧&lt;/td&gt;
&lt;td&gt;중간&lt;/td&gt;
&lt;td&gt;우수&lt;/td&gt;
&lt;td&gt;API 유료&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OpenAI API&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;GPT-4, o1 등&lt;/td&gt;
&lt;td&gt;제한적&lt;/td&gt;
&lt;td&gt;빠름&lt;/td&gt;
&lt;td&gt;우수&lt;/td&gt;
&lt;td&gt;종량제&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Google AI Studio&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Gemini 등&lt;/td&gt;
&lt;td&gt;무료 (속도 제한)&lt;/td&gt;
&lt;td&gt;빠름&lt;/td&gt;
&lt;td&gt;우수&lt;/td&gt;
&lt;td&gt;API 유료&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Meta Llama API&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Llama 3.1&lt;/td&gt;
&lt;td&gt;제한적&lt;/td&gt;
&lt;td&gt;중간&lt;/td&gt;
&lt;td&gt;보통&lt;/td&gt;
&lt;td&gt;대부분 오픈소스&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Anthropic Claude API&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Claude 모델&lt;/td&gt;
&lt;td&gt;제한적&lt;/td&gt;
&lt;td&gt;빠름&lt;/td&gt;
&lt;td&gt;우수&lt;/td&gt;
&lt;td&gt;종량제&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;NVIDIA NIM의 강점:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;모델 다양성&lt;/strong&gt;: 100개 이상의 최신 모델&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;진입 장벽 낮음&lt;/strong&gt;: 신용카드 없이 시작 가능&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;호환성&lt;/strong&gt;: OpenAI와 동일한 API 인터페이스&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;빠른 업데이트&lt;/strong&gt;: 새 모델이 빠르게 추가됨&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;글로벌 모델&lt;/strong&gt;: 중국, 한국 등 다양한 언어권 모델 포함&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;선택 기준:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;✅ 개인 개발자, 학생, 초기 스타트업 → &lt;strong&gt;NVIDIA NIM (무료로 시작 가능)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;✅ 이미 OpenAI 생태계 구축 → &lt;strong&gt;OpenAI API&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;✅ 기업, 높은 안정성과 전담 지원 필요 → &lt;strong&gt;Google AI, Anthropic&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;6. 결론: 무료 AI 모델로 시작하되 현실적으로 준비하기&lt;/h2&gt;
&lt;p&gt;엔비디아의 무료 AI 모델은 개발자의 진입 장벽을 크게 낮췄습니다. 이제 많은 사람들이 비용 걱정 없이 최신 AI 기술을 경험할 수 있습니다.&lt;/p&gt;
&lt;h3&gt;6.1 지금 시작해야 하는 이유&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;비용 부담 없이 경험 가능&lt;/strong&gt;: 신용카드 등록 없이 최신 AI 기술을 직접 사용&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;학습과 실험의 기회&lt;/strong&gt;: 다양한 모델을 시도하고 특성 파악&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;빠른 프로토타이핑&lt;/strong&gt;: 아이디어를 구현하고 검증&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;개발자 커뮤니티&lt;/strong&gt;: 활발한 커뮤니티에서 배우고 공유&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 현명한 활용 방식&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Start With Free&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;build.nvidia.com → 회원가입 → API 키 발급 → 테스트 코드 실행&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Step 1: 작은 프로젝트부터&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;챗봇, 텍스트 분석, 이미지 생성 등 간단한 것부터 시작&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Step 2: 문서 정독&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.nvidia.com/nim/&quot;&gt;NVIDIA NIM 공식 문서&lt;/a&gt; 읽기&lt;/li&gt;
&lt;li&gt;모델별 특성 파악하고 정책 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Step 3: 상용화 준비&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;무료 단계에서 프로토타입 검증 완료&lt;/li&gt;
&lt;li&gt;사업화 시점에서 비용 예산화 및 유료 전환 계획&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.3 최종 조언&lt;/h3&gt;
&lt;p&gt;무료 정책이 영구적이지 않을 수 있으므로, &lt;strong&gt;지금이 경험을 쌓고 아이디어를 검증할 기회입니다.&lt;/strong&gt; 최신 정보는 항상 &lt;a href=&quot;https://docs.nvidia.com/nim/&quot;&gt;엔비디아 공식 문서&lt;/a&gt;와 &lt;a href=&quot;https://build.nvidia.com/&quot;&gt;build.nvidia.com&lt;/a&gt;에서 확인하세요.&lt;/p&gt;</description>
      <category>CSE/LLMs</category>
      <category>AI모델</category>
      <category>LLM</category>
      <category>NVIDIANNIM</category>
      <category>개발자</category>
      <category>머신러닝</category>
      <category>무료API</category>
      <category>엔비디아</category>
      <category>프로토타이핑</category>
      <author>세드릭</author>
      <guid isPermaLink="true">https://cornwall.tistory.com/63</guid>
      <comments>https://cornwall.tistory.com/63#entry63comment</comments>
      <pubDate>Fri, 8 May 2026 17:43:34 +0900</pubDate>
    </item>
    <item>
      <title>프로세스와 스레드의 차이점</title>
      <link>https://cornwall.tistory.com/62</link>
      <description>&lt;h1&gt;프로세스와 스레드의 차이점&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://images.pexels.com/photos/34803999/pexels-photo-34803999.jpeg?auto=compress&amp;cs=tinysrgb&amp;h=650&amp;w=940&quot; alt=&quot;Focused view of a computer screen displaying code and debug information.&quot;&gt;&lt;br&gt;&lt;em&gt;Photo by &lt;a href=&quot;https://www.pexels.com/photo/close-up-of-computer-screen-with-code-display-34803999/&quot;&gt;Daniil Komov&lt;/a&gt; on Pexels&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;도입부&lt;/h2&gt;
&lt;p&gt;새 프로젝트를 시작할 때, &amp;quot;이 작업에 멀티프로세싱을 쓸까 멀티스레딩을 쓸까?&amp;quot;라는 의문에 막히기 쉽습니다. 두 방식 모두 병렬 처리를 가능하게 하지만, 선택에 따라 애플리케이션의 안정성, 성능, 복잡도가 크게 달라집니다. 이 글에서는 프로세스와 스레드의 근본적 차이를 파악하고, 어떤 상황에서 무엇을 선택해야 하는지 명확히 정리하겠습니다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;1. 개념 정의&lt;/h2&gt;
&lt;h3&gt;1.1 프로세스(Process): 독립적인 실행의 흐름&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;프로세스&lt;/strong&gt;는 실행 중인 프로그램의 인스턴스입니다. 브라우저를 실행하면 운영체제는 프로세스를 하나 생성하며, 이 프로세스는 완전히 독립적인 메모리 공간을 할당받습니다.&lt;/p&gt;
&lt;p&gt;프로세스의 핵심 특징:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;독립적인 메모리 공간&lt;/strong&gt;: 각 프로세스는 자신만의 힙(Heap), 스택(Stack), 데이터 영역을 가집니다&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;자원의 소유&lt;/strong&gt;: 파일, 포트, 네트워크 연결 등 시스템 자원을 독립적으로 소유합니다&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;격리된 실행&lt;/strong&gt;: 한 프로세스의 오류가 다른 프로세스에 영향을 주지 않습니다&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;운영체제는 &lt;strong&gt;PCB(Process Control Block)&lt;/strong&gt;라는 데이터 구조를 통해 각 프로세스의 상태와 메타데이터를 관리합니다.&lt;/p&gt;
&lt;h3&gt;1.2 스레드(Thread): 프로세스 내 실행 단위&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;스레드&lt;/strong&gt;는 프로세스 내에서 실제로 작업을 수행하는 단위입니다. 모든 프로세스는 최소 하나의 스레드(메인 스레드)를 가지며, 필요에 따라 추가 스레드를 생성할 수 있습니다.&lt;/p&gt;
&lt;p&gt;스레드의 핵심 특징:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;공유 메모리 공간&lt;/strong&gt;: 같은 프로세스 내 모든 스레드는 힙과 데이터 영역을 공유합니다&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;독립적인 스택&lt;/strong&gt;: 각 스레드는 자신만의 스택(함수 호출, 로컬 변수)을 가집니다&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;가벼운 문맥 교환&lt;/strong&gt;: 스레드 간 전환은 프로세스 간 전환보다 훨씬 빠릅니다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;2. 핵심 비교&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;구분&lt;/th&gt;
&lt;th&gt;프로세스&lt;/th&gt;
&lt;th&gt;스레드&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;메모리 공간&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;독립적 (격리됨)&lt;/td&gt;
&lt;td&gt;공유 (같은 메모리 사용)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;생성 비용&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;높음 (시간, 메모리 소비)&lt;/td&gt;
&lt;td&gt;낮음 (빠른 생성)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;통신 방식&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;IPC 필요&lt;/td&gt;
&lt;td&gt;메모리 직접 공유&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;문맥 교환&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;느림 (메모리 맵 전환)&lt;/td&gt;
&lt;td&gt;빠름 (레지스터만 교환)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;장애 영향&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;격리됨 (다른 프로세스 영향 없음)&lt;/td&gt;
&lt;td&gt;전체 프로세스에 영향&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;2.1 메모리 독립성의 의미&lt;/h3&gt;
&lt;p&gt;프로세스 A와 프로세스 B가 같은 변수명 &lt;code&gt;count&lt;/code&gt;를 사용해도 각각 독립된 메모리에 저장되므로 서로 영향을 주지 않습니다. 이는 실수나 악의적인 접근으로부터 안전하지만, 두 프로세스가 정보를 교환하려면 파이프, 소켓, 공유 메모리 같은 IPC(Inter-Process Communication) 메커니즘을 통해야 하므로 구현이 복잡해집니다.&lt;/p&gt;
&lt;p&gt;반면 스레드는 같은 프로세스 내의 모든 스레드가 메모리를 공유하므로, 한 스레드에서 변수를 수정하면 다른 스레드에서도 즉시 변경된 값을 봅니다. 이는 데이터 교환을 매우 쉽게 만들지만, &lt;strong&gt;경쟁 상태(race condition)&lt;/strong&gt; 같은 동시성 문제를 야기합니다.&lt;/p&gt;
&lt;h3&gt;2.2 생성 오버헤드의 실제 차이&lt;/h3&gt;
&lt;p&gt;프로세스 생성은 메모리 할당, 운영체제 테이블 등록, 초기 자원 설정 등 많은 시스템 작업을 수반하므로 밀리초 단위 시간이 걸립니다. 이 때문에 요청마다 새 프로세스를 생성하는 것은 비효율적입니다.&lt;/p&gt;
&lt;p&gt;스레드는 이미 할당된 프로세스의 메모리 공간을 재사용하며, 레지스터 정보만 관리하면 되므로 마이크로초 단위로 빠르게 생성됩니다. Node.js나 Go 같은 현대 웹 프레임워크들은 멀티스레드(또는 비동기 I/O)를 이용해 수천 개의 동시 요청을 처리할 수 있는 것이 이 때문입니다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;3. 선택 기준: 멀티프로세싱 vs 멀티스레딩&lt;/h2&gt;
&lt;h3&gt;3.1 멀티프로세싱을 사용하는 경우&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;장점:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;안정성: 한 프로세스의 오류가 다른 프로세스에 영향 없음&lt;/li&gt;
&lt;li&gt;보안: 격리된 메모리 공간으로 권한 격리 가능&lt;/li&gt;
&lt;li&gt;진정한 병렬 처리: 멀티코어 CPU에서 동시 실행&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;단점:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;높은 오버헤드: 메모리 사용량 증가, 생성 시간 필요&lt;/li&gt;
&lt;li&gt;복잡한 통신: IPC 구현 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;활용 사례:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;웹 서버(Apache 전통 방식): 각 HTTP 요청을 별개 프로세스에서 처리해 격리&lt;/li&gt;
&lt;li&gt;운영체제: 애플리케이션 간 격리로 한 앱의 크래시가 다른 앱에 영향 없음&lt;/li&gt;
&lt;li&gt;CPU 집약적 작업: Python의 멀티프로세싱으로 GIL 우회하여 병렬 계산&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3.2 멀티스레딩을 사용하는 경우&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;장점:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;저 오버헤드: 빠른 생성, 메모리 효율&lt;/li&gt;
&lt;li&gt;간편한 통신: 메모리 직접 공유로 복잡한 IPC 불필요&lt;/li&gt;
&lt;li&gt;응답성 향상: UI 또는 메인 로직이 블로킹되지 않음&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;단점:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;안정성 약화: 한 스레드의 오류 또는 무한 루프가 프로세스 전체를 중단시킬 수 있음&lt;/li&gt;
&lt;li&gt;동기화 복잡성: 경쟁 상태를 방지하기 위해 Mutex, Lock 등 동기화 도구 필수&lt;/li&gt;
&lt;li&gt;디버깅 어려움: 타이밍에 따라 버그 재현이 어려울 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;활용 사례:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GUI 애플리케이션: UI 스레드가 블로킹되지 않도록 백그라운드 작업 분리&lt;/li&gt;
&lt;li&gt;웹 서버(Node.js, Go): 비동기 I/O를 통해 많은 동시 연결 처리&lt;/li&gt;
&lt;li&gt;실시간 시스템: 메인 루프가 중단되지 않아야 하는 게임, 임베디드 시스템&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;결론&lt;/h2&gt;
&lt;p&gt;프로세스와 스레드는 상충하는 특성을 가집니다:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;프로세스&lt;/strong&gt;: 독립적이고 안전하지만, 생성 비용이 높고 통신이 복잡합니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;스레드&lt;/strong&gt;: 효율적이고 통신이 쉽지만, 신중한 동기화와 정확한 설계가 필요합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;올바른 선택은 애플리케이션의 요구사항에 따릅니다. &lt;strong&gt;안정성과 격리가 최우선&lt;/strong&gt;이면 멀티프로세싱을 고려하세요. &lt;strong&gt;높은 동시성과 빠른 응답성&lt;/strong&gt;이 필요하면 멀티스레딩을 선택하되, 동기화의 어려움을 충분히 인지하고 시작하세요.&lt;/p&gt;
&lt;hr&gt;</description>
      <category>CSE/알쓸모</category>
      <category>동시성</category>
      <category>멀티스레딩</category>
      <category>멀티프로세싱</category>
      <category>병렬처리</category>
      <category>스레드</category>
      <category>운영체제</category>
      <category>프로세스</category>
      <author>세드릭</author>
      <guid isPermaLink="true">https://cornwall.tistory.com/62</guid>
      <comments>https://cornwall.tistory.com/62#entry62comment</comments>
      <pubDate>Thu, 7 May 2026 21:08:56 +0900</pubDate>
    </item>
    <item>
      <title>에이전트를 활용한 세컨드 브레인 만들기</title>
      <link>https://cornwall.tistory.com/61</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;안드레 카파시(Andrej Karpathy)가 LLM을 활용한 개인 wiki를 구축하는 방식을 공유했다. 정확하게는 에이전트를 활용했다고 보는 게 맞는 것 같다. 언어 모델은 다음 단어를 예측할 뿐이니.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-04-27 오후 5.31.25.png&quot; data-origin-width=&quot;1146&quot; data-origin-height=&quot;548&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxgJ7i/dJMcagkZsny/6zACBKZhzh2xwhsLK6yVt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxgJ7i/dJMcagkZsny/6zACBKZhzh2xwhsLK6yVt1/img.png&quot; data-alt=&quot;https://x.com/karpathy/status/2039805659525644595&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxgJ7i/dJMcagkZsny/6zACBKZhzh2xwhsLK6yVt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcxgJ7i%2FdJMcagkZsny%2F6zACBKZhzh2xwhsLK6yVt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;502&quot; height=&quot;240&quot; data-filename=&quot;스크린샷 2026-04-27 오후 5.31.25.png&quot; data-origin-width=&quot;1146&quot; data-origin-height=&quot;548&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://x.com/karpathy/status/2039805659525644595&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그동안 저장해둔 수많은 데이터(스크린샷, PDF, 메모 등)를 에이전트가 알아서 옵시디언(Obsidian) 공간에 wiki를 구축해준다. 주목할만한 점은 별다른 RAG 관련 기술이 없이도 알아서 데이터를 읽고 요약하며, 관계를 만들고 오류까지 검증한다는 것이다. 즉, &quot;딸각&quot;만 하면 정리를 해준다는 점이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;옵시디언은 AWS S3 버킷(Bucket)과 같이 볼트(Vault)를 공간의 기본 단위로 본다. 클라우드 기능이 없으면 무료로 사용이 가능하다. 예전에는 아이클라우드(iCloud)를 구독하고 있으면 아이클라우드 드라이브에 볼트를 위치하여 사용이 가능했다. 요즘에는 git을 활용하여 진행하는 것 같다. 단, 이런 과정에는 폐쇄망이나 인터넷이 연결된 상태에서 사용해야한다는 한계가 있다. 하나의 PC에서 로컬로 관리를 할 예정이라면 고민할 필요없이 남겨두면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-04-27 오후 5.37.56.png&quot; data-origin-width=&quot;1930&quot; data-origin-height=&quot;1620&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJJtnf/dJMcagL6cIE/nlCZz2zQGAwKNF4IWARNQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJJtnf/dJMcagL6cIE/nlCZz2zQGAwKNF4IWARNQK/img.png&quot; data-alt=&quot;그래도 대부분은 이 PC, 저 PC 왔다갔다한다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJJtnf/dJMcagL6cIE/nlCZz2zQGAwKNF4IWARNQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJJtnf%2FdJMcagL6cIE%2FnlCZz2zQGAwKNF4IWARNQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;647&quot; height=&quot;543&quot; data-filename=&quot;스크린샷 2026-04-27 오후 5.37.56.png&quot; data-origin-width=&quot;1930&quot; data-origin-height=&quot;1620&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그래도 대부분은 이 PC, 저 PC 왔다갔다한다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안드레 카파시가 제안한 방법은 생각보다 훨씬 간단하다. 적당한 위치에 볼트를 하나 만들고, md 파일을 하나 만들어서 &lt;a href=&quot;https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;내용&lt;/a&gt;을 복사하고, raw, wiki 폴더를 만든다. 클로드를 쓸 예정이여서 claude.md로 파일명을 지정하였다. codex의 경우에는 agents.md 이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-04-27 오후 5.49.27.png&quot; data-origin-width=&quot;2738&quot; data-origin-height=&quot;1824&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GrBo1/dJMcagL6dkb/3Zaye1xS9gPDjWvossnREk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GrBo1/dJMcagL6dkb/3Zaye1xS9gPDjWvossnREk/img.png&quot; data-alt=&quot;이럼 설정 끝이다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GrBo1/dJMcagL6dkb/3Zaye1xS9gPDjWvossnREk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGrBo1%2FdJMcagL6dkb%2F3Zaye1xS9gPDjWvossnREk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2738&quot; height=&quot;1824&quot; data-filename=&quot;스크린샷 2026-04-27 오후 5.49.27.png&quot; data-origin-width=&quot;2738&quot; data-origin-height=&quot;1824&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이럼 설정 끝이다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 아이클라우드를 안쓰고 깃허브에 연동하려면, 설정 &amp;gt; 커뮤니티 플러그인 &amp;gt; 탐색에서 git을 검색하여 설치한다. 설치가 완료되면 개별 활성화를 해줘야한다. 그리고 해당 플러그인 설정에서 custom base path 에 github 경로를 넣는다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qLThK/dJMcahKZWfA/yIawT0EBVkYaBlv6zZGQJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qLThK/dJMcahKZWfA/yIawT0EBVkYaBlv6zZGQJk/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;2738&quot; data-origin-height=&quot;1824&quot; data-filename=&quot;스크린샷 2026-04-27 오후 5.55.35.png&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qLThK/dJMcahKZWfA/yIawT0EBVkYaBlv6zZGQJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqLThK%2FdJMcahKZWfA%2FyIawT0EBVkYaBlv6zZGQJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2738&quot; height=&quot;1824&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k3CdY/dJMcajaVsL3/6z8MzIxJukCOhpmWwi5vX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k3CdY/dJMcajaVsL3/6z8MzIxJukCOhpmWwi5vX0/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;2738&quot; data-origin-height=&quot;1824&quot; data-filename=&quot;스크린샷 2026-04-27 오후 5.55.48.png&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k3CdY/dJMcajaVsL3/6z8MzIxJukCOhpmWwi5vX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk3CdY%2FdJMcajaVsL3%2F6z8MzIxJukCOhpmWwi5vX0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2738&quot; height=&quot;1824&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;설치된 플러그인에서 활성화를 해줘야한다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 raw 폴더에 파일을 넣고 해당 폴더에서 claude를 실행하여 Ingest 라고 프롬프트를 주면 wiki를 생성해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-04-27 오후 6.19.55.png&quot; data-origin-width=&quot;1384&quot; data-origin-height=&quot;1262&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o12n0/dJMcacQq68b/sitnSPYDQMFzQDzUWDvNr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o12n0/dJMcacQq68b/sitnSPYDQMFzQDzUWDvNr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o12n0/dJMcacQq68b/sitnSPYDQMFzQDzUWDvNr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo12n0%2FdJMcacQq68b%2FsitnSPYDQMFzQDzUWDvNr1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;571&quot; height=&quot;521&quot; data-filename=&quot;스크린샷 2026-04-27 오후 6.19.55.png&quot; data-origin-width=&quot;1384&quot; data-origin-height=&quot;1262&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>CSE/알쓸모</category>
      <category>LLM</category>
      <category>안드레카파시</category>
      <category>옵시디언</category>
      <category>위키</category>
      <category>클로드</category>
      <author>세드릭</author>
      <guid isPermaLink="true">https://cornwall.tistory.com/61</guid>
      <comments>https://cornwall.tistory.com/61#entry61comment</comments>
      <pubDate>Mon, 27 Apr 2026 21:48:49 +0900</pubDate>
    </item>
    <item>
      <title>아식스 슈퍼블라스트3 직구</title>
      <link>https://cornwall.tistory.com/58</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;지난 달 새로 발매한 아식스 슈퍼블라스트 3, 세가지 색상이 있다. 발매 당시 코발트 블라스트/라이트 오렌지 색상을 구매하고자 했으나 시작과 동시에 매진이 되었다. 색조합이 꼭 에반게리온 같아서 꼭 갖고 싶었다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1158&quot; data-origin-height=&quot;829&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JSaLC/dJMcah5cySQ/O7Ii5ElskqL63jYWt47AvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JSaLC/dJMcah5cySQ/O7Ii5ElskqL63jYWt47AvK/img.png&quot; data-alt=&quot;오늘자도 매진&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JSaLC/dJMcah5cySQ/O7Ii5ElskqL63jYWt47AvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJSaLC%2FdJMcah5cySQ%2FO7Ii5ElskqL63jYWt47AvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1158&quot; height=&quot;829&quot; data-origin-width=&quot;1158&quot; data-origin-height=&quot;829&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;오늘자도 매진&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;지난 주 해외 직구 어플로 일본판을 구매하였다. 4월 9일에 결제했는데 예상보다 빠르게 일주일만에 도착하였다. &lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;917&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QV7i8/dJMcabw7f3h/sNZBTQq52KwwfOJe4wRDv0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QV7i8/dJMcabw7f3h/sNZBTQq52KwwfOJe4wRDv0/img.jpg&quot; data-alt=&quot;코발트 버스트 290&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QV7i8/dJMcabw7f3h/sNZBTQq52KwwfOJe4wRDv0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQV7i8%2FdJMcabw7f3h%2FsNZBTQq52KwwfOJe4wRDv0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1206&quot; height=&quot;917&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;917&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;코발트 버스트 290&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br&gt;평소 280~285를 신는데 러닝용은 양말이 두껍기도하고 발 끝이 조금은 남는게 좋다는 조언을 들어서 290부터 구매하는 편이다. &lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vVe7F/dJMcafM6qf9/HLT3rlu2og0OIa40gr3Mh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vVe7F/dJMcafM6qf9/HLT3rlu2og0OIa40gr3Mh0/img.png&quot; data-origin-width=&quot;2694&quot; data-origin-height=&quot;1534&quot; style=&quot;width: 57.4109%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vVe7F/dJMcafM6qf9/HLT3rlu2og0OIa40gr3Mh0/img.png&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvVe7F%2FdJMcafM6qf9%2FHLT3rlu2og0OIa40gr3Mh0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2694&quot; height=&quot;1534&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DaojC/dJMcacW528C/KwjqWDyNTk3B4DfzscdYc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DaojC/dJMcacW528C/KwjqWDyNTk3B4DfzscdYc0/img.png&quot; data-origin-width=&quot;1655&quot; data-origin-height=&quot;1306&quot; style=&quot;width: 41.4263%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DaojC/dJMcacW528C/KwjqWDyNTk3B4DfzscdYc0/img.png&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDaojC%2FdJMcacW528C%2FKwjqWDyNTk3B4DfzscdYc0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1655&quot; height=&quot;1306&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;코부분이 메쉬로 되어있고 발등 쪽에도 숨구멍이 있어서 전반적으로 공기 순환은 잘될테다. &lt;/p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJDFEh/dJMcadIroI6/tghCEmcAD1W8dUggEwkUg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJDFEh/dJMcadIroI6/tghCEmcAD1W8dUggEwkUg1/img.png&quot; data-origin-width=&quot;2017&quot; data-origin-height=&quot;1828&quot; style=&quot;width: 40.172%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJDFEh/dJMcadIroI6/tghCEmcAD1W8dUggEwkUg1/img.png&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJDFEh%2FdJMcadIroI6%2FtghCEmcAD1W8dUggEwkUg1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2017&quot; height=&quot;1828&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/POXUJ/dJMb990p7bf/foD3OY0xNZiwk4pCob7wIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/POXUJ/dJMb990p7bf/foD3OY0xNZiwk4pCob7wIk/img.png&quot; data-origin-width=&quot;1640&quot; data-origin-height=&quot;2635&quot; style=&quot;width: 22.6598%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/POXUJ/dJMb990p7bf/foD3OY0xNZiwk4pCob7wIk/img.png&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPOXUJ%2FdJMb990p7bf%2FfoD3OY0xNZiwk4pCob7wIk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1640&quot; height=&quot;2635&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eEqkDG/dJMcacW529w/ECe3FOz8iT9vIDZSFwm8KK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eEqkDG/dJMcacW529w/ECe3FOz8iT9vIDZSFwm8KK/img.png&quot; data-origin-width=&quot;1870&quot; data-origin-height=&quot;1954&quot; style=&quot;width: 34.8426%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eEqkDG/dJMcacW529w/ECe3FOz8iT9vIDZSFwm8KK/img.png&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeEqkDG%2FdJMcacW529w%2FECe3FOz8iT9vIDZSFwm8KK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1870&quot; height=&quot;1954&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;아디제로와 비교해보면 폼이 조금 더 두껍다.&lt;/p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mDiy9/dJMcacW529x/Nm6KmyyFRaKtT9W6ntE15K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mDiy9/dJMcacW529x/Nm6KmyyFRaKtT9W6ntE15K/img.png&quot; data-origin-width=&quot;1816&quot; data-origin-height=&quot;2748&quot; style=&quot;width: 43.4069%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mDiy9/dJMcacW529x/Nm6KmyyFRaKtT9W6ntE15K/img.png&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmDiy9%2FdJMcacW529x%2FNm6KmyyFRaKtT9W6ntE15K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1816&quot; height=&quot;2748&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7fuWX/dJMcagFeT3R/pJvV9v2M2J55q9TmzwoHb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7fuWX/dJMcagFeT3R/pJvV9v2M2J55q9TmzwoHb1/img.png&quot; data-origin-width=&quot;1838&quot; data-origin-height=&quot;2178&quot; style=&quot;width: 55.4303%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7fuWX/dJMcagFeT3R/pJvV9v2M2J55q9TmzwoHb1/img.png&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7fuWX%2FdJMcagFeT3R%2FpJvV9v2M2J55q9TmzwoHb1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1838&quot; height=&quot;2178&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;아직 5km 만 뛰기에 10km 도전용으로 샀는데 올해 안에는 달성했으면 좋겠다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;4284&quot; data-origin-height=&quot;5712&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IGdju/dJMcahKTVEm/6shfieVwXc2u6f6RGM4HA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IGdju/dJMcahKTVEm/6shfieVwXc2u6f6RGM4HA0/img.png&quot; data-alt=&quot;웅장&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IGdju/dJMcahKTVEm/6shfieVwXc2u6f6RGM4HA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIGdju%2FdJMcahKTVEm%2F6shfieVwXc2u6f6RGM4HA0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;4284&quot; height=&quot;5712&quot; data-origin-width=&quot;4284&quot; data-origin-height=&quot;5712&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;웅장&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;/p&gt;</description>
      <category>데일리</category>
      <category>290</category>
      <category>러닝화</category>
      <category>러닝화사이즈</category>
      <category>슈퍼블라스트3</category>
      <category>슈퍼블라스트3사이즈</category>
      <category>아식스</category>
      <category>아식스러닝화</category>
      <category>아식스직구</category>
      <category>크로켓</category>
      <author>세드릭</author>
      <guid isPermaLink="true">https://cornwall.tistory.com/58</guid>
      <comments>https://cornwall.tistory.com/58#entry58comment</comments>
      <pubDate>Sun, 19 Apr 2026 15:14:42 +0900</pubDate>
    </item>
    <item>
      <title>1,430원으로 보조배터리 빌리는 방법</title>
      <link>https://cornwall.tistory.com/57</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;서울에서 대전까지 대략 1시간은 기차를 타고 내려가야하는데 배터리가 30%정도 남아있었다.&lt;br /&gt;충전기도 들고나오지 않아 기차에서 충전도 불가능했다.&lt;br /&gt;그래서 학교근처에서 봤던 보조배터리를 빌려주는 서비스를 이용해봐야겠다고 생각했다.&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서울역까지 가는 지하철에서 충전돼지 어플을 다운받고 회원가입을 해두었다.&lt;br /&gt;어플에서 QR을 인식하면 배터리가 배출되어 이를 가져가면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2dw5i/dJMcaiiHrSC/KDm8t2HmLAukmFgUF9J3EK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2dw5i/dJMcaiiHrSC/KDm8t2HmLAukmFgUF9J3EK/img.png&quot; data-origin-width=&quot;1746&quot; data-origin-height=&quot;1955&quot; style=&quot;width: 56.5391%; margin-right: 10px;&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;57.2&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2dw5i/dJMcaiiHrSC/KDm8t2HmLAukmFgUF9J3EK/img.png&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2dw5i%2FdJMcaiiHrSC%2FKDm8t2HmLAukmFgUF9J3EK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1746&quot; height=&quot;1955&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k533r/dJMcac3P2BU/hoCk5KEQ7UG1hKKtMdelYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k533r/dJMcac3P2BU/hoCk5KEQ7UG1hKKtMdelYk/img.png&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;1805&quot; style=&quot;width: 42.2981%;&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;42.8&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k533r/dJMcac3P2BU/hoCk5KEQ7UG1hKKtMdelYk/img.png&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk533r%2FdJMcac3P2BU%2FhoCk5KEQ7UG1hKKtMdelYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1206&quot; height=&quot;1805&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;서울역에도 여러 곳이 있다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;배터리는 아이폰17과 비슷한 크기와 무게이다. 측면에 전원을 누르고 기종에 맞는 단자를 꽂으면 충전이 가능하다. 무선 충전도 지원했으면 좋았을텐데 모든 기기가 무선충전이 되는건 아니니 유선이 나은 것 같다. 아마 배터리 단가도 비쌌을테지.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pxQ37/dJMcadn8vvR/bzWfSigmQxDyDYy8alg8U0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pxQ37/dJMcadn8vvR/bzWfSigmQxDyDYy8alg8U0/img.png&quot; data-origin-width=&quot;1334&quot; data-origin-height=&quot;2540&quot; style=&quot;width: 45.3241%; margin-right: 10px;&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;45.86&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pxQ37/dJMcadn8vvR/bzWfSigmQxDyDYy8alg8U0/img.png&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpxQ37%2FdJMcadn8vvR%2FbzWfSigmQxDyDYy8alg8U0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1334&quot; height=&quot;2540&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zczP0/dJMcadn8vvS/4mxqQnNcm87WKjc552AAq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zczP0/dJMcadn8vvS/4mxqQnNcm87WKjc552AAq0/img.png&quot; data-origin-width=&quot;1562&quot; data-origin-height=&quot;2519&quot; style=&quot;width: 53.5131%;&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;54.14&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zczP0/dJMcadn8vvS/4mxqQnNcm87WKjc552AAq0/img.png&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzczP0%2FdJMcadn8vvS%2F4mxqQnNcm87WKjc552AAq0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1562&quot; height=&quot;2519&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;충전돼지 배터리 앞 뒤&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;기차에 내려서 근처 반납할만한 장소를 찾아보니 지상에 편의점과 지하철에 대여/반납을 할 수 있는 곳이 있었다. 이는 모두 충전돼지 어플에서 확인이 가능하다. 광고도 수입원인지 이래저래 뜨는 게 많아서 스크린샷을 조금 잘랐다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N1YK8/dJMcaiiHrSA/UazLpiaKsHosdGrmTjuvo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N1YK8/dJMcaiiHrSA/UazLpiaKsHosdGrmTjuvo0/img.png&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;1346&quot; style=&quot;width: 59.0064%; margin-right: 10px;&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;59.7&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N1YK8/dJMcaiiHrSA/UazLpiaKsHosdGrmTjuvo0/img.png&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN1YK8%2FdJMcaiiHrSA%2FUazLpiaKsHosdGrmTjuvo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1206&quot; height=&quot;1346&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cTvKJK/dJMcadn8vvO/h3WEAY8ykc82g9P6C9GKw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cTvKJK/dJMcadn8vvO/h3WEAY8ykc82g9P6C9GKw1/img.png&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;1994&quot; style=&quot;width: 39.8308%;&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;40.3&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cTvKJK/dJMcadn8vvO/h3WEAY8ykc82g9P6C9GKw1/img.png&quot; alt=&quot;&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTvKJK%2FdJMcadn8vvO%2Fh3WEAY8ykc82g9P6C9GKw1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1206&quot; height=&quot;1994&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;충전돼지 어플 &amp;gt; 지도 에서 위치 확인이 가능하다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;반납하는 방법은 빈 공간에 배터리를 넣으면 반납이 되었다는 어플 알람이 온다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/F6gvD/dJMcaiXgCic/93o62X7UcxJCrYI5BI4fSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/F6gvD/dJMcaiXgCic/93o62X7UcxJCrYI5BI4fSK/img.png&quot; data-origin-width=&quot;1430&quot; data-origin-height=&quot;1686&quot; data-is-animation=&quot;false&quot; style=&quot;width: 40.9083%; margin-right: 10px;&quot; data-widthpercent=&quot;41.39&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/F6gvD/dJMcaiXgCic/93o62X7UcxJCrYI5BI4fSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FF6gvD%2FdJMcaiXgCic%2F93o62X7UcxJCrYI5BI4fSK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1430&quot; height=&quot;1686&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bly2X9/dJMcacbIZRW/oVs0mH4P7bIkYtpwE5HR80/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bly2X9/dJMcacbIZRW/oVs0mH4P7bIkYtpwE5HR80/img.jpg&quot; data-origin-width=&quot;914&quot; data-origin-height=&quot;761&quot; data-is-animation=&quot;false&quot; style=&quot;width: 57.9289%;&quot; data-widthpercent=&quot;58.61&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bly2X9/dJMcacbIZRW/oVs0mH4P7bIkYtpwE5HR80/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbly2X9%2FdJMcacbIZRW%2FoVs0mH4P7bIkYtpwE5HR80%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;914&quot; height=&quot;761&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;비어있는 곳에 넣으면 된다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹시나 지역내에서만 되는건가 걱정되어 충전돼지 고객센터에 문의를 해두었는데, 집에 도착하고 점심을 먹고 나니 답변이 와있었다. 이정도로 답변이 밀려있으면 AI 챗봇 정도는 도입해도 괜찮지 않을까.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;984&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AC6r0/dJMcaiXgCh8/kSMv71Kd1x98Jx0KETJM3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AC6r0/dJMcaiXgCh8/kSMv71Kd1x98Jx0KETJM3k/img.png&quot; data-alt=&quot;공식적으로도 맞다고 합니다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AC6r0/dJMcaiXgCh8/kSMv71Kd1x98Jx0KETJM3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAC6r0%2FdJMcaiXgCh8%2FkSMv71Kd1x98Jx0KETJM3k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;501&quot; height=&quot;409&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;984&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;공식적으로도 맞다고 합니다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로, 시간당 1,430원인데 시간단위로 쓰니 1시간 30분을 썼다고 해서 30분 요금이 추가되는 게 아니라 2시간 요금이 부과된다.&lt;/p&gt;</description>
      <category>데일리</category>
      <category>기차</category>
      <category>보조배터리</category>
      <category>보조배터리대여</category>
      <category>보조배터리빌리기</category>
      <category>서울에서대전</category>
      <category>서울역보조배터리</category>
      <category>서울역충전</category>
      <category>충전돼지</category>
      <category>충전돼지얼마</category>
      <category>충전돼지요금</category>
      <author>세드릭</author>
      <guid isPermaLink="true">https://cornwall.tistory.com/57</guid>
      <comments>https://cornwall.tistory.com/57#entry57comment</comments>
      <pubDate>Fri, 17 Apr 2026 16:28:15 +0900</pubDate>
    </item>
    <item>
      <title>덕테이프(duct-tape) 모델 실행하는 방법</title>
      <link>https://cornwall.tistory.com/56</link>
      <description>&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;[요약]&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt; &lt;a href=&quot;https://arena.ai/image&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://arena.ai/image&lt;/span&gt;&lt;/a&gt; 에서 구글 계정으로 로그인하고 배틀모드에서 프롬프트를 입력하면 확률적으로 나옴&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;[개요]&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;최근 openai 가 공개한 덕테이프 모델의 결과가 매우 뛰어난 탓에 난리다. 이제는 생성형 이미지와 실사 이미지의 구분이 어려울 정도로 정교한 결과를 추론해낸다. 해당 모델은 아직 정식 공개가 아니기에 블라인드 테스트로 arena.ai 에 선공개되었다. &lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;[실행 방법]&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;1. &lt;a href=&quot;https://arena.ai/image&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://arena.ai/image&lt;/span&gt;&lt;/a&gt; 에 접속한다. 구글 계정으로 로그인할 수 있다. &lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;920&quot; data-origin-height=&quot;1610&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d6RDE4/dJMcacbH4Jg/9edklRG49QsOmQ03Qaq6zK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d6RDE4/dJMcacbH4Jg/9edklRG49QsOmQ03Qaq6zK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d6RDE4/dJMcacbH4Jg/9edklRG49QsOmQ03Qaq6zK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd6RDE4%2FdJMcacbH4Jg%2F9edklRG49QsOmQ03Qaq6zK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;920&quot; height=&quot;1610&quot; data-origin-width=&quot;920&quot; data-origin-height=&quot;1610&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;2. 상단의 콤보박스에서 배틀모드를 선택하고 프롬프트를 입력하면 2개의 결과가 나오는데, 이들 중 덕테이프 모델 결과가 나올 수 있다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;859&quot; data-origin-height=&quot;924&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhJ2kT/dJMcacbH4Jh/Xu484bs15lWcH464izFuL1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhJ2kT/dJMcacbH4Jh/Xu484bs15lWcH464izFuL1/img.jpg&quot; data-alt=&quot;선택하면 어떤 모델을 쓴건지 나온다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhJ2kT/dJMcacbH4Jh/Xu484bs15lWcH464izFuL1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhJ2kT%2FdJMcacbH4Jh%2FXu484bs15lWcH464izFuL1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;859&quot; height=&quot;924&quot; data-origin-width=&quot;859&quot; data-origin-height=&quot;924&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;선택하면 어떤 모델을 쓴건지 나온다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;3. 선택해야 모델명을 볼 수 있지만, 덕테이프류 모델은 성능이 뛰어나서 누가봐도 쉽게 알아차릴 수 있다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;905&quot; data-origin-height=&quot;1307&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/caAZSf/dJMcabKF0Cx/LZP5bXddxC0NbtEpK1i4G1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/caAZSf/dJMcabKF0Cx/LZP5bXddxC0NbtEpK1i4G1/img.jpg&quot; data-alt=&quot;maskingtape-alpha&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/caAZSf/dJMcabKF0Cx/LZP5bXddxC0NbtEpK1i4G1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcaAZSf%2FdJMcabKF0Cx%2FLZP5bXddxC0NbtEpK1i4G1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;905&quot; height=&quot;1307&quot; data-origin-width=&quot;905&quot; data-origin-height=&quot;1307&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;maskingtape-alpha&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;4. 현재까지 공개된 덕테이프류 모델의 이름은 아래와 같다.&lt;br&gt;- maskingtape-alpha&lt;br&gt;- gaffertape-alpha&lt;br&gt;- packingtape-alpha&lt;br&gt;- duct-tape&lt;br&gt;&lt;br&gt;5. 재밌어서 장시간 사용하다보면 보안 확인 알람이 뜨는데 로봇이 아니라고 체크해주면 된다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;912&quot; data-origin-height=&quot;812&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K6LbO/dJMcacbH4Ji/KYlKHyzDGCq0K712OFgmm0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K6LbO/dJMcacbH4Ji/KYlKHyzDGCq0K712OFgmm0/img.jpg&quot; data-alt=&quot;저는 로봇이 아닙니다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K6LbO/dJMcacbH4Ji/KYlKHyzDGCq0K712OFgmm0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK6LbO%2FdJMcacbH4Ji%2FKYlKHyzDGCq0K712OFgmm0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;912&quot; height=&quot;812&quot; data-origin-width=&quot;912&quot; data-origin-height=&quot;812&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;저는 로봇이 아닙니다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>
      <category>CSE/알쓸모</category>
      <category>ArenaAI</category>
      <category>OpenAI</category>
      <category>덕테이프모델</category>
      <category>덕테이프사용법</category>
      <category>배틀모드</category>
      <category>아레나ai</category>
      <category>포토이즘</category>
      <author>세드릭</author>
      <guid isPermaLink="true">https://cornwall.tistory.com/56</guid>
      <comments>https://cornwall.tistory.com/56#entry56comment</comments>
      <pubDate>Thu, 16 Apr 2026 17:34:51 +0900</pubDate>
    </item>
    <item>
      <title>여름이 오기 전에 남기는 사진들에 대한 이야기</title>
      <link>https://cornwall.tistory.com/55</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;[여의도 한강 러닝]&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작년에 마포에서 여의도로 이사를 한 덕에 한강 러닝 구간이 달라졌다. 양화 한강 공원의 끝자락에서 여의도 한강 공원쪽으로 왕복 5km 를 채우면 딱 좋다. 사진에도 보이는 뿌연함이 봄이 왔음을 나타낸다. 당일 미세먼지는 보통이였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;996&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qgBa5/dJMcabjz9bI/hNCBTnfrBekcJcVMfC3KG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qgBa5/dJMcabjz9bI/hNCBTnfrBekcJcVMfC3KG1/img.png&quot; data-alt=&quot;모닝 러닝 ㄱㄱ&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qgBa5/dJMcabjz9bI/hNCBTnfrBekcJcVMfC3KG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqgBa5%2FdJMcabjz9bI%2FhNCBTnfrBekcJcVMfC3KG1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1536&quot; height=&quot;996&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;996&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;모닝 러닝 ㄱㄱ&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마포역에서 이촌 한강 공원까지는 강변북로 아래에 있어서 그렇게 쾌적한 환경은 아니였다. 여기는 올림픽대로와 살짝 떨어져있어서 이전보다 비교적 쾌적하다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1320&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DC182/dJMcabjz9bM/4Ftsx6OXDuVS05ZUOCHT4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DC182/dJMcabjz9bM/4Ftsx6OXDuVS05ZUOCHT4k/img.png&quot; data-alt=&quot;여의도 한강 공원&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DC182/dJMcabjz9bM/4Ftsx6OXDuVS05ZUOCHT4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDC182%2FdJMcabjz9bM%2F4Ftsx6OXDuVS05ZUOCHT4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1536&quot; height=&quot;1320&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1320&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;여의도 한강 공원&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[대학원에 다니는 직장인]&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재학 중인 대학원은 대전에 있다. 대전에서 근무할 때 대학원에 진학했는데, 2학기부터 서울로 이직하는 바람에 학기 중에는 일주일에 한번, 15주를 왕복하고 있다. 월요일이나 금요일이 끼어있으면 주말을 끼고 재택을 쓸 수 있는데, 지난 학기에는 수업이 목요일이여서 4시에 퇴근하고 7시 수업을 들으러 다녔다. 다시 생각하니 아찔한데, 그나마 다행인건 이제 이번학기면 수업은 거진 끝이 난다는 점이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 학기는 월요일 수업이여서 재택을 쓰고 학교에서 근무하다가 수업을 듣는다. 점심 학식은 맛이 괜찮아서 먹기 좋은데, 저녁 학식을 오랜만에 도전해보았다. 학식은 꼭 노브랜드 버거같다. 왜 매번 이번에는 다르겠지 하면서 속는 걸까.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;617&quot; data-origin-height=&quot;448&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rn7dF/dJMcaaSu4FF/KnAMOzkXQ44xYl4DqitN30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rn7dF/dJMcaaSu4FF/KnAMOzkXQ44xYl4DqitN30/img.png&quot; data-alt=&quot;좋은 선택은 아닌 듯 하다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rn7dF/dJMcaaSu4FF/KnAMOzkXQ44xYl4DqitN30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Frn7dF%2FdJMcaaSu4FF%2FKnAMOzkXQ44xYl4DqitN30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;617&quot; height=&quot;448&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;617&quot; data-origin-height=&quot;448&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;좋은 선택은 아닌 듯 하다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수업이 끝나면 집에서 짐을 챙겨 서울로 올라간다. 서울집은 역과는 멀지 않아서 매번 자정즈음 도착하는 것 같다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;768&quot; data-origin-height=&quot;567&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VcfUb/dJMcaaSu4FJ/LCS6FhTjVhW2NttcGFJgQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VcfUb/dJMcaaSu4FJ/LCS6FhTjVhW2NttcGFJgQk/img.png&quot; data-alt=&quot;대전-&amp;amp;gt;서울&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VcfUb/dJMcaaSu4FJ/LCS6FhTjVhW2NttcGFJgQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVcfUb%2FdJMcaaSu4FJ%2FLCS6FhTjVhW2NttcGFJgQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;768&quot; height=&quot;567&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;768&quot; data-origin-height=&quot;567&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;대전-&amp;gt;서울&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로, 코레일에서 N카드를 구매하면 할인된 가격으로 기차표를 구매할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[퇴근길 산책]&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가끔 일찍 퇴근하는 날에는 아내와 저녁을 먹고, 한강을 거닐며 서로의 고민에 대한 이야기를 하곤 한다. 저녁에 신촌으로 오는 경우가 많아 연세대를 거닐기도 하는데 개인적으로는 한강이 걷기에는 좋은 것 같다. 아스팔트와 보도블럭의 차이일까.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4Tj4I/dJMcaaSu4FK/lrcrb7ngDntEdBv5e0rXt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4Tj4I/dJMcaaSu4FK/lrcrb7ngDntEdBv5e0rXt1/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;768&quot; data-origin-height=&quot;672&quot; data-filename=&quot;blob&quot; style=&quot;width: 39.3623%; margin-right: 10px;&quot; data-widthpercent=&quot;39.83&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4Tj4I/dJMcaaSu4FK/lrcrb7ngDntEdBv5e0rXt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4Tj4I%2FdJMcaaSu4FK%2Flrcrb7ngDntEdBv5e0rXt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;768&quot; height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/V9nzT/dJMcaaEYjoB/ajeKrp7VQQR6U9VA3qCIBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/V9nzT/dJMcaaEYjoB/ajeKrp7VQQR6U9VA3qCIBK/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;593&quot; data-filename=&quot;blob&quot; style=&quot;width: 59.4749%;&quot; data-widthpercent=&quot;60.17&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/V9nzT/dJMcaaEYjoB/ajeKrp7VQQR6U9VA3qCIBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FV9nzT%2FdJMcaaEYjoB%2FajeKrp7VQQR6U9VA3qCIBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;593&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;여의도 한강 공원&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[오프라인 세미나]&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엄청난 정보를 얻길 기대하기보다 보는 눈을 기르기 위해 전시회, 세미나는 가끔씩 참석하곤 한다. 대전에 있을 때도 서울로 와서 세미나를 듣곤했지만 큰 차이라고 하면, 서울은 기업위주이고 대전은 정부기관 위주라는 점이다. 최근에는 헤드헌팅업체에서 진행하는 세미나에 참석했는데 코덱스 활용에 대한 이야기여서 흥미롭게 들었다. FOMO(Fear Of Missing Out)를 느끼고 있다면 이런 세미나에 참석하면 어느정도 해결은 되지 않을까 싶다. 개인적으로는 어차피 모든 걸 학습할 수 없고 기억할 수 없다는 걸 인정하기를 추천한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1191&quot; data-origin-height=&quot;867&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhafXH/dJMcabjz9bG/DegVeE4wnzZsJcMv3R9kQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhafXH/dJMcabjz9bG/DegVeE4wnzZsJcMv3R9kQ1/img.png&quot; data-alt=&quot;codex 스티커&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhafXH/dJMcabjz9bG/DegVeE4wnzZsJcMv3R9kQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhafXH%2FdJMcabjz9bG%2FDegVeE4wnzZsJcMv3R9kQ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;653&quot; height=&quot;475&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1191&quot; data-origin-height=&quot;867&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;codex 스티커&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>데일리</category>
      <category>fomo</category>
      <category>대전</category>
      <category>대학원생</category>
      <category>러닝</category>
      <category>여의도한강</category>
      <category>코덱스</category>
      <category>코레일</category>
      <author>세드릭</author>
      <guid isPermaLink="true">https://cornwall.tistory.com/55</guid>
      <comments>https://cornwall.tistory.com/55#entry55comment</comments>
      <pubDate>Wed, 15 Apr 2026 14:28:01 +0900</pubDate>
    </item>
    <item>
      <title>2종 보통에서 1종 보통으로 운전면허 갱신 여정의 기록</title>
      <link>https://cornwall.tistory.com/54</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;[정보] 7년 무사고 경력증빙자료&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;1. 현재 자동차 보험가입 증명서를 컬러로 인쇄해가기&lt;br&gt;2. 벌금 부과내역이 있으면 경찰청 교통민원24에서 기록 증명 가능&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;[추가정보] &lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;1. 최근 2년 내 국가 종합 검진을 했으면 안내도 됌&lt;br&gt;- 단, 기록이 없을 수 있으니 인쇄해가는 걸 추천 (흑백 가능)&lt;br&gt;2. 대전은 사진이 2장만 필요했음&lt;br&gt;- 단, 얼굴이 크게 보이는 사진으로 해야함&lt;br&gt;- 서류 접수시 추가 사진을 요구하는 경우를 보았으니, 사진을 붙이기 전에 안내데스크에 물어볼 것&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;[갱신기]&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;석사 과정때 홀로 오키나와 학회에 논문을 쓴 핑계로 면허를 땄었다. (오키나와는 교통편이 좋지 않다) 그로부터 10년이 지났고 갱신 년도가 도래했다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1601&quot; data-origin-height=&quot;887&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbo18d/dJMcacJw5LG/8ti9vUwqMZrbAAzCGqAYNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbo18d/dJMcacJw5LG/8ti9vUwqMZrbAAzCGqAYNK/img.png&quot; data-alt=&quot;벌써 10년&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbo18d/dJMcacJw5LG/8ti9vUwqMZrbAAzCGqAYNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbbo18d%2FdJMcacJw5LG%2F8ti9vUwqMZrbAAzCGqAYNK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;332&quot; data-origin-width=&quot;1601&quot; data-origin-height=&quot;887&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;벌써 10년&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;찾아보니,&amp;nbsp;&lt;a href=&quot;https://www.safedriving.or.kr/main.do&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;한국도로교통공단 안전운전 통합민원&lt;/span&gt;&lt;/a&gt; 에서 갱신할 수 있다고 했다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2486&quot; data-origin-height=&quot;1032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9fDOQ/dJMcaiiD8Re/zFRH5xpeFwMvZlXYKmU8U0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9fDOQ/dJMcaiiD8Re/zFRH5xpeFwMvZlXYKmU8U0/img.png&quot; data-alt=&quot;2종 면허증 갱신&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9fDOQ/dJMcaiiD8Re/zFRH5xpeFwMvZlXYKmU8U0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9fDOQ%2FdJMcaiiD8Re%2FzFRH5xpeFwMvZlXYKmU8U0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2486&quot; height=&quot;1032&quot; data-origin-width=&quot;2486&quot; data-origin-height=&quot;1032&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;2종 면허증 갱신&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;뭐 재시험이라도 봐야하나 싶었는데, 그냥 갱신하거나 1종보통으로 업그레이드(?) 해준다고 한다. 알아보니 2종 보통(수동) 면허 소지자가 7년 이상 무사고 시 시험 없이 1종 보통 면허로 갱신 가능한 제도가 있었다. 전에는 장롱면허도 바꿀 수 있었나본데, &lt;b&gt;올해 3월부터는 실제 운전 기록&lt;/b&gt;이 필요하도록 제도가 개편되었다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2022&quot; data-origin-height=&quot;1430&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JWO60/dJMcahYllsp/myxC55ipdhOh13Makks350/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JWO60/dJMcahYllsp/myxC55ipdhOh13Makks350/img.png&quot; data-alt=&quot;2종보통은 '면허' 취급도 안해주나봄;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JWO60/dJMcahYllsp/myxC55ipdhOh13Makks350/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJWO60%2FdJMcahYllsp%2FmyxC55ipdhOh13Makks350%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;692&quot; height=&quot;489&quot; data-origin-width=&quot;2022&quot; data-origin-height=&quot;1430&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;2종보통은 '면허' 취급도 안해주나봄;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;본인은 월요일에는 재택근무를 하고 있기에, 잠시 슬랙이 조용한 틈을 타 대전운전면허시험장에 방문하였다. 집에서 한 20분가량 걸렸던 것 같다.&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1470&quot; data-origin-height=&quot;1442&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1bkOB/dJMcag6dpdK/l2qNcng1s4BWUWPEXcGH31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1bkOB/dJMcag6dpdK/l2qNcng1s4BWUWPEXcGH31/img.png&quot; data-alt=&quot;3차선은 도로주행 시험 차량이 많으니 가급적 2차선으로...&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1bkOB/dJMcag6dpdK/l2qNcng1s4BWUWPEXcGH31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1bkOB%2FdJMcag6dpdK%2Fl2qNcng1s4BWUWPEXcGH31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;693&quot; height=&quot;680&quot; data-origin-width=&quot;1470&quot; data-origin-height=&quot;1442&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;3차선은 도로주행 시험 차량이 많으니 가급적 2차선으로...&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br&gt;오후 5시가 접수 마감이여서 여유있게 방문했음에도 대기인수가 39명이나 되었다. (15:45 번호표 뽑음)&lt;br&gt;참, 서류를 작성해야 대기표를 뽑을 수 있게되어있다. &lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;620&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgsX8e/dJMcabX8JHy/LVbdQhwqsXKDO9NT8eyLS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgsX8e/dJMcabX8JHy/LVbdQhwqsXKDO9NT8eyLS0/img.png&quot; data-alt=&quot;대기 39명 실화&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgsX8e/dJMcabX8JHy/LVbdQhwqsXKDO9NT8eyLS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgsX8e%2FdJMcabX8JHy%2FLVbdQhwqsXKDO9NT8eyLS0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;341&quot; height=&quot;379&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;620&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;대기 39명 실화&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;접수, 발급 창구가 많아서 처리 속도는 빠른편이다. 번호당 30초정도 걸리는 듯&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;962&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uATr3/dJMcacirzMX/Isp1VY5QQyR2Qw9ABGvr10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uATr3/dJMcacirzMX/Isp1VY5QQyR2Qw9ABGvr10/img.png&quot; data-alt=&quot;대기하는 중…&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uATr3/dJMcacirzMX/Isp1VY5QQyR2Qw9ABGvr10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuATr3%2FdJMcacirzMX%2FIsp1VY5QQyR2Qw9ABGvr10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;962&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;962&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;대기하는 중…&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;번호표를 뽑고 18분이 지나 내 차례가 되었다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2469&quot; data-origin-height=&quot;1075&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SwYVE/dJMcabDP0MS/2kNqgavUMkazFJSjgUWrK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SwYVE/dJMcabDP0MS/2kNqgavUMkazFJSjgUWrK0/img.png&quot; data-alt=&quot;15:45 ~ 16:03&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SwYVE/dJMcabDP0MS/2kNqgavUMkazFJSjgUWrK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSwYVE%2FdJMcabDP0MS%2F2kNqgavUMkazFJSjgUWrK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2469&quot; height=&quot;1075&quot; data-origin-width=&quot;2469&quot; data-origin-height=&quot;1075&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;15:45 ~ 16:03&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;그럼 이제 발급되길 기다려야한다. 다시 대기실 의자로…&lt;br&gt;발급에는 12분 정도 걸렸다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1871&quot; data-origin-height=&quot;793&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u3TNB/dJMcafGfr5P/gSGXM0QXFY6rE6Bsu6jz0K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u3TNB/dJMcafGfr5P/gSGXM0QXFY6rE6Bsu6jz0K/img.jpg&quot; data-alt=&quot;16:03 ~ 16:15&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u3TNB/dJMcafGfr5P/gSGXM0QXFY6rE6Bsu6jz0K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu3TNB%2FdJMcafGfr5P%2FgSGXM0QXFY6rE6Bsu6jz0K%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1871&quot; height=&quot;793&quot; data-origin-width=&quot;1871&quot; data-origin-height=&quot;793&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;16:03 ~ 16:15&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;총 소요 시간은 40분정도 걸렸다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1595&quot; data-origin-height=&quot;908&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SBqAV/dJMcac3MBQ3/PB9sIIcgsel2wzZkGWQlAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SBqAV/dJMcac3MBQ3/PB9sIIcgsel2wzZkGWQlAK/img.png&quot; data-alt=&quot;나도 이제 1종 오우너&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SBqAV/dJMcac3MBQ3/PB9sIIcgsel2wzZkGWQlAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSBqAV%2FdJMcac3MBQ3%2FPB9sIIcgsel2wzZkGWQlAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1595&quot; height=&quot;908&quot; data-origin-width=&quot;1595&quot; data-origin-height=&quot;908&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;나도 이제 1종 오우너&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>데일리</category>
      <category>1종보통</category>
      <category>2종보통</category>
      <category>2종보통7년</category>
      <category>7년무사고</category>
      <category>경력증빙자료</category>
      <category>대전면허시험장</category>
      <category>면허시험</category>
      <category>무사고</category>
      <category>무사고인증</category>
      <category>운전면허갱신</category>
      <author>세드릭</author>
      <guid isPermaLink="true">https://cornwall.tistory.com/54</guid>
      <comments>https://cornwall.tistory.com/54#entry54comment</comments>
      <pubDate>Tue, 14 Apr 2026 11:58:49 +0900</pubDate>
    </item>
  </channel>
</rss>