<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Haminni_</title>
        <link>https://velog.io/</link>
        <description>세상을 이롭게 만드는 힘</description>
        <lastBuildDate>Mon, 10 Nov 2025 07:05:16 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>Haminni_</title>
            <url>https://velog.velcdn.com/images/hxmxx_/profile/65497c06-9bf1-42e0-b771-39525f3e0fc6/image.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. Haminni_. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/hxmxx_" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[빼빼로데이 특집: 빼빼로 관상 서비스 만들기]]></title>
            <link>https://velog.io/@hxmxx_/%EB%B9%BC%EB%B9%BC%EB%A1%9C%EB%8D%B0%EC%9D%B4-%ED%8A%B9%EC%A7%91-%EB%B9%BC%EB%B9%BC%EB%A1%9C-%EA%B4%80%EC%83%81-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0</link>
            <guid>https://velog.io/@hxmxx_/%EB%B9%BC%EB%B9%BC%EB%A1%9C%EB%8D%B0%EC%9D%B4-%ED%8A%B9%EC%A7%91-%EB%B9%BC%EB%B9%BC%EB%A1%9C-%EA%B4%80%EC%83%81-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0</guid>
            <pubDate>Mon, 10 Nov 2025 07:05:16 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>&quot;당신의 얼굴은 빼빼로 몇 개 값어치일까요?&quot;</p>
</blockquote>
<p>11월 11일, 빼빼로 데이를 맞아 재미있는 것을 만들어보고 싶었습니다.
그래서 탄생한 <strong>빼빼로 AI 관상 서비스!</strong>
셀카 한 장이면 AI가 당신의 &quot;빼빼로 가치&quot;를 측정해줍니다.</p>
<hr>
<h2 id="💡-아이디어의-시작">💡 아이디어의 시작</h2>
<p>빼빼로 데이 하루 전, 문득 이런 생각이 들었습니다.
&quot;바이럴 서비스 만들어보고 싶다&quot;
여러 아이디어를 고민하다가 최종 선택한 건</p>
<blockquote>
<p>빼빼로 AI 관상 - 셀카로 빼빼로 몇 개 값어치인지 측정</p>
</blockquote>
<h3 id="왜-이걸-선택했냐면">왜 이걸 선택했냐면:</h3>
<ul>
<li>셀카 찍는 건 재밌음</li>
<li>결과가 황당할수록 공유하고 싶어짐</li>
<li>친구들이랑 비교하고 싶어짐</li>
</ul>
<p>완벽한 바이럴 공식!</p>
<hr>
<h2 id="🛠-기술-스택">🛠 기술 스택</h2>
<p>빠르게 만들기 위해 익숙한 스택으로 구성했습니다.
<img src="https://velog.velcdn.com/images/hxmxx_/post/33435085-3c32-4a12-89be-1956c1fdb1ea/image.png" alt="tech stack"></p>
<hr>
<h2 id="gimini-api">Gimini API?</h2>
<p>프롬프트 엔지니어링이 핵심!
_처음엔 그냥** &quot;재미있게 분석해줘&quot;** 했더니 너무 평범한 결과가 나왔어요.
_
여러 번 시도 끝에 찾은 최적의 프롬프트:</p>
<pre><code>당신은 빼빼로 관상가입니다. 
이 사진을 보고 재미있고 황당한 빼빼로 관상을 봐주세요.

다음 JSON 형식으로만 응답하세요:
{
  &quot;peperoCount&quot;: 숫자 (100-999 사이),
  &quot;peperoType&quot;: &quot;빼빼로 종류&quot;,
  &quot;personality&quot;: &quot;한 줄 성격 분석 (재미있게)&quot;,
  &quot;fortune&quot;: &quot;오늘의 빼빼로 운세 (황당하고 웃기게)&quot;,
  &quot;tip&quot;: &quot;빼빼로 조언 (말도 안 되지만 그럴싸하게)&quot;
}</code></pre><p>JSON 형식을 강제해서 파싱 에러를 줄였습니다!</p>
<hr>
<h2 id="💭-배운-점">💭 배운 점</h2>
<h3 id="1-바이럴-서비스의-핵심">1. 바이럴 서비스의 핵심</h3>
<ol>
<li>즉각적인 재미: 복잡한 설명 없이 바로 이해 가능</li>
<li>공유 욕구: 결과가 황당할수록 친구들에게 보여주고 싶음</li>
<li>비교 심리: &quot;나는 몇 개일까?&quot; → &quot;친구는 몇 개일까?&quot;</li>
</ol>
<h3 id="2-빠른-실행의-중요성">2. 빠른 실행의 중요성</h3>
<ol>
<li>완벽한 서비스보다 빠르게 출시하는 게 중요합니다.</li>
<li>특히 시즌성 있는 이벤트(빼빼로 데이)는 타이밍이 생명!</li>
</ol>
<h3 id="3-ai-api의-가능성">3. AI API의 가능성</h3>
<ol>
<li>Claude API만으로도 이렇게 재미있는 서비스를 만들 수 있다는 게 신기했습니다.</li>
<li>프롬프트 엔지니어링의 중요성을 다시 한번 느꼈어요.</li>
</ol>
<hr>
<h2 id="결론">결론</h2>
<p><strong>&quot;한순간 빛나고 사라져도 괜찮은&quot; 서비스</strong>를 만들어봤습니다.</p>
<p>중요한 건 완벽함이 아니라 재미와 타이밍이었어요.</p>
<p>여러분도 다가오는 기념일에 맞춰
재미있는 사이드 프로젝트 만들어보는 건 어떨까요? 🍫</p>
<hr>
<h2 id="ps">P.S.</h2>
<p>실제로 이 서비스가 얼마나 바이럴 될지는 모르겠지만, 만드는 과정 자체가 즐거웠습니다!
11월 11일, 여러분의 얼굴은 빼빼로 몇 개 값어치일까요? 😄</p>
<hr>
<h2 id="링크">링크</h2>
<p>GitHub: <a href="https://github.com/Hxmxx/how-much-pepero">how-much-pepero</a>
웹사이트: <a href="https://how-much-pepero.vercel.app/">사이트 링크</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[#2 나는 19개의 프로젝트를 포기한 사람입니다.]]></title>
            <link>https://velog.io/@hxmxx_/2-%EB%82%98%EB%8A%94-19%EA%B0%9C%EC%9D%98-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-%ED%8F%AC%EA%B8%B0%ED%95%9C-%EC%82%AC%EB%9E%8C%EC%9E%85%EB%8B%88%EB%8B%A4</link>
            <guid>https://velog.io/@hxmxx_/2-%EB%82%98%EB%8A%94-19%EA%B0%9C%EC%9D%98-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-%ED%8F%AC%EA%B8%B0%ED%95%9C-%EC%82%AC%EB%9E%8C%EC%9E%85%EB%8B%88%EB%8B%A4</guid>
            <pubDate>Mon, 03 Nov 2025 04:39:36 GMT</pubDate>
            <description><![CDATA[<h2 id="01-들어가며">01. 들어가며</h2>
<p><a href="https://velog.io/@hxmxx_/1-%EB%B3%91%EC%9B%90-%EC%B9%A8%EB%8C%80%EC%97%90%EC%84%9C-%EB%96%A0%EC%98%AC%EB%A6%B0-%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4-%EC%8B%A4%ED%8C%A8%ED%95%9C-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-%EC%9C%84%ED%95%9C-%EB%AC%B4%EB%8D%A4">1화</a>에선 병원 침대에서 떠올린 아이디어에 대해 이야기 했습니다.
이제 실제로 만들어야 합니다.</p>
<p>하지만 문제가 있습니다.</p>
<blockquote>
<p>전 19개의 프로젝트를 포기한 사람입니다.</p>
</blockquote>
<h3 id="그래서-이번엔-달라">그래서 이번엔 달라?</h3>
<p>솔직히 말하면, <strong>확신이 없습니다.</strong>
이번에도 하다가 <strong>Archived</strong>가 될 수 있습니다.
그리고, 그렇게 진행 중이라고 느끼고 있습니다.
<img src="https://velog.velcdn.com/images/hxmxx_/post/9e08671d-f535-4210-b85b-45b9675ef087/image.png" alt="">
제 스프린트 계획서 중 일부입니다.
보시다시피 11월을 넘었는데, 스프린트 계획서는 아직 10/27에 있습니다.
솔직히 막막합니다.</p>
<hr>
<h2 id="02-실패-패턴을-다시-보자">02. 실패 패턴을 다시 보자</h2>
<p>분명, 제가 <a href="https://velog.io/@hxmxx_/1-%EB%B3%91%EC%9B%90-%EC%B9%A8%EB%8C%80%EC%97%90%EC%84%9C-%EB%96%A0%EC%98%AC%EB%A6%B0-%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4-%EC%8B%A4%ED%8C%A8%ED%95%9C-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-%EC%9C%84%ED%95%9C-%EB%AC%B4%EB%8D%A4">1화</a>에서 놓친 무언가가 있을 것이라고 생각했습니다.
이젠 커밋과 데이터보다, 인간적인 측면에서 분석해보기로 했습니다.</p>
<h3 id="1-계획이-없었다">#1. 계획이 없었다.</h3>
<p>사실 가장 큰 문제였던 것 같습니다.
어느정도의 계획의 뼈대만 보고, 그것이 계획인 것처럼 행동한 게 문제였죠.</p>
<p><strong>무작정 시작했습니다.</strong>
어디로 가는 지도 모르고 달렸습니다.</p>
<hr>
<h3 id="2-스코프가-너무-컸다">#2. 스코프가 너무 컸다.</h3>
<pre><code>Phase 1: 기본 기능
Phase 2: 고급 기능
Phase 3: AI 통합
Phase 4: 모바일 앱
Phase 5: 글로벌 진출
...
Phase 100: ???</code></pre><p><strong>끝이 보이지 않았습니다.</strong>
&quot;완성&quot;의 기준이 없었습니다.</p>
<hr>
<h3 id="3-초기-세팅이-너무-오래-걸렸다">#3. 초기 세팅이 너무 오래 걸렸다.</h3>
<p>초기 세팅, DB 설계, 디자인 ...
시작에서 모든 힘을 다 쓰니 의지가 약해지는 건 당연하다고 생각했습니다.</p>
<hr>
<h2 id="03-이번엔-다르게">03. 이번엔 다르게</h2>
<p>이 패턴을 보고 역이용하기로 했습니다.</p>
<ol>
<li>계획이 없었다 → 스프린트 계획서 작성</li>
<li>스코프가 너무 컸다 → 일단 MVP부터</li>
<li>초기 세팅이 너무 오래 걸렸다. → 보일러 플레이트 사용</li>
</ol>
<hr>
<h2 id="04-게다가">04. 게다가</h2>
<p>이번엔 친구와 함께 하기로 했습니다.
<img src="https://velog.velcdn.com/images/hxmxx_/post/760243db-f9aa-40bc-837e-857c12143eff/image.png" alt="">
<img src="https://velog.velcdn.com/images/hxmxx_/post/3d07b820-db41-473f-b3ff-ad76fdd991e5/image.png" alt=""></p>
<p>이젠 3인 개발 그 이상으로 생산력을 높이기로 했습니다.</p>
<hr>
<h3 id="전략-2-스코프를-칼같이-자른다">전략 #2: 스코프를 칼같이 자른다</h3>
<p>&quot;나중에&quot; 리스트 만들기</p>
<pre><code class="language-markdown">Phase 1 (MVP)
- [x] 프로젝트 등록
- [ ] 목록 조회
- [ ] 부활 신청

Phase 2 (나중에)
- [ ] 대댓글
- [ ] DM 기능
- [ ] 모바일 앱
- [ ] AI 추천</code></pre>
<p><strong>Phase 1만 봅니다.</strong>
Phase 2는 성공한 후에 생각합니다.</p>
<hr>
<h3 id="전략-3-매일-기록한다">전략 #3: 매일 기록한다</h3>
<p>일일 개발 일지 (3분)</p>
<pre><code># 2025-10-20

## 오늘 한 것
- Supabase 프로젝트 생성
- Next.js 초기화
- GitHub 레포 만듦

## 막힌 것
- PostGIS 설정 어떻게 하지?
  → 내일 찾아보기

## 내일 할 것
- DB 스키마 작성
- 컬러 팔레트 정하기</code></pre><p><strong>하루 3분</strong>이면 됩니다.
나중에 회고할 때 귀중한 자료가 됩니다.</p>
<hr>
<h3 id="전략-4-공개적으로-진행한다">전략 #4: 공개적으로 진행한다</h3>
<p><a href="https://velog.io/@hxmxx_/series/%EC%BD%94%EB%93%9C%EB%AC%98%EC%A7%80">Velog 시리즈</a> (이거)
지금 이 글을 읽는 여러분이 증인입니다.
다음 주에 &quot;3화 언제 나와요?&quot; 댓글 달아주세요.
그게 제게는 동기부여입니다.</p>
<hr>
<h3 id="전략-5-완벽주의를-버린다">전략 #5: 완벽주의를 버린다</h3>
<blockquote>
<p>Done &gt; Perfect</p>
</blockquote>
<p>❌ &quot;디자인 완벽하게 하고 시작&quot;
✅ &quot;일단 돌아가게 만들고 나중에 개선&quot;</p>
<blockquote>
</blockquote>
<p>❌ &quot;테스트 코드 100% 커버리지&quot;
✅ &quot;핵심 기능만 테스트&quot;</p>
<blockquote>
</blockquote>
<p>❌ &quot;코드 리뷰 받고 머지&quot;
✅ &quot;일단 머지하고 나중에 리팩토링&quot;</p>
<p>MVP는 예쁠 필요 없습니다.
작동하면 됩니다.</p>
<hr>
<h2 id="05-번아웃-방지-전략">05. 번아웃 방지 전략</h2>
<h3 id="규칙-1--주말-하루는-쉰다">규칙 #1:  주말 하루는 쉰다</h3>
<p>일요일은 코드 안 봅니다.
산책, 영화, 게임, 친구 만나기.
뭐든 좋습니다. 코드만 아니면.</p>
<h3 id="규칙-2-하루-목표는-3개만">규칙 #2: 하루 목표는 3개만</h3>
<pre><code class="language-오늘의">1. [ ] 프로젝트 등록 폼 UI
2. [ ] ...
3. [ ] ...</code></pre>
<p>3개 이상 쓰지 않습니다.
다 못 할 게 뻔합니다.
3개 하면 성공입니다.</p>
<h3 id="규칙-3-막히면-넘어간다">규칙 #3: 막히면 넘어간다</h3>
<pre><code>30분 규칙

    문제 발생
         ↓
    30분 동안 삽질
         ↓
    안 풀림?
         ↓
    &quot;나중에&quot; 리스트로 이동
         ↓
    다른 거 함</code></pre><p>1시간 넘게 삽질하지 않습니다.
그건 번아웃 지름길입니다.</p>
<h3 id="규칙-4-작은-성공을-축하한다">규칙 #4: 작은 성공을 축하한다</h3>
<p><strong>Supabase 연결 성공!</strong>
  → 커피 한 잔 ☕</p>
<p><strong>첫 프로젝트 등록 성공!</strong>
  → 치킨 한 마리 🍗</p>
<p><strong>MVP 완성!</strong>
  → 하루 쉬기 🎉</p>
<p>보상이 있어야 합니다.
자신에게 칭찬하고, 보상합니다.</p>
<hr>
<h2 id="06-기술-스택-선택-이유">06. 기술 스택 선택 이유</h2>
<blockquote>
<p><strong>Frontend:</strong> Next.js 15</p>
</blockquote>
<p>왜?</p>
<ul>
<li>익숙함 (러닝커브 없음)</li>
<li>SSR/SSG (SEO 좋음)</li>
<li>API Routes (백엔드 없이 시작 가능)</li>
<li>Vercel 배포 쉬움</li>
</ul>
<blockquote>
<p><strong>Backend:</strong> Supabase</p>
</blockquote>
<p>왜?</p>
<ul>
<li>PostgreSQL (익숙한 SQL)</li>
<li>Auth 내장 (OAuth 쉬움)</li>
<li>Storage 내장 (S3 설정 필요 없음)</li>
<li>Realtime (WebSocket 무료)</li>
<li>무료 티어 관대함</li>
</ul>
<p><strong>대안 고려했던 것:</strong></p>
<ul>
<li>Firebase? → NoSQL 싫음</li>
<li>MongoDB? → Supabase가 더 익숙</li>
<li>직접 백엔드? → 시간 없음</li>
</ul>
<blockquote>
<p>AI/분석: FastAPI (나중에)</p>
</blockquote>
<p>왜?</p>
<ul>
<li>Python (데이터 분석 쉬움)</li>
<li>빠름</li>
<li>타입 힌트 (TypeScript처럼)</li>
</ul>
<p>언제?</p>
<blockquote>
<p>Sprint 5 (대시보드 만들 때)</p>
</blockquote>
<p>지금은 필요 없음</p>
<hr>
<h2 id="07-성공-기준">07. 성공 기준</h2>
<p><strong>정량적 목표 (3개월)</strong></p>
<ul>
<li>프로젝트 등록100개</li>
<li>가입 유저 500명</li>
<li>DAU 50명</li>
<li>부활 신청 10건</li>
</ul>
<p><strong>정성적 목표</strong></p>
<ul>
<li>8주 안에 MVP 완성</li>
<li>Product Hunt 런칭</li>
<li>이 시리즈 완주 (최소 10화)</li>
<li>포기하더라도 과정 기록</li>
</ul>
<p><strong>실패 시나리오</strong></p>
<p>솔직히 말하면, 실패 확률이 더 높습니다.</p>
<blockquote>
<p><strong>시나리오 1: Week 4에 번아웃 (40%)</strong>
→ 휴식 후 재시작 or 일정 연장</p>
</blockquote>
<blockquote>
<p><strong>시나리오 2: 기술적 막힘 (30%)</strong>
→ 스코프 축소 or 대체 기술</p>
</blockquote>
<blockquote>
<p><strong>시나리오 3: 동기 상실 (20%)</strong>
→ 여러분의 댓글이 필요합니다 🙏</p>
</blockquote>
<blockquote>
<p><strong>시나리오 4: 예상치 못한 일 (10%)</strong>
→ 그럼 그때 가서 생각</p>
</blockquote>
<h2 id="08-그래도-시도하는-이유">08. 그래도 시도하는 이유</h2>
<p>이번에 실패해도 괜찮습니다.
왜냐하면:</p>
<blockquote>
<p><strong>과정이 기록됨</strong></p>
</blockquote>
<p>Velog 시리즈 남음
배운 것 남음</p>
<blockquote>
<p><strong>다음번에 더 잘할 수 있음</strong></p>
</blockquote>
<p>실패 패턴 알게 됨
어디서 막히는지 알게 됨</p>
<blockquote>
<p><strong>이 자체가 콘텐츠</strong></p>
</blockquote>
<p>성공해도 좋고
실패해도 배움</p>
<blockquote>
<p><strong>메타적 완성도</strong></p>
</blockquote>
<p>코드묘지가 실패하면?
코드묘지에 등록하면 됨 🪦</p>
<hr>
<h2 id="09-여러분께-부탁">09. 여러분께 부탁</h2>
<p>이 시리즈를 계속 쓸 수 있도록 도와주세요.</p>
<blockquote>
<p><strong>방법 1: 댓글</strong></p>
</blockquote>
<p>&quot;기대됩니다!&quot;
&quot;응원합니다!&quot;
&quot;다음 화 언제 나와요?&quot;</p>
<p>이게 제게는 <strong>최고의 동기부여</strong>입니다.</p>
<blockquote>
<p><strong>방법 2: 질문</strong></p>
</blockquote>
<p>&quot;이 부분 어떻게 하실 건가요?&quot;
&quot;이거 대신 저거 쓰는 건 어때요?&quot;</p>
<p>질문이 있으면 답하고 싶어집니다.</p>
<blockquote>
<p><strong>방법 3: 공유</strong></p>
</blockquote>
<p>트위터, 페이스북, 카톡
&quot;이거 재미있네&quot; 한 줄이면 됩니다</p>
<p>더 많은 사람이 보면 포기하기 어렵습니다.</p>
<hr>
<h2 id="10-마치며">10. 마치며</h2>
<blockquote>
<p>나는 19개의 프로젝트를 포기한 사람입니다.</p>
</blockquote>
<h3 id="하지만">하지만</h3>
<p>이번엔 계획이 있습니다.
이번엔 여러분이 지켜보고 계십니다.
이번엔 실패해도 기록이 남습니다.
성공했든, 실패했든, 무언가는 남아있을 겁니다.</p>
<hr>
<h2 id="ps-이미-sprint-1입니다">P.S. 이미 Sprint 1입니다</h2>
<h3 id="관련-링크">관련 링크:</h3>
<p>📖 <a href="https://velog.io/@hxmxx_/1-%EB%B3%91%EC%9B%90-%EC%B9%A8%EB%8C%80%EC%97%90%EC%84%9C-%EB%96%A0%EC%98%AC%EB%A6%B0-%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4-%EC%8B%A4%ED%8C%A8%ED%95%9C-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-%EC%9C%84%ED%95%9C-%EB%AC%B4%EB%8D%A4">1화: 병원 침대에서 떠올린 아이디어</a>
💻 <a href="https://github.com/Hxmxx/404-grave">GitHub 레포</a>
🪦 <a href="https://404-grave.vercel.app/">코드묘지 웹사이트</a></p>
<p>코멘트로 응원이나 질문 남겨주시면 정말정말 힘이 됩니다! 🙏</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[#1 병원 침대에서 떠올린 아이디어 — 실패한 프로젝트를 위한 무덤]]></title>
            <link>https://velog.io/@hxmxx_/1-%EB%B3%91%EC%9B%90-%EC%B9%A8%EB%8C%80%EC%97%90%EC%84%9C-%EB%96%A0%EC%98%AC%EB%A6%B0-%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4-%EC%8B%A4%ED%8C%A8%ED%95%9C-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-%EC%9C%84%ED%95%9C-%EB%AC%B4%EB%8D%A4</link>
            <guid>https://velog.io/@hxmxx_/1-%EB%B3%91%EC%9B%90-%EC%B9%A8%EB%8C%80%EC%97%90%EC%84%9C-%EB%96%A0%EC%98%AC%EB%A6%B0-%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4-%EC%8B%A4%ED%8C%A8%ED%95%9C-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-%EC%9C%84%ED%95%9C-%EB%AC%B4%EB%8D%A4</guid>
            <pubDate>Mon, 20 Oct 2025 04:47:57 GMT</pubDate>
            <description><![CDATA[<h2 id="01-프롤로그">01. 프롤로그</h2>
<p>2025년 10월 19일 새벽 3시.</p>
<p>병원 침대에 누워 천장을 바라보고 있었습니다.
옆 침대에서 들려오는 코 고는 소리, 복도를 지나가는 간호사의 발소리.
잠은 안 오고, 폰만 만지작거리고 있었죠.</p>
<p>그때, 유튜브 알고리즘이 던져준 한 영상.</p>
<blockquote>
<p><img src="https://velog.velcdn.com/images/hxmxx_/post/b07c7906-a957-437c-93b6-dfb46dfdf14f/image.png" alt=""></p>
</blockquote>
<p><a href="https://www.youtube.com/watch?v=QIsi8sTH_NI&amp;t=43s">초콜릿 사업으로 초대박이 난 허쉬, 그가 성공한 이유는 바로 이것 때문이다 [브랜드 스토리]
</a></p>
<p>별 기대 없이 클릭했습니다.</p>
<hr>
<h3 id="그리고-뭔가-이상했습니다">그리고 뭔가 이상했습니다.</h3>
<p>영상 속 밀던 허쉬는 아래 사업을 실패했습니다.</p>
<blockquote>
<p>캔디 가게 (중앙 펜실베이니아)
카라멜 가게 (시카고)
카라멜 가게 (뉴욕)</p>
</blockquote>
<p>그런데 그는 <strong>부끄러워하지 않았습니다.</strong>
오히려 담담했고, 자랑스러웠습니다.</p>
<blockquote>
<p>“그 실패가 없었다면 지금의 성공도 없었을 겁니다.”</p>
</blockquote>
<hr>
<p>영상이 끝나고,
자동재생이 넘어가기 전에 저는 생각했습니다.</p>
<blockquote>
<p><strong>“왜 실패를 기록하는 서비스는 없을까?”</strong></p>
</blockquote>
<hr>
<h2 id="🧱-02-내-github에는-무덤이-가득했다">🧱 02. 내 GitHub에는 무덤이 가득했다</h2>
<p>노트북을 켜고 GitHub를 열었습니다.</p>
<p><img src="https://velog.velcdn.com/images/hxmxx_/post/f263758b-97f5-4c67-90f5-0e72033cb45e/image.png" alt="">
<img src="https://velog.velcdn.com/images/hxmxx_/post/62c37c7d-bd1a-41d0-9c14-7c2504285476/image.png" alt=""></p>
<p><strong>Archived.</strong>
그 단어 하나로 덮여버린 프로젝트들.</p>
<hr>
<h3 id="🪦-프로젝트-1--부동산-데일리-202510">🪦 프로젝트 #1 — 부동산 데일리 (2025.10.)</h3>
<blockquote>
<h1 id="부동산-데일리">부동산 데일리</h1>
<p>부동산 뉴스를 매일 요약해주는 서비스</p>
<h2 id="tech-stack">Tech Stack</h2>
<ul>
<li>Next.js</li>
<li>Supabase</li>
</ul>
<h2 id="status">Status</h2>
<p>개발 중단</p>
</blockquote>
<p>“개발 중단.”
그게 전부였습니다.</p>
<p>왜 중단했는지, 뭘 배웠는지 — <strong>아무 흔적도 없었습니다.</strong></p>
<hr>
<h3 id="🎬-프로젝트-2--연애-스타일-영화-매칭-202505">🎬 프로젝트 #2 — 연애 스타일 영화 매칭 (2025.05.)</h3>
<p>거의 다 만들었습니다. 진짜 거의.</p>
<p>영화 DB 연동 ✔️
추천 알고리즘 ✔️
백엔드 개발 ✔️
❌ 런칭... 못함</p>
<p>“나중에 마저 하지 뭐.”</p>
<p>그 ‘나중’은 오지 않았습니다.
이젠 코드도 낯설고, 의도도 잊었습니다.</p>
<hr>
<p>그러곤 노션에 들어갔습니다.
<img src="https://velog.velcdn.com/images/hxmxx_/post/5ffc9fb5-c349-4fba-ad93-c475a4116abd/image.png" alt=""></p>
<blockquote>
<p>완료율 16% 미만.</p>
</blockquote>
<hr>
<h3 id="결과-통계">결과 통계</h3>
<ul>
<li><strong>총 프로젝트 수:</strong> 19개</li>
<li><strong>완성:</strong> 3개</li>
<li><strong>평균 생존 기간:</strong> 3주</li>
<li><strong>최단 생존:</strong> 1일</li>
</ul>
<hr>
<h2 id="🔍-03-패턴이-보였다">🔍 03. 패턴이 보였다</h2>
<h3 id="💥-패턴-1--시작은-언제나-뜨겁다">💥 패턴 #1 — 시작은 언제나 뜨겁다</h3>
<pre><code>Commit history

Day 1: ███████████████ (20 commits)
Day 2: █████████ (12 commits)
Week 3: ██ (2 commits)
Week 5~∞: (0 commits)</code></pre><p>처음엔 밤을 새며 달립니다.
“이번엔 진짜 된다!”
하지만 2주쯤 지나면, 식습니다.</p>
<hr>
<h3 id="🙈-패턴-2--혼자-시작했고-혼자-포기했다">🙈 패턴 #2 — 혼자 시작했고, 혼자 포기했다</h3>
<p>10개 중 10개, <strong>혼자만 알고 있던 프로젝트</strong>였습니다.</p>
<p>“말하면, 나중에 그거 어떻게 됐냐고 물어볼까 봐...”
그래서 <strong>조용히 시작하고, 조용히 끝냈습니다.</strong></p>
<hr>
<h3 id="⏰-패턴-3--포기-이유는-항상-우선순위">⏰ 패턴 #3 — 포기 이유는 항상 “우선순위”</h3>
<blockquote>
<p>“시험공부 해야지.”
“과제 해야지.”
“피곤해.”</p>
</blockquote>
<p>결국,
<strong>프로젝트는 언제나 우선순위에서 꼴찌.</strong></p>
<hr>
<h3 id="💀-패턴-4--흔적을-남기지-않았다">💀 패턴 #4 — 흔적을 남기지 않았다</h3>
<p>“부끄럽다. 빨리 잊자.”
그래서—</p>
<ul>
<li>블로그 ❌</li>
<li>README 업데이트 ❌</li>
<li>회고 ❌</li>
<li>그냥 <code>Archive</code></li>
</ul>
<p>그렇게 묻었습니다.
마치 존재하지 않았던 것처럼.</p>
<hr>
<h2 id="🤔-04-실패는-자산이다-그런데-나는">🤔 04. “실패는 자산이다.” 그런데 나는?</h2>
<p>10개 프로젝트를 실패했는데,
무엇이 남았을까요?</p>
<p><strong>아무것도.</strong></p>
<ul>
<li>문서 ❌</li>
<li>회고 ❌</li>
<li>배운 점 ❌</li>
<li>교훈 ❌</li>
</ul>
<p>“실패는 자산”이라는데,
나는 그 자산을 <strong>전부 버렸습니다.</strong></p>
<hr>
<p>그 순간 깨달았습니다.</p>
<blockquote>
<p><strong>실패가 자산이 되려면, ‘기록’해야 한다.</strong></p>
</blockquote>
<hr>
<h2 id="🌍-05-세상은-성공-이야기뿐이었다">🌍 05. 세상은 성공 이야기뿐이었다</h2>
<p><img src="https://velog.velcdn.com/images/hxmxx_/post/db9b2265-a669-4ac2-8ab6-ae42c5cfaa95/image.png" alt="">
<a href="https://www.producthunt.com/leaderboard/daily/2025/10/19?ref=header_nav">Product hunt - Best of Today</a></p>
<p>모두 성공 이야기.</p>
<hr>
<h3 id="🧠-github">🧠 GitHub</h3>
<p><img src="https://velog.velcdn.com/images/hxmxx_/post/560ea676-853a-44f1-bf47-875b52903338/image.png" alt="">
<a href="https://github.com/trending">Trending repositories on Github Today</a></p>
<p><img src="https://velog.velcdn.com/images/hxmxx_/post/f05b9ab0-d20b-4f26-968e-f6b0e9256c52/image.png" alt="">
<a href="https://www.perplexity.ai/search/archived-repository-github-rq5UMz4OTvOCDUnW4fvN6w">Perplexity AI Search - Comet</a></p>
<p>1억개 이상의 <strong>죽은 프로젝트.</strong>
그런데 왜 죽었는지는 아무도 모릅니다.</p>
<hr>
<h3 id="✍️-개발-블로그">✍️ 개발 블로그</h3>
<p>“30일 만에 완성한 서비스!”
“런칭하고 n일 만에 n만 명이 쓴 프로젝트!”</p>
<p>실패 회고는...
찾기 어려웠습니다.</p>
<hr>
<p>그래서 생각했습니다.</p>
<blockquote>
<p>“실패한 프로젝트를 위한 Product Hunt가 필요하다.”
“죽은 코드를 위한 GitHub이 필요하다.”
“실패를 기록하고 공유하는 문화가 필요하다.”</p>
</blockquote>
<hr>
<h2 id="⚰️-06-코드묘지의-탄생">⚰️ 06. 코드묘지의 탄생</h2>
<p>새벽 6시. Notion을 켰습니다.</p>
<blockquote>
<h1 id="코드묘지-codegrave">코드묘지 (CodeGrave)</h1>
<p>&quot;실패도 포트폴리오다&quot;</p>
<p>✅ 프로젝트 사망 진단서
✅ 입양 시스템 (좋은 아이디어 부활)
✅ 실패 패턴 분석
✅ 익명 모드</p>
</blockquote>
<p>타이핑이 멈추지 않았습니다.
<strong>1시간 만에 기획서 15섹션 완성.</strong></p>
<hr>
<p>이번엔 달랐습니다.</p>
<blockquote>
<p>“이건 된다!”가 아니라
<strong>“이건 필요하다.”</strong></p>
</blockquote>
<hr>
<h2 id="🧩-07-코드묘지는-우리의-이야기다">🧩 07. 코드묘지는 ‘우리’의 이야기다</h2>
<p>이전 프로젝트는
“이거 만들면 <strong>나한테</strong> 좋겠다.” / &quot;이거 만들면 <strong>재밌겠다</strong>&quot; 였지만,</p>
<p>이번엔
“이거 <strong>우리한테</strong> 필요하다.” 였습니다.</p>
<p>실패를 숨기고 있는 <strong>우리 모두</strong>의 이야기.</p>
<hr>
<h2 id="🪦-08-이번엔-달라요">🪦 08. 이번엔 달라요</h2>
<h3 id="1-기록한다">#1 기록한다</h3>
<p>Velog에 개발 일지 작성</p>
<h3 id="2-공개한다">#2 공개한다</h3>
<p>숨기지 않는다. 모두에게 공유.</p>
<h3 id="3-완성이-목표가-아니다">#3 완성이 목표가 아니다</h3>
<p>목표는 ‘기록하는 문화’ 만들기</p>
<h3 id="4-혼자가-아니다">#4 혼자가 아니다</h3>
<p>AI 협업 + 커뮤니티 피드백 + 공개 진행</p>
<hr>
<h2 id="🧱-09-나의-20번째-프로젝트">🧱 09. 나의 20번째 프로젝트</h2>
<p>19개를 포기한 제가 20번째를 시작합니다.
하지만 이번엔 이렇게 말할 수 있습니다.</p>
<blockquote>
<p><strong>“이번엔 포기해도 괜찮아.”</strong>
포기 자체가 콘텐츠니까.
포기 자체가 교훈이니까.</p>
</blockquote>
<hr>
<h2 id="💭-10-여러분의-무덤은-몇-개인가요">💭 10. 여러분의 무덤은 몇 개인가요?</h2>
<ul>
<li>Archived 레포 몇 개인가요?</li>
<li>가장 아쉬운 프로젝트는?</li>
<li>그 실패에서 배운 건?</li>
</ul>
<p>💬 댓글로 함께 이야기해요.</p>
<blockquote>
<p><strong>실패는 부끄러운 게 아닙니다.</strong>
<strong>기록하지 않는 게 부끄러운 겁니다.</strong></p>
</blockquote>
<hr>
<h2 id="📎-관련-링크">📎 관련 링크</h2>
<ul>
<li>🪦 코드묘지(개발 중): <a href="https://404-grave.vercel.app/">404-grave.vercel.app</a></li>
<li>💻 GitHub: <a href="https://github.com/Hxmxx/404-grave">Hxmxx - 404 Grave</a></li>
<li>📧 이메일: <a href="haminni.dev@gmail.com">haminni.dev@gmail.com</a></li>
</ul>
<hr>
<h2 id="🪶-ps">🪶 P.S.</h2>
<p>이 글을 쓰며 문득 생각했습니다.</p>
<blockquote>
<p>“이것도 3화까지만 쓰고 포기하는 거 아니야?”</p>
</blockquote>
<p>그럴 수도 있죠.
그럼 제목을 이렇게 바꾸면 됩니다.</p>
<blockquote>
<p><strong>[코드묘지 #마지막] 코드묘지도 결국 실패했다 — 그리고 배운 것들</strong></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[고2의 실리콘밸리에서의 도전과 성장, 그리고 수상까지]]></title>
            <link>https://velog.io/@hxmxx_/%EA%B3%A02%EC%9D%98-%EC%8B%A4%EB%A6%AC%EC%BD%98%EB%B0%B8%EB%A6%AC%EC%97%90%EC%84%9C%EC%9D%98-%EB%8F%84%EC%A0%84%EA%B3%BC-%EC%84%B1%EC%9E%A5-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EC%88%98%EC%83%81%EA%B9%8C%EC%A7%80</link>
            <guid>https://velog.io/@hxmxx_/%EA%B3%A02%EC%9D%98-%EC%8B%A4%EB%A6%AC%EC%BD%98%EB%B0%B8%EB%A6%AC%EC%97%90%EC%84%9C%EC%9D%98-%EB%8F%84%EC%A0%84%EA%B3%BC-%EC%84%B1%EC%9E%A5-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EC%88%98%EC%83%81%EA%B9%8C%EC%A7%80</guid>
            <pubDate>Sun, 08 Jun 2025 02:37:59 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/hxmxx_/post/61a240b1-05fd-4972-8e2a-2640cb2518c4/image.jpg" alt="소살리토"></p>
<h2 id="✈️-실리콘밸리에서의-일주일">✈️ 실리콘밸리에서의 일주일</h2>
<p>2025년 5월, 고등학교 2학년인 나에게 <strong>미국 실리콘밸리</strong>에 갈 수 있는 특별한 기회가 주어졌다. <strong>산 호세 주립 대학교 (SJSU)</strong>에서 진행하는 연수 프로그램에 참가하게 되었다. 이번 연수는 단순한 견학이 아니라, 글로벌 무대에서 주어진 주제를 발표하고 피드백을 받으며, 직접 뛰어드는 <strong>실전형 프로젝트 중심의 프로그램</strong>이었다.
실리콘밸리에 위치한 다양한 글로벌 기업 탐방은 물론, 컴퓨터 역사 박물관, 구글, 애플 파크, 스탠포드 대학교 등 꿈에만 그리던 공간들은 직접 경험하는 뜻깊은 시간이었다.
하지만 그중 가장 기억에 남는 순간은, 아무래도 <strong>SJSU에서의 팀 프로젝트와 발표, 그리고 PITCH MASTERY AWARD 수상</strong>이었다.</p>
<h2 id="💡-팀-프로젝트-아이디어를-현실로-발표를-무기로">💡 팀 프로젝트: 아이디어를 현실로, 발표를 무기로</h2>
<p><strong>프로젝트 주제: 감정 기반 노래 &amp; 플레이리스트 추천 앱</strong>
우리는 5인으로 구성된 팀으로 나뉘어, 약 2주동안 구체화부터 최종 발표까지 모든 과정을 직접 준비해야 했다. 제한된 시간 속에서 아이디어를 구체화하고, 역할을 분담해 발표 자료를 만들고, 영어로 발표까지 해야 했기 때문에 부담도 컸다.</p>
<h3 id="내-역할-pm--디자인--프론트엔드">내 역할: PM + 디자인 + 프론트엔드</h3>
<p>나는 <strong>아이디어 기획 및 발표 구조를 구성하는 역할</strong>과 함께, <strong>디자인 및 프론트엔드 화면 와이어프레임</strong> 구상도 맡았다. 주제는 지정되어 있었기 때문에 발표 자료의 퀄리티와 분위기에 집중했다. 발표 자료의 이미있는 단계 구성을 위해 발표 자료를 만들기 전, 발표 시간을 고려하여 피치 덱을 매우 열심히 찾아봤고, 이를 통해 의미있는 발표 자료를 구성할 수 있었다. PPT에 문제 제기, 솔루션, 시장 분석, 데모, 기술 아키텍쳐, 향후 계획 및 팀 소개와 QNA를 끝으로 자료를 계획했다. 이를 시각적으로 녹여내기 위해 Figma와 프레젠테이션 도구를 적극 활용했다.</p>
<h2 id="📣-영어로-발표하기-그리고-멘토링">📣 영어로 발표하기, 그리고 멘토링</h2>
<p>가장 큰 도전은 역시 <strong>영어로 발표하는 것</strong>이었다. 미국 대학 교수님과 실리콘밸리 멘토 분들 앞에서, 우리 팀이 준비한 아이디어를 짧지 않은 시간동안 정확히 전달해야 했기 때문이었다. 하지만 몇 번의 리허설을 거치며 점점 자신감을 얻었고, 발표 스크립트도 제 손으로 직접 정리하며 연습했다.
멘토님들께 받은 피드백도 큰 도움이 됐다. 단순한 영어 표현이 아니라, <strong>“왜 이 아이디어가 지금 필요한가?”, “사용자의 경험 흐름이 실제로 작동 가능한가?”, “투자자 앞이라면 무엇을 더 강조할 것인가?”</strong> 같은 질문들 덕분에 발표 내용이 훨씬 단단해졌다.</p>
<h2 id="🏆-pitch-mastery-award-수상">🏆 PITCH MASTERY AWARD 수상!</h2>
<p><img src="https://velog.velcdn.com/images/hxmxx_/post/296fb32e-df87-4e8b-81ec-0bf71f13c703/image.jpg" alt="피치마스터리어워드"></p>
<p>그렇게 완성된 발표는 전 참가 팀 앞에서 최종적으로 진행되었고, 놀랍게도 우리 팀이 <strong>Pitch Mastery Award</strong>를 수상하게 되었다.
이 상은 <strong>가장 설득력있고 매력적인 발표</strong>를 한 팀에게 수여되는 상이다.</p>
<h2 id="🧠-얻은-것들">🧠 얻은 것들</h2>
<ul>
<li><strong>커뮤니케이션 능력</strong>: 영어 발표에 대한 두려움을 넘어서, 오히려 재미있게 느낄 수 있었다.</li>
<li><strong>아이디어를 설득하는 힘</strong>: 그냥 좋은 생각이 아니라, “왜 지금 이 아이디어여야 하는가?“를 말할 수 있게 되었다.</li>
<li><strong>로벌 협업 감각</strong>: 타국 멘토, 교수님, 친구들과 짧은 시간 안에 소통하고 협업했던 경험이 큰 자산이 되었다.</li>
<li><strong>진짜 발표란 무엇인가?</strong> 발표란 단지 말하는 것이 아니라 <strong>공감시키는 기술</strong>이라는 것을 배웠다.<h2 id="✍️-마무리하며">✍️ 마무리하며</h2>
나는 아직 고등학생이고, 여전히 배우는 과정에 있지만, 이번 실리콘밸리 경험은 내가 어디로 가야 할지를 조금 더 분명하게 보여준 시간이었다.</li>
</ul>
<p>기획자, 디자이너, 발표자… 어떤 역할이든, 내가 만든 것에 확신을 갖고 사람들 앞에서 이야기할 수 있는 사람이 되고 싶다.</p>
<p>그리고 이 경험을 통해, 단지 실력을 쌓는 것이 아니라 <strong>‘사람들과 연결되는 기술’</strong>을 더 배우고 싶어졌다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[RAM의 특징과 종류]]></title>
            <link>https://velog.io/@hxmxx_/RAM%EC%9D%98-%ED%8A%B9%EC%A7%95%EA%B3%BC-%EC%A2%85%EB%A5%98</link>
            <guid>https://velog.io/@hxmxx_/RAM%EC%9D%98-%ED%8A%B9%EC%A7%95%EA%B3%BC-%EC%A2%85%EB%A5%98</guid>
            <pubDate>Mon, 02 Dec 2024 06:58:56 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/hxmxx_/post/da1bf699-5b42-47fc-8b8f-2560235322d4/image.webp" alt=""></p>
<blockquote>
<p><strong>RAM(Random Access Memory)</strong>은 컴퓨터 시스템에서 중요한 역할을 하는 휘발성 메모리이다.</p>
</blockquote>
<p>이는 프로세서가 데이터를 빠르게 읽고 쓰는 데 사용되며, 시스템 성능에 직접적인 영향을 미친다. 이번 글에서는 RAM의 특징과 종류를 자세히 알아볼 것이다.</p>
<hr>
<h1 id="ram의-특징">RAM의 특징</h1>
<ul>
<li><h3 id="휘발성-메모리">휘발성 메모리</h3>
RAM은 <strong>휘발성</strong> 메모리로, 전원이 꺼지면 저장된 데이터가 모두 사라진다. 이는 장기적인 데이터 저장이 아닌 <strong>일시적인 데이터 처리</strong>를 위해 설계된 메모리라는 점에서 중요하다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/hxmxx_/post/8dd1c85d-8be0-4840-8243-60eb4cf47ad8/image.jpg" alt=""></p>
<ul>
<li><h3 id="빠른-데이터-접근-속도">빠른 데이터 접근 속도</h3>
RAM은 HDD나 SSD 같은 저장장치에 비해 매우 빠른 속도를 제공한다. 이는 프로세서가 실행 중인 프로그램과 데이터를 실시간으로 처리할 수 있도록 돕는다.</li>
<li><h3 id="랜덤-액세스-random-access">랜덤 액세스 (Random Access)</h3>
RAM은 데이터를 랜덤하게 접근할 수 있습니다. 즉, <strong>메모리의 어떤 위치라도 동일한 시간에 접근</strong>할 수 있다는 뜻입니다. 이는 순차적으로 데이터를 읽어야 하는 HDD와의 큰 차이점입니다.</li>
</ul>
<ul>
<li><h3 id="데이터-읽기쓰기">데이터 읽기/쓰기</h3>
RAM은 데이터를 <strong>읽고 쓰는 속도</strong>가 균일하다. 이는 컴퓨터가 여러 프로그램을 동시에 실행하거나 빠르게 작업을 전환하는데 유리하다.</li>
</ul>
<hr>
<h1 id="ram의-주요-종류">RAM의 주요 종류</h1>
<blockquote>
<p>RAM은 크게 <strong>SRAM과 DRAM</strong>으로 나뉜다. 이 두 가지는 설계 방식과 사용 용도에 따라 세부적으로 구분된다.</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/hxmxx_/post/60493f7f-4ebf-4b3a-806d-5772840c8883/image.png" alt=""></p>
<ul>
<li><h3 id="sram-static-ram">SRAM (Static RAM)</h3>
SRAM은 데이터를 유지하기 위해 전원이 필요한 정적 메모리이다. DRAM보다 속도가 빠르고 전력 소모가 적지만, 제조 비용이 높아 용량이 제한적이다.</li>
<li><h4 id="특징">특징</h4>
빠른 속도
전력 효율이 높음
비싸고 용량이 작음</li>
<li><h4 id="주요-사용처">주요 사용처</h4>
CPU의 <strong>캐시 메모리</strong>
GPU 내부 메모리</li>
<li><h3 id="dram-dynamic-ram">DRAM (Dynamic RAM)</h3>
DRAM은 데이털르 유지하기 위해 일정 시간마다 <strong>재충전(Refresh)</strong>이 필요한 동적 메모리이다. SRAM보다 느리고 전력 소모가 크지만, 가격이 저렴하고 용량이 크다.</li>
<li><h4 id="dram의-종류">DRAM의 종류</h4>
</li>
<li><em>SDRAM (Synchronous DRAM)*</em>
   클럭 신호를 기준으로 동작하며, CPU와 동기화된다.
   구형 컴퓨터에서 사용되었다.</li>
<li><em>DDR (Double Data Rate SDRAM)*</em>
   한 클럭 사이클에 두 번 데이터를 전송할 수 있는 DRAM.
   현재 사용되는 대부분의 RAM은 DDR 기반이다.  </li>
<li><em>DDR1, DDR2, DDR3, DDR4, DDR5*</em>로 발전하며, 세대가 높아질수록 속도와 대역폭이 증가하고 전력 소모는 감소한다.</li>
<li><h4 id="gddr-graphics-ddr">GDDR (Graphics DDR)</h4>
저전력 설계로, 모바일 기기나 노트북에 적합하다.</li>
<li><em>LPDDR4, LPDDR5*</em> 등이 사용중이다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/hxmxx_/post/57b54a4c-f753-4202-a4d2-10cd31986038/image.png" alt=""></p>
<hr>
<h1 id="ram-용량과-성능의-관계">RAM 용량과 성능의 관계</h1>
<ul>
<li><h2 id="용량">용량</h2>
RAM 용량이 크면 동시에 실행할 수 있는 프로그램이 늘어나고 멀티태스킹 성능이 향상된다.
일반적으로 <strong>8GB</strong>는 보편적 사용에 적합하며, 고사양 작업(게임, 영상 편집 등)에는 <strong>16GB</strong> 이상이 권장된다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/hxmxx_/post/642e4fe5-d3dd-479d-a967-7f0fc8bcd19f/image.gif" alt=""></p>
<ul>
<li><h2 id="클럭-속도와-대역폭">클럭 속도와 대역폭</h2>
클럭 속도(MHz)가 높을수록 데이터 처리 속도가 빨라진다. 하지만 CPU와 메인보드가 지원하는 속도를 초과하면 성능에 제약이 발생한다.</li>
<li><h2 id="채널-구성">채널 구성</h2>
싱글 채널보다 듀얼 채널 구성이 데이터 전송 속도에서 더 유리하다. RAM을 두 개의 슬롯에 장착하여 <strong>듀얼 채널</strong>로 구성하면 더 나은 성능을 얻을 수 있다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/hxmxx_/post/02644675-e11a-42b4-8d98-82a48fc23c7d/image.jpg" alt=""></p>
<hr>
<h1 id="결론">결론</h1>
<p>RAM은 컴퓨터의 일시적인 데이터 저장과 처리 속도를 담당하는 핵심 구성 요소이다. 사용 목적에 따라 적합한 종류와 용량의 RAM을 선택하는 것이 중요하며, RAM 업그레이드는 시스템 성능 향상의 주요 방법 중 하나이다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[React 진짜 제대로 이해하기]]></title>
            <link>https://velog.io/@hxmxx_/React-%EC%A7%84%EC%A7%9C-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@hxmxx_/React-%EC%A7%84%EC%A7%9C-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0</guid>
            <pubDate>Tue, 08 Oct 2024 05:48:06 GMT</pubDate>
            <description><![CDATA[<h1 id="들어가며">들어가며</h1>
<p>주니어 개발자인 나에게 &quot;어떻게 하면 리액트에 대해 더 깊게 이해할 수 있을까?&quot;를 고민하던 중 &quot;하나부터 열까지 다 적어보면 되지 않을까?&quot;라는 생각에 시작하게 되었다.</p>
<h1 id="react란-무엇인가">React란 무엇인가?</h1>
<p>React는 사용자 인터페이스 구축을 위한 <strong>자바스크립트 라이브러리</strong>이다. 2013년 페이스북에서 처음 개발되었으며, 현재는 많은 기업에서 사용하고 있다. React의 주요 매력은 <strong>효율적인 UI 렌더링</strong>과 <strong>컴포넌트 기반 개발</strong>을 가능하게 하는 것이다.
<del>컴포넌트 기반 개발을 하지 않는다면 React의 진가를 못 볼 수도..</del></p>
<h1 id="react의-주요-개념">React의 주요 개념</h1>
<h2 id="1-컴포넌트-기반-구조">1. 컴포넌트 기반 구조</h2>
<p>React는 UI를 <strong>컴포넌트</strong>라는 독립적이며 재사용 가능한 작은 단위로 쪼개서 개발하는 방식이다.컴포넌트는 각각의 상태 &amp; 로직을 가지고 있어, 대규모 어플리케이션을 더 효율적이고 직관적으로 관리할 수 있다. 컴포넌트는 함수형 혹은 클래스형으로 정의할 수 있다.</p>
<pre><code>function Component() {
    return &lt;h1&gt;Hello, Velog!&lt;/h1&gt;;
}</code></pre><p>[함수형 컴포넌트] : <code>function</code>으로 정의하고, 간단한 UI 요소를 만들 때 자주 사용된다.
<del>[클래스형 컴포넌트] : ES6의 클래스 문법을 사용해 정의하며, React 16.8 이후 훅(Hook) 도입으로 함수형 컴포넌트가 더 자주 사용된다.</del></p>
<h2 id="2-jsx-javascript-xml">2. JSX (JavaScript XML)</h2>
<p>JSX는 자바스크립트 코드 내에 HTML과 비슷한 구문을 사용할 수 있게 해주는 문법이다. React 컴포넌트에서 UI를 정의할 때 사용하고, 실제로는 브라우저가 이해할 수 있는 자바스크립트로 변환된다.</p>
<pre><code>const element = &lt;h1&gt;Hello, Velog!&lt;/h1&gt;;</code></pre><blockquote>
<p>JSX는 HTML과 매우 비슷하지만 자바스크립트를 지원하므로, <strong>동적인 데이터</strong>를 <strong>쉽게 처리</strong>할 수 있다.</p>
</blockquote>
<h2 id="3-virtual-dom-가상-dom">3. Virtual DOM (가상 DOM)</h2>
<p>React는 <strong>Virtual DOM</strong>이라는 개념을 통해 성능을 최적화한다. <del>브러우저의 실제 DOM에 직접 접근하여 변경하는 것은 비용이 많이 들어서..</del>  React는 가상 DOM을 메모리에 두고, 그곳에서 UI 업데이트를 처리한다. 이후 변화된 부분만 실제 DOM에 반영하여 성능을 향상시킨다.</p>
<blockquote>
<p>Virtual DOM은 React의 <strong>핵심 성능 최적화 전략</strong>이다.
실제 DOM 조작을 최소화하여, 화면을 빠르게 갱신할 수 있다.</p>
</blockquote>
<h2 id="4-리액티브반응형-프로그래밍">4. 리액티브(반응형) 프로그래밍</h2>
<p>React는 리액티브 프로그래밍 방식으로 작동한다. 이는 상태가 변화하면 그에 따라 UI가 자동으로 다시 렌더링되는 구조다. 사용자가 상호작용하거나 데이터가 업데이트되면, 해당 부분만 다시 그려주어 효율적인 UI 업데이트가 가능하다.</p>
<h1 id="react의-주요-개념들">React의 주요 개념들</h1>
<h2 id="1-컴포넌트의-상태-state">1. 컴포넌트의 상태 (State)</h2>
<p>컴포넌트는 상태를 가질 수 있고, 이 상태는 컴포넌트의 동작과 렌더링 결과를 결정한다. 상태는 동적인 데이터이며, 상태가 변경되면 컴포넌트가 다시 렌더링된다.</p>
<pre><code>import React, { useState } from &#39;react&#39;;

function Counter () {
    const [count, setCount] = useState(0);
    return (
        &lt;div&gt;
            &lt;p&gt; 현재 카운트 : {count} &lt;/p&gt;
            &lt;button onClick={() =&gt; setCount(count+1)}&gt; 증가 &lt;/div&gt;
    );
}</code></pre><blockquote>
<p><code>useState</code>는 상태를 관리하기 위해 사용되는 <strong>훅(Hook)</strong>이다.
상태가 업데이트되면, React는 해당 컴포넌트를 다시 렌더링하여 새로운 값을 화면에 보여준다.</p>
</blockquote>
<h2 id="2-props-속성">2. Props (속성)</h2>
<p>Props는 컴포넌트 간에 데이터를 전달하는 방법이다. 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달할 때 사용되며, Props는 읽기 전용으로, 자식 컴포넌트에서는 수정할 수 없다.</p>
<pre><code>function Welcome(props) {
    return &lt;h1&gt; Hello, {props.name}! &lt;/h1&gt;;
}

function App() {
    return &lt;Welcome name=&quot;Velog&quot; /&gt;;
}</code></pre><blockquote>
<p>위 예제는 <code>App</code> 컴포넌트가 <code>Welcome</code> 컴포넌트에 <code>name</code>이라는 Props를 전달하고, <code>Welcome</code>은 이를 이용해 &quot;Hello, Velog!&quot;를 렌더링한다.</p>
</blockquote>
<h2 id="3-렌더링">3. 렌더링</h2>
<p>React 컴포넌트에서는 렌더링이라는 과정을 통해 UI를 그린다. <code>render()</code> 함수 또는 함수형 컴포넌트에서 JSX를 반환하며, React는 이 JSX를 실제 DOM으로 변환해 브라우저에 표시한다.</p>
<pre><code>function Greeting() {
    return &lt;h1&gt;Hello, world!&lt;/h1&gt;;
}</code></pre><h2 id="4-useeffect-부수-효과-처리">4. useEffect (부수 효과 처리)</h2>
<p><code>useEffect</code>는 컴포넌트가 렌더링될 때 또는 특정 상태가 변경될 때 부수 효과(side Effects)를 처리할 수 있게 도와주는 훅이다. 예를 들어 API 호출, 구독(Subscription), DOM 업데이트와 같은 작업을 수행할 때 사용된다.</p>
<pre><code>import React, { useState, useEffect } from &#39;react&#39;;

function Timer() {
    const [count, setCount] = useState(0);

    useEffect(() =&gt; {
        const timer = setInterval(() =&gt; {
            setCount(prevCount =&gt; prevCount + 1);
        }, 1000);

        return () =&gt; clearInterval(timer); // 컴포넌트가 사라질 때 정리 작업
    }, []);

    return &lt;p&gt; {count}초가 지났습니다. &lt;/p&gt;;
}
</code></pre><p>위 코드는 타이머를 구현한 예시다. useEffect는 컴포넌트가 처음 렌더링될 때 타이머를 시작하고, 컴포넌트가 사라질 때 타이머를 정리(clean-up)한다.</p>
<h1 id="react의-성능-최적화">React의 성능 최적화</h1>
<h2 id="1-메모이제이션">1. 메모이제이션</h2>
<p>React는 컴포넌트가 자주 렌더링될 때 성능을 최적화하기 위해 메모이제이션을 지원한다. <code>useMemo</code> 와 <code>useCallBack</code> 훅을 사용해 함수나 계산된 값을 메모이제이션할 수 있다.</p>
<pre><code>const memoizedValue = useMemo(() =&gt; computeExpensiveValue(a, b), [a, b]);
</code></pre><h2 id="2-lazy-loading">2. Lazy Loading</h2>
<p>React는 <code>React.lazy()</code> 와 <code>Suspense</code>를 이용해 <strong>지연 로딩</strong>을 지원한다. 이는 필요한 시점에만 컴포넌트를 로딩하여 초기 로딩 시간을 줄일 수 있게 한다.</p>
<pre><code>const LazyComponent = React.lazy(() =&gt; import(&#39;./MyComponent&#39;));

function App() {
    return (
        &lt;Suspense fallback={&lt;div&gt;Loading...&lt;/div&gt;}&gt;
            &lt;LazyComponent /&gt;
        &lt;/Suspense&gt;
    );
}</code></pre><h2 id="3-code-splitting-코드-분할">3. Code Splitting (코드 분할)</h2>
<p>Webpack과 같은 도구를 결합해 코드를 <strong>분할</strong>하여 페이지 로딩 시간을 단축할 수 있다. React는 <code>React.lazy()</code>를 통해 필요한 컴포넌트만 로드하여 성능을 최적화한다.</p>
<h1 id="react의-확장성">React의 확장성</h1>
<p>React는 다양한 도구 및 라이브러리와 잘 어우러져 큰 프로젝트에도 확장 가능하다.</p>
<h3 id="1-react-router">1. React Router</h3>
<p>페이지 간 라우팅을 관리한다.</p>
<h3 id="2-redux">2. Redux</h3>
<p>전역 상태 관리를 도와주는 라이브러리로, 복잡한 상태 관리를 체계적으로 처리할 수 있다.</p>
<h3 id="3-styled-components">3. Styled Components</h3>
<p>컴포넌트 스타일링을 위한 CSS-in-JS 라이브러리다.</p>
<h3 id="4-nextjs">4. Next.js</h3>
<p>서버 사이드 렌더링(SSR)과 정적 사이트 생성(SSG)을 지원하는 React 프레임워크로, 성능과 SEO 최적화를 위해 자주 사용됩니다.</p>
<h1 id="따라서">따라서</h1>
<p>React는 <strong>컴포넌트 기반</strong> 개발 방식과 <strong>Virtual DOM</strong>을 통한 성능 최적화로 대규모 애플리케이션 개발에 적합한 라이브러리다. 사용자가 상호작용하거나 상태가 변화할 때 UI를 자동으로 다시 렌더링하여, 동적이고 반응형인 웹 애플리케이션을 쉽게 구축할 수 있다.</p>
]]></description>
        </item>
    </channel>
</rss>