최신 게시글
SCRIPT

[ TypeScript 타입 서술어(Type Predicate) ]

1. 타입 서술어란?타입 서술어는 TypeScript에서 특정 스코프 내의 변수 타입을 좁히는(narrowing) 데 사용되는 특별한 반환 타입입니다.함수가 true를 반환할 때, TypeScript는 인자의 타입을 특정 타입으로 취급합니다.2. 기본 구조function 함수이름(매개변수: 타입): 매개변수 is 특정타입 { return 불리언_표현식;}3. 간단한 예시: 문자열 체크function isString(value: unknown): value is string { return typeof value === 'string';}// 사용 예:function processValue(value: unknown) { if (isString(value)) { // 여기서 ..

SCRIPT

[ image polling ]

import { useState, useEffect } from 'react';const checkImage = (url: string): Promise => { return new Promise(resolve => { const image = new Image(); image.onload = () => resolve(true); image.onerror = () => resolve(false); image.src = `${url}&r=${Math.random()}`; // 캐시 방지 });};export const useImagePolling = ( url: string, isGenerationComplete: boolean, interval: number = 5000,)..

외부 포스트 스크랩

CSS Grid Areas

https://ishadeed.com/article/css-grid-area/?utm_source=CSS-Weekly&utm_medium=newsletter&utm_campaign=issue-589-august-13-2024&_bhlid=f2bac55294afc9b1d9188d8f7441cad2123c0c59

ETC

homebrew 설치

Homebrew는 macOS(그리고 Linux)를 위한 패키지 관리 시스템입니다Homebrew 설치 방법은 간단하며, 공식 사이트 랜딩 페이지에 바로 안내해주고 있습니다.$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"위 명령어를 터미널에서 입력하면 설치가 진행되고 설치가 완료됩니다.설치가 완료되었다면 마지막으로 설정 파일에 homebrew를 PATH에 추가하고, 현재 쉘에서 homebrew를 사용할 수 있도록 설정 내용을 추가해주면 끝입니다. 2가지 명령어를 실행하면 되는데1. PATH에 추가하는 내용$ (echo; echo 'eval "$(/opt/homebrew/bin/bre..

Recoil

레퍼런스 API - 유틸 & 기타 Hook

atomFamily(options) 주요 요소 * key : atomFamily를 식별하기 위한 고유한 문자열 * default : 각 atom의 초기값을 설정. 여러 타입의 값이나 함수를 사용할 수 있습니다. * effect : Atom Effects의 배열이나 콜백 함수를 선택적으로 사용할 수 있습니다. * dangerouslyAllowMutability : 상태 변경에 따른 리렌더링을 위한 설정입니다. 기능과 특성 * atomFamily는 여러 atom을 동적으로 생성할 수 있는 유틸리티입니다. * 매개변수를 받아서 각각의 atom에 대한 상태를 설정할 수 있습니다. * atomFamily는 전체 어플리케이션에서 고유한 키를 가집니다. * 매개변수는 값 동등성에 따라 atom을 구분하므로 원시 타입..

Recoil

레퍼런스 API - 상태

atom() atom은 Recoil의 상태를 표현한다. atom() 함수는 쓰기 가능한 RecoilState 객체를 반환한다. function atom({ key: string, default: T | Promise | RecoilValue, effects_UNSTABLE?: $ReadOnlyArray, dangerouslyAllowMutability?: boolean, }): RecoilState * key : 내부적으로 atom을 구별하기 위한 이름. : 이 이름은 전체 앱에서 다른 atom과 selector와 겹치면 안 된다 = 고유한 이름이어야 한다. * default : atom이 처음 만들어질 때 가지는 초기값. 일반 값이 될수도 있고 Promise 또는 다른 atom이나 selector가 될..

Geek News Scrap

23. 07 스크랩

1. 주니어의 스터디 드라이븐 성장기 (발표자료 & 스크립트) (링크) 더보기 IT 엔지니어로 만 2년간 근무하며 했던 30개 이상의 스터디들과, 그로 인한 성장 경험을 공유 목차 성장이란? 신입 시절에 했던 스터디 이직 후 했던 스터디 스터디를 하며 느낀 점들 그래서 스터디로 성장했나요? 기타 스터디 팁 2. million - React를 70% 빠르게 (링크) 더보기 React의 Virtual DOM을 더 빠르고 경량(

Geek News Scrap

23. 06 스크랩

1. JMAP - 최신 이메일 표준 (링크) 더보기 IETF가 공식 발표한 'JSON Meta Application Protocol' 빠른 이메일 관리를 위한 개발자 친화적인 오픈API 표준 Gmail에서만 작동하는 독점적인 이메일 API의 대안 IMAP을 컨버전하는 하는 것이 아닌 새로운 프로토콜 Stateless 한 프로토콜로, 커넥션 유지가 필요없음. 모바일 친화적 널리 이용되는 HTTPS/JSON을 사용 바이너리 데이터는 JSON에 포함되지 않고(base64인코딩 같은게 없으면 불가능하기도 하므로) blobid로 레퍼런스 되며 HTTPS로 별도 업로드/다운로드 됨 RFC5322에서 사용하는 데이터를 일관적이고 구조적으로 표현하는 JSON 구조를 정의 두개의 푸시 메커니즘을 정의 데스크탑 및 웹메일..

코리안심슨
코리안심슨 개발블로그