pile·
프론트엔드·원티드랩wanted·

HEIC 파일 포맷 지원을 통한 사용자 경험 향상 시키기

문제원티드 업로드에서 확장자는 .jpg지만 실제로는 HEIC인 파일이 들어와 서버가 jpeg·png만 받아들이면서 사용자에게 업로드 에러가 발생한다.

접근FileReader API로 파일을 Uint8Array로 읽어 4~12번째 바이트의 매직 넘버를 검사해 실제 포맷을 식별한다. HEIC로 판별되면 heic2any 라이브러리로 JPEG/PNG로 변환한 뒤 업로드를 이어 간다.

결과확장자만 믿고 처리하던 흐름에서 벗어나 실제 파일 시그니처 기반 검증으로 전환했다. iOS 사용자의 업로드 실패가 사라지고 MIME 타입 신뢰성이 개선된다.

원티드랩
원티드랩 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 프론트엔드·stackoverflow-blogstackoverflow-blog·

    Building a Google Drive Sync Engine that Survives MV3 Service Workers

    문제Chrome Manifest V3 가 persistent background script 를 없애면서 Service Worker 가 임의로 종료될 때 동기화 상태가 사라지는 문제.

    접근메모리 in-memory 상태를 버리고 chrome.storage.local 을 단일 진실 소스로 삼는다. 사용자 액션은 즉시 로컬에 저장하고, 재연결 시 Drive appDataFolder 의 JSON 을 fetch 해 note ID 기준으로 머지한다. Google SDK 대신 native fetch + multipart/related 직접 구성.

    결과무거운 라이브러리를 떼어내 확장이 즉각 반응하고, sync 중단에도 데이터 손실이 없는 구조를 얻었다.

    #service-worker#chrome-extension#manifest-v3+1
  2. 프론트엔드·stackoverflow-blogstackoverflow-blog·

    Time is a construct but it can still break your software

    문제JavaScript Date 는 mutability, 모호한 메서드 이름, 타임존·DST 의 복잡성, Moment.js 같은 무거운 라이브러리 의존 같은 고질병을 안고 있다.

    접근Temporal 제안은 ZonedDateTime, Instant(BigInt 나노초), PlainDateTime/PlainDate/PlainTime 같은 불변 타입군으로 Date 를 대체한다. 브라우저 내장 타임존·로케일 데이터를 활용하고, WHATWG 와 HTML date picker 및 structured clone 통합도 진행 중.

    결과Temporal 은 TC39 Stage 4 에 도달했고 V8 과 Firefox(2025-05) 에 구현됐으며 Safari 는 약 60% 진행. 테스트 약 4,500 건으로 Date 의 약 500 건을 크게 웃돈다.

    #software-engineering#time-zones#datetime-bugs
  3. 프론트엔드·당근당근·

    프롬프트 한 줄로 화면이 나오는 시대, ‘당근스러운 화면’을 만드는 법

    문제AI 바이브 코딩 도구들이 빠르게 UI 를 생성하지만 디자인 시스템 규칙을 따르지 않아 "당근스러운 화면"을 만들 수 없음.

    접근Kraft 의사결정 자동화 도구를 어드민 → CLI → 에이전트로 진화시키면서 DesignSpec 중간 표현 + 11개 Scorer 기반 검증 + Mastra 하네스 + Claude Agent SDK + 크로스세션 메모리 누적으로 구조화.

    결과SEED 디자인 시스템 준수 여부 자동 검증, 도메인별 맥락 반영, 세션 간 학습이 누적되는 UI 생성 플랫폼 구축.

    #llm-app#design-system#ai-coding+6