Skip to content

Releases: kiwooso-front-end/utils

v0.2.1

Choose a tag to compare

@mtseo01 mtseo01 released this 18 Nov 08:22

🐛 버그 수정

  • k-cow 모듈에서 format 함수들의 export 누락 수정
    • formatEarTagNumber
    • normalizeEarTagNumber

📦 설치

npm install @kiwooso-front-end/utils@0.2.1

v0.2.0

Choose a tag to compare

@mtseo01 mtseo01 released this 18 Nov 08:15

🎉 새로운 기능

소 이표번호 포맷팅 유틸리티 추가

한국 축산업에서 사용하는 소 이표번호(12자리)를 표준 포맷으로 변환하는 유틸리티 함수를 추가했습니다.

추가된 함수

formatEarTagNumber(earTagNo, part?)

  • 12자리 소 이표번호를 XXX XXXX XXXX X 포맷으로 변환
  • 선택적으로 특정 부분만 추출 가능
    • part=1: 확장코드 + 코드구분 (3자리)
    • part=2: 일련번호 앞 4자리
    • part=3: 일련번호 뒤 4자리
    • part=4: 체크번호 (1자리)
    • part=5: 일련번호 + 체크번호 (9자리)

normalizeEarTagNumber(formatted)

  • 포맷팅된 이표번호에서 공백을 제거하여 원본 형태로 변환

사용 예시

import { formatEarTagNumber, normalizeEarTagNumber } from '@kiwooso-front-end/utils/k-cow';

// 전체 포맷팅
formatEarTagNumber('002123456789');  // '002 1234 5678 9'

// 특정 부분 추출
formatEarTagNumber('002123456789', 1);  // '002'
formatEarTagNumber('002123456789', 5);  // '1234 5678 9'

// 정규화
normalizeEarTagNumber('002 1234 5678 9');  // '002123456789'

기술 사양

  • 이표번호 구조: 확장코드(2자리) + 코드구분(1자리) + 일련번호(8자리) + 체크번호(1자리)
  • 유효하지 않은 입력은 원본 문자열 그대로 반환
  • 완전한 타입 안정성 보장
  • 100% 테스트 커버리지

📦 설치

npm install @kiwooso-front-end/utils@0.2.0

🔗 관련 이슈

  • 한국 축산업 표준 이표번호 포맷 지원

v0.1.2

Choose a tag to compare

@mtseo01 mtseo01 released this 14 Nov 08:36

🔄 Breaking Changes

Date 유틸 함수들이 이제 string만 받습니다.

// ❌ Before
getGradeExpirationRemainingTime(new Date('2025-11-30T23:59:59'));

// ✅ After  
getGradeExpirationRemainingTime('2025-11-30T23:59:59');

✨ Changes

  • Date 객체 파라미터 제거 (string만 허용)
  • formatDate의 useUTC 옵션 제거 (한국 전용)
  • 1분 미만일 때 "1분 미만 남았습니다" 메시지로 개선
  • 한국(KST) 기준 명시

v0.1.1 - CI/CD 자동화

Choose a tag to compare

@mtseo01 mtseo01 released this 03 Nov 01:02

🤖 CI/CD 자동화

✨ 새로운 기능

  • GitHub Actions 자동 배포: Release 발행 시 NPM에 자동 배포
  • Slack 알림 통합:
    • 📌 Main 브랜치 푸시 알림
    • 🎉 배포 성공 알림
    • 🚨 배포 실패 알림

🛠️ 기술 스택

  • GitHub Actions workflow
  • NPM provenance 적용
  • Slack Incoming Webhooks

📦 배포 프로세스

  1. Release 발행
  2. 자동 테스트 & 빌드
  3. NPM 배포
  4. Slack 알림 전송

v0.1.0 - 한우 정액 코드 유효성 검사 기능 추가

Choose a tag to compare

@mtseo01 mtseo01 released this 31 Oct 07:59

🐂 한우 정액 코드 유효성 검사 기능 추가

✨ 새로운 기능

  • 한우 정액 코드 검증 함수 추가 (isValidKCowSemen)
    • 5개 기관 코드 지원: KPN, GPN, JBPN, JYG, YKG
    • 3~4자리 숫자 형식 검증
    • 대소문자 구분 없이 처리

🔍 검증 규칙

  • ✅ 유효한 기관 코드 + 3~4자리 숫자
  • ✅ 대소문자 무관 (KPN123 = kpn123)
  • ✅ 앞뒤 공백 자동 제거
  • ❌ 한글, 특수문자 거부
  • ❌ 2자리 이하 / 5자리 이상 거부

📋 사용 예시

import { isValidKCowSemen } from '@kiwooso-front-end/utils';

isValidKCowSemen('KPN950')   // ✅ true
isValidKCowSemen('GPN0100')  // ✅ true
isValidKCowSemen('KPN1420')  // ✅ true
isValidKCowSemen('알수없음')  // ❌ false
isValidKCowSemen('KPN12')    // ❌ false (2자리)

🧪 테스트

  • 유효한 케이스 8개 시나리오
  • 무효한 케이스 10개 시나리오
  • Edge case 포함 (null, undefined, 특수문자 등)

📝 관련 파일

  • validation.ts - 검증 함수
  • validation.test.ts - 테스트 코드

📦 설치

npm install @kiwooso-front-end/utils

🛠️ 기술 스택

  • TypeScript 5.3+
  • Rollup (ESM + CJS)
  • Jest (테스트)

v0.0.5 - FileValidator 추가

Choose a tag to compare

@mtseo01 mtseo01 released this 28 Aug 06:29

새로운 기능

  • ✨ FileValidator 클래스 추가
    • 체인 방식 파일 검증 (크기, 이름길이, 확장자, MIME 타입)
    • 긴 파일명 자동 변경 기능
    • 메시지 콜백 지원

개선사항

  • 📝 JSDoc 문서화 완료
  • 🧪 Jest 테스트 커버리지 100%

설치

npm install @kiwooso-front-end/utils