Skip to content

toris-dev/Toris_Blog

Repository files navigation

Toris λΈ”λ‘œκ·Έ

Next.js 16κ³Ό React 19λ₯Ό 기반으둜 ν•œ λͺ¨λ˜ν•œ 기술 λΈ”λ‘œκ·Έμž…λ‹ˆλ‹€. λ§ˆν¬λ‹€μš΄ 파일 기반의 정적 λΈ”λ‘œκ·Έλ‘œ, μΉ΄ν…Œκ³ λ¦¬λ³„ 포슀트 관리, 검색 κΈ°λŠ₯, 닀크λͺ¨λ“œ, λŒ“κΈ€ μ‹œμŠ€ν…œ 등을 μ§€μ›ν•©λ‹ˆλ‹€.

πŸ“‹ λͺ©μ°¨


🎯 μ£Όμš” κΈ°λŠ₯

νŽ˜μ΄μ§€ ꡬ쑰

flowchart LR
  Home[메인화면]
  SideBar(μ‚¬μ΄λ“œλ°”)
  Header(헀더)
  Footer(ν‘Έν„°)
  List[κΈ€ λͺ©λ‘]
  Detail[κΈ€ 상세 ν™”λ©΄]
  About[μ†Œκ°œ νŽ˜μ΄μ§€]
  Contact[문의 νŽ˜μ΄μ§€]

  Home --- Header
  Home --- Footer
  Home --- SideBar
  Home --- List
  List -.-> Detail
  SideBar -.-> Detail
  Header -.-> About
  Header -.-> Contact
Loading

핡심 κΈ°λŠ₯

  • βœ… λ§ˆν¬λ‹€μš΄ 기반 λΈ”λ‘œκ·Έ: public/markdown λ””λ ‰ν† λ¦¬μ˜ λ§ˆν¬λ‹€μš΄ νŒŒμΌμ„ μžλ™μœΌλ‘œ 읽어 포슀트둜 λ³€ν™˜
  • βœ… μΉ΄ν…Œκ³ λ¦¬λ³„ λΆ„λ₯˜: Archive, Career, Learning, Personal, Projects λ“± μΉ΄ν…Œκ³ λ¦¬λ³„ 포슀트 관리
  • βœ… 검색 κΈ°λŠ₯: 제λͺ©, μ„€λͺ…, νƒœκ·Έ 기반 포슀트 검색
  • βœ… 닀크λͺ¨λ“œ: μ‚¬μš©μž μ„ ν˜Έλ„μ— λ”°λ₯Έ 라이트/닀크 λͺ¨λ“œ μ „ν™˜
  • βœ… λ°˜μ‘ν˜• λ””μžμΈ: λͺ¨λ°”일, νƒœλΈ”λ¦Ώ, λ°μŠ€ν¬ν†± λͺ¨λ“  κΈ°κΈ° 지원
  • βœ… SEO μ΅œμ ν™”: 메타 νƒœκ·Έ, κ΅¬μ‘°ν™”λœ 데이터, sitemap, robots.txt, OG 이미지 μžλ™ 생성
  • βœ… RSS Feed: /feed.xml μ—”λ“œν¬μΈνŠΈλ‘œ RSS ν”Όλ“œ 제곡
  • βœ… λŒ“κΈ€ μ‹œμŠ€ν…œ: Utterancesλ₯Ό ν™œμš©ν•œ GitHub 기반 λŒ“κΈ€ μ‹œμŠ€ν…œ
  • βœ… 곡유 κΈ°λŠ₯: μΉ΄μΉ΄μ˜€ν†‘, νŠΈμœ„ν„°, 링크 볡사 λ“± μ†Œμ…œ 곡유 κΈ°λŠ₯
  • βœ… μΏ ν‚€ 관리: μ‚¬μš©μž λ™μ˜ 기반 μΏ ν‚€ 관리 및 Google AdSense 톡합
  • βœ… μ„±λŠ₯ λͺ¨λ‹ˆν„°λ§: Vercel Analytics 및 Speed Insights 톡합
  • βœ… μ ‘κ·Όμ„± κ°œμ„ : ARIA 속성, 색상 λŒ€λΉ„, 링크 μ ‘κ·Όμ„± μ΅œμ ν™”
  • βœ… PWA 지원: Service Workerλ₯Ό ν†΅ν•œ μ˜€ν”„λΌμΈ 지원
  • βœ… 할일 관리 μ‹œμŠ€ν…œ: toris-dev의 할일을 곡개적으둜 κ΄€λ¦¬ν•˜κ³  κ³΅μœ ν•˜λŠ” κΈ°λŠ₯
    • 리슀트, 칸반 λ³΄λ“œ, μΊ˜λ¦°λ” λ·° 지원
    • 이더리움 μ§€κ°‘ 기반 인가 μ‹œμŠ€ν…œ (μ½κΈ°λŠ” 곡개, μ“°κΈ°/μˆ˜μ •/μ‚­μ œλŠ” μΈκ°€λœ μ‚¬μš©μžλ§Œ)
    • MongoDB Atlasλ₯Ό ν†΅ν•œ 영ꡬ 데이터 μ €μž₯

πŸ› οΈ 기술 μŠ€νƒ

Core

  • Next.js 16.0.7 - React ν”„λ ˆμž„μ›Œν¬ (App Router)
  • React 19.2.1 - UI 라이브러리
  • TypeScript 5.3 - νƒ€μž… μ•ˆμ •μ„±

Styling & UI

  • Tailwind CSS - μœ ν‹Έλ¦¬ν‹° 기반 CSS ν”„λ ˆμž„μ›Œν¬
  • Framer Motion - μ• λ‹ˆλ©”μ΄μ…˜ 라이브러리
  • next-themes - 닀크λͺ¨λ“œ 지원
  • tailwind-merge - Tailwind 클래슀 병합
  • class-variance-authority - μ»΄ν¬λ„ŒνŠΈ λ³€ν˜• 관리

Data & State

  • @tanstack/react-query - μ„œλ²„ μƒνƒœ 관리
  • React Hooks - ν΄λΌμ΄μ–ΈνŠΈ μƒνƒœ 관리
  • MongoDB Atlas - ν΄λΌμš°λ“œ λ°μ΄ν„°λ² μ΄μŠ€ (할일 관리 데이터 μ €μž₯)
  • Mongoose - MongoDB 객체 λͺ¨λΈλ§ 라이브러리

Markdown

  • @uiw/react-md-editor - λ§ˆν¬λ‹€μš΄ 에디터
  • @uiw/react-markdown-preview - λ§ˆν¬λ‹€μš΄ 프리뷰
  • react-markdown - λ§ˆν¬λ‹€μš΄ λ Œλ”λ§
  • remark-gfm - GitHub Flavored Markdown 지원
  • rehype-highlight - μ½”λ“œ ν•˜μ΄λΌμ΄νŒ…

Testing

  • Cypress - E2E ν…ŒμŠ€νŠΈ

Analytics & SEO

  • Vercel Analytics - μ›Ή 뢄석 도ꡬ
  • Vercel Speed Insights - μ„±λŠ₯ λͺ¨λ‹ˆν„°λ§
  • Google Tag Manager - 뢄석 도ꡬ
  • Google AdSense - κ΄‘κ³  μˆ˜μ΅ν™” (μΏ ν‚€ λ™μ˜ 기반)
  • Structured Data - SEO κ΅¬μ‘°ν™”λœ 데이터

Blockchain & Web3

  • ethers.js - 이더리움 μ§€κ°‘ μ—°κ²° 및 μ„œλͺ… κΈ°λŠ₯

기타

  • dayjs - λ‚ μ§œ 처리
  • octokit - GitHub API ν΄λΌμ΄μ–ΈνŠΈ (선택적)
  • react-hot-toast - ν† μŠ€νŠΈ μ•Œλ¦Ό
  • react-intersection-observer - 슀크둀 μ• λ‹ˆλ©”μ΄μ…˜
  • shiki - μ½”λ“œ ν•˜μ΄λΌμ΄νŒ…
  • mermaid - λ‹€μ΄μ–΄κ·Έλž¨ λ Œλ”λ§

πŸ“ ν”„λ‘œμ νŠΈ ꡬ쑰

Toris_Blog/
β”œβ”€β”€ public/
β”‚   └── markdown/          # λ§ˆν¬λ‹€μš΄ 포슀트 νŒŒμΌλ“€
β”‚       β”œβ”€β”€ Archive/       # μ•„μΉ΄μ΄λΈŒ μΉ΄ν…Œκ³ λ¦¬
β”‚       β”œβ”€β”€ Career/        # 컀리어 κ΄€λ ¨ 포슀트
β”‚       β”œβ”€β”€ Design/        # λ””μžμΈ κ΄€λ ¨ 포슀트
β”‚       β”œβ”€β”€ Learning/      # ν•™μŠ΅ 자료
β”‚       β”œβ”€β”€ Personal/      # 개인 κ΄€λ ¨ 포슀트
β”‚       └── Projects/      # ν”„λ‘œμ νŠΈ κ΄€λ ¨ 포슀트
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/              # Next.js App Router νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ about/        # μ†Œκ°œ νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ contact/      # 문의 νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ posts/        # λΈ”λ‘œκ·Έ 포슀트 νŽ˜μ΄μ§€
β”‚   β”‚   β”‚   β”œβ”€β”€ [id]/     # 포슀트 상세 νŽ˜μ΄μ§€
β”‚   β”‚   β”‚   β”œβ”€β”€ _components/ # 포슀트 κ΄€λ ¨ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”‚   └── page.tsx  # 포슀트 λͺ©λ‘ νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ categories/   # μΉ΄ν…Œκ³ λ¦¬λ³„ 포슀트 νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ tags/         # νƒœκ·Έλ³„ 포슀트 νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ todos/        # 할일 관리 νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ api/          # API 라우트
β”‚   β”‚   β”‚   └── todos/    # 할일 관리 API
β”‚   β”‚   β”œβ”€β”€ feed.xml/     # RSS Feed
β”‚   β”‚   β”œβ”€β”€ layout.tsx    # 루트 λ ˆμ΄μ•„μ›ƒ
β”‚   β”‚   └── page.tsx      # ν™ˆ νŽ˜μ΄μ§€
β”‚   β”œβ”€β”€ components/       # React μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ ads/          # κ΄‘κ³  μ»΄ν¬λ„ŒνŠΈ (AdSense)
β”‚   β”‚   β”œβ”€β”€ blog/         # λΈ”λ‘œκ·Έ κ΄€λ ¨ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ common/       # 곡톡 μ»΄ν¬λ„ŒνŠΈ (Header, Footer, CookieConsent λ“±)
β”‚   β”‚   β”œβ”€β”€ forms/        # 폼 μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ seo/          # SEO κ΄€λ ¨ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ todos/        # 할일 관리 μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   └── ui/           # UI μ»΄ν¬λ„ŒνŠΈ
β”‚   β”œβ”€β”€ contexts/         # React Context (TodoContext, WalletContext λ“±)
β”‚   β”œβ”€β”€ hooks/            # μ»€μŠ€ν…€ ν›…
β”‚   β”œβ”€β”€ lib/              # 라이브러리 μ„€μ • (mongodb μ—°κ²° λ“±)
β”‚   β”œβ”€β”€ models/           # λ°μ΄ν„°λ² μ΄μŠ€ λͺ¨λΈ (Mongoose μŠ€ν‚€λ§ˆ)
β”‚   β”œβ”€β”€ styles/           # μ „μ—­ μŠ€νƒ€μΌ
β”‚   β”œβ”€β”€ types/            # TypeScript νƒ€μž… μ •μ˜
β”‚   └── utils/            # μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜
β”œβ”€β”€ .cursor/              # Cursor IDE μ„€μ •
β”‚   └── rules/            # λ§ˆν¬λ‹€μš΄ μž‘μ„± μŠ€νƒ€μΌ κ°€μ΄λ“œ
β”œβ”€β”€ cypress/              # E2E ν…ŒμŠ€νŠΈ
β”‚   └── e2e/              # ν…ŒμŠ€νŠΈ νŒŒμΌλ“€
└── README.md

πŸš€ μ‹€ν–‰ 방법

1. ν™˜κ²½ λ³€μˆ˜ μ„€μ •

ν”„λ‘œμ νŠΈ λ£¨νŠΈμ— .env.local νŒŒμΌμ„ μƒμ„±ν•˜κ³  λ‹€μŒ λ³€μˆ˜λ“€μ„ μ„€μ •ν•©λ‹ˆλ‹€:

# 선택적: GitHub API 토큰 (λ§ˆν¬λ‹€μš΄ νŒŒμΌμ„ GitHubμ—μ„œ κ°€μ Έμ˜¬ 경우)
GITHUB_TOKEN=your_github_token

# 선택적: μ‚¬μ΄νŠΈ URL
NEXT_PUBLIC_SITE_URL=https://your-domain.com

# 선택적: Google AdSense Publisher ID
NEXT_PUBLIC_ADSENSE_PUBLISHER_ID=ca-pub-xxxxxxxxxxxxx

# 선택적: Google Tag Manager ID
NEXT_PUBLIC_GTM_ID=GTM-XXXXXXX

# 할일 관리 μΈκ°€λœ μ§€κ°‘ μ£Όμ†Œ (μ‰Όν‘œλ‘œ ꡬ뢄)
# 예: NEXT_PUBLIC_AUTHORIZED_ADDRESSES=0x1234...,0x5678...
NEXT_PUBLIC_AUTHORIZED_ADDRESSES=your_wallet_address

# ν•„μˆ˜: MongoDB Atlas μ—°κ²° URI
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/dbname

2. μ˜μ‘΄μ„± μ„€μΉ˜

pnpm install

3. 개발 μ„œλ²„ μ‹€ν–‰

pnpm dev

개발 μ„œλ²„κ°€ http://localhost:3000μ—μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€.

4. ν”„λ‘œλ•μ…˜ λΉŒλ“œ

pnpm build
pnpm start

πŸ§ͺ E2E ν…ŒμŠ€νŠΈ

Cypressλ₯Ό μ‚¬μš©ν•˜μ—¬ E2E ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν…ŒμŠ€νŠΈ λŸ¬λ„ˆ UI μ—΄κΈ° (개발 및 λ””λ²„κΉ…μš©)

pnpm cypress:open

ν—€λ“œλ¦¬μŠ€ λͺ¨λ“œλ‘œ λͺ¨λ“  ν…ŒμŠ€νŠΈ μ‹€ν–‰ (CI/CD ν™˜κ²½μ— 적합)

pnpm cypress:run

νŠΉμ • ν…ŒμŠ€νŠΈ 파일 μ‹€ν–‰

# λ„€λΉ„κ²Œμ΄μ…˜ ν…ŒμŠ€νŠΈ
pnpm cypress:run:navigation

# λΈ”λ‘œκ·Έ ν…ŒμŠ€νŠΈ
pnpm cypress:run:blog

# λ°˜μ‘ν˜• ν…ŒμŠ€νŠΈ
pnpm cypress:run:responsive

# 검색 ν…ŒμŠ€νŠΈ
pnpm cypress:run:search

ν…ŒμŠ€νŠΈ 파일 λͺ©λ‘

  • about.cy.ts - μ†Œκ°œ νŽ˜μ΄μ§€ ν…ŒμŠ€νŠΈ
  • blog.cy.ts - λΈ”λ‘œκ·Έ 포슀트 ν…ŒμŠ€νŠΈ
  • contact.cy.ts - 문의 폼 ν…ŒμŠ€νŠΈ
  • home.cy.ts - ν™ˆ νŽ˜μ΄μ§€ ν…ŒμŠ€νŠΈ
  • navigation.cy.ts - λ„€λΉ„κ²Œμ΄μ…˜ ν…ŒμŠ€νŠΈ
  • responsive.cy.ts - λ°˜μ‘ν˜• λ””μžμΈ ν…ŒμŠ€νŠΈ
  • search.cy.ts - 검색 κΈ°λŠ₯ ν…ŒμŠ€νŠΈ

⚑ μ„±λŠ₯ μ΅œμ ν™”

Next.js μ΅œμ ν™” κΈ°λŠ₯ ν™œμš©

  • ISR (Incremental Static Regeneration): 포슀트 데이터λ₯Ό 6μ‹œκ°„λ§ˆλ‹€ μž¬μƒμ„±
  • Server Components: μ„œλ²„ μ»΄ν¬λ„ŒνŠΈλ₯Ό ν™œμš©ν•œ μ„±λŠ₯ μ΅œμ ν™”
  • Image Optimization: Next.js Image μ»΄ν¬λ„ŒνŠΈ μ‚¬μš©
  • Code Splitting: μžλ™ μ½”λ“œ λΆ„ν• 

μ›Ή μ„±λŠ₯ μ§€ν‘œ (Lighthouse)

  • βœ… LCP (Largest Contentful Paint) μ΅œμ ν™”
  • βœ… CLS (Cumulative Layout Shift) μ΅œμ†Œν™”
  • βœ… FID (First Input Delay) κ°œμ„ 
  • βœ… μ ‘κ·Όμ„± (Accessibility) κ°œμ„ 
    • ARIA 속성 μ΅œμ ν™”
    • 색상 λŒ€λΉ„ λΉ„μœ¨ κ°œμ„ 
    • 링크 μ ‘κ·Όμ„± ν–₯상

νŠΈλŸ¬λΈ”μŠˆνŒ…

μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 잘 λ§Œλ“€κΈ° μœ„ν•΄ λ‹€μŒμ„ 신경써야 ν•©λ‹ˆλ‹€:

  • LCP: 초기 λ‘œλ”© μ„±λŠ₯ μ΅œμ ν™”
  • CLS: λ ˆμ΄μ•„μ›ƒ μ‹œν”„νŠΈ λ°©μ§€
  • FID: μΈν„°λž™μ…˜ 응닡성 κ°œμ„ 
  • Next.js λ Œλ”λ§ μ „λž΅: SSR, SSG, ISR을 효율적으둜 μ‚¬μš©

πŸ“ κ°œμ„ ν•  점

κ³„νšλœ κΈ°λŠ₯

  • ν”Œλ¦½ 효과 (μ•ž: 제λͺ©, μΉ΄ν…Œκ³ λ¦¬, νƒœκ·Έ / λ’€: λ³Έλ¬Έ)
  • λΉ„νšŒμ› λŒ“κΈ€ κΈ°λŠ₯ κ΅¬ν˜„ (CRUD)
    • μž‘μ„± μ‹œ ID, PWD μž…λ ₯
    • μˆ˜μ •, μ‚­μ œ μ‹œ μž…λ ₯ν–ˆλ˜ ID, PWD 확인
  • λ°©λͺ…둝 κΈ°λŠ₯ κ΅¬ν˜„ (CR)
    • μž‘μ„± μ‹œ λ‹‰λ„€μž„λ§Œ μž‘μ„±
    • μ‚­μ œ, μˆ˜μ • λΆˆκ°€
  • μ‹€μ‹œκ°„ μ±„νŒ… κ΅¬ν˜„
  • λ‹€κ΅­μ–΄ 지원 (i18n)

μ™„λ£Œλœ κ°œμ„  사항

  • μ μ ˆν•œ 캐싱 μž‘μ—…
  • μ ‘κ·Όμ„± κ°œμ„  (ARIA 속성, 색상 λŒ€λΉ„, 링크 μ ‘κ·Όμ„±)
  • SEO μ΅œμ ν™” (메타 νƒœκ·Έ, κ΅¬μ‘°ν™”λœ 데이터, OG 이미지 μžλ™ 생성)
  • E2E ν…ŒμŠ€νŠΈ κ°•ν™”
  • λŒ“κΈ€ μ‹œμŠ€ν…œ (Utterances) 톡합
  • μ†Œμ…œ 곡유 κΈ°λŠ₯ (μΉ΄μΉ΄μ˜€ν†‘, νŠΈμœ„ν„°, 링크 볡사)
  • μΏ ν‚€ 관리 및 Google AdSense 톡합
  • Vercel Analytics 및 Speed Insights 톡합
  • PWA 지원 (Service Worker)
  • λ§ˆν¬λ‹€μš΄ μž‘μ„± μŠ€νƒ€μΌ κ°€μ΄λ“œ 톡일 (.cursor/rules)
  • 할일 관리 μ‹œμŠ€ν…œ κ΅¬ν˜„
    • 리슀트, 칸반 λ³΄λ“œ, μΊ˜λ¦°λ” λ·° 지원
    • 이더리움 μ§€κ°‘ 기반 인가 μ‹œμŠ€ν…œ
    • MongoDB Atlas 영ꡬ 데이터 μ €μž₯

πŸ“… 졜근 λ³€κ²½ 사항

2025λ…„ 1μ›”

  • 할일 관리 μ‹œμŠ€ν…œ: toris-dev의 할일을 곡개적으둜 κ΄€λ¦¬ν•˜κ³  κ³΅μœ ν•˜λŠ” κΈ°λŠ₯ μΆ”κ°€
    • 리슀트, 칸반 λ³΄λ“œ, μΊ˜λ¦°λ” λ·° 지원
    • 이더리움 μ§€κ°‘ 기반 인가 μ‹œμŠ€ν…œ (μ½κΈ°λŠ” 곡개, μ“°κΈ°/μˆ˜μ •/μ‚­μ œλŠ” μΈκ°€λœ μ‚¬μš©μžλ§Œ)
    • MongoDB Atlasλ₯Ό ν†΅ν•œ 영ꡬ 데이터 μ €μž₯
    • React Context APIλ₯Ό ν™œμš©ν•œ μ „μ—­ μƒνƒœ 관리
    • Framer Motion을 ν™œμš©ν•œ λΆ€λ“œλŸ¬μš΄ μ• λ‹ˆλ©”μ΄μ…˜
    • React Portal을 ν™œμš©ν•œ λͺ¨λ‹¬ μ΅œμ ν™”

2025λ…„ 12μ›”

  • Next.js 16 μ—…κ·Έλ ˆμ΄λ“œ: μ΅œμ‹  λ²„μ „μœΌλ‘œ μ—…κ·Έλ ˆμ΄λ“œ
  • λŒ“κΈ€ μ‹œμŠ€ν…œ: Utterancesλ₯Ό ν™œμš©ν•œ GitHub 기반 λŒ“κΈ€ μ‹œμŠ€ν…œ 톡합
  • μ†Œμ…œ 곡유: μΉ΄μΉ΄μ˜€ν†‘, νŠΈμœ„ν„°, 링크 볡사 κΈ°λŠ₯ μΆ”κ°€
  • μΏ ν‚€ 관리: μ‚¬μš©μž λ™μ˜ 기반 μΏ ν‚€ 관리 μ‹œμŠ€ν…œ κ΅¬ν˜„
  • Google AdSense: μΏ ν‚€ λ™μ˜ 기반 κ΄‘κ³  톡합
  • μ„±λŠ₯ λͺ¨λ‹ˆν„°λ§: Vercel Analytics 및 Speed Insights 톡합
  • PWA 지원: Service Workerλ₯Ό ν†΅ν•œ μ˜€ν”„λΌμΈ 지원
  • λ§ˆν¬λ‹€μš΄ μŠ€νƒ€μΌ 톡일: .cursor/rules/toris-markdown-style.md κ°€μ΄λ“œ μž‘μ„± 및 λͺ¨λ“  λ§ˆν¬λ‹€μš΄ 파일 μŠ€νƒ€μΌ 톡일
  • λ©΄μ ‘ 질문 정리: JavaScript와 μ•Œκ³ λ¦¬μ¦˜ 기초 κ°œλ… 정리 ν¬μŠ€νŒ… μΆ”κ°€

2025λ…„ 1μ›”

  • μ ‘κ·Όμ„± κ°œμ„ : Lighthouse κ²½κ³  ν•΄κ²°
    • κΈˆμ§€λœ ARIA 속성 μˆ˜μ •
    • 색상 λŒ€λΉ„ λΉ„μœ¨ κ°œμ„ 
    • 링크 μ ‘κ·Όμ„± ν–₯상
  • ν”„λ‘œμ νŠΈ ꡬ쑰 κ°œμ„ : λ§ˆν¬λ‹€μš΄ 기반 λΈ”λ‘œκ·Έλ‘œ μ „ν™˜
  • E2E ν…ŒμŠ€νŠΈ κ°•ν™”: Cypress ν…ŒμŠ€νŠΈ μ½”λ“œ μ—…λ°μ΄νŠΈ

2024λ…„ 7μ›” 12일

  • κΈ°λŠ₯ 제거 및 ꡬ쑰 κ°œμ„ :
    • κΈ°μ‘΄ 포트폴리였, κ΄€λ¦¬μž, λ°©λͺ…둝, 인증 κ΄€λ ¨ κΈ°λŠ₯ 제거
    • λ§ˆν¬λ‹€μš΄ μ½˜ν…μΈ  ꡬ쑰 μž¬μ •λΉ„
    • public/markdown 디렉토리 μ•„λž˜ μΉ΄ν…Œκ³ λ¦¬λ³„ 디렉토리 λ„μž…
  • E2E ν…ŒμŠ€νŠΈ κ°•ν™”:
    • Cypressλ₯Ό μ‚¬μš©ν•œ μ£Όμš” νŽ˜μ΄μ§€ 및 κΈ°λŠ₯ ν…ŒμŠ€νŠΈ μ½”λ“œ μ—…λ°μ΄νŠΈ

πŸ“„ λΌμ΄μ„ μŠ€

이 ν”„λ‘œμ νŠΈλŠ” 개인 ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€.


πŸ‘€ μž‘μ„±μž

ν† λ¦¬μŠ€ (Toris)

πŸ“š λ§ˆν¬λ‹€μš΄ μž‘μ„± κ°€μ΄λ“œ

ν”„λ‘œμ νŠΈμ˜ λͺ¨λ“  λ§ˆν¬λ‹€μš΄ νŒŒμΌμ€ .cursor/rules/toris-markdown-style.md κ°€μ΄λ“œλ₯Ό λ”°λ¦…λ‹ˆλ‹€.

  • 1λ…„μ°¨ 개발자 관점 μœ μ§€
  • 개인적 κ²½ν—˜κ³Ό 감정 ν‘œν˜„ 포함
  • μ΄ˆλ³΄μžλ„ 이해할 수 μžˆλ„λ‘ μ„€λͺ…
  • μ‹€λ¬΄μ—μ„œ λ°”λ‘œ ν™œμš© κ°€λŠ₯ν•œ λ‚΄μš©
  • μ†”μ§ν•˜κ³  μΉœκ·Όν•œ 톀 μ‚¬μš©

μΉ΄ν…Œκ³ λ¦¬λ³„ μž‘μ„± κ°€μ΄λ“œ:

  • Projects: ν”„λ‘œμ νŠΈ 리뷰 ν˜•μ‹ (처음 μ ‘ν–ˆμ„ λ•Œ β†’ μ–΄λ €μ› λ˜ 점 β†’ ν•΄κ²° 방법 β†’ 배운 점)
  • Learning: κ°œλ… μ„€λͺ… 쀑심, μ½”λ“œ μ˜ˆμ œμ™€ 싀무 팁
  • Career: 싀무 쀑심, μ•Œκ³ λ¦¬μ¦˜/μ½”λ”©ν…ŒμŠ€νŠΈ κ΄€λ ¨

Visitor Count

About

🏠 Toris blog with Next.js 🏠

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published