본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

우아한 타입스크립트 with 리액트 상세페이지

컴퓨터/IT 개발/프로그래밍

우아한 타입스크립트 with 리액트

배달의민족 개발 사례로 살펴보는 우아한형제들의 타입스크립트와 리액트 활용법
소장종이책 정가32,000
전자책 정가20%25,600
판매가25,600
우아한 타입스크립트 with 리액트 표지 이미지

우아한 타입스크립트 with 리액트작품 소개

<우아한 타입스크립트 with 리액트> 주니어 프론트엔드 개발자를 위한 타입스크립트+리액트 온보딩 가이드



우아한형제들은 자바스크립트와 자체 개발 웹 프레임워크인 WoowahanJS를 사용했었다. 그러나 서비스가 대규모 웹 애플리케이션으로 성장하면서 기존 기술의 한계를 느끼고 타입스크립트와 리액트를 프론트엔드 표준 기술로 도입했다. 타입스크립트는 자바스크립트와 100% 호환되는 확장 언어로, 정적 타입을 지원하여 안정성과 유지보수성을 높여준다. 또한 객체 지향 프로그래밍을 지원하여 복잡한 애플리케이션을 개발하는 데 적합하다. 리액트는 UI를 개발하기 위한 라이브러리로 컴포넌트 기반의 개발 방식을 지원하여 코드의 재사용성과 유지보수성을 높여준다. 이 책은 우아한형제들의 실제 코드를 기반으로 타입스크립트의 기본 개념 및 특성과 리액트 환경에서의 타입스크립트 활용법을 알려준다. 또한 배달의민족 개발 사례와 우아한형제들 구성원의 인터뷰를 통해 실무에 바로 적용할 수 있는 다양한 기술 활용 팁을 소개한다.


출판사 서평

★ 우아한형제들의 프론트엔드 개발자는 어떤 기술 스택을 쓸까?

우아한형제들은 자바스크립트와 자체 개발 웹 프레임워크인 WoowahanJS를 웹 프론트엔드 공식 기술 스택으로 사용했었다. 하지만 서비스가 대규모 웹 애플리케이션으로 성장하면서 기존 기술로는 빠르게 변하는 비즈니스 요구를 충족하기 힘들었다. 인터페이스를 파악하기 쉽지 않은 자바스크립트의 한계 등의 이유로 여러 기능을 변경하고 유지보수하는 데 어려움을 겪자 우아한형제들은 리액트 기반의 타입스크립트를 웹 프론트엔드 표준 기술 스택으로 도입하게 된다.



★ 왜 타입스크립트일까?

타입스크립트는 자바스크립트와 100% 호환되는 확장 언어로 정적 타입을 지원하여 안정성을 보장해준다. 또한 객체 지향 프로그래밍 환경을 제공하기 때문에 복잡한 애플리케이션을 개발할 때 많은 도움이 된다. 이처럼 다양한 장점 때문에 타입스크립트+리액트를 도입하여 성능과 안정성을 높일 수 있을 뿐 아니라 유지보수도 용이해진다.



★ 우아한형제들의 핸즈온 타입스크립트+리액트 가이드

이 책은 우아한형제들의 배달의민족 개발 사례를 기반으로 타입스크립트와 리액트 사용법을 소개한다. 타입스크립트의 기초 문법과 특성을 익히고 리액트에서의 타입스크립트 활용법을 살펴보면서 어떻게 두 기술을 실무에 적용할 수 있는지를 배울 수 있다.



★ 타입스크립트를 왜 배워야 할까?

타입스크립트를 배워야 하는 이유는 다양하다.

● 오류 예방: 컴파일 단계에서 타입을 검사하기 때문에 실행 단계에서 발생할 수 있는 오류를 사전에 발견하고 수정할 수 있다.

● 코드 가독성과 유지보수성 향상: 타입을 명시적으로 지정함으로써 코드의 의미를 명확하게 표현할 수 있고 코드의 재사용성과 유지보수성을 높일 수 있다.

● 협업 효율성 향상: 타입을 통해 코드의 의도를 명확하게 전달할 수 있기 때문에 협업 효율성을 높일 수 있다.

● 자바스크립트와 호환: 타입스크립트는 자바스크립트와 100% 호환되기 때문에 자바스크립트가 사용되는 어떤 곳이든 타입스크립트를 사용할 수 있다.



이러한 특징으로 인해 많은 개발 조직이 타입스크립트를 사용하고 있다. 개발자로서 더 나은 역량을 갖추기 위한 스킬 중 하나로 여겨지기 때문에 프론트엔드 개발자라면 익혀두는 게 좋다.



★ 이 책의 대상 독자

타입스크립트나 자바스크립트를 접해본 적이 있지만 타입스크립트를 기초부터 깊이 있게 배우고 싶은 프론트엔드 주니어 개발자를 대상으로 한다. 이 책은 타입스크립트의 기본 개념과 특징을 알려주고, 우아한형제들의 사용 예시를 기반으로 실무에서 타입스크립트와 리액트를 어떻게 활용하는지를 설명한다.



★ 이 책을 읽기 전에 알아야 할 지식

HTML, CSS, 자바스크립트 기초를 배운 경험이 있다면 수월하게 이 책을 읽을 수 있다. 또한 리액트에서의 타입스크립트 활용법을 다루고 있기 때문에 리액트 기본 지식도 알고 있어야 한다.



★ 이 책의 구성

1장 들어가며

자바스크립트의 역사와 한계를 간단히 알아보면서 타입스크립트가 등장하게 된 배경을 살펴본다.



2장 타입

정적 타이핑을 하기 위해 타입스크립트가 제공하는 타입과 관련된 내용을 살펴본다. 타입이란 무엇이며 다른 언어에서 타입은 어떻게 동작하는지를 살펴보고, 타입스크립트의 타입을 어떻게 쓸 수 있는지 알아본다.



3장 고급 타입

자바스크립트 자료형에 없는 타입스크립트만의 타입 시스템을 소개한다. 그리고 타입의 개념을 응용하여 좀 더 심화한 타입 검사를 수행하는 데 필요한 지식을 살펴본다.



4장 타입 확장하기·좁히기

타입 확장과 타입 좁히기의 개념을 살펴보며 더욱 확장성 있고 명시적인 코드 작성법에 대해 알아본다.



5장 타입 활용하기

우아한형제들의 타입스크립트 활용 사례를 소개한다. 우아한형제들의 실무 코드 예시를 살펴보면서 정확한 타이핑을 하지 못해 발생하는 문제를 타입스크립트의 다양한 기법과 유틸리티 타입을 활용해 해결해본다.



6장 타입스크립트 컴파일

타입스크립트가 실행되는 전반적인 흐름을 살펴보고, 타입스크립트 컴파일러의 주요 역할과 구조에 대해 알아본다. 그리고 실제로 어떻게 컴파일하는지 확인해본다.



7장 비동기 호출

API를 요청하고 응답받는 행위는 모두 비동기로 이루어진다. 이 장에서는 타입스크립트에서 비동기 요청을 어떻게 처리하고 관리하는지를 다룬다.



8장 JSX에서 TSX로

리액트에서 사용하는 JSX 문법을 타입스크립트에 어떻게 적용하는지 소개한다.



9장 훅

리액트에서 제공하는 몇 가지 훅을 사용하여 상태 또는 사이드 이펙트를 다루는 방법을 소개한다. 또한 상태 로직을 재사용할 수 있게 해주고, 컴포넌트의 복잡성을 낮춰주는 커스텀 훅에 대해 알아본다.



10장 상태 관리

리액트 애플리케이션에서 가장 중요한 역할을 하는 상태에 대해 알아본다. 기본적인 상태의 개념을 익히고 어떻게 효율적으로 상태를 관리할 수 있는지를 살펴본다.



11장 CSS-in-JS

CSS-in-JS는 자바스크립트에서 CSS를 작성하는 방식이다. CSS-in-JS를 적용하면 CSS 스타일을 문서 레벨이 아니라 컴포넌트 레벨로 추상화해주기 때문에 관리가 용이해진다. 11장에서는 CSS-in-JS의 개념과 사용법에 관해 알아본다.



12장 타입스크립트 프로젝트 관리

타입스크립트 프로젝트에서 유용하게 활용할 수 있는 개념과 팁을 소개한다.



13장 타입스크립트와 객체 지향

타입스크립트와 리액트 환경에서 객체 지향을 어떻게 활용하고 더 나은 방향으로 발전시킬 수 있는지 알아본다.


저자 프로필

우아한형제들 웹프론트개발그룹

2023.10.27. 업데이트 작가 프로필 수정 요청

우아한형제들의 프론트엔드 개발자가 속한 그룹이다. 그 외 서버개발그룹, 모바일앱개발그룹이 있다. 우아한형제들의 개발자들은 지속적으로 좋은 제도와 문화를 만들어가며 성장하기 위해 노력하고 있다.


저자 소개

우아한형제들 웹프론트개발그룹

우아한형제들의 프론트엔드 개발자가 속한 그룹이다. 그 외 서버개발그룹, 모바일앱개발그룹이 있다. 우아한형제들의 개발자들은 지속적으로 좋은 제도와 문화를 만들어가며 성장하기 위해 노력하고 있다.

권기석

사용자 경험과 가장 관련 있는 브라우저에 관심이 생겨 프론트엔드 개발을 시작했다. 현재 마트 관련 커머스 서비스와 사용자 중심 모바일 디자인 시스템 개발 등에 참여하며 서비스 발전에 기여하고 있다.



권세진

사용자가 선호할 만한 서비스를 기획하는 것을 좋아하는 프론트엔드 개발자이다. 새로운 기술을 빠르게 접해보며 검증하는 것을 즐긴다. 우아한테크코스 3기 웹 프론트엔드 과정을 거쳐 현재

우아한형제들의 만다오 제품을 개발하고 있다.



고우혁

커피와 아쿠아리움을 사랑하는 개발자. 백엔드 개발자로 입문하여 여행 관련 스타트업을 다니다 프론트엔드에 흥미가 생겨 현재는 우아한형제들에서 프론트엔드 개발자로 일하고 있다.



김정혁

우아한형제들에서 리액트 네이티브를 활용하여 배민커넥트앱을 개발하고 있다.



박선희

‘머리색이 특이한 그분(?)’으로 알려져 있다. 무엇이든 손으로 직접 만드는 걸 좋아해서 개발자가 됐다. 사용자 경험에 관심이 많고, 소프트웨어가 세상을 더 재밌게 만든다고 믿는다. 우아한형제들에서 배달의민족 주문과 관련된 서비스를 개발하고 있다.



서그림

우아한형제들 배민선물하기팀에서 첫 커리어를 쌓고 있는 프론트엔드 개발자이다. 내가 작성한 코드 한 줄 한 줄에는 사용자가 소중한 사람에게 선물하는 기쁨을 느낄 수 있는 시간이 담겨 있지 않을까? 오, 방금 멘트 좋았다.



송지은

파워 드러머이지만 의외로 낭만을 추구하는 개발자. 멋쟁이사자처럼, 스타트업, 우아한테크코스를 거쳐 우아한형제들에서 배민셀프서비스 프론트엔드를 개발하고 있다. 프로덕트 UX에 관심이 많으며 개발보다 코드 리뷰를 좋아한다는 소문이 있다.



송하영

현재 우아한형제들에서 주문, 결제, 쿠폰 프론트엔드를 개발하고 있다. 몰입해서 개발하는 것을 좋아한다. 항상 즐겁게 코딩하는 것을 목표로 삼고 있다.



심문성

커피를 유별나게 좋아하는 프론트엔드 개발자. 연합 동아리 활동에 참여하여 사이드 프로젝트를 개발하는 것을 즐긴다. 현재는 우아한형제들에서 다양한 백오피스를 개발하고 있다.



이정민

다양한 경험을 추구하는 개발자. 5개의 IT 동아리와 5번의 인턴을 거쳐 현재는 우아한형제들에서 프론트엔드 개발을 하고 있다. 웹프론트개발그룹 직속팀에서 1년간 디자인 시스템 관련 툴을 만들다가 현재는 운영도구개발팀에서 생산성을 높이기 위한 다양한 서비스를 만들고 있다.



이수연

해 질 무렵 집 앞 공원에 나가 산책하는 것을 좋아한다. 현재는 가게 운영에 필요한 서비스, 콘텐츠, 상품을 회원에게 알리는 배민외식업광장 서비스를 개발하고 있다.



이예지

고민과 해결을 즐기는 개발자. 우아한형제들에서 만다오와 고객탐색기를 개발하고 있다. 효율적이고 적극적인 커뮤니케이션을 위해 항상 고민한다. 악기나 사진, 운동 등 다양한 분야에 관심이 많은 취미 부자이다.



이강열

침대와 유튜브 그리고 약간의 독서를 좋아하는 방구석 개발자. 개발을 잘하는 멋쟁이 개발자가 되고 싶지만 역시 호락호락하지 않은 것 같다. 현재는 우아한형제들의 배민상회프론트개발팀에서 서비스를 개발하고 있다.



조은현

모두가 함께 사용할 수 있는 서비스를 지향하는 개발자이다. 동료를 챙기는 것을 좋아해서 여러 문화를 만들어가고 있다. 현재는 우아한형제들 배민커머스웹프론트개발팀에서 모바일 웹뷰 파트를 맡고 있다.



최현준

일상생활에서 재밌고 편하게 사용할 수 있는 소프트웨어를 만들기 좋아하는 프론트엔드 개발자. 오늘도 불편을 해소하기 위해 무언가 뚝딱 만들고 있다. 우아한형제들에서 인프라 관련 플랫폼 백오피스를 만들고 있다.



황윤서

기술 탐구를 좋아하고 좋은 소프트웨어를 개발하기 위해 다양한 시도와 경험을 쌓아가고 있는 개발자. 디자인 시스템 툴을 1년간 개발하다가 현재는 운영도구개발팀에서 사업 부문 관련 도구들을 개발하고 있다.

감수 김민태(우아한형제들 기술이사)

목차

1장 들어가며

1.1 웹 개발의 역사

1.2 웹자바스크립트의 한계



2장 타입

2.1 타입이란

2.2 타입스크립트의 타입 시스템

2.3 원시 타입

2.4 객체 타입



3장 고급 타입

3.1 타입스크립트만의 독자적 타입 시스템

3.2 타입 조합

3.3 제네릭 사용법



4장 타입 확장하기·좁히기

4.1 타입 확장하기

4.2 타입 좁히기 - 타입 가드

4.3 타입 좁히기 - 식별할 수 있는 유니온

4.4 Exhaustiveness Checking으로 정확한 타입 분기 유지하기



5장 타입 활용하기

5.1 조건부 타입

5.2 템플릿 리터럴 타입 활용하기

5.3 커스텀 유틸리티 타입 활용하기

5.4 불변 객체 타입으로 활용하기

5.5 Record 원시 타입 키 개선하기



6장 타입스크립트 컴파일

6.1 자바스크립트의 런타임과 타입스크립트의 컴파일

6.2 타입스크립트 컴파일러의 동작

6.3 타입스크립트 컴파일러의 구조



7장 비동기 호출

7.1 API 요청

7.2 API 상태 관리하기

7.3 API 에러 핸들링

7.4 API 모킹



8장 JSX에서 TSX로

8.1 리액트 컴포넌트의 타입

8.2 타입스크립트로 리액트 컴포넌트 만들기

8.3 정리



9장 훅

9.1 리액트 훅

9.2 커스텀 훅



10장 상태 관리

10.1 상태 관리

10.2 상태 관리 라이브러리



11장 CSS-in-JS

11.1 CSS-in-JS란

11.2 유틸리티 함수를 활용하여 styled-components의 중복 타입 선언 피하기



12장 타입스크립트 프로젝트 관리

12.1 앰비언트 타입 활용하기

12.2 스크립트와 설정 파일 활용하기

12.3 타입스크립트 마이그레이션

12.4 모노레포



13장 타입스크립트와 객체 지향

13.1 타입스크립트의 객체 지향

13.2 우아한형제들의 활용 방식

13.3 캡슐화와 추상화

13.4 정리


리뷰

구매자 별점

4.3

점수비율
  • 5
  • 4
  • 3
  • 2
  • 1

4명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
앱으로 연결해서 다운로드하시겠습니까?
닫기 버튼
대여한 작품은 다운로드 시점부터 대여가 시작됩니다.
앱으로 연결해서 보시겠습니까?
닫기 버튼
앱이 설치되어 있지 않으면 앱 다운로드로 자동 연결됩니다.
모바일 버전