원문: Fault Tolerance 현대적인 웹 애플리케이션을 구축하는 일은 많은 구성 요소가 맞물려 있는 복잡한 과정입니다. 때로는 이러한 구성 요소들이 멈추면서 문제가 발생하기 시작합니다. 우리는 이러한 상황을 예방하기 위해 최선을 다하지만, 현실적으로 애플리케이션을 완전히 에러 없이 유지하는 것은 불가능합니다. 즉 예기치 않은 방식으로 문제가 발생할 수 있음을 항상 염두에 두고, 그러한 상황을 우아하게 처리할 수 있어야 합니다. 다시 말해, 장애허용성이 필요합니다.장애허용성이란 시스템을 구성하는 일부 구성 요소에서 장애가 발생하더라도(하나 이상의 결함이 존재하더라도) 시스템이 정상적으로 동작을 계속할 수 있도록 해주는 특성입니다.제 경험상 웹 애플리케이션에서 장애허용성은 종종 간과되거나 과소평가됩..
원문: Stop turning everything into arrays (and do less work instead)대부분의 프론트엔드 코드는 데이터가 화면에 표시되기 훨씬 이전에 데이터를 처리합니다. 우리는 목록을 가져오고, 수정하고, 줄이고, 이 과정을 반복합니다. 하지만 보통 그 과정에서 우리가 얼마나 많은 작업을 하고 있는지 깊이 생각하지 않습니다. 수년간 현대 자바스크립트는 우리를 익숙한 패턴으로 이끌어 왔습니다.data .map(...) .filter(...) .slice(...) .map(...)가독성이 좋고 표현력도 풍부합니다. 하지만 즉시 평가되고(eager), 여러 배열을 할당하고 불필요한 작업을 자주 수행합니다. 자바스크립트의 이터레이터 헬퍼는 대규모 데이터셋, 스트림, UI..
원문: Serving Video with HTTP Range Requests 최근에 가족과 친구들을 위한 간단한 사진 공유 앱을 만들게 되었습니다.주변에서 근황을 놓치고 싶지 않은 일이 있었는데, 그걸 위해 클라우드 서비스에 의존하는 건 별로 마음에 들지 않았거든요. 대신 Next.js로 작은 프로그레시브 웹 앱을 만들기로 결정했습니다. 몇 시간 만에 첫 버전을 완성했는데, 사진 디렉터리를 지정하면 그리드 형태의 썸네일과 섀도우박스 형태의 전체 크기 이미지로 렌더링하는 기본적인 자체 호스팅 앱이었습니다. 새 사진이 디렉터리에 추가되면 푸시 알림까지 받을 수 있도록 설정해 두기도 했습니다. 그러다가, 이제 끝이라고 생각하고 이 프로젝트를 대성공으로 결론 내리려는 순간, 문득 한 가지가 생각났습니다. 비디오..
"한빛미디어 서평단 활동을 위해서 책을 협찬받아 작성된 서평입니다." 소프트웨어 아키텍처 The Basics (2판)는 소프트웨어 아키텍처를 기초부터 폭넓게 정리한 실용서입니다. 이 책은 단순히 아키텍처의 개념을 나열하는 데 그치지 않고, 현대 소프트웨어 개발 환경에서 아키텍처를 정의하고 적용하는 데 필요한 사고의 틀과 실전적 기준을 제시합니다. 아키텍처 스타일, 품질 속성, 컴포넌트 설계, 도식화, 진화적 아키텍처 등 아키텍처의 핵심 주제를 망라하고 있어 개발자에서 아키텍트로 성장하고 싶은 엔지니어에게 실질적 방향성을 제시합니다. 책의 초반에는 아키텍트에 대한 정의와 필요한 내용들을 잘 정리하고 있어 팀에서 어떤 역할이 되어야 하는지 명확하게 이해할 수 있습니다. 이 책의 큰 특징은 아키텍처를 하나..
원문: Why TypeScript Won't Save You 타입스크립트는 결국 당신을 당신 자신으로부터 지켜주지 못합니다. 제네릭, 조건부 타입, 매핑 타입 같은 고급 기능을 다루기 위해 많은 시간을 투자한 사람이라면 이 말이 다소 가혹하게 들릴 수 있습니다. 하지만 타입스크립트 컴파일러가 보여주는 초록색 체크표시는 당신의 코드가 스스로 모순 없이 일관된다는 것일 뿐, 그 코드가 정말로 올바르다는 보증은 아닙니다. 이 글은 타입스크립트를 비난하려는 것이 아닙니다. 오히려 “타입이 곧 타입 안전성이다”라는 오해를 깨기 위한 이야기입니다. 문제는 도구가 아니라 사고방식입니다. 저는 이 장면을 현업에서 끊임없이 보게 됩니다. "타입이 잡아주겠지"라며 엣지 케이스를 더 이상 고민하지 않는 개발자, "이미 타입..
원문: State-based vs Signal-based rendering 프런트엔드 프레임워크에서 상태 관리를 떠올리면, 우리는 흔히 훅(hooks), 옵저버블(observables), 시그널(signals) 같은 API의 형태에 집중하곤 합니다. 하지만 더 근본적인 변화가 일어나고 있습니다. 바로 렌더링이 어디서 일어나느냐 에 대한 관점입니다. 기존의 리액트 훅 기반 상태 관리는 상태를 생성한 지점에서 렌더링이 발생하는 반면, Preact나 Solid.js 같은 시그널 기반 접근 방식에서는 상태를 소비하는 지점에서만 렌더링이 발생합니다. 즉, “상태를 만든 곳에서 렌더링" 하던 방식에서 “상태를 사용하는 곳에서 렌더링”하는 방식으로의 전환은 성능, 코드 구조, 그리고 사고방식 전반에 큰 변화를 가져옵..
"한빛미디어 서평단 활동을 위해서 책을 협찬받아 작성된 서평입니다."이 책은 프런트엔드 개발자들이 실무에서 일을 하다보면 React나 Next.js와 같은 프레임워크에 집중하게 되면서 상대적으로 간과하기 쉬운 바닐라 자바스크립트의 "본질적인 개념"을 퀴즈라는 컨셉으로 정리한 책입니다. 기술 면접 대비부터 현업 프런트엔드 개발자로서 갖춰야 할 실무 역량까지 폭넓게 다루고 있으며, 국내 대표 IT 기업의 프런트엔드 개발자 분들께서 공동으로 집필했습니다. 시중에 많은 자바스크립트 책이 있지만 더욱 더 깊은 학습을 하고 싶은 분들을 위한 책입니다. 이 책의 구성은 아래와 같습니다.각 챕터는 셀프 실력 점검 → 워밍업 퀴즈 → 핵심 개념 파헤치기 → 실전 레벨업 퀴즈 챌린지 → 리얼 현장 인터뷰 라는 구조로 이..
"한빛미디어 서평단 활동을 위해서 책을 협찬받아 작성된 서평입니다." 양자 컴퓨터에 대해서는 정말 단순하게 이해하고 있었는데 이 책을 통해서 조금 더 자세히 알 수 있게 재밌었습니다. 설명이 어렵지 않고 비즈니스, 투자등과 관련해서도 설명하고 있어서 실제로 당장 써먹을 수 있는 지식을 얻을 수 있다는 점도 좋았습니다. 저자는 지금으로부터 10년전인 2015년에 AI가 산업을 바꿀 수 있다고 생각하여 관련된 스타트업에 투자를 했었고, 그때 거대한 물결이 시작되고 있음을 직감했다고 얘기합니다. 10년이 지난 지금 생각해보면 AI는 우리의 삶에서 빠질 수 없는 하나의 요소가 되었습니다. 그리고 지금은 양자 컴퓨팅이라는 새로운 기술로부터 10년 전에 AI에게 느꼈던 설레임을 느끼고 있다고 합니다.그리고 이 ..