<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>무럭무럭</title>
    <link>https://developmii.tistory.com/</link>
    <description>비전공자 개린이는 성장중 (&amp;bull;̀ᴗ&amp;bull;́)و ̑̑</description>
    <language>ko</language>
    <pubDate>Wed, 20 May 2026 15:47:58 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>develop_mii</managingEditor>
    <image>
      <title>무럭무럭</title>
      <url>https://tistory1.daumcdn.net/tistory/8124767/attach/a1b25a4ea214495c93728ae87007b6e8</url>
      <link>https://developmii.tistory.com</link>
    </image>
    <item>
      <title>React에서 &amp;ldquo;API 키 없이&amp;rdquo; 인터랙티브 지도 넣기 (카카오 지도 퍼가기 RoughMap)</title>
      <link>https://developmii.tistory.com/94</link>
      <description>웹 페이지에 줌/이동 가능한 지도(인터랙티브 지도) 를 넣고 싶은데,카카오 지도 JS SDK(키 발급) 방식이 부담스럽고&amp;nbsp; &amp;ldquo;간단히 지도만&amp;rdquo; 넣고 싶어서
카카오 RoughMap을 React에서 안정적으로 렌더하는 방법을 정리

1) 정식 API(JS SDK) vs 지도 퍼가기(RoughMap) 차이
✅ 정식 지도 API (JS SDK / REST API)

카카오 Developers에서 앱 생성 &amp;rarr; JS 키 발급 ..</description>
      <category>Project/Project02.GreenUniv</category>
      <author>develop_mii</author>
      <guid isPermaLink="true">https://developmii.tistory.com/94</guid>
      <comments>https://developmii.tistory.com/94#entry94comment</comments>
      <pubDate>Mon, 29 Dec 2025 00:55:50 +0900</pubDate>
    </item>
    <item>
      <title>Vite로 React 개발 환경 만들기 : 프로젝트 생성부터 빌드까지</title>
      <link>https://developmii.tistory.com/92</link>
      <description>&amp;nbsp;
Node.js 설치
&amp;nbsp;
Vite를 사용하기 위해서는 먼저 Node.js가 설치되어 있어야 한다.

nodejs.org에서 LTS 버전 다운로드 및 설치
설치 후 터미널(또는 명령 프롬프트)에서 버전 확인

node -v
npm -v
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;Vite로 React 프로젝트 생성
&amp;nbsp;
원하는 작업 폴더에서 터미널을 열고, 아래 명령어를 실행
npm create vite@latest my-v..</description>
      <category>Project/Project02.GreenUniv</category>
      <author>develop_mii</author>
      <guid isPermaLink="true">https://developmii.tistory.com/92</guid>
      <comments>https://developmii.tistory.com/92#entry92comment</comments>
      <pubDate>Thu, 4 Dec 2025 16:19:43 +0900</pubDate>
    </item>
    <item>
      <title>React Vite vs CRA : Vite를 공부해보자</title>
      <link>https://developmii.tistory.com/91</link>
      <description> React로 프로젝트를 시작할 때 예전에는 거의 무조건 **Create React App(CRA)**를 사용했지만,
요즘은 많은 개발자들이 Vite로 넘어가고 있는 추세
그래서 Vite와 CRA가 무엇인지, 어떤 차이가 있는지, 그리고 왜 Vite를 선택하게 되는지 개념 위주로 정리 해보기

React Vite란?
&amp;nbsp;
&amp;nbsp;
Vite는 빠르고 가벼운 프론트엔드 빌드 도구최신 브라우저의 ESM(ECMAScript Modules)를 적극적으..</description>
      <category>Project/Project02.GreenUniv</category>
      <author>develop_mii</author>
      <guid isPermaLink="true">https://developmii.tistory.com/91</guid>
      <comments>https://developmii.tistory.com/91#entry91comment</comments>
      <pubDate>Thu, 4 Dec 2025 14:03:30 +0900</pubDate>
    </item>
    <item>
      <title>일반 폼로그인(세션) &amp;rarr; JWT 연동 프로세스</title>
      <link>https://developmii.tistory.com/90</link>
      <description>한 줄 요약

예전:

Spring Security formLogin() + HttpSession 기반 인증
서버가 세션을 들고 있고, 브라우저는 JSESSIONID 쿠키로만 인증
프론트/백이 한 몸(같은 도메인 기준)일 때 편하지만, S3 + EC2 분리, JWT 기반 SPA에는 안 어울림


지금:

/api/auth/login 에서 JWT 발급 &amp;rarr; 프론트(localStorage)에 저장
이후 모든 요청에 Authorization: Bear..</description>
      <category>Project/Project01.MailBuddy</category>
      <author>develop_mii</author>
      <guid isPermaLink="true">https://developmii.tistory.com/90</guid>
      <comments>https://developmii.tistory.com/90#entry90comment</comments>
      <pubDate>Thu, 27 Nov 2025 23:09:28 +0900</pubDate>
    </item>
    <item>
      <title>detail , summary 이용 FAQ 페이지 구현</title>
      <link>https://developmii.tistory.com/89</link>
      <description>&amp;nbsp;&amp;lt;details&amp;gt; / &amp;lt;summary&amp;gt;
&amp;nbsp;
HTML 기본 요소 중 하나,
&amp;lt;details&amp;gt;
  &amp;lt;summary&amp;gt;제목&amp;lt;/summary&amp;gt;
  내용 내용 내용...
&amp;lt;/details&amp;gt;
&amp;nbsp;
브라우저가 자동으로

제목(summary) 부분은 항상 보이게 하고
그 아래 내용은 접힌 상태로 숨겨두었다가
사용자가 제목을 클릭하면 열렸다 닫혔다 하는 토글 UI를 만들어줌

&amp;n..</description>
      <category>Project/Project01.MailBuddy</category>
      <author>develop_mii</author>
      <guid isPermaLink="true">https://developmii.tistory.com/89</guid>
      <comments>https://developmii.tistory.com/89#entry89comment</comments>
      <pubDate>Mon, 24 Nov 2025 10:39:10 +0900</pubDate>
    </item>
    <item>
      <title>React 전역 상태 디버깅: selectedItem null 오류 해결</title>
      <link>https://developmii.tistory.com/88</link>
      <description>문제 상황
Cannot read properties of null (reading 'type')
TypeError: Cannot read properties of null (reading 'type')
    at onEdit (CalendarWriteForm.js:xx)

Memo 영역에서 &amp;ldquo;날짜 없는 일정&amp;rdquo;을 선택하고 &amp;rarr; &amp;ldquo;수정&amp;rdquo; 버튼을 누르면CalendarWriteForm 팝업이 열리고 , 기존 ..</description>
      <category>Project/Project01.MailBuddy</category>
      <author>develop_mii</author>
      <guid isPermaLink="true">https://developmii.tistory.com/88</guid>
      <comments>https://developmii.tistory.com/88#entry88comment</comments>
      <pubDate>Fri, 21 Nov 2025 11:58:40 +0900</pubDate>
    </item>
    <item>
      <title>loading overlay 구현 해보기</title>
      <link>https://developmii.tistory.com/87</link>
      <description>&amp;nbsp;
이미 구현된 CalendarNav 중 AI 요약 관련 부분&amp;nbsp;
const CalendarNav = ({ loadSummaries }) =&amp;gt; {
  const [aiLoading, setAiLoading] = useState(false);
  const [aiError, setAiError] = useState(null);
  ...
  // AI 요약 버튼
  const handleSummarize = async () =&amp;gt;..</description>
      <category>Project/Project01.MailBuddy</category>
      <author>develop_mii</author>
      <guid isPermaLink="true">https://developmii.tistory.com/87</guid>
      <comments>https://developmii.tistory.com/87#entry87comment</comments>
      <pubDate>Thu, 20 Nov 2025 14:56:31 +0900</pubDate>
    </item>
    <item>
      <title>앵커 이용 Guide_Nav 만들어서 해당 section 이동</title>
      <link>https://developmii.tistory.com/86</link>
      <description># 사용 가이드 페이지 구현
const GUIDE_NAV = [
  { id: &quot;start&quot;, label: &quot;시작하기&quot; },
  { id: &quot;mail-to-schedule&quot;, label: &quot;메일 &amp;rarr; 일정 변환&quot; },
  { id: &quot;calendar&quot;, label: &quot;캘린더 사용법&quot; },
  { id: &quot;todo&quot;, label: &quot;할 일(Todo)&quot; },
  { id: &quot;addressbook&quot;, label: &quot;주소록&quot; },
];

function..</description>
      <category>Project/Project01.MailBuddy</category>
      <author>develop_mii</author>
      <guid isPermaLink="true">https://developmii.tistory.com/86</guid>
      <comments>https://developmii.tistory.com/86#entry86comment</comments>
      <pubDate>Thu, 20 Nov 2025 10:54:38 +0900</pubDate>
    </item>
    <item>
      <title>Gmail 연동 중복 에러 처리</title>
      <link>https://developmii.tistory.com/84</link>
      <description>이미 연동한 Google Id 다른 아이디에 연동 시도시 에러페이지 이동 해결해보기
&amp;nbsp;
# 다른 아이디를 회원가입해서 연동시도 시 보여지는 에러페이지

&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
원인 : 왜 에러가 나지?
 @Column(unique = true)
 private String googleEmail; // 구글 이메일 연동
&amp;rarr; User 엔티티 - googleEmail에 Unique 제약
&amp;nbsp;
&amp;nbsp;
연동 흐름보기 ..</description>
      <category>Project/Project01.MailBuddy</category>
      <author>develop_mii</author>
      <guid isPermaLink="true">https://developmii.tistory.com/84</guid>
      <comments>https://developmii.tistory.com/84#entry84comment</comments>
      <pubDate>Tue, 18 Nov 2025 12:48:17 +0900</pubDate>
    </item>
    <item>
      <title>React useState vs 일반 변수 : 차이 쉽게 이해하기</title>
      <link>https://developmii.tistory.com/82</link>
      <description>1. 들어가기

React를 배우면 제일 먼저 나오는 게 useState
여기서 두 가지 방법을 비교해보자.

&amp;nbsp;
&amp;nbsp;
2. 코드 예시
Body.js
import { useState } from &quot;react&quot;;
import &quot;./Body.css&quot;;

function Body({ name, age, favorList = [], children }) {

  const [count, setCount] = useState(0);
 
  fun..</description>
      <category>Write it/Java Script</category>
      <author>develop_mii</author>
      <guid isPermaLink="true">https://developmii.tistory.com/82</guid>
      <comments>https://developmii.tistory.com/82#entry82comment</comments>
      <pubDate>Mon, 10 Nov 2025 14:12:03 +0900</pubDate>
    </item>
  </channel>
</rss>