Skip to content

Commit 3cbb970

Browse files
committed
update post
1 parent 94158a4 commit 3cbb970

11 files changed

+87
-13
lines changed

content/posts/프로젝트/괴담집/괴담집 콘텐츠 인프라 구축.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ tags:
55
- strapi
66
- cms
77
createdAt: 2025-06-23 09:47:32
8-
modifiedAt: 2025-06-28 19:49:02
8+
modifiedAt: 2025-07-03 13:18:40
99
publish: 프로젝트/괴담집
1010
related:
1111
- "[[괴담집]]"
@@ -155,7 +155,7 @@ SUPABASE_BUCKET=<your-bucket-name>
155155

156156
- 경로: `config/plugins.ts`
157157

158-
```ts
158+
```typescript
159159
module.exports = {
160160
provider: "supabase",
161161
providerOptions: {

content/posts/프로젝트/당근마켓 클론코딩/당근마켓 클론코딩.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ tags:
55
- study
66
- clone
77
createdAt: 2025-06-13 11:29:34
8-
modifiedAt: 2025-07-02 21:29:56
8+
modifiedAt: 2025-07-03 10:48:43
99
publish: 프로젝트/당근마켓 클론코딩
1010
related: ""
1111
series: ""

content/posts/프로젝트/당근마켓 클론코딩/당근마켓 클론코딩으로 Next.js 복습하기.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ tags:
44
- carrot-market
55
- study
66
createdAt: 2025-06-30 08:48:51
7-
modifiedAt: 2025-07-02 12:24:58
7+
modifiedAt: 2025-07-03 12:55:22
88
publish: 프로젝트/당근마켓 클론코딩
99
related:
1010
- "[[당근마켓 클론코딩]]"
@@ -222,4 +222,6 @@ export default function Login() {
222222
}
223223
```
224224

225+
#### useActionState의 초기값의 활용
226+
225227
## API Route Handler vs ServerAction
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
---
2+
tags:
3+
- project
4+
- carrot-market
5+
- validator
6+
- zod
7+
createdAt: 2025-07-03 13:12:42
8+
modifiedAt: 2025-07-03 13:21:06
9+
publish: 프로젝트/당근마켓 클론코딩
10+
related:
11+
- 당근마켓 클론코딩
12+
- 당근마켓 클론코딩으로 Zod 배우기
13+
series: ""
14+
---
15+
16+
# 당근마켓 클론코딩으로 Validator 사용해보기
17+
18+
## Validator과 함께 사용해보기
19+
20+
Validator라이브러리는 간편하게 유효성 검사를 할 수 있는 프리셋 개념의 함수들을 많이 가지고 있다.
21+
22+
### 설치
23+
24+
`Validator`는 javascript모듈이기 때문에 설치시 추가로 타입 설치를 해주어야 `typescript`에서 불편함 없이 사용할 수 있다
25+
26+
```bash
27+
bun add Validator
28+
bun i -D @types/Validator
29+
```
30+
31+
### 기본 사용법
32+
33+
사용 방식도 매우 간단하다. Validator 모듈 안의 `isMobilePhone`, `isJWT` 등등 값을 넣으면 boolean 값으로 바로 알려준다.
34+
35+
```typescript
36+
import { isMobilePhone } from "Validator";
37+
38+
const phone = "010-1234-1234";
39+
40+
isMobilePhone(phone);
41+
```
42+
43+
### Zod와 함께 사용하기
44+
45+
[[당근마켓 클론코딩으로 Zod 배우기#refine 메소드]]를 활용하면 매우 간편하게 추가적인 유효성 검증을 실행할 수 있다.
46+
47+
```typescript
48+
import { z } from "zod";
49+
import validator from "validator";
50+
51+
const phoneSchema = z.string().trim().refine(validator.isMobilePhone);
52+
```

content/posts/프로젝트/당근마켓 클론코딩/당근마켓 클론코딩으로 Zod 배우기.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ tags:
55
- study
66
- zod
77
createdAt: 2025-06-30 21:21:49
8-
modifiedAt: 2025-07-02 21:15:26
8+
modifiedAt: 2025-07-03 13:15:37
99
publish: 프로젝트/당근마켓 클론코딩
1010
related:
1111
- "[[당근마켓 클론코딩]]"
@@ -405,3 +405,7 @@ const formSchema = z.object({
405405
confirmPassword: z.string().min(10),
406406
});
407407
```
408+
409+
## 참고
410+
411+
- [[당근마켓 클론코딩으로 Validator 사용해보기]]

public/link-map.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"0.inbox/가상DOM의 원리.md": "자원/React/가상DOM의 원리",
3+
"0.inbox/당근마켓 클론코딩으로 Validator 사용해보기.md": "프로젝트/당근마켓 클론코딩/당근마켓 클론코딩으로 Validator 사용해보기",
34
"3.resource/크롬 확장프로그램/크롬 확장프로그램에 케시메모리 추가하기.md": "자원/크롬 확장프로그램/크롬 확장프로그램에 케시메모리 추가하기",
45
"3.resource/Windows/Windows에 환경변수 설정하기.md": "자원/Windows/Windows에 환경변수 설정하기",
56
"3.resource/Windows/Windows에서 AutoHotkey를 활용해 esc를 눌러 영문으로 전환하기.md": "자원/Windows/Windows에서 AutoHotkey를 활용해 esc를 눌러 영문으로 전환하기",

public/meta-data.json

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,17 @@
1010
"modifiedAt": "2025-06-17 14:39:39",
1111
"publish": "자원/React"
1212
},
13+
{
14+
"urlPath": "프로젝트/당근마켓 클론코딩/당근마켓 클론코딩으로 Validator 사용해보기",
15+
"title": "당근마켓 클론코딩으로 Validator 사용해보기",
16+
"summary": "",
17+
"image": "",
18+
"tags": ["project", "carrot-market", "validator", "zod"],
19+
"series": "",
20+
"createdAt": "2025-07-03 13:12:42",
21+
"modifiedAt": "2025-07-03 13:21:06",
22+
"publish": "프로젝트/당근마켓 클론코딩"
23+
},
1324
{
1425
"urlPath": "자원/크롬 확장프로그램/크롬 확장프로그램에 케시메모리 추가하기",
1526
"title": "크롬 확장프로그램에 케시메모리 추가하기",
@@ -579,7 +590,7 @@
579590
"tags": ["project", "carrot-market", "study", "zod"],
580591
"series": "",
581592
"createdAt": "2025-06-30 21:21:49",
582-
"modifiedAt": "2025-07-02 21:15:26",
593+
"modifiedAt": "2025-07-03 13:15:37",
583594
"publish": "프로젝트/당근마켓 클론코딩"
584595
},
585596
{
@@ -590,7 +601,7 @@
590601
"tags": ["project", "carrot-market", "study", "clone"],
591602
"series": "",
592603
"createdAt": "2025-06-13 11:29:34",
593-
"modifiedAt": "2025-07-02 21:29:56",
604+
"modifiedAt": "2025-07-03 10:48:43",
594605
"publish": "프로젝트/당근마켓 클론코딩"
595606
},
596607
{
@@ -601,7 +612,7 @@
601612
"tags": ["project", "carrot-market", "study"],
602613
"series": "",
603614
"createdAt": "2025-06-30 08:48:51",
604-
"modifiedAt": "2025-07-02 12:24:58",
615+
"modifiedAt": "2025-07-03 12:55:22",
605616
"publish": "프로젝트/당근마켓 클론코딩"
606617
},
607618
{
@@ -634,7 +645,7 @@
634645
"tags": ["project", "\uad34\ub2f4\uc9d1", "strapi", "cms"],
635646
"series": "",
636647
"createdAt": "2025-06-23 09:47:32",
637-
"modifiedAt": "2025-06-28 19:49:02",
648+
"modifiedAt": "2025-07-03 13:18:40",
638649
"publish": "프로젝트/괴담집"
639650
},
640651
{

public/post-contents/프로젝트/괴담집/괴담집 콘텐츠 인프라 구축.json

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

public/post-contents/프로젝트/당근마켓 클론코딩/당근마켓 클론코딩으로 Next.js 복습하기.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"content": "\n# 당근마켓 클론코딩으로 Validator 사용해보기\n\n## Validator과 함께 사용해보기\n\nValidator라이브러리는 간편하게 유효성 검사를 할 수 있는 프리셋 개념의 함수들을 많이 가지고 있다.\n\n### 설치\n\n`Validator`는 javascript모듈이기 때문에 설치시 추가로 타입 설치를 해주어야 `typescript`에서 불편함 없이 사용할 수 있다\n\n```bash\nbun add Validator\nbun i -D @types/Validator\n```\n\n### 기본 사용법\n\n사용 방식도 매우 간단하다. Validator 모듈 안의 `isMobilePhone`, `isJWT` 등등 값을 넣으면 boolean 값으로 바로 알려준다.\n\n```typescript\nimport { isMobilePhone } from \"Validator\";\n\nconst phone = \"010-1234-1234\";\n\nisMobilePhone(phone);\n```\n\n### Zod와 함께 사용하기\n\n[[당근마켓 클론코딩으로 Zod 배우기#refine 메소드]]를 활용하면 매우 간편하게 추가적인 유효성 검증을 실행할 수 있다.\n\n```typescript\nimport { z } from \"zod\";\nimport validator from \"validator\";\n\nconst phoneSchema = z.string().trim().refine(validator.isMobilePhone);\n```\n",
3+
"plainContent": "Validator라이브러리는 간편하게 유효성 검사를 할 수 있는 프리셋 개념의 함수들을 많이 가지고 있다.\nValidator는 javascript모듈이기 때문에 설치시 추가로 타입 설치를 해주어야 typescript에서 불편함 없이 사용할 수 있다\n사용 방식도 매우 간단하다. Validator 모듈 안의 isMobilePhone, isJWT 등등 값을 넣으면 boolean 값으로 바로 알려준다.\n당근마켓 클론코딩으로 Zod 배우기#refine 메소드를 활용하면 매우 간편하게 추가적인 유효성 검증을 실행할 수 있다."
4+
}

0 commit comments

Comments
 (0)