try/finally 지옥 탈출 — JS using, 그런데 "3대 브라우저 지원"은 아직이다
블록을 빠져나갈 때 정리를 알아서 해주는 using 선언. 세 엔진이 구현을 마쳤다는 소식이 돌지만, 정식 사파리 기준으로는 아직이다. 문법을 정리하고, 퍼블리셔가 지원 소식을 읽는 법으로 다시 본다.
Frontend 태그의 글 13개.
블록을 빠져나갈 때 정리를 알아서 해주는 using 선언. 세 엔진이 구현을 마쳤다는 소식이 돌지만, 정식 사파리 기준으로는 아직이다. 문법을 정리하고, 퍼블리셔가 지원 소식을 읽는 법으로 다시 본다.
스크롤바를 따라 진행되는 애니메이션이나 "화면에 들어오면 나타나는" 연출을, 스크롤 이벤트를 듣지 않고 CSS만으로 만든다. animation-timeline을 퍼블리셔의 시선으로 정리한다.
드롭다운·툴팁·팝오버의 위치를 잡으려고 getBoundingClientRect를 부르던 일을, 이제 CSS가 대신한다. 앵커 포지셔닝을 퍼블리셔의 시선으로 정리한다.
화면이 부드럽게 넘어가려면 SPA가 필요하던 시절은 지났다. 브라우저가 옛 화면과 새 화면 사이를 알아서 이어주는 View Transitions를, 이 블로그가 실제로 쓰는 방식과 함께 정리한다.
Chrome이 153부터 4주였던 메이저 릴리스 주기를 2주로 줄였다. Firefox도 같은 방향으로 움직이는 지금, 한 달에 한 번 보던 릴리스 노트를 격주로 봐야 하는 시대에 크로스브라우징 QA 루틴이 어떻게 달라져야 하는지 정리한다.
날씨앱을 만들면 제일 먼저 부딪히는 게 "사용자 위치 가져오기"다. navigator.geolocation의 기본 사용법과, HTTPS·권한·에러 처리·정확도 옵션 같은 실전에서 꼭 데이는 지점들을 퍼블리셔 시선으로 정리한다.
input마다 useState를 걸면 한 글자 칠 때마다 폼 전체가 리렌더링된다. React Hook Form은 반대로 간다 — ref로 비제어로 두고, zodResolver로 검증과 타입을 스키마 한 곳에서 뽑는다. 순수 HTML form의 감각과 이어진다.
as User로 "이건 User야"라고 우겼더니, 서버가 다른 걸 줬을 때 엉뚱한 화면에서 터졌다. 타입은 컴파일하면 지워진다는 사실과, 경계(API·localStorage·폼)에서 Zod로 실제 확인하는 법을 정리한다.
isLoading·data·error를 각각 boolean으로 쪼갰더니, 로딩인데 데이터도 에러도 있는 "불가능한 조합"이 타입상 합법이 됐다. as나 ?.를 연달아 쓰게 된다면 타입이 아니라 상태 모델링이 덜 된 신호다.
같은 interface를 복붙해 두세 번 정의하다 원본이 바뀌면 조용히 낡았다. 유틸리티 타입으로 "원본 하나만 두고 필요한 모양으로 깎아 쓰는" 법을, SCSS mixin에 비유해 정리한다.
라이브러리 타입 정의에 나오는 <T>가 늘 벽이었다. 제네릭을 "로직은 하나로 두고 타입만 갈아 끼우는 빈칸"으로 이해하니, useQuery<User[]> 같은 문법이 읽히기 시작했다. 퍼블리셔 시선으로 정리한다.
JS는 한 번에 하나만 처리하는데 어떻게 여러 일이 동시에 도는 것처럼 보일까. 콜 스택·마이크로태스크·매크로태스크로 이벤트 루프를 정리하고, 리스너를 부모 하나에 다는 이벤트 위임까지 퍼블리셔 시선으로 엮는다.
Oxc가 Rust로 새로 짠 React Compiler를 실제로 돌려보고, 코드가 어떻게 바뀌는지 직접 확인해봤습니다.