사이트 변수들을 데이터베이스에서 관리Crlog 플랫폼을 여러 사이트에 적용하기 위해서는 매번 복사하고 디플로이하기 어렵다.때문에 이를 데이터베이스에서 관리하고 접속시 자체적으로 도메인에 맞는 값으로 데이터를 보내고 이를 통해 랜더링하는 방식으로 변경해야 한다. Crlog 리팩토링을 시작했다. 모든 사이트들의 플랫폼을 그대write를 [slug] 아래로 이동시킴[slug]/write/page.tsx 로 이동했다.write에서 카테고리에서 자동으로 카테고리가 설정되도록 함따라서 Editor.tsx 도 변경했다.'use client'; import React, { useEffect, useState } from 'react'; import { 댓글 기능 복구댓글 기능을 다시 살리자.Edit 카테고리 적용 안됨포스트 Edit 할 때 카테고리가 초기 설정 안되고 있다. Crlog 적용 완료 - 250716Write, Edit, Delete 제한하기사용자 권한을 두어야 한다. Crlog 적용 완료 (아이피 제한) - 250716SEO 관련 타이틀 표시타이틀이 적용되지 않고 있다. Crlog 우선 적용 - 250716app/post.css /* app/post.css */ .post { padding: 1rem 1.5rem !important; width: 100%; box-sizing: border-box; } .subject { font-size: 1.5rem !imporCondiCandy와 CondiVision 프로젝트 기획― Condi의 시선에서 바라본 새로운 가능성오랫동안 마음속에 간직해온 이름, CondiCandy.이 이름은 단순한 도구가 아니라,내가 직접 플레이하면서 느꼈던 불편함과 한계를 기술로 해결하려는개발자이자 게이머로서의 응답이다. CondiVision: 화면과 통신하는 새로운 방식CondiCrlog 플랫폼 기술 구조 및 UI/UX 설계전체 파일 구조/app [...slug]/ ← 모든 페이지의 라우팅 진입점 page.tsx ← slug 배열 기반 분기 처리 delete/ Confirm.tsx ← 삭제 전 확인 UI Header.tsx Crlog 플랫폼 개념과 철학Crlog는 내가 개발한 기록 중심 플랫폼이다.개발하면서 매번 문제를 해결하고, 정리하고, 되돌아보고, 또 수정하는 과정을 반복하는데, 이걸 제대로 쌓아둘 곳이 없었다.블로그는 너무 결과물 중심이고, 노션은 느리고, 깃허브 블로그는 손이 많이 간다.그래서 만들었다. 기록이 중심이 되는 Crlog 플랫폼 변경사항1. page.tsx 구조 확정라우팅 파라미터는 다음 구조로 고정.export default async function Page({ params, }: { params: Promise<{ slug: string }> }) { const { slug } = await param@page.tsximport { Container } from '@mui/material'; import Footer from '../components/Footer'; import Header from '../components/Header'; import Nav from '../components/스피커 하나 바꿨을 뿐인데크게 기대한 건 아니었다.그냥 오래된 책상용 스피커를 하나 새 걸로 바꿨을 뿐이다.음질이 특별히 좋다는 후기 하나 보고,‘그래도 이왕이면 좀 나은 걸로 들어보자’는 정도였다.처음 느낀 건 음악이 달라졌다는 거였다.그동안은 음악이 배경이 아니라 방해가 될 때가 많았는데,이제는 자연스럽게 Hekili bindingSubs 키 바인딩 축약 규칙local bindingSubs = { { "CTRL%-", "C" }, -- Ctrl modifier { "ALT%-", "A" }, -- Alt modifier { "SHIFT%-", "S" }, -- Shift mod@crlog/app/[...slug]/page.tsximport { Container, Box } from '@mui/material'; import Header from '../components/Header'; import Footer from '../components/Footer'; import Nav from '../compon예전에 기록한 노트에 쓸만한 게 거의 없다데이터 백업하려고 게시글을 검토하다가 ... 아 쓸만한 게시물은 너무 없는 것이다.지금은 어느 정도 내용을 알고 있다고 하더라도 너무 막 쓴 게 아닌가 싶다. 게시물 하나라도 잘 쓰는 습관을 들여야겠다는 생각이 든다.어차피 이 글도 잠시 사라질 것 같긴 하지만 ...리액트로 "Hello, World!"#1. 리액트 네이티브 설치npm install -g react-native-cli #2. 프로젝트 생성npx react-native init acfirst #3. 안드로이드 앱 실행cd MyTestApp npx react-native run-android #4. 소스 코드 편집impo.htaccess 로 url 경로 바꾸기RewriteCond %{REQUEST_URI} ^/images/(.*)$ RewriteRule ^ /crlog/image_view.php?name=%1 [L]견적서 프로젝트It automatically makes an estimate.It should be available for download in Excel.Backend : Firebase hostingFrontend : ReactDatabase : MySqlMiddleware : PHP estim구글 로그인 연동Firebase Authentication을 사용한 구글 로그인 연동 Firebase 프로젝트 설정:Firebase 콘솔에서 새 프로젝트를 생성하고, 애플리케이션에 Firebase를 추가합니다.Authentication 섹션으로 이동하여 Google 로그인 방법을 활성화합니다. 애플리케@crlog/app/layout.tsximport type { Metadata } from "next"; import { notoSerif, notoSans } from './fonts'; import "./globals.css"; import "./post.css"; export const metadata: MetadaCrlog 플랫폼 설치Next.js 프로젝트를 생성합니다npx create-next-app@latest crlog.com --typescript이 명령어를 실행하면 몇 가지 질문이 나오는데요, 아래와 같이 선택하시면 됩니다:ESLint 사용 여부: 코드를 일정한 스타일로 관리하기 위해 Yes를 선택하는 것이@crlog/app/components/Aside.tsx [250704]import Link from 'next/link'; import { Box, List, ListItem, ListItemText, Typography, Divider } from '@mui/material'; import { notoSans } from '../fonts'; typ