Skip to content

Commit d3c0969

Browse files
committed
update post
1 parent 38df2f8 commit d3c0969

File tree

11 files changed

+108
-36
lines changed

11 files changed

+108
-36
lines changed

content/posts/자원/크롬 확장프로그램/크롬 확장프로그램에 케시메모리 추가하기.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ tags:
44
- example
55
- problem
66
createdAt: 2025-03-23 09:21:24
7-
modifiedAt: 2025-03-24 13:58:25
7+
modifiedAt: 2025-03-31 19:48:24
88
publish: 자원/크롬 확장프로그램
99
related: ""
1010
series: ""
@@ -269,30 +269,30 @@ import { useLocation } from 'react-router-dom';
269269
function MyComponent() {
270270
const location = useLocation();
271271
const { cache, updateCache } = useCache();
272-
272+
273273
// 현재 라우트 저장
274274
useEffect(() => {
275275
updateCache({ currentRoute: location.pathname });
276276
}, [location.pathname, updateCache]);
277-
277+
278278
// 컴포넌트 상태 저장
279279
const saveData = (newData) => {
280-
updateCache({
281-
data: {
280+
updateCache({
281+
data: {
282282
...cache?.data,
283-
myComponentData: newData
284-
}
283+
myComponentData: newData
284+
}
285285
});
286286
};
287-
287+
288288
// 저장된 데이터 사용
289289
useEffect(() => {
290290
if (cache?.data?.myComponentData) {
291291
// 저장된 데이터로 컴포넌트 상태 복원
292292
// ...
293293
}
294294
}, [cache]);
295-
295+
296296
return (
297297
// ... 컴포넌트 렌더링
298298
);

content/posts/프로젝트/아임유어박스 웹사이트/물류 서비스 웹사이트 개발 회고-혼자서 외주 프로젝트 완성하기.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22
tags:
33
- project
44
- 회고
5+
- portfolio
56
createdAt: 2025-03-25 16:46:50
67
modifiedAt: 2025-03-27 16:52:58
78
publish: 프로젝트/아임유어박스 웹사이트
8-
related: ""
9+
related:
10+
- ""
911
series: ""
1012
---
1113

public/link-map.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
2-
"0.inbox/개인 블로그를 제작하게 된 이유.md": "프로젝트/블로그/개인 블로그를 제작하게 된 이유",
32
"0.inbox/동적 사이트 vs 정적사이트.md": "자원/web/동적 사이트 vs 정적사이트",
43
"0.inbox/Aider.md": "자원/ai/Aider",
5-
"0.inbox/어떻게 블로그를 구현하였나.md": "프로젝트/블로그/어떻게 블로그를 구현하였나",
64
"0.inbox/크롬 확장프로그램에 케시메모리 추가하기.md": "자원/크롬 확장프로그램/크롬 확장프로그램에 케시메모리 추가하기",
5+
"0.inbox/개인 블로그를 제작하게 된 이유.md": "프로젝트/블로그/개인 블로그를 제작하게 된 이유",
6+
"0.inbox/어떻게 블로그를 구현하였나.md": "프로젝트/블로그/어떻게 블로그를 구현하였나",
77
"1.project/취업을 위한 알고리즘 공부/취업을 위한 알고리즘 공부.md": "프로젝트/알고리즘/취업을 위한 알고리즘 공부",
88
"1.project/물류 서비스 웹사이트 개발/물류 서비스 웹사이트 개발 회고-혼자서 외주 프로젝트 완성하기.md": "프로젝트/아임유어박스 웹사이트/물류 서비스 웹사이트 개발 회고-혼자서 외주 프로젝트 완성하기",
99
"3.resource/SWEA강의/SWEA 강의 정리노트.md": "자원/SWEA 강의 정리노트/SWEA 강의 정리노트"

public/meta-data.json

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,4 @@
11
[
2-
{
3-
"urlPath": "프로젝트/블로그/개인 블로그를 제작하게 된 이유",
4-
"title": "개인 블로그를 제작하게 된 이유",
5-
"summary": "",
6-
"image": "",
7-
"tags": ["blog", "dev", "project"],
8-
"series": "나의 맞춤 블로그 만들기",
9-
"createdAt": "2025-03-08 17:09:39",
10-
"modifiedAt": "2025-03-20 16:17:00",
11-
"publish": "프로젝트/블로그"
12-
},
132
{
143
"urlPath": "자원/web/동적 사이트 vs 정적사이트",
154
"title": "동적 사이트 vs 정적사이트",
@@ -33,26 +22,37 @@
3322
"publish": "자원/ai"
3423
},
3524
{
36-
"urlPath": "프로젝트/블로그/어떻게 블로그를 구현하였나",
37-
"title": "어떻게 블로그를 구현하였나",
25+
"urlPath": "자원/크롬 확장프로그램/크롬 확장프로그램에 케시메모리 추가하기",
26+
"title": "크롬 확장프로그램에 케시메모리 추가하기",
27+
"summary": "",
28+
"image": "",
29+
"tags": ["chrome-extension", "example", "problem"],
30+
"series": "",
31+
"createdAt": "2025-03-23 09:21:24",
32+
"modifiedAt": "2025-03-31 19:48:24",
33+
"publish": "자원/크롬 확장프로그램"
34+
},
35+
{
36+
"urlPath": "프로젝트/블로그/개인 블로그를 제작하게 된 이유",
37+
"title": "개인 블로그를 제작하게 된 이유",
3838
"summary": "",
3939
"image": "",
4040
"tags": ["blog", "dev", "project"],
4141
"series": "나의 맞춤 블로그 만들기",
42-
"createdAt": "2025-03-08 17:12:17",
43-
"modifiedAt": "2025-03-20 16:16:24",
42+
"createdAt": "2025-03-08 17:09:39",
43+
"modifiedAt": "2025-03-20 16:17:00",
4444
"publish": "프로젝트/블로그"
4545
},
4646
{
47-
"urlPath": "자원/크롬 확장프로그램/크롬 확장프로그램에 케시메모리 추가하기",
48-
"title": "크롬 확장프로그램에 케시메모리 추가하기",
47+
"urlPath": "프로젝트/블로그/어떻게 블로그를 구현하였나",
48+
"title": "어떻게 블로그를 구현하였나",
4949
"summary": "",
5050
"image": "",
51-
"tags": ["chrome-extension", "example", "problem"],
52-
"series": "",
53-
"createdAt": "2025-03-23 09:21:24",
54-
"modifiedAt": "2025-03-24 13:58:25",
55-
"publish": "자원/크롬 확장프로그램"
51+
"tags": ["blog", "dev", "project"],
52+
"series": "나의 맞춤 블로그 만들기",
53+
"createdAt": "2025-03-08 17:12:17",
54+
"modifiedAt": "2025-03-20 16:16:24",
55+
"publish": "프로젝트/블로그"
5656
},
5757
{
5858
"urlPath": "프로젝트/알고리즘/취업을 위한 알고리즘 공부",
@@ -70,7 +70,7 @@
7070
"title": "물류 서비스 웹사이트 개발 회고-혼자서 외주 프로젝트 완성하기",
7171
"summary": "",
7272
"image": "",
73-
"tags": ["project", "\ud68c\uace0"],
73+
"tags": ["project", "\ud68c\uace0", "portfolio"],
7474
"series": "",
7575
"createdAt": "2025-03-25 16:46:50",
7676
"modifiedAt": "2025-03-27 16:52:58",

public/post-contents/자원/크롬 확장프로그램/크롬 확장프로그램에 케시메모리 추가하기.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

public/projects.json

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,76 @@
154154
],
155155
"publishPath": "프로젝트/아임유어박스 웹사이트"
156156
},
157+
{
158+
"projectType": "project",
159+
"id": "ccxt-mcp",
160+
"title": "CCXT MCP Server",
161+
"description": "AI 모델(Claude/GPT)이 100개 이상의 암호화폐 거래소 API와 상호작용할 수 있게 해주는 Model Context Protocol(MCP) 서버입니다. CCXT 라이브러리를 활용하여 암호화폐 거래소에 접근하고 거래할 수 있는 기능을 제공합니다.",
162+
"thumbnail": "/projects/ccxt-mcp/ccxt-mcp-logo.png",
163+
"tags": ["Crypto", "MCP", "AI", "NPM"],
164+
"technologies": [
165+
"TypeScript",
166+
"Node.js",
167+
"CCXT",
168+
"Model Context Protocol",
169+
"Zod",
170+
"JSON Schema",
171+
"NPM",
172+
"AI"
173+
],
174+
"githubUrl": "https://github.com/lazy-dinosaur/ccxt-mcp",
175+
"serviceUrl": "https://www.npmjs.com/package/@lazydino/ccxt-mcp",
176+
"featured": true,
177+
"createdAt": "2025-03-29",
178+
"overview": "CCXT MCP Server는 '모델이 MCP를 이용할 수 있게' 하는 동시에 'MCP 자체를 개발하는' 독특한 메타적 프로젝트입니다. 인공지능 활용이 급부상하는 시대적 트렌드에 맞춰, AI 모델이 암호화폐 거래소와 직접 상호작용할 수 있는 브릿지 역할을 하는 서버를 개발했습니다. Claude나 GPT 같은 AI 모델들이 사용자의 간단한 자연어 요청만으로 복잡한 거래소 API를 통해 정보를 조회하고 실제 거래를 실행할 수 있게 해줍니다.",
179+
"features": [
180+
"다양한 시장 정보 조회(거래소 목록, 가격, 주문장 등)",
181+
"실시간 거래 기능(시장가/지정가 주문 생성, 주문 취소 및 상태 조회)",
182+
"계정 자산 조회 및 거래 내역 분석",
183+
"트레이딩 성과 분석(승률, 평균 수익/손실 비율 등)",
184+
"포지션 관리(자본 대비 비율 매매, 레버리지 설정 등)",
185+
"리스크 관리(기술적 지표 기반 손절매, 변동성 기반 손익 관리)",
186+
"Claude Desktop과의 원활한 통합",
187+
"100개 이상의 암호화폐 거래소 지원"
188+
],
189+
"lessons": "이 프로젝트의 가장 큰 의의는 MCP를 사용하면서 MCP 서버 자체를 개발하는 메타적인 경험이었습니다. 최신 AI 트렌드를 따라가기 위해 Aider, Claude Desktop, Cursor 등 다양한 AI 툴을 활용해보며 각 도구의 장단점을 직접 체험할 수 있었습니다. 특히 MCP가 어떻게 통신하는지, 그리고 MCP 서버를 구축하기 위한 기본적인 설정 방법과 구조에 대해 깊이 이해하게 되었습니다. npm을 통한 패키지 배포 과정과 다른 컴퓨터에 설치하여 사용하는 전체 라이프사이클을 경험함으로써 개발자로서의 역량을 한층 더 강화할 수 있었습니다.",
190+
"challenges": [
191+
"Model Context Protocol 이해와 구현: MCP는 비교적 새로운 프로토콜로, 아직 문서화가 제한적이고 사용 사례도 많지 않아 구현 방법을 파악하는 데 어려움이 있었습니다.",
192+
"다양한 AI 도구 학습 곡선: Aider, Claude Desktop, Cursor 등 각기 다른 AI 도구의 사용법과 특성을 이해하고 효과적으로 활용하는 데 시간이 필요했습니다.",
193+
"거래소 API 통합의 복잡성: 100개 이상의 거래소마다 API 구조와 요구사항이 다르고, 이를 일관된 인터페이스로 추상화하는 과정이 복잡했습니다.",
194+
"TypeScript 타입 정의의 어려움: CCXT 라이브러리와 MCP SDK에서 제공하는 다양한 타입을 조화롭게 통합하는 과정이 도전적이었습니다.",
195+
"배포와 사용자 경험 고려: npm 패키지로 배포하고 다른 컴퓨터에서 쉽게 설치하고 사용할 수 있도록 설정과 문서화 작업에 많은 노력이 필요했습니다.",
196+
"AI 모델의 제약 이해: AI 모델이 거래소 API와 상호작용할 때 발생할 수 있는 제약과 한계를 이해하고 이를 고려한 설계가 필요했습니다."
197+
],
198+
"demoType": "images",
199+
"demoImages": [
200+
{
201+
"url": "/projects/ccxt-mcp/ccxt-mcp-createOrderWithSL.mp4",
202+
"description": "Claude와의 통합 데모: Claude 모델이 사용자 요청에 따라 실시간 암호화폐 가격을 조회하고 사용자의 요청에 따라 손절가를 정해 매매에 들어가는것을 보여줍니다.",
203+
"showControls": true
204+
},
205+
{
206+
"url": "/projects/ccxt-mcp/ccxt-mcp-winrate-analyze.mp4",
207+
"description": "Claude와의 통합 데모: Claude 모델이 사용자의 과거 매매를 조화하고 사용자의 매매 패턴을 분석하는 것을 보여줍니다.",
208+
"showControls": true
209+
},
210+
{
211+
"url": "/projects/ccxt-mcp/ccxt-mcp-architecture.png",
212+
"description": "아키텍처 다이어그램: 사용자, AI 모델, MCP 서버, 그리고 암호화폐 거래소 간의 상호작용을 시각화한 다이어그램입니다."
213+
},
214+
{
215+
"url": "/projects/ccxt-mcp/ccxt-mcp-npm.png",
216+
"description": "NPM 패키지: @lazydino/ccxt-mcp NPM 패키지 페이지와 설치 통계를 보여주는 화면입니다."
217+
}
218+
],
219+
"futurePlans": [
220+
"더 많은 AI 도구와의 통합 확장",
221+
"다양한 MCP 서버 템플릿 개발",
222+
"거래 전략 자동화 기능 향상",
223+
"커뮤니티 기반 개발 확대"
224+
],
225+
"publishPath": "project/ccxt-mcp"
226+
},
157227
{
158228
"projectType": "project",
159229
"id": "lazy-trading",
Loading
Binary file not shown.
278 KB
Loading
Binary file not shown.
3.78 MB
Binary file not shown.

0 commit comments

Comments
 (0)