iBetter Books
수정

PART 07. 모듈과 프로젝트 구조

파일을 나누고, 연결하고, 정돈하는 법을 배웁니다.

PART 06에서 제네릭을 배웠습니다. 타입을 매개변수처럼 다루면서 한 번 작성한 코드가 어떤 타입에도 동작하도록 만드는 법을 익혔습니다. ApiResponse<T>, Repository<T> 같은 패턴을 쓸 수 있게 되었습니다.

그런데 이제 새로운 문제가 생겼습니다. 코드가 점점 늘어납니다. 타입 정의, 유틸리티 함수, 비즈니스 로직이 한 파일에 뒤섞이면 찾기도 힘들고 수정하기도 두렵습니다. "이 타입이 어디서 정의됐더라?", "이 함수를 다른 파일에서 쓰려면 어떻게 하지?"

이것이 모듈과 프로젝트 구조를 배워야 하는 이유입니다.

JavaScript에는 오래전부터 모듈 시스템이 있었습니다. require()module.exports로 파일을 나누던 CommonJS 방식에서 출발해, 지금은 importexport를 쓰는 ES 모듈 방식이 표준입니다. TypeScript는 이 ES 모듈 위에서 타입 정보를 얹어줍니다.

이 파트에서는 다음 내용을 다룹니다.

  • Ch 01. import와 export: 파일 사이에 코드를 공유하는 기본 문법을 배웁니다. named export, default export, re-export, 배럴 파일 패턴까지 다룹니다.
  • Ch 02. tsconfig.json 이해하기: TypeScript 컴파일러에게 "이렇게 동작해"라고 지시하는 설정 파일입니다. strict 모드, target, module 같은 핵심 옵션을 배웁니다.
  • Ch 03. 프로젝트 폴더 구조 잡기: 실제 프로젝트에서 파일과 폴더를 어떻게 정리할지 배웁니다. 규모에 따라 달라지는 추천 구조를 살펴봅니다.

선언 파일(.d.ts), @types 패키지, 네임스페이스 같은 심화 주제는 "실전 TypeScript" PART 05에서 다룹니다. 이 파트에서는 일상적인 프로젝트 작업에 필요한 핵심만 짚겠습니다.

이 파트를 마치면 여러 파일로 나뉜 TypeScript 프로젝트를 자신 있게 구조화할 수 있습니다. 코드가 어디 있는지 알고, 필요한 것을 가져다 쓰고, 컴파일러 설정이 무엇을 의미하는지 이해하게 됩니다.