Skip to content
View rukeni's full-sized avatar
πŸ’­
I may be slow to respond.
πŸ’­
I may be slow to respond.

Highlights

  • Pro

Block or report rukeni

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
rukeni/README.md

μ–‘μŠΉλ―Ό | Frontend Developer

"μ™„λ²½ν•œ μ½”λ“œλŠ” μ—†λ‹€. 문제λ₯Ό ν•΄κ²°ν•  수 있으면 그게 졜고의 μ½”λ“œλ‹€." - μΌ„ ν†°μŠ¨

μ•ˆλ…•ν•˜μ„Έμš”, μ–‘μŠΉλ―Όμž…λ‹ˆλ‹€ πŸ‘‹

πŸ‘¨β€πŸ’» About Me

  • 극초기 μŠ€νƒ€νŠΈμ—…μ—μ„œ 고생(?)ν–ˆλ˜ ν”„λ‘ νŠΈμ—”λ“œ κ°œλ°œμžμž…λ‹ˆλ‹€.
  • ν’€μŠ€νƒ 개발 κ²½ν—˜μ„ κ°–μΆ˜ ν”„λ‘ νŠΈμ—”λ“œ(κ·ΈλŸ¬λ‹ˆκΉŒ μž‘νƒ•κ΅¬λ¦¬λž€ 뜻)
  • INTJ μ„±ν–₯으둜 뢄석과 μ „λž΅μ„ μ’‹μ•„ν•˜μ§€λ§Œ,
  • 무엇보닀 ν•¨κ»˜ μΌν•˜λŠ” λ™λ£Œλ“€κ³Όμ˜ 티킀타카 + λ―Έμ†Œκ°€ μ €μ˜ 원동λ ₯μž…λ‹ˆλ‹€.

πŸ› οΈ Tech Stack

ν”„λ‘ νŠΈμ—”λ“œ

  • React: 16.8버전뢀터 μ‚¬μš©. 거의 λͺ¨λ“  ν”„λ‘œμ νŠΈμ—μ„œ ν™œμš©. μ»΄ν¬λ„ŒνŠΈ μ΅œμ ν™”, λ Œλ”λ§ μ„±λŠ₯ κ°œμ„ , μ»€μŠ€ν…€ ν›… 개발
  • TypeScript: κ³ κΈ‰ νƒ€μž…(μ œλ„€λ¦­, μœ λ‹ˆμ˜¨, μΈν„°μ„Ήμ…˜, 맡 νƒ€μž…)을 ν™œμš©ν•œ μ•ˆμ „ν•œ μ½”λ“œλ² μ΄μŠ€ ꡬ좕, νƒ€μž… μΆ”λ‘ , μΈν„°νŽ˜μ΄μŠ€ 섀계
  • Electron: IPC 톡신, λ©€ν‹° μœˆλ„μš° 관리, 크둜슀 ν”Œλž«νΌ 배포, 둜컬 퍼슀트 μƒνƒœκ΄€λ¦¬
  • Next.js: 파일 λΌμš°νŒ… μ‹œμŠ€ν…œ + SSR적용
  • Zustand: λ³΅μž‘ν•œ μƒνƒœ 관리 섀계, 미듀웨어λ₯Ό ν†΅ν•œ 영ꡬ μ €μž₯μ†Œ, 도메인별 슬라이슀둜 κ΅¬μ„±λœ μŠ€ν† μ–΄ 섀계
  • Tailwind: μ»€μŠ€ν…€ ν…Œλ§ˆ κ΅¬ν˜„, λ°˜μ‘ν˜• λ””μžμΈ, 닀크λͺ¨λ“œ 지원
  • Shadcn/ui: 3λ…„μ°¨, figma와 μ—°λ™ν•˜μ—¬ λ””μžμΈ 토큰화 - λ””μžμΈμ‹œμŠ€ν…œ λ³€ν˜• 적용
  • Million.js: 이벀트 버블링 문제 ν•΄κ²°, λ Œλ”λ§ κ°œμ„ 
  • React-Query: 캐싱, λ°±κ·ΈλΌμš΄λ“œ κ°±μ‹ , 낙관적 μ—…λ°μ΄νŠΈ, λ¬΄ν•œ 슀크둀 κ΅¬ν˜„

κ°œλ°œλ„κ΅¬

  • Vitest: λ‹¨μœ„ 및 ν†΅ν•©ν…ŒμŠ€νŠΈ, ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ λ‹€μ–‘ν™”λ‘œ 핡심 λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 보호
  • Playwright: Electron에 λ§žλŠ” 독립적 ν…ŒμŠ€νŠΈ ν™˜κ²½ ꡬ성, μ‹œκ°μ  νšŒκ·€ ν…ŒμŠ€νŠΈ
  • ESLint: 20+ ν”ŒλŸ¬κ·ΈμΈ 및 μ»€μŠ€ν…€ κ·œμΉ™μœΌλ‘œ ν”„λ‘œμ νŠΈ ν‘œμ€€ 적용

AIν™œμš©

  • OpenAI API 톡합: AI 기반 μ½˜ν…μΈ  생성 및 ν…μŠ€νŠΈ 뢄석, λ¬Έμ„œ μš”μ•½ κΈ°λŠ₯ κ΅¬ν˜„
  • Xenova/transformers: ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ ML λͺ¨λΈ κ΅¬ν˜„, 둜컬 λͺ¨λΈ μΆ”λ‘ 

인프라

  • Docker: 4λ…„μ°¨, CI/CD νŒŒμ΄ν”„λΌμΈ ꡬ좕에 ν™œμš©
  • Kubernetes: EKS μ‚¬μš©κ²½ν—˜ 및 λ² μ–΄λ©”νƒˆμ—μ„œ K8S 올렀본 κ²½ν—˜. Helm λ§€λ‹ˆμ € ν™œμš©
  • AWS: 5λ…„μ°¨, EC2, S3, Route53, Lambda λ“± κ²½ν—˜
  • Firebase: 3λ…„μ°¨, Firestore, Authentication λ“± μ‹€μ‹œκ°„ 데이터 μ²˜λ¦¬μ— ν™œμš©
  • Supabase: μ‹€μ‹œκ°„ ꡬ독을 ν†΅ν•œ ν˜‘μ—… κΈ°λŠ₯ κ΅¬ν˜„

μ μš©ν•œ λ””μžμΈ νŒ¨ν„΄ 및 μ•„ν‚€ν…μ²˜

μ»΄ν¬λ„ŒνŠΈ 섀계 νŒ¨ν„΄

  • ν•©μ„±(Composition) νŒ¨ν„΄: 단일 μ±…μž„ 원칙을 λ”°λ₯΄λŠ” μž‘μ€ μ»΄ν¬λ„ŒνŠΈλ“€μ„ μ‘°ν•©ν•΄ λ³΅μž‘ν•œ UI ꡬ성
  • Headless UI νŒ¨ν„΄: Radix UI 기반 둜직과 UIλ₯Ό λΆ„λ¦¬ν•˜μ—¬ μ ‘κ·Όμ„±κ³Ό μŠ€νƒ€μΌλ§ μžμœ λ„ 확보
  • μ»€μŠ€ν…€ ν›… νŒ¨ν„΄: 둜직 μž¬μ‚¬μš©μ„ μœ„ν•œ 35+ μ»€μŠ€ν…€ ν›… 개발 (예: useKeyboardManager, useElectronIPC)
  • μ—λŸ¬ λ°”μš΄λ”λ¦¬ νŒ¨ν„΄: React Error Boundaryλ₯Ό ν™œμš©ν•œ 였λ₯˜ 격리 및 μ‹€νŒ¨ 처리

μƒνƒœ 관리 μ•„ν‚€ν…μ²˜

  • 슬라이슀 νŒ¨ν„΄: Zustand μŠ€ν† μ–΄λ₯Ό 도메인별 슬라이슀둜 λΆ„λ¦¬ν•˜μ—¬ λͺ¨λ“ˆν™” (10+ 슬라이슀)
  • μ…€λ ‰ν„° νŒ¨ν„΄: λ©”λͺ¨μ΄μ œμ΄μ…˜ 기반 μ…€λ ‰ν„°λ‘œ λΆˆν•„μš”ν•œ λ Œλ”λ§ μ΅œμ†Œν™”
  • 이벀트 기반 μ•„ν‚€ν…μ²˜: Observer νŒ¨ν„΄μ„ ν™œμš©ν•œ λŠμŠ¨ν•˜κ²Œ κ²°ν•©λœ μ»΄ν¬λ„ŒνŠΈ κ°„ 톡신
  • 비동기 μ•‘μ…˜ νŒ¨ν„΄: 비동기 μž‘μ—…μ„ ν‘œμ€€ν™”λœ λ°©μ‹μœΌλ‘œ μ²˜λ¦¬ν•˜λŠ” νŒ¨ν„΄ κ΅¬ν˜„

μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ•„ν‚€ν…μ²˜

  • κΈ°λŠ₯ 기반 λͺ¨λ“ˆν™”: κΈ°λŠ₯별 폴더 ꡬ쑰둜 응집도 높은 μ½”λ“œ 쑰직화, 폴더 뎁슀 μ΅œμ ν™”, 단방ν–₯ μ˜μ‘΄μ„±
    app/
      β”œβ”€β”€ space/              # 슀페이슀 κ΄€λ ¨ λͺ¨λ“  κΈ°λŠ₯
      β”‚   β”œβ”€β”€ components/     # μ»΄ν¬λ„ŒνŠΈ
      β”‚   β”œβ”€β”€ hooks/          # μ»€μŠ€ν…€ ν›…
      β”‚   β”œβ”€β”€ create-slice.ts # μƒνƒœ 관리
      β”‚   └── utils.ts        # μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜
      └── tab-group/          # νƒ­ κ·Έλ£Ή κ΄€λ ¨ κΈ°λŠ₯
          β”œβ”€β”€ ...
    
  • κ³„μΈ΅ν˜• μ•„ν‚€ν…μ²˜: UI, λΉ„μ¦ˆλ‹ˆμŠ€ 둜직, 데이터 μ ‘κ·Ό 계측을 λͺ…ν™•νžˆ 뢄리
  • μ„œλΉ„μŠ€ 좔상화: μ™ΈλΆ€ APIμ™€μ˜ 톡신을 μ„œλΉ„μŠ€ κ³„μΈ΅μœΌλ‘œ μΆ”μƒν™”ν•˜μ—¬ ꡐ체 μš©μ΄μ„± 확보
  • μ–΄λŒ‘ν„° νŒ¨ν„΄: μΌλ ‰νŠΈλ‘  APIλ₯Ό μΆ”μƒν™”ν•˜μ—¬ ν…ŒμŠ€νŠΈ μš©μ΄μ„±κ³Ό μ›Ή ν™˜κ²½ ν˜Έν™˜μ„± ν–₯상

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

  • λ©”λͺ¨μ΄μ œμ΄μ…˜ μ „λž΅: React.memo, useMemo, useCallback을 ν™œμš©ν•œ 체계적인 λ©”λͺ¨μ΄μ œμ΄μ…˜
  • μ½”λ“œ λΆ„ν• : κΈ°λŠ₯별 지연 λ‘œλ”©μœΌλ‘œ 초기 λ‘œλ“œ μ‹œκ°„ μ΅œμ†Œν™”
  • λ¦¬μ†ŒμŠ€ 캐싱: API 응닡, 이미지, 계산 결과의 효율적인 캐싱 μ „λž΅ κ΅¬ν˜„
  • 가상 DOM μ΅œμ ν™”: Million.js와 ν•¨κ»˜ μ»€μŠ€ν…€ μ΅œμ ν™” 기법 적용

ν…ŒμŠ€νŠΈ 및 ν’ˆμ§ˆ 보μž₯

  • ν…ŒμŠ€νŠΈ ν”ΌλΌλ―Έλ“œ: λ‹¨μœ„(50+), 톡합(30+), E2E(15+) ν…ŒμŠ€νŠΈμ˜ κ· ν˜• μžˆλŠ” ꡬ성
  • ν…ŒμŠ€νŠΈ 주도 개발: ν•„μš”μ— 따라 핡심 κΈ°λŠ₯에 TDD 적용으둜 μ•ˆμ •μ„± 확보
  • 정적 μ½”λ“œ 뢄석: ESLint, TypeScript, Sonar 등을 ν™œμš©ν•œ μ½”λ“œ ν’ˆμ§ˆ 보μž₯

개발 방법둠

  • μ• μžμΌ 개발 ν”„λ‘œμ„ΈμŠ€
    • 1μ£Ό λ‹¨μœ„ μŠ€ν”„λ¦°νŠΈλ‘œ μ§„ν–‰λ˜λŠ” 증뢄적 개발(λͺ©μš”일 μ°¨μ£Ό μŠ€ν”„λ¦°νŠΈ ν™•μ •, κΈˆμš”μΌ 금주 μ½”λ“œ 배포)
    • 일일 μŠ€νƒ λ“œμ—… 및 μ£Όκ°„ 회고둜 지속적인 ν”„λ‘œμ„ΈμŠ€ κ°œμ„ 
  • 트렁크 기반 개발
    • κΈ°λŠ₯ ν”Œλž˜κ·Έλ₯Ό ν™œμš©ν•œ 지속적 톡합
    • 짧은 수λͺ…μ˜ 브랜치둜 μ•ˆμ •μ μΈ μ½”λ“œλ² μ΄μŠ€ μœ μ§€
    • PR ν…œν”Œλ¦Ώ 및 μžλ™ν™”λœ μ½”λ“œ 리뷰 ν”„λ‘œμ„ΈμŠ€
  • CI/CD νŒŒμ΄ν”„λΌμΈ
    • GitHub Actions 기반 μžλ™ν™”λœ λΉŒλ“œ 및 ν…ŒμŠ€νŠΈ
    • ν™˜κ²½λ³„(개발, ν”„λ‘œλ•μ…˜) μžλ™ 배포
  • μ½”λ“œ ν’ˆμ§ˆ 관리
    • 짝 ν”„λ‘œκ·Έλž˜λ°μœΌλ‘œ μ½”λ“œ ν’ˆμ§ˆ 및 지식 곡유 ν–₯상
    • 정기적인 μ½”λ“œ λ¦¬νŒ©ν† λ§ μ„Έμ…˜
    • λ¦°ν„° 및 포맷터λ₯Ό ν™œμš©ν•œ μΌκ΄€λœ μ½”λ“œ μŠ€νƒ€μΌ 적용
  • λ¬Έμ„œν™”
    • λ…Έμ…˜, Clickup을 ν†΅ν•œ 개발자 λ¬Έμ„œν™”
    • API λ¬Έμ„œ μžλ™ν™” λ„κ΅¬λ‘œ μ΅œμ‹  λ¬Έμ„œ μœ μ§€
  • μ„±λŠ₯ 및 μ‚¬μš©μž κ²½ν—˜ μ΅œμ ν™”
    • Core Web Vitals λͺ¨λ‹ˆν„°λ§ μ‹œμŠ€ν…œ ꡬ좕
    • 퍼포먼슀 버짓 μ„€μ • 및 정기적인 μ„±λŠ₯ 점검
    • μ‚¬μš©μž 인터뷰 뢄석을 ν†΅ν•œ UX κ°œμ„ 

πŸ’» μž‘μ—…ν–ˆλ˜ 것듀

  • λΈŒλΌμš°μ € 기반 생산성 도ꡬ - 느린 UIλ₯Ό 70% λΉ λ₯΄κ²Œ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€ (기적이죠?)
  • 동물병원 μ˜ˆμ•½ ν”Œλž«νΌ - AWS λΉ„μš©μ„ 80% μ€„μ—¬μ„œ λŒ€ν‘œλ‹˜μ˜ λ―Έμ†Œλ₯Ό μ΄λŒμ–΄λƒˆμŠ΅λ‹ˆλ‹€
  • RTB μ‹œμŠ€ν…œ - μ΄ˆλ‹Ή 10,000개 μš”μ²­ 처리... 사싀은 저도 이게 μ–΄λ–»κ²Œ 된 건지 λͺ¨λ¦…λ‹ˆλ‹€ πŸ˜…
  • AR μ•± - 이걸 λ§Œλ“€λ©΄μ„œ 정말 많이 λ°°μ› μŠ΅λ‹ˆλ‹€ (=많이 κ³ μƒν–ˆμŠ΅λ‹ˆλ‹€)

"μ™„λ²½ν•œ μ½”λ“œλŠ” μ—†μŠ΅λ‹ˆλ‹€. κ·Έμ € 마감 μ‹œκ°„μ— λ§žμΆ”μ–΄ λ™μž‘ν•˜λŠ” μ½”λ“œκ°€ μžˆμ„ 뿐..."

Pinned Loading

  1. indx.kr indx.kr Public

    인덱슀 λΈ”λ‘œκ·Έ

    TypeScript