[๊ฐœ๋ฐœ] ๊ธˆ์œต ์ปค๋ฎค๋‹ˆํ‹ฐ - ๋ฆฌ์น˜์—์ด๋ธ” ๊ฐœ๋ฐœ์ผ์ง€ #5(๋‹ต๊ธ€๊ธฐ๋Šฅ) - v1.0
ยท
ํ”„๋กœ์ ํŠธ/๐Ÿ ๊ธˆ์œต ์ปค๋ฎค๋‹ˆํ‹ฐ
ํ›„๊ธฐ๋ฆฌ์น˜์—์ด๋ธ” v1.0์ด ์™„์„ฑ๋˜์—ˆ๋‹ค. ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ๋ฐ ๋‹ต๊ธ€ ์ž‘์„ฑ ๊ทธ๋ฆฌ๊ณ  ํŒ”๋กœ์šฐ ๊ธฐ๋Šฅ ๊นŒ์ง€ ๋„ฃ์—ˆ๋‹ค. ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์žก๋Š”๋ฐ๋งŒ ๊ฑฐ์˜ 3์ฃผ๊ฐ€ ๊ฑธ๋ฆฐ ๋“ฏ ํ•˜๋‹ค ์ด ๊ณผ์ •์—์„œ ์‚ฌ์šฉ์ž ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ฅธ ๋ฐ์ด๋”๋ฒ ์ด์Šค ์„ค๊ณ„ ๋ฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„์— ์žˆ์–ด์„œ ์ข‹์€ ๊ฒฝํ—˜์„ ์–ป์„ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ํŠนํžˆ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ํ…Œ์ด๋ธ” ๊ฐ„ ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ์•„์ฃผ ์ค‘์š”ํ•œ ๊ฒƒ์„ ๋Š๊ผˆ๋‹ค.model Thread { id String @id @default(cuid()) content String User User @relation(fields: [userId], references: [id], onDelete: Cascade) createdAt DateTime @default(now()..
[๊ฐœ๋ฐœ] ๊ธˆ์œต ์ปค๋ฎค๋‹ˆํ‹ฐ - ๋ฆฌ์น˜์—์ด๋ธ” ๊ฐœ๋ฐœ์ผ์ง€ #4(์ข‹์•„์š”)
ยท
ํ”„๋กœ์ ํŠธ/๐Ÿ ๊ธˆ์œต ์ปค๋ฎค๋‹ˆํ‹ฐ
ํ›„๊ธฐ์ข‹์•„์š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.UI์ƒ์˜ ํ‘œ์‹œ์™€ ๋ฐฑ์—”๋“œ์˜ ์ข‹์•„์š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ๊ฒƒ์€ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ตฌํ˜„์ด ๋˜์–ด์žˆ๋‹ค. ํ•จ๊ป˜ ์„œ๋ฒ„ ์•ก์…˜๊ณผ ์—ฐ๋™ํ•˜๋‹ˆ ์‹œ๊ฐ„๋„ ์˜ค๋ž˜๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฆ‰๊ฐ์ ์ธ ๋ฐ˜์‘์„ ์ฃผ๊ธฐ๋กœ ํ–ˆ๋‹ค.ํ‘œํ˜„ํ•  Thread ๊ฐ์ฒด๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ ์ข‹์•„์š” ํ˜„ํ™ฉ์„ ๋ Œ๋”๋งํ•œ๋‹ค. import React, { useEffect, useState } from "react";import { HeartIcon, MessageCircle, RepeatIcon, SendIcon } from "lucide-react";import { threadLike } from "@/actions/thread/ThreadLike";import { ThreadType } from "@/type/ThreadType";import..
[๊ฐœ๋ฐœ] ๊ธˆ์œต ์ปค๋ฎค๋‹ˆํ‹ฐ - ๋ฆฌ์น˜์—์ด๋ธ” ๊ฐœ๋ฐœ์ผ์ง€ #3(feat.์Šค๋ ˆ๋“œ)
ยท
ํ”„๋กœ์ ํŠธ/๐Ÿ ๊ธˆ์œต ์ปค๋ฎค๋‹ˆํ‹ฐ
ํ›„๊ธฐ๋ญ”๊ฐ€ ์Šค๋ ˆ๋“œ ํด๋ก ์ฝ”๋”ฉ ์ฒ˜๋Ÿผ ๋˜์—ˆ์ง€๋งŒ ๊ธฐ๋Šฅ์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋ฌดํ•œ์Šคํฌ๋กค ๋ฐ ๋‹ค์–‘ํ•œ UI/UX ์ ์šฉ์„ ํ–ˆ์œผ๋‹ˆ ๋งŒ์กฑํ•œ๋‹ค. useTransitional์„ ํ†ตํ•ด์„œ ๋ฒ„ํŠผ์˜ disabled๋ฅผ ์ œ์–ดํ•˜์˜€๋‹ค. UI ์ปดํฌ๋„ŒํŠธ๊ฐ„ ์„ค๊ณ„์— ๋งŽ์€ ๋„์›€์ด ๋˜์—ˆ๋‹ค. ํ™ˆํŽ˜์ด์ง€https://richable.cyber-luna.com/ ๋ฆฌ์น˜์—์ด๋ธ” - ๋กœ๊ทธ์ธ๋” ๋†’์€ ์„ฑ์žฅ์„ ์œ„ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐrichable.cyber-luna.com์†Œ์Šค์ฝ”๋“œhttps://github.com/TwoIceFIsh/richable-web-server GitHub - TwoIceFIsh/richable-web-server: richable-web-serverrichable-web-server. Contribute to TwoIceFIsh/richable-web-server ..
[๊ฐœ๋ฐœ] ๊ธˆ์œต ์ปค๋ฎค๋‹ˆํ‹ฐ - ๋ฆฌ์น˜์—์ด๋ธ” ๊ฐœ๋ฐœ์ผ์ง€ #2(feat.์Šค๋ ˆ๋“œ)
ยท
ํ”„๋กœ์ ํŠธ/๐Ÿ ๊ธˆ์œต ์ปค๋ฎค๋‹ˆํ‹ฐ
1.์Šค๋ ˆ๋“œ ๊ธฐ๋Šฅ๊ทผ๋ž˜ ์ตœ๊ทผ ๋‚˜์˜จ ์Šค๋ ˆ๋“œ์˜ ๋””์ž์ธ์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋ชจ๋ฐฉ ๊ตฌํ˜„ ํ•ด๋ณด์•˜๋‹ค.ํ™”๋ฉด์กฐํšŒ ์ž‘์„ฑ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆmodel Thread { id String @id @default(cuid()) content String User User @relation(fields: [userId], references: [id], onDelete: Cascade) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt userId String ThreadComment ThreadComment[]}model Thr..
[๊ฐœ๋ฐœ] ๊ธˆ์œต ์ปค๋ฎค๋‹ˆํ‹ฐ - ๋ฆฌ์น˜์—์ด๋ธ” ๊ฐœ๋ฐœ์ผ์ง€ #1
ยท
ํ”„๋กœ์ ํŠธ/๐Ÿ ๊ธˆ์œต ์ปค๋ฎค๋‹ˆํ‹ฐ
๊ฐœ๋ฐœ๋ชฉ์ ํ˜„๋Œ€์‚ฌํšŒ์— ๋“ค์–ด์„œ๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ €๋งˆ๋‹ค ์ž์‹ ์˜ ์žฅ์ ์„ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ์€ ์š•๊ตฌ๊ฐ€ ์žˆ๋‹ค. ๋ณดํ†ต ์‚ฌ๋žŒ๋“ค์€ ์˜จ๋ผ์ธ ๊ณต๊ฐ„์— ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๊ฒŒ๋˜๋ฉด ์‹œ๊ธฐ ์งˆํˆฌ๋ฅผ ๋ฐ›๊ฒŒ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ์š•๊ตฌ๋ฅผ ์ถฉ์กฑํ•  ์ˆ˜ ์žˆ๋„๋ก ์‚ฌํšŒ์  ํ•ฉ์˜ํ•˜์— ์ž๋ž‘์ด ์šฉ์ธ๋œ ๊ณณ์—์„œ ์ž์œ ๋กญ๊ฒŒ ์˜์‚ฌ๊ตํ™˜์„ ํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐ์„ ํ•˜์—ฌ ๋‹ค์Œ์˜ ๊ธˆ์œต ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•œ๋‹ค. ๊ฐœ๋ฐœ์ผ์ง€Next.js ๊ธฐ๋ฐ˜์— Auth.js๋กœ ์ธ์ฆ ์ธ๊ฐ€๋ฅผ ์ ์šฉ ํ›„ ํšŒ์› ๊ฐ€์ž…์‹œ ์ด๋ฉ”์ผ ์ธ์ฆ์„ ํ†ตํ•˜์—ฌ ๋กœ๊ทธ์ธ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ์ž์ฒด ์ด๋ฉ”์ผ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•์„ ํ•˜์—ฌ ๋ฐœ์†ก ์ „์šฉ ๊ณ„์ •์„ ์ƒ์„ฑํ–ˆ๋‹ค. ์ถ”ํ›„ ์„œ๋น„์Šค๊ฐ€ ์˜คํ”ˆ๋˜๋ฉด ์ด๋ฉ”์ผ/๋ฉ”์‹ ์ € ์„œ๋น„์Šค ์ถ”๊ฐ€๋„ ๊ณ ๋ ค ์˜ˆ์ •์ด๋‹ค. ๋ฉ”์ธํ™”๋ฉด์€ ํŠธ์œ„ํ„ฐ์˜ ์ปจ์ƒ™์œผ๋กœ ํ”ผ๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋”ฐ๋กœ ์ „ํ†ต์ ์ธ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œํŒ์„ ๋งˆ๋ จํ•˜์˜€๋‹ค. ์ถ”ํ›„ ํฌ์ธํŠธ ์ œ๋„๋ฅผ ํ†ตํ•ด์„œ ๊ฐ ๊ฒŒ์‹œํŒ์˜ ๋Œ€๊ฒฐ๊ตฌ..