[정보] 사이버루나 랜딩 페이지 제작
·
기타정보
https://www.cyber-luna.com 사이버루나 - 이병호정보보안전문가/프로그래머www.cyber-luna.com
[개발] 금융 커뮤니티 - 리치에이블 개발일지 #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..
[Auth.js] [auth][error] AccessDenied: AccessDenied. Read more at https://errors.authjs.dev#accessdenied
·
🤖정보보안/💠1분지식
문제점[auth][error] AccessDenied: AccessDenied. Read more at https://errors.authjs.dev#accessdenied Auth.js | ErrorsAuthentication for the Webauthjs.dev  해결방법OAuth의 경우 SignIn 로직을 타고 회원가입이 SignUp 없이 진행된다.true false로 SignIn 처리를 하느넛을 알게되었다.// auth.tsimport authConfig from "@/auth.config";import { PrismaAdapter } from "@auth/prisma-adapter";import db from "@/lib/db";import { getUserById } from "@/data/..
[개발] 금융 커뮤니티 - 리치에이블 개발일지 #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 ..
[Auth.js] 로그인 직후 useSession undefined 현상 해결
·
🤖정보보안/💠1분지식
문제점SessionProvider로 감싸고 useSession을 사용할 시 최초 로그인 상에서는 동작으며 Hard Reload 시 동작하는 현상이 있었다. 해결전해결후 버전정보 "next": "14.2.4", "next-auth": "^5.0.0-beta.19", 해결방법useSession대신 아래의 hook을 사용하여 호출한다.매우 감사하게도 유저분(bocarw121)께서 만들어 주셨다.아래 Github Issue 참고 - 많은 사람들이 고통받고 있다. 규모가 커짐에 따른 유지보수가 불안정한 느낌이다. use-current-session.ts// This hook doesn't rely on the session providerexport const useCurrentSession = () => { ..
[개발] 금융 커뮤니티 - 리치에이블 개발일지 #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..
[Next.js] 리엑트 테이블 CSV 저장 구현(feat. Shadcn)
·
🐞프로그래밍/Next.js
개요Shadcn의 Data Table에서 불러온 데이터를 CSV로 저장하는 기능이 필요하여 적용해보았다. export-to-csv 모듈을 설치하고 Shadcn Data Table 모듈에 버튼을 추가하여 커스텀한 페이지를 작성해 보았다. 설치다음의 모듈을 설치하고 다음의 함수를 사용한다.npm install export-to-csv --saveimport { mkConfig, generateCsv, download } from 'export-to-csv' 본문(Shadcn 커스텀)Shadcn Data Table에 CSV 다운 버튼을 적용한 파일이다.ProjectPage.tsx"use client";import * as React from "react";import { useEffect, useState }..