<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>se2_i0i.log</title>
        <link>https://velog.io/</link>
        <description>컨설팅러의 기술 스택 도전기</description>
        <lastBuildDate>Wed, 26 Nov 2025 13:15:56 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>se2_i0i.log</title>
            <url>https://velog.velcdn.com/images/se2_i0i/profile/90ab2a00-ac32-4280-88f7-1ee268bc3602/image.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. se2_i0i.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/se2_i0i" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[환율 API 활용]]></title>
            <link>https://velog.io/@se2_i0i/%ED%99%98%EC%9C%A8-API-%ED%99%9C%EC%9A%A9</link>
            <guid>https://velog.io/@se2_i0i/%ED%99%98%EC%9C%A8-API-%ED%99%9C%EC%9A%A9</guid>
            <pubDate>Wed, 26 Nov 2025 13:15:56 GMT</pubDate>
            <description><![CDATA[<h3 id="1-개발-프로젝트-주제">1. 개발 프로젝트 주제</h3>
<p>실시간 환율을 확인할 수 있는 웹 페이지를 개발해보자 (API 활용)</p>
<ul>
<li><h4 id="이것만은-필요-사전-지식">이것만은 필요 (사전 지식)</h4>
1) API 개념
2) JSON 
3) 환율 API 활용 방법 ★ </li>
</ul>
<p><img src="https://velog.velcdn.com/images/se2_i0i/post/415c985a-9b2b-4aa4-9684-193569c94418/image.gif" alt=""> <center><strong>빠밤. 그럼 시작해봅시다.</strong></center></p>
<br>

<hr>

<h3 id="1-api-개념">1) API 개념 <img src="https://velog.velcdn.com/images/se2_i0i/post/a24b06c2-e326-4e87-930a-fdad261b8467/image.png" alt=""></h3>
<p><code>API</code> 개념부터 살펴봅니다.
API란, Application Programing Interface의 약자로서, <strong>두 개의 소프트웨어의 구성요소가 서로 주고받고 통신을 하는 인터페이스</strong>를 말합니다.
<br></p>
<p>...네...뭐, 사실 저도 이 개념을 정확히 이해하지는 못했습니다.
일단 API라는 말은 너무 많이 들었지만, 생각보다 API의 명확한 정의를 결론내리기 어렵다고 하더군요.</p>
<p>우선은 ①상호작용 ②데이터를 주고받음 이라고 생각했습니다.
결국 지금 진행하려는 환율 웹 프로젝트도, 결국에는 환율 실시간 정보, 즉 API를 받아와야 데이터로 사부작거릴 수 있기 때문이죠.
<br></p>
<p>그럼 다음으로 API 활용에 필수적인 JSON과, JSON의 동작 방식을 알아보겠습니다.
<br></p>
<hr>


<h3 id="2-json">2) JSON</h3>
<p><code>JSON</code>은 JavaScript Object Notation의 약자입니다. 
직역하면, &quot;자바 스크립트 객체 표기법&quot;입니다.</p>
<p>한마디로 데이터를 교환하고 저장하는 텍스트 기반의 표준 방식이라고 볼 수 있습니다.</p>
<p>JSON의 형태는 Javascript와 아주 흡사합니다. 
<br></p>
<pre><code class="language-JSON">// 기본 형태
{ Key : Value }

// 예시
{&quot;이름&quot; : &quot;세세님&quot;, &quot;나이&quot; : 25, &quot;취미&quot; : &quot;Velog&quot;} 

// 객체 예시
{&quot;Velog&quot; : {&quot;목록&quot; : &quot;환율 API 활용&quot;} }

 // 배열 예시
{&quot;태그&quot; : [개발, Javascript, API] }</code></pre>
<br>

<p>네에. 이러한 구성을 가지고 있습니다.
생각보다 단순하면서도 복잡합니다(?) 아마 저 안에 들어가는 객체와 배열이 많을 수록... 크흠, 상상은 그만두겠습니다.</p>
<p>여기서 중요한 건 <strong>문자열과 Property를 작성할 시</strong> 반드시 <code>큰 따옴표(&quot;&quot;)</code>를 사용해야 한다는 겁니다.<br><br></p>
<hr>

<h3 id="3-환율-api-활용-방법"><strong>3) 환율 API 활용 방법</strong></h3>
<p>그럼 이제 본격적으로 환율 API를 가져오는 방법을 알아보도록 하겠습니다.</p>
<ol>
<li><strong>한국수출입은행 환율 API 검색</strong>
<a href="https://www.koreaexim.go.kr/ir/HPHKIR020M01?apino=2&amp;viewtype=C&amp;searchselect=&amp;searchword=">https://www.koreaexim.go.kr/ir/HPHKIR020M01?apino=2&amp;viewtype=C&amp;searchselect=&amp;searchword=</a>
<img src="https://velog.velcdn.com/images/se2_i0i/post/fd64f510-c7b5-47bc-89d7-6979207eb9b7/image.png" alt=""></li>
</ol>
<p>우선 한국수출입은행 홈페이지 <code>Open API</code>로 찾아갑니다. 
대부분의 환율 API는 이 곳에서 인증키를 받아 사용한다고 합니다.</p>
<p>저 또한 &#39;나의 인증키 발급 내역&#39;을 통해,
<img src="https://velog.velcdn.com/images/se2_i0i/post/0774efbf-fe16-4229-aab6-ab6876f0a439/image.png" alt=""></p>
<p>요렇게 인증키를 받았습니다!
(인증키=APK Key는 반드시 노출하면 안된다고 합니다 ㅎㄷㄷ)</p>
<p>자, 그럼 인증키도 받았으니, 본격적인 환율 API를 활용한 간단한 웹 개발을 진행해보겠습니다.
<br></p>
<ol start="2">
<li><strong>웹 개발 요청 (Cursor AI 활용)</strong></li>
</ol>
<p>Cursor AI를 통해 아주 간단한 환율 웹 페이지를 요청하였습니다. 
저는 무료 버전을 쓰고 있기 때문에, 파일 생성은 안되고 코드만 짜주는 방식입니다. <br>
복잡한 기능 넣었다간 어차피 script 태그에서 아무것도 못 건드릴 게 뻔하기 때문에, 진짜 기초 기능만 넣어달라고 부탁했습니다.</p>
<p><img src="https://velog.velcdn.com/images/se2_i0i/post/8ddfdc35-c648-4f5d-af8b-3a5c7105141c/image.png" alt=""></p>
<p>저는 <code>index.html</code> <code>style.css</code> 버전으로 나누어 파일을 생성했습니다.
오늘은 API를 직접 활용해보기만 하는 실습이기 때문에, 제가 사전에 받은 API key를 코드에 넣어보도록 하겠습니다.
<img src="https://velog.velcdn.com/images/se2_i0i/post/c84416b4-1f54-457e-8755-5b3dbf91cd59/image.png" alt=""></p>
<p><code>index</code> 파일 내 API Key를 넣는 구간을 찾았습니다. 한번 넣어보도록 하겠습니다!
<br></p>
<p><strong>3. 오류 발생</strong>
<img src="https://velog.velcdn.com/images/se2_i0i/post/e1cd8cfd-6cbc-48c8-8cfa-3b2f3d35bf92/image.png" alt=""></p>
<p>앗. 오류가 발생함과 동시에 환율 API가 제대로 나오지 않습니다.
검색을 해보니, CORS의 문제라고 합니다.</p>
<p><code>CORS 에러</code>란, 웹 브라우저의 Same-Origin 정책으로 인한 보안 오류로,
즉 출처가 불일치하면 다른 출처로 간주하여 접근을 차단한다고 합니다.
(=서로 다른 도메인(출처)에 대한 요청을 보안상 차단함)</p>
<p><del>정말 보안이라고 하니, 보안 컨설팅러로서 이해는 된다만....</del>
<br></p>
<p>일단 가장 좋은 해결방안은, 서버(백엔드)에서 CORS 정책을 설정하여 출처 요청을 허용해야 하는데... 
아시다시피, 전 아직 백엔드 시작조차 하지 못한 초보 개발러입니다.</p>
<p>그리하여 제가 듣는 강의에서 추천해준 방법은 Google Apps Script를 활용한 우회법입니다.</p>
<br>

<p><strong>4. Google Apps Script 사용</strong></p>
<p>① Google Apps Script 프로젝트 생성
② &quot;새 프로젝트&quot; 클릭
③ 프록시 코드 작성 
<img src="https://velog.velcdn.com/images/se2_i0i/post/a5cc6f8b-3d59-4b76-b821-6445f98dd9e4/image.png" alt=""></p>
<p>④ [새 배포] &gt; [웹 앱] &gt; [엑세스 권한이 있는 사용자] = 모든 사용자
<img src="https://velog.velcdn.com/images/se2_i0i/post/1d824659-ab16-478d-9703-35e143eb1034/image.png" alt=""></p>
<p>배포 관리 &gt; 웹 앱 URL의 링크를 클릭해보니</p>
<p><img src="https://velog.velcdn.com/images/se2_i0i/post/c6cdeebb-183e-4288-8f71-dc124e8574b7/image.png" alt=""></p>
<p>일단 환율 API는 잘 나오는 것 같습니다. 이제 Cursor AI 코드로 돌아가봅니다.
<br></p>
<hr>

<h3 id="2-javascript-구현">2. Javascript 구현</h3>
<pre><code class="language-javascript">&lt;script&gt;
    // 환율 불러오기
    const API_URL = &quot;https://script.google.com/macros/s/${나의 API key}/exec&quot;;

    async function exchange(API_URL) {
        try {
            // API 및 JSON
            const response = await fetch(API_URL);
            const data = await response.json();

            let price = {};
            data.forEach(element =&gt; {
                let ttb_value = element.ttb.replace(/,/g, &#39;&#39;);
                price[element.cur_unit] = parseFloat(ttb_value);
            });
            return price; // 가격만 반환하기(코드 리뷰)

        } catch (error) {
            console.log(&#39;ERROR : &#39;, error);
            return null;
        }  
    }

    // 이벤트 리스너
    let exchangeRates = null;

    exchange(API_URL).then(rates =&gt; {
        exchangeRates = rates;
    })

    document.getElementById(&quot;calculate&quot;).addEventListener(&#39;click&#39;, function() {

        if (!exchangeRates) {
            alert(&#39;환율 정보를 불러오는 중입니다. 잠시 후 시도해주세요.&#39;);
            return;
        }

        let example = document.getElementById(&quot;input_value&quot;).value;
        let selectedName = document.getElementById(&quot;choice&quot;).value;

        if(!example || isNaN(example) || parseFloat(example) &lt;= 0) {
            alert(&#39;정확한 금액을 입력해주세요.&#39;);
            return;
        }

        let result =  parseFloat(example) * exchangeRates[selectedName]; //지역변수 사용X
        result = Number(result.toFixed(2));

        document.getElementById(&quot;result&quot;).innerText = result + &quot;원&quot;;
    });

    &lt;/script&gt;</code></pre>
<p>저는 이렇게 Javascript를 구성하였습니다. 이렇게 구성하고, 연결해보면...</p>
<p><img src="https://velog.velcdn.com/images/se2_i0i/post/fae2a12c-6818-46fa-a6ec-fc71978f4bcd/image.gif" alt=""></p>
<p>짜라잔. 드디어 환율 계산기를 완성해보았습니다.
어려우면서도 간단한 API 활용을 직접 해보니, API 활용이 얼마나 중요한지 제법 실감했습니다.</p>
<p>마지막으로 프로젝트를 하나 더 해보고 자바스크립트는 일단 마무리해보려고 합니다.</p>
<p><img src="https://velog.velcdn.com/images/se2_i0i/post/69e21580-0a84-47a3-9347-bca489d87ac4/image.gif" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Mini] 사칙연산 계산기 개발 #1]]></title>
            <link>https://velog.io/@se2_i0i/%EC%82%AC%EC%B9%99%EC%97%B0%EC%82%B0-%EA%B3%84%EC%82%B0%EA%B8%B0</link>
            <guid>https://velog.io/@se2_i0i/%EC%82%AC%EC%B9%99%EC%97%B0%EC%82%B0-%EA%B3%84%EC%82%B0%EA%B8%B0</guid>
            <pubDate>Sat, 22 Nov 2025 07:41:48 GMT</pubDate>
            <description><![CDATA[<h3 id="1-개발-프로젝트-주제">1. 개발 프로젝트 주제</h3>
<p>사칙연산과 기타 기능이 가능한 웹 페이지 계산기를 개발해보자.</p>
<ul>
<li><p><strong>기본 기능 구현</strong>
<span style="color: green"><strong>1) 덧셈, 뺄셈, 곱셈, 나눗셈 사칙연산이 가능하다. (*오늘의 주제)</strong></span>
2) 작성된 내용이 모두 삭제되는 Clear 기능이 가능하다.
3) 계산기의 전원을 켜고 끌 수 있어야 한다.</p>
</li>
<li><p><del><strong>심화 기능 구현 (아직은 비활성화)</strong></del>
1) 소숫점 자리를 통한 사칙연산이 가능하다.
2) 백분율 계산이 가능하다.</p>
</li>
</ul>
<hr>

<h3 id="2-역할-분담">2. 역할 분담</h3>
<ul>
<li>HTML/CSS 기본 구성 - Claude AI 활용</li>
<li>Javascript - 나</li>
</ul>
<p>큭... Javascript 코드 작성 연습과 DOM API 연습을 위해 Javascript는 직접 작성할 겁니다.</p>
<h4 id="웹-디자인의-솜씨는-저의-비루한-실력을-공개할-수-없어-신통방통-금방-예쁘게-제작해주는-claude-ai를-활용해보았습니다">웹 디자인의 솜씨는 저의 비루한 실력을 공개할 수 없어, 신통방통 금방 예쁘게 제작해주는 Claude AI를 활용해보았습니다.</h4>
<p>네. 저는 디자인이 안 예쁘면 다음 진행을 못하는 병에 걸려 있습니다.
그런데 이런 저의 병을 단번에 낫게 해줄만큼, Claude AI의 디자인은 약간의 벤치마킹할 요소를 던져주면, 정말 기가 막히게 예쁘게 만들어줍니다.</p>
<p><img src="https://velog.velcdn.com/images/se2_i0i/post/1e2208f9-ccc1-4473-9163-d12df976f9df/image.png" alt=""></p>
<p>일단 Claude를 통해 구현한 계산기 디자인과 배치 요소는 다음과 같습니다. 
당연히 Javascript 코드는 제가 직접 작성할 거라, script 동작 부분은 일부로 빼달라고 요청하여 실제 동작은 하지 않습니다.</p>
<p>이제 계산기가 동작이 되도록 한 번 코드를 구현해보겠습니다.</p>
<hr>

<h3 id="3-javascript-구현">3. Javascript 구현</h3>
<p><span style="color: red">[주의]</span> Javascript 코드는 처음이라, 코드가 다소 비효율적일 수 있습니다.</p>
<blockquote>
<p>** * 숫자 입력 (하나씩)**</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/se2_i0i/post/b1da933d-3cda-46cb-9178-39f7788604a2/image.png" alt=""></p>
<pre><code class="language-javascript">// 배열로 숫자 버튼 한번에 구현
const arrayBtns = [btn0, btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9];

arrayBtns.forEach(function(btn) {
   btn.addEventListener(&#39;click&#39;, function() {
      display.textContent = btn.textContent;
   });
});</code></pre>
<p>구현한 결과는 이렇습니다.</p>
<p><img src="https://velog.velcdn.com/images/se2_i0i/post/f2fc243e-d54a-41e7-af36-599f61c2846b/image.gif" alt=""></p>
<p>어라, 근데 예를 들어 &#39;12&#39; 같이 십의 자리 숫자 이상은 입력이 안됩니다.
그럼 일의 자리만 사칙연산되는 계산기라고 우겨볼까 싶습니다.</p>
<p>하지만 그런 기본 입력조차 안되는 계산기는 아무도 안 쓰겠죠? (^^) </p>
<p>휴 그럼 숫자를 연달아 입력할 때는 줄줄이 숫자가 입력되도록 다시 구현해 보겠습니다.</p>
<hr>

<blockquote>
<p>** * 숫자 입력 (여러 개)**</p>
</blockquote>
<pre><code class="language-javascript">arrayBtns.forEach(function(btn) {
    btn.addEventListener(&#39;click&#39;, function() {
       if(display.textContent == 0) {
          display.textContent = btn.textContent;
       } else {
          display.textContent += btn.textContent;
       }; 
    });
});</code></pre>
<p>Javascript 강의에서 배웠던 배열과 조건문을 모두 적용해보았습니다.</p>
<p>1) display가 0 (입력X) - 숫자로 변경
2) display가 숫자 (입력O) - 기존 숫자에 새로운 숫자 추가
<img src="https://velog.velcdn.com/images/se2_i0i/post/6fdb58d5-628b-4ecd-ab8a-ed8fe8cf6283/image.gif" alt=""></p>
<p>이제 십의 자리뿐만 아니라 그 이상도 눌러집니다. 신기합니다.</p>
<p>그럼 이제 본격적으로 메인인 사칙연산 기능을 구현해보겠습니다.</p>
<hr>

<blockquote>
<p>** * 사칙연산 기능**</p>
</blockquote>
<p>덧셈, 뺄셈, 나누기, 곱셈 계산은 사실 너무나 쉽습니다.
하지만 갑자기 프로그램으로 구현을 하라니까 조금 아니 꽤 막막하군요.</p>
<p>그나마 떠오르는 아이디어는, 사칙연산 버튼을 누르기 전 값과 누른 후의 값을 가지고 어떻게 뚝딱 만들어야 한다는 건데, 이게 감이 안 잡힙니다.</p>
<p>일단 변수부터 선언해보겠습니다.
<br></p>
<p>1)  <strong><span style="color: green">변수 선언 &amp; 생각하기</span></strong></p>
<p><code>pre</code> 이전 값 (첫번째 숫자) 
<code>curr</code> 현재 값 (두번째 숫자)
<code>icon</code> 사칙 연산 기호 저장
<code>isInput</code> 값이 입력 되었는지 확인하는 boolean 변수 </p>
<pre><code class="language-javascript">let pre = 0;  // 이전 값
let curr = 0;  // 현재 값
let icon = &#39;&#39;;  // 사칙 연산 기호
let isInput = false;  // 숫자 초기화</code></pre>
<p>음. 저의 생각은 이렇습니다. </p>
<blockquote>
<ol>
<li>숫자 입력 (첫번째 숫자)</br></li>
<li>사칙연산 버튼을 누르면 
<code>1. 입력한 숫자를 이전 값(pre)에 넣는다</code>
<code>2. 사칙연산 버튼의 기호를 기억해둔다 -&gt; 나중에 equal(=) 때 써야함</code>
<code>3. 입력한 숫자를 초기화한다</code> </br></li>
<li>다시 숫자 입력 (두번째 숫자) </br></li>
<li>계산</li>
</ol>
</blockquote>
<hr>

<p>2)  <strong><span style="color: green">코드 구현</span></strong></p>
<p><strong>1. 숫자 입력(첫번째 숫자)</strong></p>
<pre><code class="language-javascript">// 기존 코드 활용
const arrayBtns = [btn0, btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9];

arrayBtns.forEach(function(btn) {
   btn.addEventListener(&#39;click&#39;, function() {
      if (display.textContent == 0) {
         display.textContent = btn.textContent;
      } else {
         display.textContent += btn.textContent;
      }; 
   }); 
});</code></pre>
<br> 

<p><strong>2. 사칙연산 버튼 구현</strong></p>
<pre><code class="language-javascript">const calBtns = [
   {cal_btn : btnPlus, op : &#39;+&#39;},
   {cal_btn : btnMinus, op : &#39;-&#39;},
   {cal_btn : btnMultiply, op : &#39;*&#39;},
   {cal_btn : btnDivide, op : &#39;÷&#39;}
];

// 사칙연산 버튼 누를 때 실행
calBtns.forEach(function(cal) {
   cal.cal_btn.addEventListener(&#39;click&#39;, function() {
      pre = Number(display.textContent); // display 값을 pre에 삽입
      icon = cal.op; // 사칙연산 기호 넣기
      isInput = true; // 값이 입력됨 -&gt; 초기화 필요
   });
});</code></pre>
<br>

<p><strong>3. 다시 숫자 입력 (두번째 숫자)</strong></p>
<pre><code class="language-javascript">
// 1 코드를 변경
arrayBtns.forEach(function(btn) {
   btn.addEventListener(&#39;click&#39;, function() {

      if(isInput) { // *추가* 값 입력 시 초기화
         display.textContent = btn.textContent; // 두번째 숫자
         isInput = false;
         } 

      else if (display.textContent == 0) {
         display.textContent = btn.textContent;
      } else {
         display.textContent += btn.textContent;
      }; 
   }); 
});</code></pre>
<br>

<p><strong>4. 계산</strong></p>
<pre><code class="language-javascript">btnEquals.addEventListener(&#39;click&#39;, function() {
   curr = Number(display.textContent);

   if(icon === &#39;+&#39;) { // 덧셈
      display.textContent = pre + curr;
   } else if (icon === &#39;-&#39;) { // 뺄셈
      display.textContent = pre - curr;
   } else if (icon === &#39;*&#39;) { // 곱셈
      display.textContent = pre * curr;
   } else if (icon === &#39;÷&#39;) { // 나눗셈
      display.textContent = pre / curr;
   }

   isInput = true; // 계산 끝! 다음 입력 준비

  });</code></pre>
<br>

<p><strong>5. 기능 작동 확인</strong>
<img src="https://velog.velcdn.com/images/se2_i0i/post/a4e7dc70-d349-4c65-a23a-43a16cfee7e8/image.gif" alt=""></p>
<p>10 곱하기 3을 해서 30이 나오는 걸 알 수 있습니다.</p>
<p>... <strong>진짜 간단할 줄 알았는데, 전 반나절 꼬박 걸렸습니다.</strong>
다들 그 복잡한 기능의 웹들을 뚝딱 만드시는 거 보면 존경스럽습니다.</p>
<p>아직 지우개 기능이랑 전원 ON/OFF도 안 했는데... 그래도 자바스크립트 동작 패턴과 배열, 조건문을 숙지할 수 있었던 건 큰 수확이군요.</p>
<p>다음은 디스플레이에 나와 있는 숫자를 모두 지우는 clear 기능과 전원을 끄는 기능을 한 번 구현해봐야겠습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Cursor AI 설치 및 작동 과정]]></title>
            <link>https://velog.io/@se2_i0i/Cursor-AI-%EC%84%A4%EC%B9%98</link>
            <guid>https://velog.io/@se2_i0i/Cursor-AI-%EC%84%A4%EC%B9%98</guid>
            <pubDate>Thu, 20 Nov 2025 11:34:02 GMT</pubDate>
            <description><![CDATA[<h3 id="①-cursor-ai-설치">① Cursor AI 설치</h3>
<p>🔹다운로드 링크 : <a href="https://cursor.com/download">https://cursor.com/download</a>
<img src="https://velog.velcdn.com/images/se2_i0i/post/1f1e442e-4a19-4f85-9cc4-636364c7a855/image.png" alt=""></p>
<p>필자는 리눅스 + 윈도우 둘 다 쓰지만, 리눅스는 사양이 좋지 않아 윈도우로 선택해야 합니다.</p>
<p>보니까 권장 사양이 있더라고요? (RAM 8GB 이상, 16GB 권장)
저는 리눅스가 RAM 4GB이고, 윈도우가 RAM 16GB라 끊김없이 이용하고 싶어서 <strong>윈도우로 선택</strong>🤦‍♀️</p>
<h3 id="②-cursor-ai-실행">② Cursor AI 실행</h3>
<p><img src="https://velog.velcdn.com/images/se2_i0i/post/0df49202-43c4-48cc-8055-d24d9e911291/image.png" alt=""></p>
<p>그나저나 VS code 사에서 만들었다던데 뭔가 UI나 구성, 스타일이 정말 흡사합니다.
IT 비전공자 입장으로서 VS code는 그래도 다뤄본 적이 있어서 적응하느라 헤매이지 않아 좋습니다.</p>
<h3 id="③-google-api-키-생성">③ Google API 키 생성</h3>
<p align=center><img src=https://velog.velcdn.com/images/se2_i0i/post/0a35f9ef-36e0-4355-a8d7-66ef005c63c3/image.png width=60% height=50%></p>



<p>일단 Google AI Studio에서 API Key를 생성해줍니다.
API 개념은 주구장창 들어봤는데, API는 처음 써봐서 약간 어려웠습니다. (찐 초짜인거 티내기)</p>
<p><img src="https://velog.velcdn.com/images/se2_i0i/post/9510084c-7aa3-4a64-a463-093ba52d41c2/image.png" alt="">🔹API 단계</p>
<p>1) File &gt; Preference &gt; Cursor Setting
2) Models에서 Gemini 2.5 flash를 활성화
3) OpenAI API Key 활성화 후 내가 생성한 API Key 복사 붙여넣기</p>
<h3 id="④-gemini-25-flash를-통한-코드-생성">④ Gemini 2.5 Flash를 통한 코드 생성</h3>
<p><img src="https://velog.velcdn.com/images/se2_i0i/post/348a36e2-9efa-4e1e-88fe-64cf1fbfd931/image.png" alt=""></p>
<p>이제 본격적인 AI 에이전트를 통한 코드 생성 단계입니다.</p>
<p>어라, 근데 계속 Pro 버전이 필요하다고 합니다.
진짜 당황했습니다. 분명 다 Gemini 2.5 flash는 pro 버전 아니어도 된다던데 왜 나만 안되는 거죠? (진짜 결제해야 함? 그런거임?)
그러다가 설마 Agent는 프로 버전이고, Ask로 하면 되는 건 아니겠....</p>
<p><img src="https://velog.velcdn.com/images/se2_i0i/post/e3094fe6-e128-4ca7-adb6-c59e00cb407a/image.png" alt=""></p>
<p>아주 잘됩니다.
저랑 같은 이유로 헤매는 분이 없길 바라면서 글을 써봅니다.
Agent는 Pro 버전에서 사용가능하며, 코드 요청은 Ask로도 가능한 듯 보입니다.</p>
<p><img src="https://velog.velcdn.com/images/se2_i0i/post/66b31e27-cfcb-4297-9d68-0be283e5d9f6/image.png" alt=""></p>
<p>Google AI Studio를 통해 API 요청이 실제로 일어난 것을 확인함으로써 제 손가락이 제대로 API를 활성화시켜 Cursor AI와 연결했음을 알 수 있습니다. (→ 너무 쉬운 걸 저는 30분을 헤맸어요🤦‍♂️)</p>
<hr> 

<p>이제 토이 프로젝트(간단)를 시작해보려구 합니다.</p>
<p>드디어 제 첫 개발이로군요. 
보안 컨설팅러로 일하고 있지만 본격적인 개발은 처음이라 좀 떨립니다.</p>
<p>초짜 중 초짜지만 한 번 열심히 해보려구 합니다. </p>
<hr>

<p><a href="https://www.inflearn.com/course/cursorai-%EB%A7%8C%EB%93%A4%EB%A9%B4%EC%84%9C-%EB%B0%B0%EC%9A%B0%EB%8A%94-web-javascript/dashboard">[참고한 강의] &#39;Cursor AI로 만들면서 배우는 Web &amp; Javascript&#39;</a></p>
]]></description>
        </item>
    </channel>
</rss>