Burt.K

Awesome Discovery

Recent posts

Dec 6, 2024
React v19 안정화 버전 출시
# React v19 2024년 12월 5일, React 팀 ___ ### 주목할 점 ### React 19 안정화 버전 출시! 2024년 4월에 공개된 React 19 RC 이후 추가된...
Nov 23, 2024
String.prototype.trimStart와 String.prototype.trimEnd 메서드
ES2019에서는 [`String.prototype.trimStart()`와 `String.prototype.trimEnd()` 메서드](https://github.com/tc39/proposal-string-le...
Nov 23, 2024
Function.prototype.toString 메서드의 개선
[`Function.prototype.toString()`](https://tc39.es/Function-prototype-toString-revision/) 메서드가 개선되어 이제 공백과 주석을 포함한 정확한 소...
Nov 23, 2024
동적 임포트(dynamic import)
[동적(dynamic) `import()`](https://github.com/tc39/proposal-dynamic-import)는 기존의 정적(static) `import`를 보완하는 새로운 기능이다. 함수...
Oct 21, 2024
Promise.prototype.finally
`Promise.prototype.finally`는 Promise가 *처리됐을 때*(즉, resolve되거나 reject됐을 때) 실행할 콜백을 등록할 수 있게 한다. 웹 페이지에 표시할 데이터를 가져오는 상...
Oct 21, 2024
Intl.PluralRules
국제화는 쉽지 않다. 복수형 처리는 언뜻 간단해 보이지만, 실제로 모든 언어마다 고유한 복수형 규칙이 있어 복잡하다. 영어의 복수형은 두 가지 경우만 있다. "cat"이라는 단어를 예로 들어보자: - 1...
Oct 20, 2024
객체의 rest와 spread 속성
객체의 rest와 spread 속성에 대해 설명하기 전에, 비슷한 기능을 먼저 살펴보자. ## ES2015의 배열 rest와 spread 요소 ECMAScript 2015에서는 배열 구조 분해 할당을 위...
Oct 20, 2024
렌더 트리 구성, 레이아웃, 페인트
CSSOM과 DOM 트리는 렌더 트리로 합쳐진다. 이 렌더 트리는 모든 가시적 엘리먼트의 레이아웃을 계산하고, 화면에 픽셀을 그리는 페인트 과정의 입력으로 사용된다. 최적의 렌더링 성능을 달성하려면 이 모든 단계를...
Oct 20, 2024
DOM 과 CSSOM 객체 모델 구축
브라우저가 페이지를 렌더링하기 전에 DOM과 CSSOM 트리를 구축해야 한다. 따라서 HTML과 CSS를 최대한 빠르게 브라우저에 전달해야 한다. ## 요약 - 바이트 → 문자 → 토큰 → 노드 → 객체...
Sep 14, 2024
React 19의 새로운 기능
React 19가 곧 출시됩니다. React 코어 팀이 지난 4월에 [React 19 릴리즈 후보(RC)를 공개했습니다](https://react.dev/blog/2024/04/25/react-19#new-feat...
May 6, 2022
VSCode에서 HTML API 자동완성을 쉽게 사용하는 방법은?
Visual Studio Code에서 HTML API를 쓸 때, 타입스크립트를 적용하지 않고 자동완성 기능을 사용할 수 있다. VSCode는 JSDoc을 지원하기 때문에 [JSDoc](https://jsdoc.ap...
May 2, 2022
Firebase Functions 환경 변수 정의 및 사용하기
Node 에서 `process.env.some_secret_key` 와 같이 환경 변수를 사용하는 경우가 많다. Firebase fuctions를 사용할 때, 이런 부류의 환경 변수가 필요한 경우가 있다. 그럴...
Mar 1, 2022
타입스크립트로 Optional<T> 표현하기
타입스크립트는 enum 타입을 지원하지만 아쉽게도 Swift나 Rust 처럼 enum에 associated type(이하 연관타입) 을 지원하지 않는다. 연관 타입을 가진 enum을 지원하는 언어는 Optional...
Feb 13, 2022
Swift 스크립트에서 로컬 파일 읽기
sync 방식으로 파일을 읽는 방법은 많다. 제일 간단한 방법은 `String(contentOfFile:)` 을 사용하는 것이다. Swift 5.5 에 추가된 async/await 를 적용하면 비동기로 파일을 읽을...
Feb 13, 2022
가장 빠르게 Swift 코드 실행하기
이 글은 최적화에 관한 내용이 아니다. 간단한 Swift 코드를 작성하고 실행할 때, Xcode Playground 말고 다른 방법으로 Swift 코드를 빠르게 실행하는 방법에 관한 이야기다. ## Xcode...
Jan 29, 2022
Swift Type Eraser Wrapper 패턴 이해하기
Swift 언어를 잘 활용하기 위해서는 Protocol을 잘 다뤄야 한다. 특히 라이브러리를 제작하고 배포할 때 더 그러하다. Protocol을 사용하면 자주 마주치는 컴파일 오류가 있다. ```swift ...
Jan 13, 2022
Google Sheet API 인증
https://developers.google.com/sheets/api 를 사용하여 비공개(private) Google Sheet 에 접근해야할 때, 인증부분에서 겪은 삽질을 공유한다. ## API KEY ...
Nov 2, 2021
자바스크립트 개발 환경 구성 팁 모음.
자바스크립트 개발 환경 구성 중 만난 이슈와 해결 과정을 정리한다. 🤪 ## singleQuote eslint 와 prettier 간의 singleQuote와 doubleQuote 설정이 충돌날 때가 있다....
Oct 28, 2021
Electron, Vue3 개발 환경 구성
데스크탑 앱을 만들기 위해서 Electron에 관심을 가지던 중, Electron과 Vue3를 사용해 앱을 만들어 보고 싶어졌다. 앱을 만들기 전에 Electron과 Vue3 개발 환경을 구성해 보자. 참고로...
Oct 27, 2021
VSCode, tailwindcss 적용 팁
`@apply`를 사용하여 tailwindcss 스타일을 정의하여 엘리먼트 간에 스타일을 공유할 수 있다. vue 프로젝트에 tailwindcss를 적용할 때, `@apply` 사용하면 오류로 표시되어 불편하...