우아한형제들은 자바스크립트와 자체 개발 웹 프레임워크인 WoowahanJS를 사용했습니다. 그러나 서비스가 대규모 웹 애플리케이션으로 성장하면서 기존 기술의 한계를 느끼고 타입스크립트와 리액트를 프런트엔드 표준 기술로 도입하였습니다.
타입스크립트(TypeScript)와 리액트(React)는 각각 프로그래밍 언어와 라이브러리(또는 프레임워크)입니다.
먼저 타입스크립트는 Microsoft에서 개발한 오픈 소스 프로그래밍 언어입니다. JavaScript의 상위 집합으로, 정적 타입을 지원하여 개발자가 변수의 타입을 명시적으로 선언할 수 있습니다. 컴파일 시간에 타입 검사를 수행하므로 런타임 오류를 줄일 수 있고, 코드의 가독성과 유지 보수성을 향상시킬 수 있습니다.
타입스크립트의 정적 타입은 코드 작성 시 컴파일러에 의해 타입이 검사되고 오류가 발생할 수 있는 부분을 사전에 찾아내는 특징을 나타냅니다. 여기서 "정적 타입"은 코드가 실행되기 전에 타입에 대한 검사가 수행되며, 이로써 런타임에서 발생할 수 있는 일부 오류를 사전에 방지할 수 있습니다. 정적 타입은 개발자에게 코드 작성 중에 발생할 수 있는 오류를 사전에 확인할 수 있는 강력한 도구를 제공하여 코드의 안정성과 유지 보수성을 향상시킵니다.
리액트(React)는 Facebook에서 개발한 사용자 인터페이스(UI)를 만들기 위한 JavaScript 라이브러리입니다.
컴포넌트 기반 아키텍처를 기반으로 하며, UI를 작은 독립적인 조각으로 분할하여 구축할 수 있습니다. 가상 DOM(Virtual DOM)을 사용하여 효율적인 UI 업데이트를 가능케 하고, 단일 페이지 애플리케이션(SPA)을 쉽게 개발할 수 있습니다.
타입스크립트와 리액트는 독립적으로 사용될 수 있지만, 많은 개발자들이 이 두 기술을 함께 사용하는 것이 일반적입니다.
리액트 프로젝트에서 타입스크립트를 도입하면, 정적 타입 검사와 타입 힌트 등을 활용하여 개발 프로세스를 개선할 수 있습니다. 특히 대규모 애플리케이션에서는 타입스크립트의 강력한 타입 시스템이 유지 보수성을 향상시키고 버그를 사전에 방지하는 데 도움이 됩니다. 타입스크립트는 정적 타입 언어로서 개발자에게 타입 안정성을 제공하며, 리액트는 사용자 인터페이스를 만들기 위한 라이브러리로서 UI 개발을 간편하게 만들어줍니다. 함께 사용하면 생산성을 향상시키고 유지 보수성을 강화할 수 있습니다.
"우아한 타입스크립트 with 리액트" 도서는 우아한형제들의 프런트엔드 개발 기술을 망라한 도서입니다. 그들의 개발 경험과 기술을 한 권의 도서에 모두 녹일 수는 없었겠지만 풍부한 예제를 통해 어떤 방식으로 타입스크립트와 리액트를 활용하고 있는지 볼 수 있습니다.
먼저 이 책의 내용을 챕터별로 확인해 볼게요.
1장 들어가며
1.1 웹 개발의 역사와 1.2 자바스크립트의 한계를 통해 시작되는 이 책은 웹 개발의 변천사와 현대 웹 개발에서 자바스크립트의 한계를 다루면서 독자를 타입스크립트의 세계로 안내합니다.
2장 타입
2.1에서는 타입의 개념과 2.2에서는 타입스크립트의 강력한 타입 시스템을 다룹니다. 2.3과 2.4에서는 원시 타입과 객체 타입에 대한 깊은 이해를 제공하여 독자가 타입을 효과적으로 활용할 수 있도록 합니다.
3장 고급 타입
3.1에서는 타입스크립트만의 독특한 타입 시스템에 대해 탐구하며, 3.2와 3.3에서는 타입 조합과 제네릭 사용법을 소개하여 고급 타입 활용법을 다룹니다.
4장 타입 확장하기·좁히기
4장에서는 타입 확장과 타입 좁히기에 대한 전략을 다룹니다. 4.4에서는 Exhaustiveness Checking을 사용하여 정확한 타입 분기 유지에 중점을 둡니다.
5장 타입 활용하기
5장에서는 조건부 타입, 템플릿 리터럴 타입, 커스텀 유틸리티 타입 등을 활용하여 불변 객체 타입까지 폭넓게 다룹니다.
6장 타입스크립트 컴파일
6장에서는 자바스크립트의 런타임과 타입스크립트의 컴파일에 대한 이해를 제공하고, 6.3에서는 타입스크립트 컴파일러의 구조를 살펴봅니다.
7장 비동기 호출
비동기 호출에 대한 핵심인 API 요청, 상태 관리, 에러 핸들링, 모킹을 다루어 웹 애플리케이션에서 비동기적인 요청을 효과적으로 다루는 방법을 제시합니다.
8장 JSX에서 TSX로
8장에서는 JSX에서 TSX로의 전환을 다루면서 리액트 컴포넌트의 타입, 타입스크립트로 리액트 컴포넌트를 만드는 방법을 안내합니다.
9장 훅
9장에서는 리액트 훅과 커스텀 훅을 다루어 리액트 애플리케이션에서 상태와 생명주기를 효과적으로 관리하는 방법을 설명합니다.
10장 상태 관리
10장에서는 상태 관리의 필요성을 논하고, 다양한 상태 관리 라이브러리를 비교하여 각각의 특징을 설명합니다.
11장 CSS-in-JS
11장에서는 CSS-in-JS의 개념을 소개하고, styled-components를 활용하여 중복 타입 선언을 효과적으로 피하는 방법을 다룹니다.
12장 타입스크립트 프로젝트 관리
12장에서는 앰비언트 타입, 스크립트와 설정 파일 활용, 타입스크립트 마이그레이션, 모노레포 구성 등을 통해 큰 규모의 프로젝트에서 타입스크립트를 어떻게 효과적으로 관리할 수 있는지 설명합니다.
13장 타입스크립트와 객체 지향
마지막 13장에서는 타입스크립트의 객체 지향 프로그래밍 방식을 소개하고, 우아한형제들의 활용 방식, 캡슐화와 추상화에 대한 내용을 정리합니다.
이 책은 초보자부터 중급자, 고급 사용자까지 모두에게 유용한 실용적인 내용을 다루며, 실무에 바로 적용할 수 있는 풍부한 예제와 실습을 통해 타입스크립트의 핵심 개념과 활용법을 익힐 수 있습니다. 타입스크립트에 대한 전반적인 이해를 쌓고자 하는 개발자에게 강력히 추천하는 한 권입니다.

"우아한 타입스크립트 with 리액트" 도서는 초보자부터 중급자, 고급 사용자까지 모두에게 유용한 실용적인 내용을 다루며, 실무에 바로 적용할 수 있는 풍부한 예제와 실습을 통해 타입스크립트의 핵심 개념과 활용법을 익힐 수 있습니다. 타입스크립트에 대한 전반적인 이해를 쌓고자 하는 개발자에게 강력히 추천하는 한 권입니다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."