Skip to content

cnvxlns/PrimerFlow-FE

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

16 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿงฌ PrimeFlow: Frontend Visualization Engine

Next.js TypeScript Canvas API Vercel

High-Performance PCR Primer Design & Visualization Platform

๋Œ€์šฉ๋Ÿ‰ ์œ ์ „์ž ์„œ์—ด(10,000bp+)์„ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์—ฐ ์—†์ด ๋ถ„์„ํ•˜๊ณ  ์‹œ๊ฐํ™”ํ•˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ์—”์ง„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค.

๐Ÿ“– ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

PrimeFlow๋Š” ์ƒ๋ช…๊ณผํ•™ ์—ฐ๊ตฌ์›๋“ค์ด PCR ํ”„๋ผ์ด๋จธ๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ๊ฒช๋Š” ๋น„ํšจ์œจ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์›น ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ๋ณธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ(Frontend)๋Š” ๋ฐฑ์—”๋“œ์—์„œ ๋ถ„์„๋œ ์œ ์ „์ž ๋ฐ์ดํ„ฐ์™€ ํ”„๋ผ์ด๋จธ ํ›„๋ณด๊ตฐ์„ HTML5 Canvas๋ฅผ ํ™œ์šฉํ•ด ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ํ•ต์‹ฌ ๊ธฐ์ˆ  (Key Features)

  • Custom Rendering Engine: DOM ์กฐ์ž‘ ๋ฐฉ์‹์ด ์•„๋‹Œ, Canvas API ๊ธฐ๋ฐ˜์˜ ์ž์ฒด ๋ Œ๋”๋ง ์—”์ง„์„ ๊ตฌํ˜„ํ•˜์—ฌ 10,000bp ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ 60fps๋กœ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค.
  • Optimization Algorithms:
    • View Culling: ์ด๋ถ„ ํƒ์ƒ‰(Binary Search)์„ ํ™œ์šฉํ•˜์—ฌ ํ™”๋ฉด ๋ฐ–์˜ ๋ฐ์ดํ„ฐ ๋ Œ๋”๋ง์„ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.
    • Auto Layout: ๊ทธ๋ฆฌ๋””(Greedy) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‘์šฉํ•˜์—ฌ ๊ฒน์น˜๋Š” ํ”„๋ผ์ด๋จธ ๊ตฌ๊ฐ„์„ ์ž๋™์œผ๋กœ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • Interactive UX: ํ–‰๋ ฌ ๋ณ€ํ™˜(Matrix Transformation)์„ ์ ์šฉํ•œ ์ •๋ฐ€ํ•œ Zoom-In/Out ๋ฐ Panning ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ›  ๊ธฐ์ˆ  ์Šคํƒ (Tech Stack)

  • Core: Next.js 16 (App Router), TypeScript
  • Graphics: HTML5 Canvas API (2D Context)
  • Styling: Tailwind CSS
  • State Management: Zustand
  • Data Fetching: SWR / TanStack Query
  • Deployment: Vercel

๐Ÿ—๏ธ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ (Project Architecture)

PrimerFlow-FE/
โ”œโ”€โ”€ app/                  # ๐ŸŒ [Main] ํŽ˜์ด์ง€ ๋ฐ ๋ผ์šฐํŒ… (Next.js App Router)
โ”‚   โ”œโ”€โ”€ page.tsx          # ๋ฉ”์ธ ๋Œ€์‹œ๋ณด๋“œ ํ™”๋ฉด
โ”‚   โ””โ”€โ”€ layout.tsx        # ์ „์—ญ ๋ ˆ์ด์•„์›ƒ (Header, Font ๋“ฑ)
โ”‚
โ”œโ”€โ”€ components/           # ๐Ÿงฉ UI ์ปดํฌ๋„ŒํŠธ ๋ชจ์Œ
โ”‚   โ”œโ”€โ”€ canvas/           # โœจ [Core] ์‹œ๊ฐํ™” ์—”์ง„ (GenomeCanvas, Controls ๋“ฑ)
โ”‚   โ””โ”€โ”€ ui/               # ๊ณตํ†ต UI (Button, Input, Card ๋“ฑ)
โ”‚
โ”œโ”€โ”€ lib/                  # ๐Ÿงฎ ์ˆœ์ˆ˜ ํ•จ์ˆ˜ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜
โ”‚   โ”œโ”€โ”€ algorithms/       # [Optimization] ์ด๋ถ„ ํƒ์ƒ‰, ๋ ˆ์ด์•„์›ƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜
โ”‚   โ”œโ”€โ”€ math/             # [Math] ์ขŒํ‘œ ๋ณ€ํ™˜(World <-> Screen), ํ–‰๋ ฌ ์—ฐ์‚ฐ
โ”‚   โ””โ”€โ”€ parsers/          # [Data] FASTA ํŒŒ์‹ฑ ๋ฐ API ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜
โ”‚
โ”œโ”€โ”€ store/                # ๐Ÿ’พ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ (Zustand)
โ”‚   โ””โ”€โ”€ useViewStore.ts   # ์คŒ ๋ ˆ๋ฒจ, ๋ทฐํฌํŠธ ์œ„์น˜ ๋“ฑ ๊ด€๋ฆฌ
โ”‚
โ”œโ”€โ”€ docs/                 # ๐Ÿ“„ ๋ฌธ์„œ ๋ฐ ํ”„๋กฌํ”„ํŠธ ์•„์นด์ด๋ธŒ
โ”‚   โ””โ”€โ”€ prompts/          # AI ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ธฐ๋Šฅ ๋ช…์„ธ์„œ(Spec) ๋ชจ์Œ
โ”‚
โ””โ”€โ”€ public/               # ๐Ÿ–ผ๏ธ ์ •์  ํŒŒ์ผ (์ด๋ฏธ์ง€, ์•„์ด์ฝ˜)

๐Ÿš€ ์‹œ์ž‘ํ•˜๊ธฐ (Getting Started)

์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ

  • Node.js 20.9.0 ์ด์ƒ
  • npm ๋˜๋Š” yarn

์„ค์น˜ ๋ฐ ์‹คํ–‰

# 1. ์ €์žฅ์†Œ ํด๋ก 
git clone [https://github.com/Seq-Lab/PrimerFlow-FE.git](https://github.com/Seq-Lab/PrimerFlow-FE.git)

# 2. ํ”„๋กœ์ ํŠธ ํด๋”๋กœ ์ด๋™
cd PrimerFlow-FE

# 3. ํŒจํ‚ค์ง€ ์„ค์น˜
npm ci

# 4. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • (.env.local ์ƒ์„ฑ)
- `.env.example` ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜์—ฌ `.env.local`์„ ์ƒ์„ฑํ•˜์„ธ์š”.
- Next.js `rewrites`์—์„œ ๋ฐฑ์—”๋“œ ๋ชฉ์ ์ง€๋Š” `BACKEND_URL`์ด ์„ค์ •๋˜๋ฉด ํ•ด๋‹น ๊ฐ’์„, ์—†์œผ๋ฉด `http://127.0.0.1:8000`(๋กœ์ปฌ)๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
- ๋กœ์ปฌ ๊ธฐ๋ณธ๊ฐ’(127.0.0.1:8000)์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด `.env.local`์„ ๋น„์›Œ ๋‘์–ด๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค.
- ๋‹ค๋ฅธ ๋ฐฑ์—”๋“œ๋กœ ํ”„๋ก์‹œํ•ด์•ผ ํ•œ๋‹ค๋ฉด `.env.local`์— ์•„๋ž˜์ฒ˜๋Ÿผ ์„ค์ •ํ•˜์„ธ์š”:

```env
BACKEND_URL=[https://api.example.com](https://api.example.com)
  • Vercel ๋“ฑ ๋ฐฐํฌ ํ™˜๊ฒฝ์—์„œ๋„ ๋™์ผํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

5. ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰

npm run dev

์ฃผ๊ฐ„ ์ง„ํ–‰ ์ƒํ™ฉ

Week 1 (25.12.22 - 25.12.28)

  • ์ž‘์—… ๋‚ด์—ญ:
    • ๊ธฐ์ˆ ์Šคํƒ ์„ ์ •
      • Next.js: ๋ฉ”์ธ ํŽ˜์ด์ง€(app/page.tsx)์™€ ์ „์—ญ ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌ์„ฑ, ์ •์  ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌยทํ—ค๋“œ ์„ค์ •
      • Typescript: ์ปดํฌ๋„ŒํŠธยท์ „์—ญ ์Šคํ† ์–ดยท์œ ํ‹ธ ํƒ€์ž…์„ ๋ช…์‹œ
      • Canvas API: ์บ”๋ฒ„์Šค ์ปจํ…์ŠคํŠธ๋ฅผ ์ง์ ‘ ์ฒ˜๋ฆฌ; ๋Œ€์šฉ๋Ÿ‰ ์„œ์—ด ๋žœ๋”๋ง, ์คŒ/ํŒจ๋‹ ๋ณ€ํ™˜, ํ…์ŠคํŠธ/๋ฐ” ๋„ํ˜• ๊ทธ๋ฆฌ๊ธฐ
      • Zustand: ์บ”๋ฒ„์Šค ๋ทฐ ์ƒํƒœ, ๋ฆฌ์…‹/์—…๋ฐ์ดํŠธ ์•ก์…˜์˜ ์ „์—ญ ๊ด€๋ฆฌ
      • Vercel: Next.js์•ฑ ๋ฐฐํฌ
    • ํ”„๋กœ์ ํŠธ ๊ธฐ๋ณธ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ์Šค์ผˆ๋ ˆํ†ค ์ฝ”๋“œ ๊ตฌ์„ฑ
  • AI ํ™œ์šฉ: Gemini๋กœ ์ž์„ธํ•œ ๋‚ด์šฉ ํ”„๋กฌํ”„ํŠธ๋กœ ์ž‘์„ฑ, codex๋กœ ํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ์Šค์ผˆ๋ ˆํ†ค ์ฝ”๋“œ ์ž‘์„ฑ.
  • ๋‹ค์Œ ์ฃผ ๊ณ„ํš: page.tsx, layout.tsx ๊ตฌํ˜„, ๋ชฉ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ ํ•ด๋ณด๊ธฐ

Week 2 (25.12.29 - 26.01.04)z`

  • ์ž‘์—… ๋‚ด์—ญ:
    • ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋กœ ํŽ˜์ด์ง€์— ์—ฐ๊ฒฐ
    • ๋ทฐ ์ƒํƒœ(Zustand)์™€ ์คŒยทํŒจ๋‹ ๋™์ž‘์„ ์ •๋ˆ
  • AI ํ™œ์šฉ:
    • codex ํ™œ์šฉํ•˜์—ฌ layout.tsx, page.tsx ์„ธ๋ถ€ ๊ตฌํ˜„ ๋ฐ ๋””๋ฒ„๊น…
  • ์™„๋ฃŒ ๊ธฐ๋Šฅ:
    • ๋ชฉ ๋ฐ์ดํ„ฐ์˜ ์ถœ๋ ฅ ์ƒํƒœ ํ™•์ธ
  • ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ:
    • week2_screenshot.png
  • ๋‹ค์Œ ์ฃผ ๊ณ„ํš: ์ŠคํŽ™ ๊ธฐ๋ฐ˜ ์ดˆ๊ธฐ ์ž…๋ ฅ ํผ๊ณผ ๊ฒ€์ฆ ๋กœ์ง ์ฐฉ์ˆ˜.

Week 3 (26.01.05 ~ 26.01.11)

  • ์ž‘์—… ๋‚ด์—ญ:
    • PCR ํ”„๋ผ์ด๋จธ ๋””์ž์ธ ์ŠคํŽ™์„ ์ž‘์„ฑํ•ด 1-based ๊ทœ์น™ยทIUPAC ์ œํ•œยท์„ฑ๋Šฅ ๋ชฉํ‘œ๋ฅผ ํฌํ•จํ•œ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ •๋ฆฌ
    • ๋ฉ”์ธ UI ๋””์ž์ธ ๊ฒฐ์ •; ๋‹คํฌ ํ†ค 4๋‹จ๊ณ„ ์Šคํ… ํ”Œ๋กœ์šฐ๋กœ ๋ฆฌ์›Œํฌ
    • Genome ํƒ€์ž… ๋ถ„๋ฆฌ
  • AI ํ™œ์šฉ:
    • stitch, figma์— ๊ฐ™์€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋„ฃ๊ณ  ๋””์ž์ธ์„ ๋น„๊ต, ์ฑ„ํƒ.
  • ์™„๋ฃŒ ๊ธฐ๋Šฅ:
    • ๋‹จ๊ณ„๋ณ„ UI ๊ตฌํ˜„ ์™„๋ฃŒ
      • 1๋‹จ๊ณ„: ์‹œํ€€์Šค ์ž…๋ ฅ(FASTA/raw textarea)
      • 2๋‹จ๊ณ„: Primer Properties: GC% ๋ฒ”์œ„, ์ตœ๋Œ€ Tm ์ฐจ์ด, GC Clamp ์˜จ/์˜คํ”„, Poly-X ์ œํ•œ, ๋†๋„/์—ผ ์กฐ๊ฑด ์ž…๋ ฅ
      • 3๋‹จ๊ณ„: Binding Location: Search range ์‹œ์ž‘/๋, Exon junction ๊ณ ๋ ค ์—ฌ๋ถ€, Intron ํฌํ•จ ์—ฌ๋ถ€์™€ Intron size ๋ฒ”์œ„, Restriction enzyme ๋ชฉ๋ก/์„ ํƒ.
      • 4๋‹จ๊ณ„: ๊ฒฐ๊ณผ๋ฌผ ์ถœ๋ ฅ
  • ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ:
    • 1๋‹จ๊ณ„

      week3_screenshot#1.png

    • 2๋‹จ๊ณ„

      week3_screenshot#2.png

    • 3๋‹จ๊ณ„

      week3_screenshot#3.png

    • 4๋‹จ๊ณ„

      week3_screenshot#4.png

  • ๋‹ค์Œ ์ฃผ ๊ณ„ํš: ์‹ค์ œ ๋ฐ์ดํ„ฐ ์—ฐ๋™, GenomeCanvas ๋ฏธ๋ฆฌ๋ณด๊ธฐยท์ปจํŠธ๋กค ๋งˆ๋ฌด๋ฆฌ.

Week 4 (26.01.12 ~ 26.01.18)

  • ์ž‘์—… ๋‚ด์—ญ:

    • ๋ฐฑ์—”๋“œ ๋ชจํ‚น ์„œ๋น„์Šค ๊ตฌํ˜„ ๋ฐ ๊ฒฐ๊ณผ ์‹œ๊ฐํ™”
    • Step 1 ์‹œํ€€์Šค ์ž…๋ ฅ ํŽธ์˜์„ฑ ๊ฐœ์„ 
    • ์ปดํฌ๋„ŒํŠธ ์•„ํ‚คํ…์ฒ˜ ๊ฐœ์„  ๋ฐ UI ์—…๋ฐ์ดํŠธ
  • AI ํ™œ์šฉ:

    • codex๋กœ ์บ”๋ฒ„์Šค๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๋ชจ๋‹ฌ ๊ตฌํ˜„
    • paste๋“ฑ ๋ฒ„ํŠผ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์™„๋ฃŒ ๊ธฐ๋Šฅ:

    • ๋ชฉ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‹ฌ์„ ์ด์šฉํ•˜์—ฌ ํ‘œ์‹œ
    • Step1์—์„œ DNA์„œ์—ด ์ž…๋ ฅ ์‹œ, fastaํŒŒ์ผ ์—…๋กœ๋“œ, ํด๋ฆฝ๋ณด๋“œ์—์„œ ๋ถ™์—ฌ๋„ฃ๊ธฐ ์ง€์›
  • ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ:

    • ๋ชฉ๋ฐ์ดํ„ฐ ํ‘œ์‹œ ํ™•์ธ

      week4_screenshot#1.png

  • ๋‹ค์Œ ์ฃผ ๊ณ„ํš: ์™„์„ฑ๋œ ๋ฐฑ์—”๋“œ์™€ ์—ฐ๋™ํ•˜์—ฌ ๊ฒฐ๊ณผ ํ‘œ์‹œ ๋ฐ ๋””๋ฒ„๊น…

Week 5 (26.01.19 ~ 26.01.25)

  • ์ž‘์—… ๋‚ด์—ญ: ํ”„๋ก ํŠธ์—”๋“œ-๋ฐฑ์—”๋“œ ๊ฐ„ API ํ†ต์‹  ๊ทœ๊ฒฉ(Spec) ์ •์˜ ๋ฐ ์—ฐ๋™ ๊ตฌํ˜„
  • AI ํ™œ์šฉ: codex ์ด์šฉํ•˜์—ฌ ๋ณต์žกํ•œ Nested Object์„ UI ์ „์šฉ ์ƒํƒœ(Flat Object)๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์–ด๋Œ‘ํ„ฐ ํŒจํ„ด ์ฝ”๋“œ ์ž๋™ ์ƒ์„ฑ
  • ์™„๋ฃŒ ๊ธฐ๋Šฅ:
    • ํ”„๋ผ์ด๋จธ ์„ค๊ณ„ ์š”์ฒญ(Request) ํ”„๋กœ์„ธ์Šค ๊ตฌํ˜„: ์ž…๋ ฅ๊ฐ’ โ†’ ์–ด๋Œ‘ํ„ฐ โ†’ API ํ˜ธ์ถœ ํ๋ฆ„ ์™„์„ฑ
    • ๊ฒฐ๊ณผ ๋ชจ๋‹ฌ(Result Modal) ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ: Mock ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์บ”๋ฒ„์Šค ๋ฐ ๋ฆฌ์ŠคํŠธ์— ๋ถ„์„ ๊ฒฐ๊ณผ ๋ Œ๋”๋ง
  • ๋‹ค์Œ ์ฃผ ๊ณ„ํš: ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ฐ์ดํ„ฐ(DNA ์„œ์—ด)์— ๋Œ€ํ•œ ์ „์ฒ˜๋ฆฌ(Sanitization) ๋ฐ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ๋กœ์ง ๊ตฌํ˜„

Week 6 (26.01.26 ~ 26.02.01)

  • ์ž‘์—… ๋‚ด์—ญ:
    • ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ(10,000bp ์ด์ƒ) ๋ Œ๋”๋ง ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ๋ทฐํฌํŠธ ํƒ์ƒ‰ ๋กœ์ง ๊ฐœ์„ 
    • ์บ”๋ฒ„์Šค UI ์Šคํฌ๋กค ์กฐ์ž‘ ์‹œ ๋ฐฐ๊ฒฝ์ด ํ•จ๊ป˜ ๋ฐ€๋ฆฌ๋Š” ๋ฒ„๊ทธ(Jittering) ์ˆ˜์ • ๋ฐ ๋ ˆ์ด์–ด ๊ณ ์ • ์ฒ˜๋ฆฌ
  • AI ํ™œ์šฉ:
    • codex๋ฅผ ์ด์šฉํ•˜์—ฌ binary search ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋กœ์ง ๊ฒ€์ฆ ๋ฐ ์ตœ์ ํ™”
    • gemini๋กœ ํ˜„์žฌ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์„ ์ •ํ™•ํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์—ฌ ํ•ด๊ฒฐ์„ ์š”๊ตฌํ•˜๋Š” ํ”„๋กฌํ”„ํŠธ ์ž‘์„ฑ ๋ฐ codex๋ฅผ ์ด์šฉํ•œ ์ˆ˜์ •
  • ์™„๋ฃŒ ๊ธฐ๋Šฅ:
    • Binary Search ๋ Œ๋”๋ง ์ตœ์ ํ™”: $O(N)$ ํƒ์ƒ‰์„ $O(\log N)$์œผ๋กœ ๊ฐœ์„ ํ•˜์—ฌ High BP ๊ตฌ๊ฐ„ ํ”„๋ ˆ์ž„ ๋“œ๋ž ํ•ด๊ฒฐ
    • Canvas Background Fix: ์Šคํฌ๋กค ์ด๋ฒคํŠธ ์‹œ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๊ฐ€ ๊ณ ์ •๋˜๋„๋ก ๋ Œ๋”๋ง ๋กœ์ง ์ˆ˜์ •
  • ๋‹ค์Œ ์ฃผ ๊ณ„ํš:
    • ์ž…๋ ฅ ๋ฐ์ดํ„ฐ validator ๊ตฌํ˜„

Week 7 (26.02.02 ~ 26.02.08)

  • Step1 ์‹œํ€€์Šค ์ž…๋ ฅ ์ •๊ทœํ™” ๋ฐ ๊ฒ€์ฆ UX ๊ฐœ์„ 

    • ATGC ๋Œ€์†Œ๋ฌธ์ž ์ฒ˜๋ฆฌ ๋ฐ ๋น„์ •์ƒ ๋ฌธ์ž(N, ์ˆซ์ž, ํŠน์ˆ˜๋ฌธ์ž) ํ•„ํ„ฐ๋ง ๋กœ์ง ์ •๋ฆฝ
    • ๋ถ™์—ฌ๋„ฃ๊ธฐ ๋ฐ ํŒŒ์ผ ์—…๋กœ๋“œ ์‹œ ์‚ฌ์šฉ์ž ๋™์˜ UX ์ผ๊ด€์„ฑ ํ™•๋ณด
  • AI ํ™œ์šฉ:

    • 4๋‹จ๊ณ„ ํ”„๋กฌํ”„ํŠธ(Phase 1~4)๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ AI์™€ ๋‹จ๊ณ„๋ณ„ ๋กœ์ง ๊ณ ๋„ํ™” ๋ฐ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ์ง„ํ–‰
    • Next.js Turbopack ๋นŒ๋“œ ์—๋Ÿฌ(Import ๊ฒฝ๋กœ ์ด์Šˆ) ๋ถ„์„ ๋ฐ ํ•ด๊ฒฐ
    • ๋Œ€๋Ÿ‰ ๋ฌธ์ž์—ด ๋ถ™์—ฌ๋„ฃ๊ธฐ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ์ดํ„ฐ ์†์‹ค(๊ณผ๋„ํ•œ ์‚ญ์ œ) ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ตœ์ ํ™”๋œ Sanitize ์ ‘๊ทผ ๋ฐฉ์‹ ์ œ์•ˆ ๋ฐ ์ ์šฉ
  • ์™„๋ฃŒ ๊ธฐ๋Šฅ:

    • ์‹ค์‹œ๊ฐ„ ์ •๊ทœํ™”: ์ž…๋ ฅ ์ฆ‰์‹œ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†์ด ๋Œ€๋ฌธ์ž ATGC๋กœ ์ž๋™ ๋ณ€ํ™˜ ๋ฐ ์‹ค์‹œ๊ฐ„ ํ•„ํ„ฐ๋ง ์ ์šฉ (์•ˆ๋‚ด ์บก์…˜ ์ถ”๊ฐ€)
    • ์‚ฌ์šฉ์ž ๋™์˜ ๊ธฐ๋ฐ˜ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ: FASTA ํŒŒ์ผ ์—…๋กœ๋“œ, Paste ๋ฒ„ํŠผ, Ctrl+V ์ž…๋ ฅ ์‹œ ๋น„์ •์ƒ ๋ฌธ์ž๊ฐ€ ๊ฐ์ง€๋˜๋ฉด ์ฆ‰์‹œ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  window.confirm์„ ํ†ตํ•œ ์‚ฌ์šฉ์ž ์ œ๊ฑฐ ๋™์˜ ๋กœ์ง ๊ตฌํ˜„
    • ๋กœ์ง ์ตœ์ ํ™”: ์กฐ๊ฐ(chunk) ๋‹จ์œ„ ์‚ฐ๋‹ˆํƒ€์ด์ฆˆ(Sanitize) ๋ฐฉ์‹์œผ๋กœ ์ „ํ™˜ํ•˜์—ฌ ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฐ Generate ๋‹จ๊ณ„์˜ ๋ถˆํ•„์š”ํ•œ ์ค‘๋ณต ๊ฒ€์ฆ ๋กœ์ง ์ œ๊ฑฐ
  • ๋‹ค์Œ ์ฃผ ๊ณ„ํš:

    • ๋ชฉ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ ๋ฐ ๋ฐฐํฌ๋œ ๋ฐฑ์—”๋“œ์™€ ์—ฐ๊ฒฐ

Week 8 (26.02.09 ~ 26.02.15)

  • ์ž‘์—… ๋‚ด์—ญ:
    • ๋ชฉ๋ฐ์ดํ„ฐ(Mock Data) ๊ธฐ๋ฐ˜ ์‘๋‹ต ์ œ๊ฑฐ ๋ฐ ์‹ค์„œ๋ฒ„ ์‘๋‹ต ๊ตฌ์กฐ ๊ธฐ์ค€์œผ๋กœ ํ”„๋ก ํŠธ ๋กœ์ง ์ „ํ™˜
    • ํ”„๋ผ์ด๋จธ ๋ถ„์„ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐฑ์—”๋“œ ์ŠคํŽ™์— ๋งž๊ฒŒ ์ •๋ฆฌํ•˜๊ณ  ์š”์ฒญ/์‘๋‹ต ๋งคํ•‘ ํ๋ฆ„ ์ ๊ฒ€
    • API ํ˜ธ์ถœ ์‹คํŒจ ์ƒํ™ฉ(๋„คํŠธ์›Œํฌ/์„œ๋ฒ„ ์˜ค๋ฅ˜)์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ๋ฉ”์‹œ์ง€ ๋…ธ์ถœ ๋ฐ ์ƒํƒœ ์ฒ˜๋ฆฌ ๋ณด๊ฐ•
  • AI ํ™œ์šฉ:
    • Codex๋ฅผ ํ™œ์šฉํ•ด API ํด๋ผ์ด์–ธํŠธ ๊ฒฝ๋กœ(/api/design)์™€ ์„œ๋น„์Šค ๋ ˆ์ด์–ด ๋งคํ•‘ ๋กœ์ง ๊ฒ€์ฆ
    • ์‘๋‹ต ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜(UI ์ „์šฉ ํŠธ๋ž™/ํ”„๋ผ์ด๋จธ ํ›„๋ณด ๋งคํ•‘) ๊ณผ์ •์˜ ํƒ€์ž… ์•ˆ์ •์„ฑ ์ ๊ฒ€ ๋ฐ ๊ฐœ์„ 
  • ์™„๋ฃŒ ๊ธฐ๋Šฅ:
    • ํ”„๋ผ์ด๋จธ ์„ค๊ณ„ ์š”์ฒญ์ด ๋ฐฐํฌ๋œ ๋ฐฑ์—”๋“œ API๋กœ ์ „์†ก๋˜๋„๋ก ์—ฐ๋™ ์™„๋ฃŒ
    • ๋ฐฑ์—”๋“œ ์‘๋‹ต์„ Result Modal/Canvas์— ๋ Œ๋”๋ง ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํ‘œ์‹œ
    • Mock ์˜์กด ํ๋ฆ„์„ ์ œ๊ฑฐํ•˜๊ณ  ์‹ค๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๋™์ž‘์œผ๋กœ ์ „ํ™˜
  • ๋‹ค์Œ ์ฃผ ๊ณ„ํš:
    • Vercel ํ™˜๊ฒฝ์— ํ”„๋ก ํŠธ์—”๋“œ ๋ฐฐํฌ ๋ฐ ๋ฐฐํฌ ํ™˜๊ฒฝ ๋ณ€์ˆ˜(API Base URL) ์ ๊ฒ€

Week 9 (26.02.16 ~ 26.02.22)

  • ์ž‘์—… ๋‚ด์—ญ:
  • AI ํ™œ์šฉ:
  • ์™„๋ฃŒ ๊ธฐ๋Šฅ:
  • ๋‹ค์Œ ์ฃผ ๊ณ„ํš:
  • ์ž‘์—… ๋‚ด์—ญ:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 96.8%
  • CSS 2.8%
  • JavaScript 0.4%