javascript

자바스크립트로 만든 유한 상태 기계 XState

FSM(Finite State Machine, 유한 상태 기계)은 UI를 구현할 때 가끔씩 사용했었습니다. 기본적인 개념만 응용해서 enum과 조건문을 이용해서 구현했었죠. 정해진 상태들이 많이 있고 상태에 따라 다른 동작들이 가능한 상황에서는 고민 없이 FSM을 적용할 것 같습니다. 그럴 땐 어떻게 코드를 짜도 복잡하기 때문에 코드만이라도 상태에 따른 정...

리액트로 만든 게임에 사운드 추가하기

최근 주말마다 아이를 위해 리액트로 간단한 게임을 만들고 있습니다. 무한의 계단이란 게임을 너무 집중해서 하길래 게임에서 아이한테 위해가 될 수 있는 중독적인 요소는 빼고 핵심 재미(?)만 갖고 있는 게임을 만들어볼 심산이었죠. 단순히 계단을 좌우로 오르면서 얻은 점수로 아바타를 사거나 해서 캐릭터를 꾸밀 수 있는 게임인데 여기서 점수로 게임 내의 재화를...

null 떠나고 만난 undefined

얼마 전 진행했던 코드리뷰에서 undefined의 사용에 대한 문제로 이야기가 나왔어요. 개인적으로는 너무도 오랫동안 당연하게 null과 undefined를 나름 명확하게 구분했었고, 각 사용처에 맞게 사용하고 있었기에 사실 이 부분에 관해서는 더 알아볼 생각도 없었습니다. 아이러니하게도 이야기가 나왔던 문제는 오해로 생긴 다른 문제였기에 쉽게 해결됐어요....

WeakRefs와 Finalizers 위주로 정리해본 ES2021

몇 달 전에 ECMAScript 2021 최종 스펙이 공개되었어요. 바로 쓸만한 것도 있고 언어를 조금 더 깊게 활용할 수 있는 기능들도 생겼습니다. 매해 이렇게 달라지고 개선되는 것을 보면서 좋기도 하지만 점점 이것도 무뎌지는진 건지 아니면 개선점이 와닿지 않는 건지 예전만큼 관심이나 파급효과가 적어진 것 같아요. 스펙을 보자마자 조만간 정리해야지 했지만...

자주 발생하는 자바스크립트 에러

개발을 하다 보면 개발자의 실수로 생긴 코드 상의 문제로 뻘건 에러 메시지를 자주 만나게 됩니다. 개발 중에 버그가 발견된다면 다행이지만 실 서비스에서 에러 메시지가 출력된다면 개발자로써 손발이 오그라들고 식은땀이 솟구칠 겁니다. 자바스크립트는 런타임에서만 에러 메시지를 만날 수 있기 때문에 종종 이렇게 심각한 버그를 놓치기도 합니다. 이 부분에선 요즘...

shiren • © 2025Sungho Kim