<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>0xMegg.log</title>
        <link>https://velog.io/</link>
        <description>코미디언</description>
        <lastBuildDate>Sun, 05 Apr 2026 07:29:43 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>0xMegg.log</title>
            <url>https://images.velog.io/images/finero-d/profile/879c7d03-5880-4872-af15-e206d300e1f9/eggs.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. 0xMegg.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/finero-d" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[v3.0 릴리스하고 직접 써봤다 — 하루 만에 버그 3개, 다이브베이스 Task 10개 완료]]></title>
            <link>https://velog.io/@finero-d/002</link>
            <guid>https://velog.io/@finero-d/002</guid>
            <pubDate>Sun, 05 Apr 2026 07:29:43 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>하네스 템플릿 전담 세션을 새로 만들고, v3.0을 릴리스했다. 그리고 직접 써보면서 3시간 안에 버그 3개를 잡았다. 다이브베이스에 적용한 리팩토링 10개 Task도 전부 완료해서 종료 판정.</p>
</blockquote>
<hr>
<h2 id="이날-생긴-것들">이날 생긴 것들</h2>
<p>어제까지 Planner / Developer / Reviewer 3개 세션으로 돌아가던 구조에, 오늘 두 가지가 추가됐다.</p>
<ul>
<li><strong>하네스 전담 세션</strong>: 템플릿 자체를 점검하고 개선하는 역할. 코드베이스에서 완전히 분리.</li>
<li><strong>다이브베이스 통합 세션</strong>: 하네스 시스템을 전반적으로 살피면서 다이브베이스에 적용하는 역할.</li>
</ul>
<p>역할이 분리되니까 &quot;지금 템플릿을 고치는 건지, 프로젝트를 고치는 건지&quot;가 명확해졌다. 전날까지는 이게 섞여 있었다.</p>
<hr>
<h2 id="1부-하네스-템플릿-v30">1부: 하네스 템플릿 v3.0</h2>
<h3 id="무엇이-추가됐나">무엇이 추가됐나</h3>
<p><strong>Slash Commands</strong> — <code>/plan</code>, <code>/develop</code>, <code>/review</code></p>
<p>기존엔 역할을 전환할 때 프롬프트를 길게 타이핑해야 했다. 이제 한 단어면 된다. <code>/review</code>를 치는 순간 Claude가 Reviewer 모드로 들어간다.</p>
<p><strong>Auto-lint Hook</strong> — <code>post-edit-lint.sh</code></p>
<p>파일을 수정할 때마다 자동으로 프로젝트 타입에 맞는 린터가 실행된다. PostToolUse 훅으로 걸어놓으니, Developer가 커밋 전에 &quot;린터 돌려야 하는데&quot; 를 신경 쓸 필요가 없어졌다.</p>
<p><strong>Verify 템플릿</strong> — <code>templates/verify.md</code></p>
<p>Planner가 구현 계획을 쓸 때, 검증 계획도 별도 파일로 작성하게 됐다. 리뷰 단계에서 Reviewer가 이 파일을 참조해서 체크한다.</p>
<p><strong>Plan Mode Rules</strong></p>
<p>3개 이상 파일을 수정하거나 <code>COMPLEXITY: HIGH</code>인 작업은 Planner가 plan을 먼저 작성해야 Developer가 시작할 수 있다. 규칙으로 박아놓으니 큰 작업을 plan 없이 바로 구현하는 일이 없어졌다.</p>
<p><strong>/blog 커맨드</strong></p>
<p>handoff, git log, reviews를 읽어서 블로그 포스트 초안을 자동 생성한다. 이 글도 그 결과물이다.</p>
<hr>
<h2 id="2부-릴리스-후-3시간-버그-3개">2부: 릴리스 후 3시간, 버그 3개</h2>
<p>v3.0을 릴리스하고 바로 다이브베이스에 적용해서 써봤다. 3시간 안에 fix 커밋 3개가 나왔다.</p>
<h3 id="fix-1--review-출력이-영어였다">Fix 1 — <code>/review</code> 출력이 영어였다</h3>
<p>README는 한국어인데 커맨드 터미널 출력만 영어로 나왔다. 사용자 경험이 일관되지 않은 거라 바로 한국어로 바꿨다.</p>
<h3 id="fix-2--reviewer가-verifymd를-읽지-않고-있었다">Fix 2 — Reviewer가 verify.md를 읽지 않고 있었다</h3>
<p>v3에서 verify 템플릿을 추가했지만, Reviewer 워크플로우에 해당 파일을 읽는 단계를 빠뜨렸다. 새 기능을 추가하면 기존 워크플로우에서 참조가 연결되어 있는지 반드시 확인해야 한다는 교훈.</p>
<h3 id="fix-3--reporthandoff가-커밋에-빠지고-있었다">Fix 3 — report/handoff가 커밋에 빠지고 있었다</h3>
<p>가장 치명적인 버그였다. Reviewer 워크플로우가 APPROVE → commit → report/handoff 순서로 동작하고 있어서, report와 handoff 파일이 커밋에 포함되지 않았다. report + handoff를 먼저 작성하고 commit을 마지막으로 이동했다.</p>
<p>워크플로우에서 <strong>순서</strong>는 정말 중요하다. 문서로만 보면 절대 발견 못 할 버그다. 직접 돌려봐야 보인다.</p>
<hr>
<h2 id="3부-다이브베이스-리팩토링-완주">3부: 다이브베이스 리팩토링 완주</h2>
<p>어제 시작한 다이브베이스 개선 Task를 전부 마무리했다. 오늘 완료된 것만 10개.</p>
<h3 id="프로세스-정비">프로세스 정비</h3>
<p>Task 7 Reviewer 승인(어제 넘겼던 대형 파일 분리 2,186줄 → 790줄)을 통과시키고, 하네스 문서 언어를 영문으로 통일했다. 한영 혼재가 생각보다 혼선을 많이 만든다.</p>
<h3 id="리팩토링-5개">리팩토링 5개</h3>
<table>
<thead>
<tr>
<th>Task</th>
<th>내용</th>
</tr>
</thead>
<tbody><tr>
<td>Task 8</td>
<td>공유 유틸 5개를 <code>dive_log_utils.dart</code>로 추출 — 스쿠버/프리다이빙 리포에 중복된 로직 통합</td>
</tr>
<tr>
<td>Task 9</td>
<td>미사용 의존성 3개 제거 (<code>collection</code>, <code>equatable</code>, <code>build_runner</code>)</td>
</tr>
<tr>
<td>Task 10</td>
<td>Logs feature에 State 레이어 추가 — Riverpod 패턴 완성</td>
</tr>
<tr>
<td>Task 11</td>
<td><code>AppException</code> 계층 도입 — Repository 전체 에러 처리 표준화</td>
</tr>
<tr>
<td>Task 12</td>
<td>레거시 fetch 메서드를 <code>features/logs/data/</code>로 이동</td>
</tr>
</tbody></table>
<h3 id="테스트-22개-→-70개">테스트: 22개 → 70개</h3>
<p>테스트가 없던 코드베이스에 하루 만에 48개가 추가됐다.</p>
<ul>
<li><strong>Task 13</strong>: 유틸 함수 26개 + 리포지토리 validation 22개 = 48개 유닛 테스트</li>
<li><strong>Task 14</strong>: <code>mocktail</code> 기반 Supabase 목 인프라 구축 + 통합 테스트 15개 추가</li>
</ul>
<p>Supabase 목킹이 생각보다 까다로웠다. <code>SupabaseQueryBuilder</code>가 <code>Future</code>를 구현하고 있어서 <code>thenReturn</code>이 안 먹고 <code>thenAnswer</code>를 써야 했다. 빌더 체이닝(<code>select().eq().maybeSingle()</code>)도 단계마다 다른 타입을 반환해서 <code>FakePostgrestBuilder</code>와 <code>FakeInsertBuilder</code>를 따로 만들어야 했다. 한번 잡아놓으니 이후 테스트 추가 속도가 빨라졌다.</p>
<h3 id="정리">정리</h3>
<ul>
<li><code>ai/</code> 디렉토리(Python 스크립트 22개) 삭제 — 3-Role 워크플로우로 완전히 대체</li>
<li>아카이브 문서 25개 삭제 — <code>handoff/archive/</code>로 정책 일원화</li>
</ul>
<hr>
<h2 id="숫자로-보는-하루">숫자로 보는 하루</h2>
<table>
<thead>
<tr>
<th>지표</th>
<th>값</th>
</tr>
</thead>
<tbody><tr>
<td>완료 Task</td>
<td>10개 (Task 8–16 + H1/H1C)</td>
</tr>
<tr>
<td>커밋</td>
<td>17개</td>
</tr>
<tr>
<td>테스트</td>
<td>22개 → 70개 (+48)</td>
</tr>
<tr>
<td>삭제한 파일</td>
<td>47개</td>
</tr>
<tr>
<td>제거한 의존성</td>
<td>3개</td>
</tr>
</tbody></table>
<hr>
<h2 id="회고">회고</h2>
<p><strong>&quot;만들고 → 써보고 → 고친다&quot; 사이클이 짧을수록 좋다.</strong> v3 릴리스 후 3시간 안에 fix 3개. 문서로만 검토했으면 Fix 2, 3은 절대 못 찾았다.</p>
<p><strong>리팩토링 순서가 생명이다.</strong> Task 8(공유 유틸 추출) → Task 13(유틸 테스트) 순서가 맞았다. 테스트를 먼저 썼으면 리팩토링 후 테스트를 다시 고쳐야 했을 것이다. 이미 동작하는 코드의 구조를 바꾸는 거라면, 구조가 안정된 후에 테스트를 쓰는 게 효율적이다.</p>
<p><strong>3-Role 워크플로우 2일차.</strong> 17커밋 전부 <code>dart analyze</code> 통과 + 테스트 통과 상태로 들어갔다. Reviewer가 매 Task마다 검증하니까 &quot;나중에 한꺼번에 고치자&quot;가 생길 틈이 없다. 다만 작은 Task에도 Plan → Dev → Review 3단계를 밟다 보니 오버헤드가 있다. Task 15(파일 삭제)같은 건 Plan 없이 바로 해도 됐을 것 같다.</p>
<p><strong>다음에 할 것</strong>: 실제 프로젝트에서 쌓인 피드백으로 하네스 v3.1 다듬기, auto-lint hook 실사용 검증, Epic 플래닝 워크플로우 실전 테스트.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Claude Code를 처음 써봤다 — 템플릿 만들고, 실전에 던지고, 하루 만에 기술 부채 8개 청산]]></title>
            <link>https://velog.io/@finero-d/001</link>
            <guid>https://velog.io/@finero-d/001</guid>
            <pubDate>Fri, 03 Apr 2026 03:17:25 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>Claude Code를 도입한 첫날 기록. 하네스 템플릿을 v2.0까지 끌어올리고, 바로 DiveBase 코드베이스에 적용해서 쌓인 기술 부채를 하루 만에 정리했다.</p>
</blockquote>
<hr>
<h2 id="시작-전-왜-지금-claude-code인가">시작 전: 왜 지금 Claude Code인가</h2>
<p>DiveBase는 스쿠버/프리다이빙 로그를 기록하는 Flutter 앱이다. 3월 중순에 MVP를 찍고 TestFlight까지 올렸지만, 빠르게 만들면서 쌓인 기술 부채가 계속 눈에 밟혔다. <code>.env</code>가 앱 번들에 포함되어 있고, <code>Navigator.push</code>와 GoRouter가 혼재하고, 에러 처리 없이 Supabase를 호출하는 곳이 있고, 1,000줄 넘는 위젯 파일이 있었다.</p>
<p>AI를 쓴다면 단순 코드 생성보다 &quot;계획 → 구현 → 검증&quot;을 구조화해서 쓰고 싶었다. 그래서 먼저 하네스 템플릿부터 만들었다.</p>
<hr>
<h2 id="1부-하네스-템플릿-v20">1부: 하네스 템플릿 v2.0</h2>
<p>Claude Code 마스터 가이드(583p)를 기반으로 초기 템플릿을 만들고, 빠르게 개선을 반복했다. 이날 가장 핵심이 된 건 <strong>3-Role Workflow</strong>다.</p>
<pre><code>Planner → Developer → Reviewer</code></pre><ul>
<li><strong>Planner</strong>: 태스크 계획 + Epic 분해</li>
<li><strong>Developer</strong>: 구현만 담당 (커밋 없음)</li>
<li><strong>Reviewer</strong>: 검토 후 APPROVE 시에만 커밋 + 푸시</li>
</ul>
<p>Developer는 코드만 작성하고, Reviewer가 APPROVE할 때만 커밋+푸시한다. 사람이 셀프 리뷰하면 놓치기 쉬운 것들 — dead code, 잔존하는 직접 호출 — 을 Reviewer 단계에서 잡아내는 구조다.</p>
<p>문서는 전부 영어로 전환했다. 새 Claude 세션마다 한국어를 해석하는 데 소모되는 토큰이 무시할 수 없어서다. 인간이 읽는 <code>README.md</code>만 한국어로 남겼다.</p>
<p>세션 간 컨텍스트 유실 문제는 두 가지 장치로 해결했다.</p>
<ul>
<li><strong>carry-over 필드</strong>: Reviewer가 발견한 이슈를 다음 Planner에게 명시적으로 전달</li>
<li><strong>decision-log</strong>: 과거 의사결정을 기록해두어 같은 논의를 반복하지 않도록</li>
</ul>
<hr>
<h2 id="2부-divebase에-바로-적용">2부: DiveBase에 바로 적용</h2>
<p>템플릿이 생기자마자 DiveBase 코드베이스에 던져봤다. 세션 시작 시점에 Claude가 분석한 점수는 이랬다.</p>
<table>
<thead>
<tr>
<th>영역</th>
<th>점수</th>
<th>비고</th>
</tr>
</thead>
<tbody><tr>
<td>디자인 시스템</td>
<td>9/10</td>
<td>토큰 중앙화 우수</td>
</tr>
<tr>
<td>Feature 구조</td>
<td>8/10</td>
<td>Home/Logs 우수, Auth/MyPage 미흡</td>
</tr>
<tr>
<td>Riverpod 패턴</td>
<td>7/10</td>
<td>—</td>
</tr>
<tr>
<td>데이터 계층</td>
<td>6/10</td>
<td>일관성 부족</td>
</tr>
<tr>
<td>보안</td>
<td>5/10</td>
<td>.env 번들 포함</td>
</tr>
<tr>
<td>테스트 가능성</td>
<td>4/10</td>
<td>—</td>
</tr>
</tbody></table>
<p>우선순위를 P0/P1으로 나눠서 Task를 쳐냈다.</p>
<h3 id="p0--보안-및-필수-수정">P0 — 보안 및 필수 수정</h3>
<p><strong>Task 1: <code>.env</code> 앱 번들 포함 제거</strong>
<code>flutter_dotenv</code> 의존성을 제거하고 <code>--dart-define</code> 방식으로 전환했다. APK를 풀면 Supabase 키가 그대로 노출되는 상태였다.</p>
<p><strong>Task 2: 불필요 파일 정리 (~38MB)</strong>
Figma export JSON 22개, 디버깅 로그, 빈 디렉토리 등을 정리. <code>.gitignore</code>에 패턴도 추가했다.</p>
<p><strong>Task 3: HomeScubaRepository 에러 처리</strong>
Supabase 호출 4곳에 <code>on PostgrestException catch</code> + <code>debugPrint</code>를 추가. 기존엔 에러가 나면 그냥 크래시했다.</p>
<p><strong>Task 4: <code>Navigator.push</code> → GoRouter 통일</strong>
5곳 전부 <code>context.push()</code>로 전환. 두 방식이 혼재하면 딥링크나 뒤로가기에서 문제가 생긴다.</p>
<h3 id="p1--구조-개선">P1 — 구조 개선</h3>
<p><strong>Task 5: MyPage → ProfileRepository 분리</strong>
MyPage에서 Supabase를 직접 호출하고 있었다. <code>ProfileRepository</code>를 만들어 Home/Logs와 동일한 Repository 패턴으로 통일했다.</p>
<p><strong>Task 6: Auth feature 레이어 추가</strong>
<code>AuthRepository</code> + <code>AuthProviders</code>를 추가하고 직접 호출을 제거했다. Reviewer가 dead code와 Supabase 직접 호출 잔존을 추가로 잡아냈다.</p>
<p><strong>Task 7: 대형 파일 분리</strong>
총 2,186줄 → 790줄. 3개 파일을 8개로 추출. Reviewer 승인은 다음 세션으로 넘겼다.</p>
<table>
<thead>
<tr>
<th>파일</th>
<th>Before</th>
<th>After</th>
</tr>
</thead>
<tbody><tr>
<td><code>dive_log_detail_screen.dart</code></td>
<td>1,084줄</td>
<td>352줄</td>
</tr>
<tr>
<td><code>home_page.dart</code></td>
<td>626줄</td>
<td>211줄</td>
</tr>
<tr>
<td><code>step1_basic_info.dart</code></td>
<td>476줄</td>
<td>227줄</td>
</tr>
</tbody></table>
<hr>
<h2 id="회고">회고</h2>
<p><strong>3-Role Workflow가 핵심이었다.</strong> Task 6 리뷰에서 Reviewer가 dead code와 Supabase 직접 호출 잔존을 잡아낸 게 인상적이었다. 사람이 셀프 리뷰하면 놓치기 쉬운 부분이다.</p>
<p><strong>보안은 MVP에서도 미루면 안 된다.</strong> <code>.env</code>가 번들에 포함된 건 &quot;나중에 고치지&quot;로 넘겼던 전형적인 케이스다. TestFlight에 올린 순간 이미 외부에 노출된 거나 마찬가지였다. 다행히 anon key라 피해는 없었지만, 습관이 되면 위험하다.</p>
<p><strong>패턴이 잡혀 있으면 확산이 빠르다.</strong> Task 5, 6은 새 파일 생성 + 기존 코드 수정이라 조금 더 걸렸지만, 이미 Home/Logs에 Repository 패턴이 있어서 그걸 따라가면 됐다. 구조를 먼저 잡아두는 게 나중에 속도를 만든다.</p>
<p><strong>다음에 할 것</strong>: Task 7 Reviewer 승인 마무리, 하네스 템플릿 실전 피드백 수집, Epic 플래닝 워크플로우 실전 테스트.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[스나이퍼팩토리, 한컴AI 2기 최종 회고]]></title>
            <link>https://velog.io/@finero-d/00dkmv</link>
            <guid>https://velog.io/@finero-d/00dkmv</guid>
            <pubDate>Wed, 31 Dec 2025 11:47:46 GMT</pubDate>
            <description><![CDATA[<ol>
<li>이번 프로젝트/성과발표회를 통해 배우고 느낀 점</li>
</ol>
<ul>
<li>가장 크게 깨달은 점 1~2가지<ul>
<li>이번 프로젝트를 통해 가장 크게 깨달은 점은, 팀 프로젝트에서는 모든 사람이 같은 온도와 속도로 움직이지 않는다는 사실이었습니다. 열심히 하는 태도가 항상 모두에게 긍정적으로 작용하지는 않을 수 있고, 누군가에게는 그 기준이 부담이 될 수도 있다는 점을 처음으로 진지하게 체감했습니다.
그럼에도 불구하고, 팀 전체의 결과물과 완성도를 위해 일정 수준의 기준을 유지하는 것이 왜 필요한지, 그리고 그 기준을 어떻게 전달해야 하는지를 고민하게 되었습니다.</li>
</ul>
</li>
<li>발표 준비 과정·협업 과정에서 느낀 변화<ul>
<li>이전에는 주어진 역할을 잘 수행하는 데 집중했다면, 이번에는 역할을 나누고 조율하며 의사결정을 내려야 하는 입장이 되었습니다. 협업 과정에서 기술적인 판단뿐 아니라 사람 사이의 균형을 고려해야 한다는 점을 실감했고, 그 과정 자체가 프로젝트의 중요한 일부라는 인식이 생겼습니다.</li>
</ul>
</li>
<li>이번 과정을 통해 이전의 나와 달라진 점<ul>
<li>단순히 구현을 잘하는 사람에서 벗어나, 결과에 대한 책임과 선택을 함께 감당하는 시각을 갖게 되었습니다. 실무자 관점뿐 아니라 관리자·결정권자의 관점으로 한 단계 사고가 확장되었다고 느낍니다.</li>
</ul>
</li>
</ul>
<ol start="2">
<li>내가 맡은 역할과 성과</li>
</ol>
<ul>
<li>이번 프로젝트에서 맡은 역할<ul>
<li>팀장 역할을 맡으며 프로젝트 전반의 기획, PM, 의사결정자 역할을 함께 수행했습니다. 서비스 컨셉 정의부터 기능 우선순위 설정, 전체 구조 설계, 발표 흐름 구성까지 전반을 총괄했습니다.</li>
</ul>
</li>
<li>구현한 기능 또는 기여한 부분<ul>
<li>LLM 기반 코드 품질 분석이라는 주제를 바탕으로, 코드 평가 및 개선 코드 제공이 가능한 VSCode Extension과 Web 서비스를 기획·구성했습니다. 프론트엔드와 백엔드 간의 API 구조와 데이터 흐름을 정리하고, 각 파트가 어떤 기준으로 협업해야 하는지 명확히 정의했습니다.</li>
</ul>
</li>
<li>내가 해결한 문제 또는 책임졌던 과제<ul>
<li>프로젝트 전반의 구성도 설계, 기능 범위 조율, QA/QC 기준 정리와 결과 검수를 직접 책임졌습니다. 제한된 서버 환경 안에서도 실제로 사용할 수 있는 수준의 서비스를 완성하는 것을 목표로 삼았고, 그 결과 최종적으로 우수팀이라는 성과를 얻을 수 있었습니다.</li>
</ul>
</li>
</ul>
<ol start="3">
<li>아쉬운 점 및 개선하고 싶은 부분</li>
</ol>
<ul>
<li>기술적으로 부족했던 부분<ul>
<li>기술적인 완성도 자체에 대해서는 큰 아쉬움은 없습니다. 주어진 환경과 제약 안에서 현실적으로 구현 가능한 최선의 결과를 만들었다고 생각합니다.</li>
</ul>
</li>
<li>시간 관리 / 협업 측면에서 아쉬웠던 부분<ul>
<li>협업 과정에서 더 잘할 수 있는 여지는 있었겠지만, 갈등 상황을 중재하고 팀의 흐름을 유지하는 역할을 충분히 수행했다고 느끼며 큰 후회는 남지 않았습니다.</li>
</ul>
</li>
<li>발표에서 충분히 전달하지 못한 내용<ul>
<li>발표 리허설과 시간 관리 측면에서는 아쉬움이 남습니다. 중간 발표 단계에서 발표 연습을 충분히 준비하지 못한 탓에, 최종 발표에서 예상보다 발표 속도가 느려졌고 일부 설명과 시연에 충분한 시간을 쓰지 못했습니다. 이 경험을 통해 발표 역시 초반부터 전략적으로 준비해야 한다는 점을 분명히 인식하게 되었습니다.</li>
</ul>
</li>
</ul>
<ol start="4">
<li>정규 교육 과정 중 나에게 도움이 되었던 파트</li>
</ol>
<ul>
<li>프로젝트에 가장 도움 되었던 수업<ul>
<li>정규 커리큘럼 자체는 프론트엔드, 백엔드, AI 수업 모두 깊이나 최신성 측면에서 이번 프로젝트에 직접적인 도움을 주었다고 보기는 어려웠습니다. 전반적으로 개념 소개 수준에 머물렀다고 느꼈습니다.</li>
</ul>
</li>
<li>배운 내용을 실제 프로젝트에 적용한 사례<ul>
<li>수업 내용보다는 AI 파트 강사님의 지속적인 멘토링이 큰 도움이 되었습니다. 프로젝트 진행 중 막히는 순간마다 AI뿐 아니라 프론트엔드, 백엔드, 아키텍처 설계, WBS, 평가 기준 설정, LLM 개선 효과를 검증하는 방법 등 실무적인 관점의 조언을 받을 수 있었고, 이는 프로젝트의 방향성과 완성도를 결정하는 데 중요한 역할을 했습니다.</li>
</ul>
</li>
</ul>
<ol start="5">
<li>향후 목표 및 포트폴리오 개선 방향</li>
</ol>
<ul>
<li>강화하고 싶은 기술 1~2가지<ul>
<li>LLM 기반 서비스 기획 및 평가 구조 설계 역량, 그리고 프로젝트 관리와 의사결정 역량을 함께 강화하고 싶습니다.</li>
</ul>
</li>
<li>포트폴리오 챌린지 기간 동안 보완할 항목<ul>
<li>이번 프로젝트에서 수행한 PM 역할과 기여를 명확히 정리해 포트폴리오로 구조화할 계획입니다. 기술 구현뿐 아니라, 기획·조율·의사결정 과정이 드러나도록 정리하는 것이 목표입니다.</li>
</ul>
</li>
<li>취업 준비에 있어 스스로 세운 다음 단계<ul>
<li>개발자 포지션을 기본으로 하되, PM 포지션에도 가능성을 열어두고 준비하려 합니다. 좋은 기회가 있다면 직무에 국한되지 않고 도전해보고 싶으며, 이를 위해 개발자 포트폴리오와 PM 포트폴리오 구성 방식에 대해 고민하고 있습니다.</li>
</ul>
</li>
</ul>
<ol start="6">
<li>팀원들에게 감사하거나 공유하고 싶은 점</li>
</ol>
<ul>
<li>팀 프로젝트에서 고마웠던 점<ul>
<li>LLM 파트를 중심적으로 맡아준 팀원과, 프론트엔드 및 VSCode Extension 구현을 책임져준 팀원에게 특히 감사의 마음을 전하고 싶습니다. 두 분의 집중도와 책임감 덕분에 프로젝트가 아이디어 단계에서 실제 서비스 형태로 완성될 수 있었습니다.</li>
</ul>
</li>
<li>협업하며 배운 태도·소통 방식<ul>
<li>이번 협업을 통해 기술 역량 못지않게 사람 사이의 조율과 소통이 프로젝트 성공에 중요한 요소라는 점을 다시 한 번 체감했습니다. 서로 다른 속도와 관점을 조정해 하나의 결과물을 만들어가는 경험 자체가 큰 배움이었습니다.</li>
</ul>
</li>
</ul>
<hr>
<p>본 후기는 [한글과컴퓨터x한국생산성본부x스나이퍼팩토리] 한컴 AI 아카데미 2기 (B-log) 리뷰로 작성 되었습니다.</p>
<p>#한컴AI아카데미2기 #AI개발자 #AI개발자교육 #한글과컴퓨터 #한국생산성본부 #스나이퍼팩토리 #부트캠프 #AI전문가양성 #개발자교육 #개발자취업</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[스나이퍼팩토리, 한컴AI 2기 7주차 회고]]></title>
            <link>https://velog.io/@finero-d/07bestart</link>
            <guid>https://velog.io/@finero-d/07bestart</guid>
            <pubDate>Mon, 18 Aug 2025 06:57:56 GMT</pubDate>
            <description><![CDATA[<h1 id="frontend-마무리">Frontend 마무리</h1>
<h2 id="react-native-마무리-실습">React-Native 마무리 실습</h2>
<h3 id="thread-클론">Thread 클론</h3>
<p>React-Native, Zustand를 중점으로 회원가입 후 포스트를 작성 할 수 있는 Thread를 만들어보기. CRUD 활용, React-Native 익숙해지기, Zustand를 활용한 형상 관리 연습을 목표로 했다.</p>
<h4 id="결과물">결과물</h4>
<p><img src="https://velog.velcdn.com/images/finero-d/post/b52a0977-4f25-4d55-a557-1ae40a729ab7/image.png" alt=""></p>
<h1 id="backend-교육-시작">Backend 교육 시작</h1>
<ul>
<li>서버, Cloud computing, DB, SQL, 관계형 모델, 집합, JOIN 연산 등에 대한 개념 정리</li>
<li>SQL Query문 교육 시작
혼자 공부해둔 부분이라 딱히 기억 남는 부분이 없어 이번주 회고는 짧게 마무리</li>
</ul>
<hr>
<p>본 후기는 [한글과컴퓨터x한국생산성본부x스나이퍼팩토리] 한컴 AI 아카데미 2기 (B-log) 리뷰로 작성 되었습니다.</p>
<p>#한컴AI아카데미2기 #AI개발자 #AI개발자교육 #한글과컴퓨터 #한국생산성본부 #스나이퍼팩토리 #부트캠프 #AI전문가양성 #개발자교육 #개발자취업</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[스나이퍼팩토리, 한컴AI 2기 6주차 회고]]></title>
            <link>https://velog.io/@finero-d/06rnpokemon</link>
            <guid>https://velog.io/@finero-d/06rnpokemon</guid>
            <pubDate>Wed, 13 Aug 2025 07:40:57 GMT</pubDate>
            <description><![CDATA[<h1 id="앱-프론트엔드-교육-시작">앱 프론트엔드 교육 시작</h1>
<p>React의 학습이 어느정도 진행되었고, 우리 조를 포함한 일부는 Next.js를 활용하여 팀 프로젝트를 진행하였다. 웹 프론트엔드에 대한 이해도가 생겼다는 가정하에 앱 프론트엔드 실습 교육을 시작했다.</p>
<h2 id="react-native">React-Native</h2>
<p>React, Next.js와 문법적 유사성이 높은 React-Native를 활용하여 프로젝트를 진행하기로 한다.</p>
<h2 id="api-활용">API 활용</h2>
<p>팀 프로젝트 진행 시 일부는 외부 API를 잘 사용하였고, 일부는 난항을 겪었기에 외부 API를 다루는 프로젝트로 선정하여 실습 겸 교육을 진행한다.</p>
<hr>
<h1 id="gotta-catch-em-all">Gotta catch &#39;em all</h1>
<p>개발에 관심이 있는 20~30대 남자 위주의 수강생들의 선호에 맞춰 포켓몬스터 API를 활용한 간단한 게임을 만들어보기로 한다.</p>
<h2 id="기획">기획</h2>
<ul>
<li>대상 포켓몬 : 1세대 151마리</li>
<li>사냥터 : 10마리의 포켓몬이 랜덤으로 등장<ul>
<li>포켓몬 선택 : 해당 포켓몬의 정보를 간단히 보여주고, 실제 포획률에 맞춰 잡을 수 있도록 한다.</li>
</ul>
</li>
<li>도감 : 모든 종류의 포켓몬이 도감번호 순으로 보이고, 잡은 포켓몬의 경우 버튼이 활성화된다.</li>
<li>랭킹 : 사용자들 중 여러 포켓몬을 잡은 순으로 순위를 보여준다.</li>
<li>대시보드 : 미기획</li>
<li>회원가입 &amp; 로그인 : 회원가입 &amp; 로그인<h2 id="주요-사용-기술">주요 사용 기술</h2>
</li>
<li>App FE : React-Native, Expo</li>
<li>sub FE : Lucide-react-native, Nativewind</li>
<li>상태관리 : Zustand</li>
<li>DB : Supabase</li>
<li>API : Pokeapi</li>
</ul>
<hr>
<h1 id="결과물">결과물</h1>
<p><img src="https://velog.velcdn.com/images/finero-d/post/4c047d82-1b6b-4668-b00b-6cb97794574c/image.png" alt="">
<img src="https://velog.velcdn.com/images/finero-d/post/1ee45a64-5f00-4b6e-bab0-88c6f423a5aa/image.png" alt="">
<img src="https://velog.velcdn.com/images/finero-d/post/b1c8e307-c8d0-4778-8887-67c5bf18f378/image.png" alt=""></p>
<h2 id="회고">회고</h2>
<ol>
<li>React-Native 개발은 React와 흡사하여 태그 대신 쓸 컴포넌트만 잘 외워두면 예상보다 간단하게 앱을 개발할 수 있었다.</li>
<li>대부분의 핸드폰 화면 비율이 비슷하여 웹 FE에 비해 화면비에 신경을 덜 쓸 수 있었지만 대신 아이폰의 노치 &amp; 다이내믹 아일랜드, 갤럭시의 카메라 홀 등의 새로운 신경 쓸 부분이 있다.</li>
<li>pc화면으로 보이는 가상 핸드폰에서 보여주는 이미지와 Expo를 통해 실제로 구동한 앱의 이미지는 생각보다 차이가 있어서 주기적으로 확인이 필요하다.</li>
<li>코딩 중 포켓몬이라는 귀여운 이미지가 지속적으로 눈에 들어오는 것이 생각 이상으로 개발 과정에서 힘을 내게 해줬다.</li>
</ol>
<hr>
<p>본 후기는 [한글과컴퓨터x한국생산성본부x스나이퍼팩토리] 한컴 AI 아카데미 2기 (B-log) 리뷰로 작성 되었습니다.</p>
<p>#한컴AI아카데미2기 #AI개발자 #AI개발자교육 #한글과컴퓨터 #한국생산성본부 #스나이퍼팩토리 #부트캠프 #AI전문가양성 #개발자교육 #개발자취업</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[스나이퍼팩토리, 한컴AI 2기 5주차 회고]]></title>
            <link>https://velog.io/@finero-d/05fryiing</link>
            <guid>https://velog.io/@finero-d/05fryiing</guid>
            <pubDate>Wed, 13 Aug 2025 06:31:52 GMT</pubDate>
            <description><![CDATA[<h1 id="팀플-프로젝트---토이-프로젝트">팀플 프로젝트 -&gt; 토이 프로젝트</h1>
<h2 id="프로젝트-출범-계기">프로젝트 출범 계기</h2>
<p>팀플에서 만든 <code>후라이잉</code>의 기획자로서 내 기획물이 완성되지 않은 것에 아쉬움이 느껴져 개인 토이 프로젝트로 전환하기로 하였다.</p>
<p>시간이 부족하여 구현하지 못한 기능들, 만지지 못한 ui, 흐린 눈으로 넘어간 버그를 잡아서 만족할 수 있는 프로젝트로 만들어보자.</p>
<h2 id="홈페이지-흐름-정리">홈페이지 흐름 정리</h2>
<p><img src="https://velog.velcdn.com/images/finero-d/post/9a1c43b1-1cde-477a-92c9-5aa3e4224fbb/image.jpeg" alt="">
상세 기획이 정해지지 않고 우선 시작된 프로젝트다보니 사용자 흐름도부터 재정하였다.</p>
<h2 id="기획-변경">기획 변경</h2>
<p>구글폼 벤치마크에서 시작된 한컴AI아카데미2기 수강생들의 자기소개 작성 서비스였다보니 쓸데 없는 radio button, checkbox 등의 기능을 제거하였다. 그리고 앞으로도 서로의 포트폴리오를 확인 할 수 있는 나름의 커뮤니티로 주요 기능을 변경하였다.</p>
<h2 id="배포-및-도메인-추가">배포 및 도메인 추가</h2>
<p>수강생 전원이 언제든 접근할 수 있도록 배포하고, 무료로 사용할 수 있는 도메인 서비스를 통해 도메인도 연결했다.</p>
<h2 id="추가-업무">추가 업무</h2>
<ul>
<li>수기로 작성한 사용자 흐름도를 플로우차트 작법에 맞춰 figma 위에 구현하기</li>
<li>프로젝트 완성하기</li>
<li>public github repo 작성 및 협업용 Readme 정립</li>
</ul>
<h2 id="현-시점의-결과물">현 시점의 결과물</h2>
<p><img src="https://velog.velcdn.com/images/finero-d/post/f3f109ed-be8f-4de2-92ef-e95fc936017e/image.png" alt="">
https://후라이잉.온라인.한국/</p>
<p>——————————————————————————
본 후기는 [한글과컴퓨터x한국생산성본부x스나이퍼팩토리] 한컴 AI 아카데미 2기 (B-log) 리뷰로 작성 되었습니다.</p>
<p>#한컴AI아카데미2기 #AI개발자 #AI개발자교육 #한글과컴퓨터 #한국생산성본부 #스나이퍼팩토리 #부트캠프 #AI전문가양성 #개발자교육 #개발자취업</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[스나이퍼팩토리, 한컴AI 2기 4주차 회고]]></title>
            <link>https://velog.io/@finero-d/04toyprojectinit</link>
            <guid>https://velog.io/@finero-d/04toyprojectinit</guid>
            <pubDate>Tue, 29 Jul 2025 06:29:49 GMT</pubDate>
            <description><![CDATA[<h1 id="토이-팀플-시작">토이 팀플 시작</h1>
<h2 id="주제-선정">주제 선정</h2>
<h3 id="주제-후보-및-선정">주제 후보 및 선정</h3>
<ol>
<li><del>웹게임</del>
기획이나 기능 구현보다 기획에 치중된 프로젝트가 될 우려가 있어 제외</li>
<li><del>재고 관리 시스템</del>
따분할 것 같음</li>
<li>설문 작성 서비스
지금까지 배운 React 기반 FE 기술과 Supabase를 활용한 약식 백엔드 기능을 가장 잘 살릴 수 있을 것으로 기대됨</li>
<li><del>특정 지역 기반 맛집 추천 서비스</del>
어떤 서비스를 만들어야 할 지 직관적으로 떠오르지 않음<h3 id="서비스-목표-선정">서비스 목표 선정</h3>
</li>
<li>목표 : 모듈화된 컴포넌트들을 따로 만들어 사용자가 원하는 데이터를 골라 입력할 수 있는 텍스트 에디터</li>
<li>대상 : 한컴AI 2기 수강생</li>
<li>세부 목표 : 대상 이용자들이 자신에 대해 소개, 포트폴리오, SNS, 블로그 등을 게시할 수 있는 서비스</li>
<li>기대 : 앞으로 대략 5개월을 같이 보낼 수강생들이 서로에 대해 알 수 있고, 이후로도 소식을 공유할 수 있는 플랫폼<h3 id="초기-기획">초기 기획</h3>
<h4 id="데이터-및-유저-액션-흐름">데이터 및 유저 액션 흐름</h4>
<img src="https://velog.velcdn.com/images/finero-d/post/19efb1b2-2d6b-4d46-a1c2-d2e006e39b9d/image.png" alt="">
<a href="https://www.figma.com/community/file/1531910951987039621">피그마 링크</a>
로그인 기능이 있고, 구글폼과 비슷한 느낌으로 질답 폼을 작성 할 수 있는 서비스<h4 id="업무-분장-및-스케줄-관리">업무 분장 및 스케줄 관리</h4>
<img src="https://velog.velcdn.com/images/finero-d/post/e12e49c9-6a22-4b1c-b94e-96ceddac8d18/image.png" alt=""></li>
</ol>
<p>notion을 통한 업무 담당자 지정 및 스케줄 시각화</p>
<p>——————————————————————————
본 후기는 [한글과컴퓨터x한국생산성본부x스나이퍼팩토리] 한컴 AI 아카데미 2기 (B-log) 리뷰로 작성 되었습니다.</p>
<p>#한컴AI아카데미2기 #AI개발자 #AI개발자교육 #한글과컴퓨터 #한국생산성본부 #스나이퍼팩토리 #부트캠프 #AI전문가양성 #개발자교육 #개발자취업</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[스나이퍼팩토리, 한컴AI 2기 3주차 회고]]></title>
            <link>https://velog.io/@finero-d/03supabasezustand</link>
            <guid>https://velog.io/@finero-d/03supabasezustand</guid>
            <pubDate>Mon, 21 Jul 2025 06:19:14 GMT</pubDate>
            <description><![CDATA[<h1 id="주말-과제--mingo-클론-과제">주말 과제 : mingo 클론 과제</h1>
<h2 id="레퍼런스">레퍼런스</h2>
<p><img src="https://velog.velcdn.com/images/finero-d/post/5c3e9f84-5fd0-49cb-b4d0-ba827c782b1e/image.png" alt=""></p>
<h2 id="나의-클론">나의 클론</h2>
<p><img src="https://velog.velcdn.com/images/finero-d/post/f84770e1-9e93-46f0-a17c-a79dd99a9370/image.png" alt=""></p>
<h2 id="과제-학습을-통해-얻은-것">과제 학습을 통해 얻은 것</h2>
<ol>
<li>카카오페이지 클론 프로젝트 코드 리뷰에서 지적 받은 컴포넌트를 좀 더 효율적으로 사용하였다</li>
<li>프론트엔드 레이아웃을 보는 눈이 생겼고, TailwindCSS에 조금 익숙해지면서 원하는 코드 찾는 속도가 빨라졌다.</li>
</ol>
<h1 id="새로-진행한-작업">새로 진행한 작업</h1>
<p>한 주 내내 react, tailwind, zustand, supabase, 소셜 로그인을 기존 작업물에 덧붙였다.</p>
<h2 id="고민했던-것">고민했던 것</h2>
<p>제목, 카테고리, 썸네일, 사진 및 파일을 넣을 수 있는 게시글을 supabase에 업로드 하는 프론트 페이지 작성 중 제목, 게시물 등의 자료를 <code>useState</code>와 <code>onChange</code>를 사용하면 타이핑을 한 자 한 자 칠 때마다 메모리를 사용하는 것이 마음에 들지 않았다. 대신 발행하기 버튼의 <code>onClick</code> 이벤트를 통해 단 한 번 value를 받고자 <code>useRef</code>를 사용하여 value들을 받아 supabase에 업로드 하였다. 허나 강사님 피드백 결과 <code>useRef</code>는 주로 html element를 참조하는 용도로 자주 사용되기에 코드가 비 직관적이고, 해당 경우엔 <code>useMemo</code>를 사용했으면 의도에도 맞고 명시적으로 이해하기 쉬운 코드가 되었을 것이라고 조언해주셨다. 허나 <code>onChange</code> 이벤트를 수시로 일어나지 않는 의도로 작성한 좋은 코드라는 피드백까지 받았다.</p>
<h2 id="그-외-새로-배운-것">그 외 새로 배운 것</h2>
<ul>
<li>Local Storage, Session Storage, Cookies, Zustand를 사용한 로그인 데이터 유지 관리</li>
<li>소셜 로그인</li>
</ul>
<p>——————————————————————————
본 후기는 [한글과컴퓨터x한국생산성본부x스나이퍼팩토리] 한컴 AI 아카데미 2기 (B-log) 리뷰로 작성 되었습니다.</p>
<p>#한컴AI아카데미2기 #AI개발자 #AI개발자교육 #한글과컴퓨터 #한국생산성본부 #스나이퍼팩토리 #부트캠프 #AI전문가양성 #개발자교육 #개발자취업</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[스나이퍼팩토리, 한컴AI 2기 2주차 회고]]></title>
            <link>https://velog.io/@finero-d/02reacttailwind</link>
            <guid>https://velog.io/@finero-d/02reacttailwind</guid>
            <pubDate>Mon, 14 Jul 2025 07:03:08 GMT</pubDate>
            <description><![CDATA[<h1 id="html-css-과제-회고">html, css 과제 회고</h1>
<h2 id="transparent">transparent</h2>
<pre><code>background-color: &quot;transparent&quot;</code></pre><p>해당 영역의 배경색을 없애서(투명색으로 지정해서) 뒷 레이어의 색을 보이게 한다.</p>
<h1 id="지난주-과제--react-typescript-css를-활용한-카카오페이지-클론">지난주 과제 : react, typescript, css를 활용한 카카오페이지 클론</h1>
<p>kakaopage 클론
<a href="https://page.kakao.com/">https://page.kakao.com/</a></p>
<h3 id="레퍼런스">레퍼런스</h3>
<p><img src="https://velog.velcdn.com/images/finero-d/post/432b5b89-8050-4264-b801-b1140b32b142/image.png" alt=""></p>
<h3 id="나의-클론">나의 클론</h3>
<p><img src="https://velog.velcdn.com/images/finero-d/post/f88bb3a1-6706-4642-9c8d-a1b49dd9df74/image.png" alt=""></p>
<h2 id="새로-알게-된-부분">새로 알게 된 부분</h2>
<ol>
<li><p>margin: 0 auto
margin: 0px 0px과 같은 표현식
auto는 자식 요소를 가운데에 배치하고 남은 영역을 margin으로 채워 준다는 것을 뜻한다.</p>
</li>
<li><p>object-fit : cover
사용 의도 : 제한된 영역에 맞춰 그 보다 큰 이미지를 잘라 넣되 이미지 크기는 유지
cover : 크기가 줄어들음. 대체제 확인 요망
contain : 크기가 원본으로 나와버려서 의도에서 많이 벗어남</p>
</li>
<li><p>html, css를 쓰다 보니
kakaopage 클론시에 컴포넌트를 안쓰고 javascript로 개발할려고 들었다. 컴포넌트로 바꿔서 클로닝 마무리 하자.</p>
</li>
</ol>
<h1 id="ts-문법-교육">ts 문법 교육</h1>
<h2 id="궁금증-1">궁금증 1</h2>
<pre><code class="language-typescript">function a1(b: string, c: undefined = undefined) {
  console.log(b, c);
}

function a2(b: string, c?: string) {
  console.log(b, c);
}

a1(&quot;a&quot;);
a2(&quot;a&quot;);
</code></pre>
<p><code>c: undefined = undefined</code>가 <code>c?: string</code>이랑 어떻게 다른지 실험해보기</p>
<h2 id="결과">결과</h2>
<pre><code>a undefined
a undefined</code></pre><p>a1의 반환 결과는 c의 키가 존재하는 와중 할당된 undefined의 반환이고, a2의 반환 결과는 c가 없는 상태에서 강제로 console을 찍어서 없는 것을 출력하다보니 undefined가 나왔다.</p>
<p>——————————————————————————
본 후기는 [한글과컴퓨터x한국생산성본부x스나이퍼팩토리] 한컴 AI 아카데미 2기 (B-log) 리뷰로 작성 되었습니다.</p>
<p>#한컴AI아카데미2기 #AI개발자 #AI개발자교육 #한글과컴퓨터 #한국생산성본부 #스나이퍼팩토리 #부트캠프 #AI전문가양성 #개발자교육 #개발자취업</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[스나이퍼팩토리, 한컴AI 2기 1주차 회고]]></title>
            <link>https://velog.io/@finero-d/01htmlcss</link>
            <guid>https://velog.io/@finero-d/01htmlcss</guid>
            <pubDate>Sun, 06 Jul 2025 13:23:23 GMT</pubDate>
            <description><![CDATA[<h3 id="역시-모든-개발의-시작은-html-css지">역시 모든 개발의 시작은 HTML, CSS지</h3>
<p>개발의 첫 시작으로 HTML과 CSS 교육 진행 및 과제가 제출되었다. HTML 태그를 직접 쓰고 css 파일을 만들어 적용해 본 것이 워낙 오랜만이라 생소했다. 모르는 내용은 없었으나 css를 다루는 좋은 연습이 되었다.</p>
<p>한 주를 마무리하며 과제가 나왔다. 내용은 아래와 같은 페이지를 HTML, CSS를 사용해 구현하기.
<img src="https://velog.velcdn.com/images/finero-d/post/2c5c2cd2-4507-4b3e-a507-cdb1e49e5a0d/image.png" alt=""></p>
<p>구현하며 막혔던 순간이 세 번 있어 기록한다.</p>
<h3 id="마냥-만만하진-않았던-html-css">마냥 만만하진 않았던 HTML, CSS</h3>
<ol>
<li>background-color는 상속되지 않는다.
<img src="https://velog.velcdn.com/images/finero-d/post/2e0bb53a-3909-46ce-93c9-cff9785076f7/image.png" alt=""></li>
</ol>
<p>채팅 영역의 배경을 white로 적용하기 위해 가장 상위 div 태그에 white를 적용시켰으나 하얘진 영역은 일부였다. 확인 결과 특정 css는 상속이 되지 않는다고 하였고, 여러 해결법이 있었다. 태그에 일일이 white를 넣는 것은 세련된 것 같지 않아 아래의 코드로 해결하였다.</p>
<pre><code>*{
    background-color: white
}</code></pre><ol start="2">
<li><p>적용되지 않는 border-radius
마찬가지로 카드형식의 영역 귀퉁이를 부드럽게 다듬기 위해 border-radius를 주었으나 적용되지 않았다. 
<img src="https://velog.velcdn.com/images/finero-d/post/da488612-93f2-4154-a65a-00966e95d9e0/image.png" alt="">
실험을 해보니 겹친 영역들 모두 border-radius를 주면 해결된다는 것은 확인했다. 다만 더 좋은 해결 방법이 있을 것으로 생각했고, <code>overflow: hidden;</code>을 부모에게 주면, 부모 영역을 삐져나간 부분을 가려준다는 것을 확인하여 적용해 마무리했다.</p>
</li>
<li><p>html 
css 적용이 비일관적으로 되는 현상이 갑자기 나타나기 시작하였고, 커서로도 문제의 원인을 확인하지 못하고 있었다. 그렇게 원인을 찾던 중 css 적용의 비일관성 속에서 패턴이 보였고, 이를 실마리 삼아 찾아낸 문제는 아래와 같았다.</p>
<pre><code class="language-html">&lt;div class=&quot;upper&quot;&gt;
&lt;img src=&quot;img.jpg&quot; alt=&quot;img&quot; /&gt;
   &lt;div&gt;
   &lt;p&gt;심층 분석 대화&lt;/p&gt;
   &lt;p&gt;호스트 2명&lt;/p&gt;
   &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</code></pre>
</li>
</ol>
<p>```
위 코드에서 문제를 발견하는 데 꽤 오래 걸렸다. lint가 이 정도는 자동으로 걸러줄 것이라 믿었으나 가짜 <code>&lt;/div&gt;</code>를 걸러주지 못했다. 하필 이미지 태그와 같은 인덴트를 갖고 절묘하게 숨어있었다. 오늘 이후로 html 파일을 만들 일이 언제 또 있을지는 모르겠지만 같은 실수는 피할 수 있을 것이다.</p>
<h3 id="결과">결과</h3>
<p>위의 내용들을 반영하여 완성한 페이지는 아래와 같이 완성됐다. 이미지를 찾아 넣는 것은 생략하여 아무 이미지, 이모지로 대체하였다.
<img src="https://velog.velcdn.com/images/finero-d/post/ec970f1b-ef16-4a50-adf8-b121c8b52699/image.png" alt=""></p>
<p>——————————————————————————
본 후기는 [한글과컴퓨터x한국생산성본부x스나이퍼팩토리] 한컴 AI 아카데미 2기 (B-log) 리뷰로 작성 되었습니다.</p>
<p>#한컴AI아카데미2기 #AI개발자 #AI개발자교육 #한글과컴퓨터 #한국생산성본부 #스나이퍼팩토리 #부트캠프 #AI전문가양성 #개발자교육 #개발자취업</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[discordxbot with prisma & psql]]></title>
            <link>https://velog.io/@finero-d/discordxbot-with-prisma-psql</link>
            <guid>https://velog.io/@finero-d/discordxbot-with-prisma-psql</guid>
            <pubDate>Sat, 02 Dec 2023 11:30:51 GMT</pubDate>
            <description><![CDATA[<p>맨날 실행 마다 헤매지 말고 오늘은 정리</p>
<ul>
<li><p>OS는 우분투로 하자</p>
<ul>
<li>리눅스로 이번에 처참히 패배했다</li>
</ul>
</li>
<li><p>git 설치 및 pull</p>
</li>
<li><p>.env 까먹지 말기</p>
</li>
<li><p>nvm을 통해서 node를 깔자</p>
<ul>
<li>discordx는 node 16에서 제일 잘 돌아가는것 같다
<a href="https://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html">https://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html</a></li>
<li><code>npm i</code> </li>
</ul>
</li>
<li><p>postgresql 세팅</p>
<ul>
<li>postgresql 설치<pre><code>apt show postgresql
sudo apt install postgresql</code></pre></li>
<li>postgresql db 생성
최신 정보가 migrate된 git push 되어있는지 확인 후 진행<pre><code>// postgresql 접속
sudo su postgres 
</code></pre></li>
</ul>
<p>// postgresql 계정 생성 및 빠져나오기
CREATE USER {username};
ALTER USER {username} WITH SUPERUSER;
ALTER USER {username} WITH PASSWORD {password};
exit</p>
<p>// prisma폴더 안의 내용을 기반으로 db 생성
npx prisma migrate deploy</p>
<pre><code></code></pre></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[커뮤니티 액티비티 설정]]></title>
            <link>https://velog.io/@finero-d/ludium-aac-05</link>
            <guid>https://velog.io/@finero-d/ludium-aac-05</guid>
            <pubDate>Thu, 16 Mar 2023 11:32:36 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/finero-d/post/42937e8a-0bdd-4d08-89ef-aa8fcceb0e6b/image.jpg" alt=""></p>
<h2 id="커뮤니티-액티비티란">커뮤니티 액티비티란?</h2>
<ul>
<li>액티비티의 정의<ul>
<li>커뮤니티를 통한 소셜 활동, 프로젝트 이벤트 참여, 거버넌스, 2차 창작, 바이럴 이벤트 등 커뮤니티로부터 행해지는 활동의 총체</li>
<li>커뮤니티로부터의 경험, 프로젝트 가치의 성장 및 확장과 직결됨</li>
<li>커뮤니티 멤버들이 지속적으로 활동할 수 있는 액티비티를 커뮤니티의 성숙도와 프로젝트의 목표에 따라 제공하는 것이 중요</li>
</ul>
</li>
<li>액티비티의 목적<ul>
<li>커뮤니티 활성화</li>
<li>커뮤니티 멤버들이 자주권을 갖고 보다 적극적으로 커뮤니티 활동에 참여하도록 장려하는 유도 장치</li>
<li>프로젝트의 내러티브 및 성장 전략과 커뮤니티 액티비티가 일치되게끔 하는 것이 중요</li>
</ul>
</li>
<li>액티비티의 효과<ul>
<li>마케팅 비용 절감</li>
<li>브랜드 창출 및 강화</li>
<li>사업화 영역 확장</li>
</ul>
</li>
</ul>
<h2 id="액티비티-유형">액티비티 유형</h2>
<p><img src="https://velog.velcdn.com/images/finero-d/post/ee4c45a1-e1ab-44f3-b4f9-f54c638e567f/image.jpg" alt=""></p>
<ul>
<li>바이럴 이벤트<ul>
<li>특성 및 효과<ul>
<li>트위터 등의 SNS를 통해 커뮤니티 멤버들이 직접 프로젝트의 정보를 확산하도록 유도하는 홍보 목적의 이벤트</li>
<li>초기 멤버, 추가 멤버의 획득에 유리함 </li>
<li>자생적 바이럴을 유도하는 특성상 상대적으로 적은 마케팅 비용 기대 가능</li>
</ul>
</li>
<li>예시<ul>
<li>버그시티 Tweet to Earn
<a href="https://bugcity.io/">https://bugcity.io/</a></li>
</ul>
</li>
<li>바이럴 특화 보상<ul>
<li>롤, WL, AD, 토큰, 기프티콘 등의 자산성 보상이 보편적</li>
</ul>
</li>
<li>주의사항<ul>
<li>명확한 참여 행동 양식을 제공하여 불필요한 노이즈를 사전에 최대한 방지</li>
<li>자산성 혜택에 의한 바이럴 효과의 단기성을 이해하고 진행해야함</li>
</ul>
</li>
</ul>
</li>
<li>IRL 이벤트<ul>
<li>특성 및 효과<ul>
<li>커뮤니티 멤버가 참여 가능한 오프라인 이벤트</li>
<li>커뮤니티 멤버간의 대면 상호작용을 통한 라포 형성에 유리함</li>
<li>프로젝트에 맞는 오프라인 공간이 있다면 프로젝트의 정체성 부각에 효과적</li>
</ul>
</li>
<li>Doodles - SWSX
<a href="https://doodles.app/">https://doodles.app/</a>
<a href="https://www.youtube.com/watch?v=NkOqzSEaf70">https://www.youtube.com/watch?v=NkOqzSEaf70</a></li>
<li>IRL 특화 보상<ul>
<li>오프라인 특화 이벤트 경험</li>
</ul>
</li>
<li>주의사항<ul>
<li>과도해질 수 있는 리소스 소요 방지</li>
<li>바이럴 등의 추가 행동 유도를 통해 소모적인 이벤트 방지</li>
</ul>
</li>
</ul>
</li>
<li>거버넌스 운영<ul>
<li>특성 및 효과<ul>
<li>커뮤니티 멤버가 제안, 의사 결정, 실행에 참여하는 시스템</li>
<li>트레저리 운영을 통한 파생 프로젝트 창출로 사업화 영역 확장</li>
<li>커뮤니티 멤버 자신의 의사가 운영에 반영됨에서 오는 자주성 고양</li>
</ul>
</li>
<li>예시<ul>
<li>Nouns DAO
<a href="https://nouns.wtf/">https://nouns.wtf/</a></li>
</ul>
</li>
<li>거버넌스 특화 보상<ul>
<li>CC0에서 오는 라이센스</li>
<li>파생 프로젝트에 대한 개발, 자금, 인프라 지원</li>
</ul>
</li>
<li>주의사항<ul>
<li>거버넌스, 트레저리, 관련 정책 등의 고도화된 프로세스 세팅</li>
<li>프로세스 구축과 참여 유도에 소요되는 리소스 소요 조절<h2 id="커뮤니티-액티비티의-의의">커뮤니티 액티비티의 의의</h2>
</li>
</ul>
</li>
</ul>
</li>
<li>커뮤니티 활성화를 통한 프로젝트의 확장의 주요 수단</li>
<li>커뮤니티의 특성에 맞는 액티비티의 기획과 실행이 중요</li>
<li>자생적인 액티비티 활동은 건강하고 장기적인 프로젝트에 큰 도움이 됨</li>
</ul>
<blockquote>
<p><strong>참고자료</strong></p>
</blockquote>
<ul>
<li>Bug City<ul>
<li><a href="https://www.bugcity.io/">https://www.bugcity.io/</a></li>
</ul>
</li>
<li>Doodles - SWSX<ul>
<li><a href="https://doodles.app/">https://doodles.app/</a></li>
<li><a href="https://www.youtube.com/watch?v=NkOqzSEaf70">https://www.youtube.com/watch?v=NkOqzSEaf70</a></li>
</ul>
</li>
<li>Nouns DAO<ul>
<li><a href="https://nouns.wtf/">https://nouns.wtf/</a></li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[커뮤니티 타겟 분석하기]]></title>
            <link>https://velog.io/@finero-d/ludium-aac-04</link>
            <guid>https://velog.io/@finero-d/ludium-aac-04</guid>
            <pubDate>Sat, 11 Feb 2023 19:47:32 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/finero-d/post/bf05d3a4-be39-4c3f-b3ec-346f9bbe86ee/image.jpg" alt=""></p>
<h3 id="web30-커뮤니티-멤버-획득-방법">Web3.0 커뮤니티 멤버 획득 방법</h3>
<ul>
<li>커뮤니티 타겟 트랙킹<ul>
<li>커뮤니티의 목적성과 Web3.0 친숙성에 따른 잠정 멤버의 활동 범위 분석</li>
<li>잠정 멤버의 주요 활동 채널은 향후 멤버를 모집하는 홍보 채널로 활용 가능</li>
</ul>
</li>
<li>니즈 분석<ul>
<li>잠정 멤버가 활동 과정에서 느끼는 욕구와 결핍 파악</li>
<li>핵심 액티비티를 통한 니즈 충족 방안 도출</li>
</ul>
</li>
<li>커뮤니티 적용 방안 도출<ul>
<li>핵심 액티비티 기획을 통해 니즈를 충족시키는 커뮤니티 기획</li>
<li>기획된 액티비티를 기반으로 커뮤니티 멤버 모집 방안 설정<h3 id="커뮤니티-타겟-별-획득-방법">커뮤니티 타겟 별 획득 방법</h3>
</li>
</ul>
</li>
<li>투자
<img src="https://velog.velcdn.com/images/finero-d/post/d7c57571-5d0c-4225-9ff5-8faadfeb0dba/image.jpg" alt=""><ul>
<li>Web3.0에 친숙하지 않은 유형<ul>
<li>부동산, 주식을 비롯한 제태그를 통한 자산 증식에 관심을 가지고 있음</li>
<li>유튜브, 블로그와 같은 Web2.0 투자자 중심 커뮤니티에 직접적이고 명확한 수익 실현 기회를 제공하여 커뮤니티 유입 유도</li>
<li>헤이버디의 예시 : 비트코인 가격을 예측하는 컨텐츠를 네이버 블로그, 유튜브를 활용해 홍보하며 초기 커뮤니티를 모음</li>
</ul>
</li>
<li>Web3.0에 친숙한 유형<ul>
<li>코인, NFT, 디파이 안에서도 자신만의 전문 분야를 가지고 자신보다 더 큰 인플루언서(고래)의 움직임에 매우 민감하게 반응</li>
<li>알파방, 인플루언서 홍보가 프로젝트 참여에 큰 영향을 미침</li>
<li>블러의 예시 : NFT 프로트레이더를 위한 마켓 플레이스 구축하면서 거래를 많이 한 사람에게 토큰 에어드랍을 약속하면서 초기 크립토 인플루언서를 다수 온보딩 시킴</li>
</ul>
</li>
</ul>
</li>
<li>라이프스타일
<img src="https://velog.velcdn.com/images/finero-d/post/2dfe916d-8e92-415b-be56-95c245316c94/image.jpg" alt=""><ul>
<li>Web3.0에 친숙하지 않은 유형<ul>
<li>Web2.0의 취향, 관심사 기반 커뮤니티와 마찬가지로 라이프스타일 지속적 향유를 약속함</li>
<li>Web3.0 환경에서 관심사를 향유할 때의 비교 우의(ex. 자산성, 편의성) 공략</li>
<li>스웻이코노미의 예시 : Web2.0 걷기앱의 Web3.0 전환 사례</li>
</ul>
</li>
<li>Web3.0에 친숙한 유형<ul>
<li>Web3.0 안에서 기존 라이프스타일의 완성도와 활용성 중시</li>
<li>기술적 환경 제공을 통해 Web2.0에서 향유하던 문화를 Web3.0에서도 즐길 수 있는 토대 제공</li>
<li>아트블록스의 예시 : 온체인 제너러티브 아트 플랫폼 제공을 통해 아트 투자자, 수집가들이 온체인 자산을 활용할 수 있는 토대 제공</li>
</ul>
</li>
</ul>
</li>
<li>빌딩
<img src="https://velog.velcdn.com/images/finero-d/post/fc1ca579-a430-41f3-b25a-0d643a0dab39/image.jpg" alt=""><ul>
<li>Web3.0에 친숙하지 않은 유형<ul>
<li>Web2.0의 전문가 중 Web3.0에서 활동하고 싶은 사람을 활용한 프로젝트를 확장 및 개발</li>
<li>공동 프로젝트를 제안하고 기금, IP, 커뮤니티 인력 활용 방향성 제시를 통해 참여 유도</li>
<li>리드미컬 NFT의 예시 : 영상 제작, 모션 그래픽 아티스트 네이버 카페를 NFT 작가 커뮤니티로 전환시켜 공동 작업, 전시 진행 중</li>
</ul>
</li>
<li>Web3.0에 친숙한 유형<ul>
<li>타겟이 이미 다양한 커뮤니티에서 활동 중일 가능성이 높음</li>
<li>타겟이 활동 중인 커뮤니티의 문제점 해결 혹은 더 나은 방향 제시</li>
<li>트레저다오의 예시 : Loot 커뮤니티에서 파생됨</li>
</ul>
</li>
</ul>
</li>
<li>소셜 임팩트
<img src="https://velog.velcdn.com/images/finero-d/post/b6a30f07-8816-478f-9e3a-a2fd68daf110/image.jpg" alt=""><ul>
<li>Web3.0에 친숙하지 않은 유형<ul>
<li>Web3.0 기술 활용을 통해 기존에 조명받기 힘들었던 가치 실현 제안</li>
<li>기존 임팩트 투자, 정부 기관과 같은 공공재적 가치 실현 조직을 통한 커뮤니티 모집 가능</li>
<li>리파이서울의 예시 : 리파이를 다루는 스터디 운영</li>
</ul>
</li>
<li>Web3.0에 친숙한 유형<ul>
<li>온체인 데이터와 토크노믹스를 활용해 지속 가능한 공공재 시스템 유지를 제안</li>
<li>해커톤, 회담, DAO 빌딩 뿐 아니라 공공재적 이미지를 브랜딩에 적극 활용</li>
<li>옵티미즘 에어드랍의 예시 : 토큰 출시 당시 깃코인에 기부를 한 사람에게 에어드랍을 제공하면서 공공재적 인프라 브랜드 이미지 각인<h3 id="커뮤니티-매니저의-역할">커뮤니티 매니저의 역할</h3>
</li>
</ul>
</li>
</ul>
</li>
<li>프로젝트 방향성 정립<ul>
<li>커뮤니티의 방향성, 목표, 효과 정립</li>
<li>원하는 인재상 설정</li>
</ul>
</li>
<li>타겟 분석<ul>
<li>유형에 맞는 타겟 찾기</li>
<li>유형에 맞는 타겟의 대화 내용, 관심 분야, 하는 일, 니즈 등 찾기</li>
</ul>
</li>
<li>가설 수립 및 실험<ul>
<li>수집한 정보를 토대로 니즈를 충족시킬 수 있는 가치 제공 방안 설정</li>
<li>타겟 유형에 따른 반응 판단, 실행 계획 및 정보 수집 계획</li>
</ul>
</li>
<li>분석 및 재실행<ul>
<li>계획 실행과 결과 분석</li>
<li>목표치 달성 여부, 성공 및 실패 요인 분석<h3 id="멤버-모집에-있어-유의할-점">멤버 모집에 있어 유의할 점</h3>
</li>
</ul>
</li>
<li>프로젝트의 성장과 발전에 있어 현재 필요한 인원이 어떤 사람인지 판단한다. 홀더, 컨트리뷰터, 코어 중 어떤 사람들을 먼저 섭외할 것인지에 따라 바라봐야할 관점이 달라지기 때문이다.</li>
<li>초기 멤버를 파악하는데 있어서 가장 효과적인 방법은 참여와 활동을 통한 데이터 수집이다. 아직까지 Web2.0 수준의 구매 이력, 사용자 판단을 정량적으로 수치화할 데이터 근거가 부족하기 때문에 정성적인 리서치가 선행되어야 한다.</li>
<li>활동 데이터를 기반으로 지갑 주소, 토큰 거래 이력의 정성적 온체인 데이터를 활용할 수 있다면 향후 정량적 타겟팅과 모집 효과 측정도 가능해 질 것이다.</li>
</ul>
<blockquote>
<p><strong>참고자료</strong></p>
</blockquote>
<ul>
<li>헤이버디<ul>
<li>카페 링크: <a href="https://cafe.naver.com/heybuddys">https://cafe.naver.com/heybuddys</a></li>
<li>네이버 블로그 마케팅: <a href="https://blog.naver.com/happypcb/222902424261">https://blog.naver.com/happypcb/222902424261</a></li>
</ul>
</li>
<li>블러<ul>
<li>웹사이트: <a href="https://blur.io/">https://blur.io/</a></li>
<li>리서치 자료: <a href="https://www.notion.so/Blur-io-ee347dbaae754df4ab5cb5bf2ce3b393">Blur.io</a></li>
</ul>
</li>
<li>스웻이코노미<ul>
<li>웹사이트: <a href="https://sweateconomy.com/">https://sweateconomy.com/</a></li>
<li>분석글: <a href="https://medium.com/@kookyvampire/sweatcoin-deep-dive-55e3e398bb0c">https://medium.com/@kookyvampire/sweatcoin-deep-dive-55e3e398bb0c</a></li>
</ul>
</li>
<li>아트블록스<ul>
<li>웹사이트: <a href="https://www.artblocks.io/">https://www.artblocks.io/</a></li>
<li>온체인 제너레티브 설명: <a href="https://medium.com/the-link-art-blocks/how-on-chain-is-art-blocks-5ccd553dd370">https://medium.com/the-link-art-blocks/how-on-chain-is-art-blocks-5ccd553dd370</a></li>
</ul>
</li>
<li>리드미컬 NFT<ul>
<li>트위터: <a href="https://twitter.com/rhythmicalimage">https://twitter.com/rhythmicalimage</a></li>
<li>작품: <a href="https://t.co/BSwfcSjXFD">https://t.co/BSwfcSjXFD</a></li>
</ul>
</li>
<li>트래저다오<ul>
<li>웹사이트: <a href="https://treasure.lol/">https://treasure.lol/</a></li>
<li>분석글: <a href="https://mirror.xyz/0x20c742eeA314DFf601EA72F6BCc93bEccF4cf41c/CDNiw3aYHfEGmUxWbOQM_vAY_R6AJ25t_xmbRt_Xmg8">https://mirror.xyz/0x20c742eeA314DFf601EA72F6BCc93bEccF4cf41c/CDNiw3aYHfEGmUxWbOQM_vAY_R6AJ25t_xmbRt_Xmg8</a></li>
</ul>
</li>
<li>리파이서울<ul>
<li>채널: <a href="https://twitter.com/ReFiSeoul">https://twitter.com/ReFiSeoul</a></li>
</ul>
</li>
<li>옵티미즘<ul>
<li>웹사이트: <a href="https://www.optimism.io/">https://www.optimism.io/</a></li>
<li>에어드랍 1: <a href="https://community.optimism.io/docs/governance/airdrop-1/#airdrop-1-allocations">https://community.optimism.io/docs/governance/airdrop-1/#airdrop-1-allocations</a></li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[커뮤니티 채널 세팅]]></title>
            <link>https://velog.io/@finero-d/ludium-aac-03</link>
            <guid>https://velog.io/@finero-d/ludium-aac-03</guid>
            <pubDate>Sat, 11 Feb 2023 19:04:01 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/finero-d/post/225149c2-6ff0-4144-8616-1ba4f665b40e/image.jpg" alt=""></p>
<h3 id="커뮤니티-채널-세팅의-중요성">커뮤니티 채널 세팅의 중요성</h3>
<ul>
<li>커뮤니티 채널 세팅<ul>
<li>커뮤니티의 공지, 소통, 의사결정 등등 커뮤니티 인원들이 하는 모든 액티비티를 편하게 할 수 있도록 플랫폼, SNS 등의 채널을 효율적으로 구성하는것</li>
</ul>
</li>
<li>효율적인 커뮤니티 채널 세팅의 중요성<ul>
<li>효율적으로 세팅된 커뮤니티 채널은 커뮤니티 액티비티의 질을 높이고, 이탈자를 최소화하며, 좋은 의사결정을 하도록 유도할 수 있고, 커뮤니티 매니저들이 의미있는 데이터를 효율적으로 추출할 수 있도록 도움을 준다<h3 id="커뮤니티-채널의-종류와-특징">커뮤니티 채널의 종류와 특징</h3>
<img src="https://velog.velcdn.com/images/finero-d/post/eaec56d6-c7e5-4959-8935-e24f082d2863/image.jpg" alt=""></li>
</ul>
</li>
<li>디스코드<ul>
<li>커뮤니티 인원과의 소통 창구 겸 공지처로 많이 쓰이고, 역할 구분과 봇을 이용한 여러 액티비티를 진행 할 수 있음.</li>
<li>장점 : 채널 구분, 역할 부여, 다양한 활용도의 봇 기능</li>
<li>단점 : 타 서비스와의 연계성 부족, 다소 높은 진입장멱</li>
<li>대표 예시 : 버그시티
<a href="https://discord.gg/AtQDqDYhBc">https://discord.gg/AtQDqDYhBc</a></li>
</ul>
</li>
<li>트위터<ul>
<li>커뮤니티 인원과의 가벼운 소통 창구 겸 공지처로 많이 쓰이고, 불특정 다수를 향한 전파력이 높다</li>
<li>장점 : 국적불문의 많은 Web3.0 이용자 포진, 쉽고 강한 바이럴 전파력</li>
<li>단점 : 강한 휘발성, 글자수 제한으로 인한 가벼움</li>
<li>대표 예시 : DADAZ
<a href="https://twitter.com/DADAZOfficial">https://twitter.com/DADAZOfficial</a></li>
</ul>
</li>
<li>인스타그램<ul>
<li>대중마케팅 및 공지 용으로 사용되는 이미지 중심 SNS</li>
<li>장점 : 이미지를 통한 강력한 마케팅 수단, 다수의 대중 포진</li>
<li>단점 : 상호소통의 어려움, Web3.0에 친화적이지 않은 유저가 다수임</li>
<li>대표 예시 : Shyghostsquad
<a href="https://www.instagram.com/shyghostsquad/">https://www.instagram.com/shyghostsquad/</a></li>
</ul>
</li>
<li>텔레그램<ul>
<li>단방향 혹은 양방향 소통 SNS, 알파방으로 많이 사용된다</li>
<li>장점 : 구독과 링크쉐어 기능, 다양한 활용도의 봇 기능</li>
<li>단점 : 채널 운영 시 커뮤니티 상호소통 어려움, 그룹 이용시 어나운스 어려움, 한국 내 안좋은 인식</li>
<li>대표 예시 : 취미생활방
<a href="https://t.me/enjoymyhobby">https://t.me/enjoymyhobby</a></li>
</ul>
</li>
<li>카카오톡<ul>
<li>한국 대표 메신저 서비스, 내수용 프로젝트들의 대표적인 소통 창구</li>
<li>장점 : 한국 유저들에게 매우 높은 접근성</li>
<li>단점 : 한국 유저들에게만 매우 높은 접근성, 단일채널 이상의 기능이 거의 없음, 이에 따른 높은 피로도</li>
<li>예시 : 다수의 내수용 프로젝트들</li>
</ul>
</li>
<li>디스코스<ul>
<li>공지 및 Q&amp;A 제안과 그에 대한 의견 공유 등 프로젝트와 관련된 여러 의견을 나누는 플랫폼</li>
<li>장점 : 의사결정에 특화된만큼 확실한 기능</li>
<li>단점 : 매우 낮은 접근성</li>
<li>대표 예시 : Nouns
<a href="https://discourse.nouns.wtf/">https://discourse.nouns.wtf/</a><h3 id="채널-세팅에-정답이-있을까">채널 세팅에 정답이 있을까?</h3>
</li>
</ul>
</li>
<li>대부분의 Web3.0 커뮤니티는 하나의 채널을 운영하지 않고 커뮤니티의 유형과 특징에 따라 위에서 말한 채널을 조합하여 운영하고 있다</li>
<li>프로젝트의 변화, 유행의 변화 등의 다양한 이유로 시기에 맞춰 조합을 변경하는 경우도 잦다.<ul>
<li>Nouns DAO : 디스코드 폐쇄</li>
<li>DOGESOUNDCLUB : 클럽하우스 -&gt; 카카오톡 -&gt; 디스코드</li>
<li>mfers<ul>
<li>운영진이 운영하는 채널 없음</li>
<li>커뮤니티가 구축한 디스코드
<a href="https://discord.com/invite/unofficialmfers">https://discord.com/invite/unofficialmfers</a></li>
</ul>
</li>
<li>DADAZ<ul>
<li>트위터에서만 활동 하는 것으로 유명했던 프로젝트</li>
<li>메인 컬렉션의 배포가 끝나갈 무렵 디스코드 개설
<a href="https://discord.gg/dadaz">https://discord.gg/dadaz</a></li>
</ul>
</li>
</ul>
</li>
<li>채널 구성 이전에 프로젝트와 타겟의 특성에 대한 이해도가 우선되어야함</li>
<li>위에 소개한 서비스가 아니더라도 앱, 웹을 직접 만들 수 있음</li>
</ul>
<blockquote>
<p><strong>참고 자료</strong></p>
</blockquote>
<ul>
<li>DADAZ<ul>
<li>트위터
<a href="https://twitter.com/DADAZOfficial">https://twitter.com/DADAZOfficial</a></li>
<li>디스코드
<a href="https://discord.gg/dadaz">https://discord.gg/dadaz</a></li>
</ul>
</li>
<li>BugCity<ul>
<li>트위터
<a href="https://twitter.com/Bug4city">https://twitter.com/Bug4city</a></li>
<li>디스코드
<a href="https://discord.com/invite/TBFrZ5psxj">https://discord.com/invite/TBFrZ5psxj</a></li>
</ul>
</li>
<li>shyghostsquad<ul>
<li>인스타그램
<a href="https://www.instagram.com/shyghostsquad/?hl=ko">https://www.instagram.com/shyghostsquad/?hl=ko</a></li>
<li>디스코드
<a href="https://discord.com/invite/f9zvfUfjYP">https://discord.com/invite/f9zvfUfjYP</a></li>
</ul>
</li>
<li>취미생활방
<a href="https://t.me/enjoymyhobby">https://t.me/enjoymyhobby</a></li>
<li>Nouns DAO
<a href="https://nouns.wtf/">https://nouns.wtf</a></li>
<li>mfers
<a href="https://mirror.xyz/sartoshi.eth/QukjtL1076-1SEoNJuqyc-x4Ut2v8_TocKkszo-S_nU">https://mirror.xyz/sartoshi.eth/QukjtL1076-1SEoNJuqyc-x4Ut2v8_TocKkszo-S_nU</a><ul>
<li>디스코드
<a href="https://discord.com/invite/unofficialmfers">https://discord.com/invite/unofficialmfers</a></li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Web3.0 커뮤니티의 유형과 전략]]></title>
            <link>https://velog.io/@finero-d/ludium-aac-02</link>
            <guid>https://velog.io/@finero-d/ludium-aac-02</guid>
            <pubDate>Sat, 11 Feb 2023 16:53:05 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/finero-d/post/2339dd16-d62d-4a2a-a3f9-ef3299224608/image.jpg" alt=""></p>
<h3 id="타겟팅과-전략-설정의-관계-이해">타겟팅과 전략 설정의 관계 이해</h3>
<ul>
<li>타겟팅<ul>
<li>시장과 고객의 세분화를 통해 기업 혹은 프로젝트가 집중해야 할 시장과 인원을 설정하는 방법</li>
</ul>
</li>
<li>Web3.0 커뮤니티 타겟팅<ol>
<li>Web3.0 커뮤니티 유형의 세분화</li>
<li>타겟 설정</li>
<li>커뮤니티 목적성과 기대 멤버 유형에 따라 모집 전략 수립</li>
</ol>
</li>
<li>멤버 유형의 분류<ul>
<li>홀더 : 커뮤니티 발행 토큰 소유자. 참여도 기댓값은 최대한 수동적으로 상정한다</li>
<li>컨트리뷰터 : 2차 창작, 이벤트 개최, 서비스 개발을 비롯한 프로젝트 생태계 확장 기여자</li>
<li>코어 : 커뮤니티 정책 및 프로젝트 방향성 결정을 포함한 프로젝트 운영 팀의 역할 수행</li>
</ul>
</li>
<li>초기 멤버를 모집함에 있어 커뮤니티의 분류와 유형을 고려할 때 커뮤니티를 통한 자생적인 성장 실현 원활<h3 id="web30-커뮤니티의-분류-기준">Web3.0 커뮤니티의 분류 기준</h3>
<img src="https://velog.velcdn.com/images/finero-d/post/274bd368-87e6-49db-943c-c957155bb892/image.jpg" alt=""></li>
<li>목적성 : 참여자가 추구하는 가치에 따른 분류</li>
<li>개방성 : 진입 장벽 설정 여부에 따른 분류</li>
<li>탈중앙성 : 크립토 자산 활용, 의사 결정 여부에 따른 분류</li>
<li>성숙도 : 커뮤니티 형성에서 초기 생성, 발전과정, 안정화까지의 상황 판단에 따른 분류<h3 id="목적성에-따른-커뮤니티-분류">목적성에 따른 커뮤니티 분류</h3>
</li>
<li>투자<ul>
<li>투자 대상의 가격 상승 혹은 기금 활용을 통해 개인과 조직의 자산 증식을 목표로 하는 커뮤니티</li>
<li>대표 예시 : GCR DAO</li>
</ul>
</li>
<li>라이프스타일<ul>
<li>식문화, 예술, 스포츠, 게임 등 공통의 문화와 관심사를 향유하기 위해 모인 커뮤니티</li>
<li>대표 예시 : Hide me, please</li>
</ul>
</li>
<li>빌딩<ul>
<li>특정 프로젝트나 서비스의 활용도를 발전시키거나 생태계의 확장을 이루기 위해 모인 커뮤니티</li>
<li>프로젝트 확장을 위해 그랜트, 트레저리 집행을 통해 2차 창작, IP의 확장, 추가 개발을 추진함</li>
<li>대표 예시 : 니어 프로토콜</li>
</ul>
</li>
<li>소셜 임팩트<ul>
<li>환경 보호, 기업의 사회적 책임 수행을 비롯해 공공재적 가치 실현을 위한 커뮤니티</li>
<li>추구하는 가치를 실현하기 위해 문제점을 식별하고 공동 행동을 통해 개선을 위한 해결책을 제시</li>
<li>대표 예시 : GITCOIN DAO<h3 id="개방성에-따른-커뮤니티-분류">개방성에 따른 커뮤니티 분류</h3>
</li>
</ul>
</li>
<li>퍼블릭<ul>
<li>누구나 참여 가능한 오픈 커뮤니티</li>
<li>커뮤니티 규모 확장을 통한 경제 규모 성장을 추구함</li>
<li>대표 예시 : Reddit</li>
</ul>
</li>
<li>리미티드<ul>
<li>한정된 토큰을 소유해야 입장이 가능한 커뮤니티</li>
<li>토큰 자산의 희소성을 기반으로 최소 경제 인원을 구성하고, 제한된 그룹에 참요하고 싶은 욕구(FOMO)를 자극하여 토큰 가격을 상승시킴</li>
<li>대표 예시 : BAYC</li>
</ul>
</li>
<li>프라이빗<ul>
<li>프로젝트가 추구하는 가치와 기준에 따라 검증된 인원만 참여 가능하도록 제한하는 커뮤니티</li>
<li>토큰 이외에도 자기소개서, 이력 검증과 같은 별도의 절차 설정</li>
<li>대표 예시 : FWB DAO<h3 id="탈중앙성에-따른-커뮤니티-분류">탈중앙성에 따른 커뮤니티 분류</h3>
</li>
</ul>
</li>
<li>중앙화 커뮤니티<ul>
<li>Web2.0 기업의 기존 서비스, 혜택 중심으로 액티비티 제공</li>
<li>새로운 고객 획득과 마케팅 비용 절감</li>
<li>대표 예시 : PUUVILLA</li>
</ul>
</li>
<li>부분적 탈중앙화 커뮤니티<ul>
<li>커뮤니티 운영 사항 중 특정 부분만 선택적으로 탈중앙화를 취함</li>
<li>대표 예시 : Doodles</li>
</ul>
</li>
<li>탈중앙화 지향 커뮤니티<ul>
<li>사업 확장, 자급 집행, 정책 결정 등에 있어 커뮤니티의 탈중앙화된 의사 결정을 시행</li>
<li>커뮤니티와 운영진의 경계가 상대적으로 희미함</li>
<li>대표 예시 : Nouns DAO<h3 id="성숙도에-따른-커뮤니티-분류">성숙도에 따른 커뮤니티 분류</h3>
</li>
</ul>
</li>
<li>생성<ul>
<li>커뮤니티 인원 유입을 통해 최소 구동 인원을 모으는 단계</li>
<li>모집을 위한 프로젝트의 가치 전달 방법 중요</li>
<li>대표 예시 : 10K PFP Project</li>
</ul>
</li>
<li>활성화<ul>
<li>모집된 커뮤니티를 기반으로 핵심 액티비티를 정립하는 단계</li>
<li>커뮤니티 멤버의 목적과 니즈를 충족시킬 수 있는 기획과 참여 유도가 중요</li>
<li>대표 예시 : MYTY - Ghost Project</li>
</ul>
</li>
<li>확장<ul>
<li>지속 가능한 비즈니스 모델의 생성과 자원 분배가 이루어짐으로써 경제 순환 체계를 만들어내는 단계</li>
<li>커뮤니티 멤버의 의견과 제안을 프로젝트 운영자와 조율하는 역할 중요</li>
<li>대표 예시 : YugaLabs - Otherside</li>
</ul>
</li>
<li>안정화<ul>
<li>커뮤니티가 비즈니스 모델을 활용하는 환경을 보장함으로써 커뮤니티의 주도성을 높이는 단계</li>
<li>커뮤니티 생태계의 전반적인 구성파악, 멤버가 정착할 경로 유도</li>
<li>대표 예시 : Ethereum<h3 id="커뮤니티-활용성">커뮤니티 활용성</h3>
</li>
</ul>
</li>
<li>초기에 어떤 유형(홀더, 컨트리뷰터, 코어)의 멤버가 참여하는지에 따라 활용 방향이 달라짐</li>
<li>탈중앙성이 높을수록, 커뮤니티가 성숙할수록 커뮤니티 컨트리뷰터, 코어의 역할 수행이 중요해짐</li>
<li>초기 개방성을 리미티드, 프라이빗으로 설정해서 컨트리뷰터, 코어가 될 인원 참여를 유도하기도 함</li>
</ul>
<blockquote>
<p><strong>참고자료</strong></p>
</blockquote>
<ul>
<li>타겟팅과 전략 설정의 관계 이해<ul>
<li>커뮤니티 플라이휠 
<a href="https://acquiredentrepreneur.tistory.com/93">https://acquiredentrepreneur.tistory.com/93</a></li>
<li>a16z, 커뮤니티의 Go-To-Market 전략 
<a href="https://future.com/go-to-market-in-web3/">https://future.com/go-to-market-in-web3/</a></li>
</ul>
</li>
<li>목적성에 따른 분류<ul>
<li>GCR DAO, 투자 : <a href="https://globalcoinresearch.com/">https://globalcoinresearch.com/</a></li>
<li>레이지고메 클럽, 라이프스타일 : <a href="https://lazygourmet.club/">https://lazygourmet.club/</a></li>
<li>니어 프로토콜, 빌더 : <a href="https://near.org/">https://near.org/</a></li>
<li>GITCOIN DAO, 소셜 임팩트 : <a href="https://gitcoin.co/">https://gitcoin.co/</a></li>
</ul>
</li>
<li>개방성에 따른 분류<ul>
<li>Reddit, 퍼블릭 : <a href="https://www.notion.so/Reddit-3ef9a5d24e674f45807fbc58ba1fc5eb">Reddit</a></li>
<li>BAYC, 리미티드 : <a href="https://www.notion.so/Yugaverse-BAYC-BAKC-MAYC-e18ee237fae5429d8a9e6ef48370d9a3">Yugaverse (BAYC, BAKC, MAYC)</a></li>
<li>FWB DAO, 프라이빗 : <a href="https://medium.com/@agwn/12%EC%A1%B0%EC%9B%90%EC%A7%9C%EB%A6%AC-%EB%94%94%EC%8A%A4%EC%BD%94%EB%93%9C-%EC%B1%84%EB%84%90%EC%9D%98-%EB%B9%84%EB%B0%80-d7187d36f4ae">https://medium.com/@agwn/12조원짜리-디스코드-채널의-비밀-d7187d36f4ae</a></li>
</ul>
</li>
<li>탈중앙성에 따른 분류<ul>
<li>푸빌라, 중앙화 : <a href="https://puuvillasociety.com/">https://puuvillasociety.com/</a></li>
<li>두들뱅크, 부분적 탈중앙화 : <a href="https://forum.doodles.app/">https://forum.doodles.app/</a></li>
<li>나운즈다오, 완전 탈중앙화 : <a href="https://nouns.wtf/">https://nouns.wtf/</a></li>
</ul>
</li>
<li>성숙도에 따른 분류<ul>
<li>Optimism Quest, 생성 : <a href="https://app.optimism.io/airdrop/check">https://app.optimism.io/airdrop/check</a></li>
<li>MYTY - Ghost Project, 활성화 : <a href="https://ghostsproject.com/">https://ghostsproject.com/</a></li>
<li>YugaLabs - Otherside, 확장 : <a href="https://www.yuga.com/">https://www.yuga.com/</a></li>
<li>Ethereum, 안정화 : <a href="https://ethereum.org/en/">https://ethereum.org/en/</a></li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Web3.0에 커뮤니티가 중요한 이유]]></title>
            <link>https://velog.io/@finero-d/ludium-aac-01</link>
            <guid>https://velog.io/@finero-d/ludium-aac-01</guid>
            <pubDate>Sat, 11 Feb 2023 15:41:33 GMT</pubDate>
            <description><![CDATA[<h2 id="web30에-커뮤니티가-왜-중요할까">Web3.0에 커뮤니티가 왜 중요할까</h2>
<h3 id="web30">Web3.0</h3>
<p><img src="https://velog.velcdn.com/images/finero-d/post/36080767-940d-492a-9f3b-1688cd8a7d18/image.jpg" alt=""></p>
<ul>
<li>블록체인 기술을 통하여 탈중앙성을 지향하는 경제 생태계</li>
<li>정보의 주권화가 가능해지는 영역<h3 id="web30-커뮤니티의-발생">Web3.0 커뮤니티의 발생</h3>
<img src="https://velog.velcdn.com/images/finero-d/post/9fcde86e-0bbc-4552-945d-2154cabe4a49/image.jpg" alt=""></li>
<li>토큰을 발행하는 순간 &#39;토큰의 소유자(데이터 주권자)&#39;와 &#39;프로젝트 운영팀&#39;이 발생</li>
<li>데이터가 탈중앙화된 블록체인의 특성으로 토큰의 소유자와 프로젝트 운영팀의 데이터 보유량의 차이는 기존의 소비자와 기업간의 차이보다 훨씬 적어짐<h3 id="탈중앙적-커뮤니티의-기대-효과">탈중앙적 커뮤니티의 기대 효과</h3>
</li>
<li>단일 실패 지점(Single point failure) 방지<ul>
<li>FTX와 같은 특정 주체의 권력 남용으로 인한 전체 손해 방지</li>
</ul>
</li>
<li>인센티브 일원화(Incentive alignment)를 통한 자생적 성장<ul>
<li>기여와 참여를 통한 토큰 가치 상승 공동 실현<h3 id="커뮤니티-매니저가-하는-일">커뮤니티 매니저가 하는 일</h3>
<img src="https://velog.velcdn.com/images/finero-d/post/bedae61c-909b-4526-ab53-ee01acddd379/image.jpg" alt=""></li>
</ul>
</li>
<li>커뮤니티 유형 분석과 타겟 설정<ul>
<li>커뮤니티의 유형 파악</li>
<li>타겟에 맞는 멤버 파악</li>
</ul>
</li>
<li>커뮤니티 액티비티 설계를 통한 활성화 유도<ul>
<li>커뮤니티 내 경험 설계</li>
<li>액티비티 목표 설정</li>
<li>목표 달성에 따른 보상 제공</li>
</ul>
</li>
<li>커뮤니티 채널 운영 및 관리<ul>
<li>커뮤니티 정책과 문화 코드 설정</li>
<li>커뮤니티 채널 운영과 관리</li>
</ul>
</li>
<li>리서치 및 커뮤니티 활동 분석<ul>
<li>커뮤니티 활동 데이터 분석</li>
<li>데이터를 통한 유저 경험 강화</li>
<li>확장 전략 수립</li>
<li>커뮤니티 액티비티를 성장 모델에 반영</li>
</ul>
</li>
</ul>
<blockquote>
<p><strong>참고자료</strong></p>
</blockquote>
<ul>
<li>Web3.0의 정의<ul>
<li>Web3.0 재단 창시자 Gavin Wood의 정의 
<a href="https://gavofyork.medium.com/why-we-need-web-3-0-5da4f2bf95ab">https://gavofyork.medium.com/why-we-need-web-3-0-5da4f2bf95ab</a></li>
<li>Chris Dixon의 탈중앙성이 중요한 이유 
<a href="https://onezero.medium.com/why-decentralization-matters-5e3f79f7638e">https://onezero.medium.com/why-decentralization-matters-5e3f79f7638₩e</a></li>
<li>Jess Walden의 Ownership Economy 
<a href="https://variant.fund/articles/the-ownership-economy-2022/">https://variant.fund/articles/the-ownership-economy-2022/</a></li>
<li>FTX와 중앙화의 실패
  <a href="https://www.coindesk.com/business/2022/11/17/alameda-had-secret-exemption-from-ftx-liquidation-protocols-new-ceo-says/">https://www.coindesk.com/business/2022/11/17/alameda-had-secret-exemption-from-ftx-liquidation-protocols-new-ceo-says/</a></li>
</ul>
</li>
<li>두들뱅크<ul>
<li>두들 뱅크 페이지: <a href="https://forum.doodles.app/">https://forum.doodles.app/</a></li>
<li>SWSX 제안서: <a href="https://forum.doodles.app/t/doodles-pop-up-at-sxsw/153">https://forum.doodles.app/t/doodles-pop-up-at-sxsw/153</a></li>
<li>Doodles SWSX 영상: <a href="https://www.youtube.com/watch?v=NkOqzSEaf70">https://www.youtube.com/watch?v=NkOqzSEaf70</a></li>
<li>두들즈 v2 확장 방안 제안서: <a href="https://forum.doodles.app/t/team-scaling-proposal-v2/1871">https://forum.doodles.app/t/team-scaling-proposal-v2/1871</a></li>
<li>한국 두들즈 커뮤니티의 로컬 밋업 지원 제안서: <a href="https://forum.doodles.app/t/suggestions-for-supporting-local-community-meetups/2224">https://forum.doodles.app/t/suggestions-for-supporting-local-community-meetups/2224</a></li>
<li>스냅샷 투표 예시: <a href="https://snapshot.org/#/doodles.eth/proposal/0x60982f2266c162fd37f72d1ac51988cc2681c52ae7a7f5d009cd0f232085b9e5">https://snapshot.org/#/doodles.eth/proposal/0x60982f2266c162fd37f72d1ac51988cc2681c52ae7a7f5d009cd0f232085b9</a></li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Prisma & ProgreSQL 초기 설정]]></title>
            <link>https://velog.io/@finero-d/Prisma-ProgreSQL-%EC%B4%88%EA%B8%B0-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@finero-d/Prisma-ProgreSQL-%EC%B4%88%EA%B8%B0-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Fri, 04 Nov 2022 09:46:19 GMT</pubDate>
            <description><![CDATA[<h3 id="0-준비">0. 준비</h3>
<p>node, progresql</p>
<p>Prisma extension설치 후 settings.json에 아래 코드 추가해서 autoFormatting 세팅</p>
<pre><code>&quot;[prisma]&quot;: {
    &quot;editor.defaultFormatter&quot;: &quot;Prisma.prisma&quot;,
    &quot;editor.formatOnSave&quot;: true
 }</code></pre><p><code>tsc --init</code>을 통해 tsconfig.json 생성</p>
<h3 id="1-패키지-설정">1. 패키지 설정</h3>
<p><code>npm init -y</code>
<code>npm i -D prisma typescript ts-node @types/node nodemon</code>
tsconfig.json 생성</p>
<pre><code>{
  &quot;compilerOptions&quot;: {
    &quot;sourceMap&quot;: true,
    &quot;outDir&quot;: &quot;dist&quot;,
    &quot;strict&quot;: true,
    &quot;lib&quot;: [&quot;ESNext&quot;],
    &quot;esModuleInterop&quot;: true
  }
}</code></pre><p><code>npx prisma init --datasource-provider postgresql</code></p>
<p>생성된 .env 속 DATABASE_URL에 postgresql이름, 비번, 포트번호, 데이터베이스 이름 넣어서 수정</p>
<p>다 만들었으면 <code>npx prisma migrate dev</code></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[자주 안가는 사이트]]></title>
            <link>https://velog.io/@finero-d/Facebook-Graph-API-Javascript</link>
            <guid>https://velog.io/@finero-d/Facebook-Graph-API-Javascript</guid>
            <pubDate>Thu, 15 Sep 2022 08:04:26 GMT</pubDate>
            <description><![CDATA[<h2 id="facebook">Facebook</h2>
<p>Facebook Graph API Javascript
<a href="https://developers.facebook.com/docs/graph-api/reference/v14.0/group">https://developers.facebook.com/docs/graph-api/reference/v14.0/group</a>
이거 말고 다른 javascipt document는 뭔가 이상했다</p>
<p>Facebook api explorer
<a href="https://developers.facebook.com/tools/explorer/">https://developers.facebook.com/tools/explorer/</a>
이거 없었으면 시간 더 걸렸다</p>
<h2 id="간단한-웹페이지-퍼블리싱">간단한 웹페이지 퍼블리싱</h2>
<p>Neocities
<a href="https://neocities.org/">https://neocities.org/</a>
간단하게 html, css, javascript를 만들어 넣어서 퍼블리싱 해주는 사이트</p>
<h2 id="json--excel">json &amp; excel</h2>
<p>excel to json
<a href="https://products.aspose.app/cells/ko/conversion/excel-to-json">https://products.aspose.app/cells/ko/conversion/excel-to-json</a></p>
<p>json to excel
<a href="http://convertcsv.com/json-to-csv.htm">http://convertcsv.com/json-to-csv.htm</a></p>
<h2 id="이성무개발자님-추천-페이지">이성무개발자님 추천 페이지</h2>
<p><a href="https://velog.io/@chrisp3/nestjs%EB%A1%9C-todolist-%EB%A7%8C%EB%93%A4%EA%B8%B0">https://velog.io/@chrisp3/nestjs%EB%A1%9C-todolist-%EB%A7%8C%EB%93%A4%EA%B8%B0</a>
nestjs 관련 벨로그</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[새 맥 세팅]]></title>
            <link>https://velog.io/@finero-d/%EC%83%88-%EB%A7%A5-%EC%84%B8%ED%8C%85</link>
            <guid>https://velog.io/@finero-d/%EC%83%88-%EB%A7%A5-%EC%84%B8%ED%8C%85</guid>
            <pubDate>Thu, 01 Sep 2022 07:10:13 GMT</pubDate>
            <description><![CDATA[<h2 id="mac-settings">Mac settings</h2>
<p>keyboard / trackpad / dock</p>
<h2 id="homebrew">homebrew</h2>
<p>rosetta
iterm2 / powerlevel10k / D2coding &amp; 뭐더라...
vsc
brave browser / chrome
discord 
macs fan control / run cat
notion / zoom / telegram
spectacle
logi-options</p>
<h2 id="app-store">App Store</h2>
<p>kakaotalk</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[멀고도 험난한]]></title>
            <link>https://velog.io/@finero-d/%EB%A9%80%EA%B3%A0%EB%8F%84-%ED%97%98%EB%82%9C%ED%95%9C</link>
            <guid>https://velog.io/@finero-d/%EB%A9%80%EA%B3%A0%EB%8F%84-%ED%97%98%EB%82%9C%ED%95%9C</guid>
            <pubDate>Tue, 12 Jul 2022 03:24:33 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/finero-d/post/bb7fd1e2-88f1-4e17-aefd-6a45a595b343/image.png" alt=""></p>
<p>Block 클래스 안에 정적 펑션 hello를 만들었다.
그렇기에 클래스를 인스턴스화 하지 않아도 <code>Block.hello()</code>가 가능하다.</p>
<p>Block 클래스를 bl로 인스턴스화하였다.
bl안에도 hello펑션이 있으리라 생각되는데 <code>bl.hello()</code>는 성립하지 않는다.<img src="https://velog.velcdn.com/images/finero-d/post/45728dc4-2fce-4824-b205-e9b200432680/image.png" alt=""></p>
<p>정적 펑션은 어디에 위치하는가...</p>
]]></description>
        </item>
    </channel>
</rss>