타입스크립트에서 타입스크립트의 코드 스타일 가이드는 무엇인가요?
_____타입스크립트 코드 스타일 가이드는 일관성 있고 가독성 높은 코드를 작성하기 위한 규칙과 권장사항들의 집합입니다. 팀 내 코딩 표준을 정하고 유지보수성을 높이기 위해 사용됩니다.
Q2: 타입스크립트 스타일 가이드에서 가장 많이 참고하는 공식 문서는 무엇인가요?
마이크로소프트가 운영하는 [TypeScript Deep Dive](https://basarat.gitbook.io/typescript/)와 Airbnb, Google, Microsoft 등 주요 기업의 오픈소스 스타일 가이드가 널리 참고됩니다. 특히 `typescript-eslint` 플러그인과 함께 ESLint 설정도 많이 활용됩니다.
Q3: 기본적으로 권장하는 타입스크립트 코드 스타일 규칙은 무엇인가요?
- `camelCase`를 변수 및 함수 이름에 사용
- `PascalCase`를 클래스, 인터페이스, 타입 별칭 이름에 사용
- 명시적인 타입 선언 권장 (특히 export된 함수의 인수와 반환값)
- `readonly` 및 `const` 적극 활용
- 인터페이스 이름 앞에 접두사 `I`는 지양
- 세미콜론(;) 사용에 관한 일관된 정책 유지
- 2~4칸의 스페이스 들여쓰기 권장 (팀 규칙에 따라 결정)
- 파일 확장자는 `.ts` 또는 `.tsx`를 명확히 구분
Q4: ESLint와 Prettier는 어떻게 활용되나요?
ESLint는 정적 분석 도구로 코드 스타일과 버그 가능성을 체크합니다.
Prettier는 포맷터로 일관된 코드 포맷팅을 강제합니다.
이 둘을 함께 사용해 코드 스타일 가이드를 자동으로 적용하고 관리하는 것이 표준적입니다.
Q5: 타입스크립트 혼용 코드에서 스타일 가이드를 어떻게 적용하나요?
프로젝트 내에 `.eslintrc` 및 `tsconfig.json` 설정을 통해 JavaScript와 타입스크립트 코드를 모두 관리합니다. 타입 관련 규칙(`@typescript-eslint` 플러그인)을 별도로 정의해 타입스크립트 전용 규칙을 활성화합니다.
Q6: 코드 스타일 가이드를 준수해야 하는 이유는 무엇인가요?
- 코드 가독성 향상
- 협업 시 일관성 확보
- 버그 예방 및 코드 품질 향상
- 유지보수 및 확장성 용이
Q7: 공식 마이크로소프트 타입스크립트 스타일 가이드가 있나요?
마이크로소프트에서는 명확히 ‘공식’ 스타일 가이드 문서를 제공하지는 않으나, [TypeScript Deep Dive](https://basarat.gitbook.io/typescript/)와 [TypeScript ESLint](https://typescript-eslint.io/rules/)에서 권장사항을 참고할 수 있습니다.
Q8: 타입스크립트에서 인터페이스와 타입 별칭 차이에 따른 스타일 권장은?
인터페이스는 객체 타입 선언에 주로 사용하며 확장(extends)과 선언 병합이 가능해 주로 모듈 간 계약에 적합합니다.
타입 별칭은 유니언, 튜플, 원시 타입 등 다양한 타입 표현에 유용합니다.
스타일 가이드에서는 특정 상황에 맞는 구분 사용을 권장하며, 모두 PascalCase로 명명합니다.
Q9: 변수 및 함수 선언 관련 권장 스타일은?
모든 변수는 `const`로 선언하며, 변경이 반드시 필요할 때만 `let` 사용합니다.
함수는 화살표 함수와 함수 선언식 중 팀 선호에 따라 일관성을 유지하는 것이 중요합니다.
Q10: 네이밍 컨벤션 관련 주요 권고는?
- 함수와 변수는 `camelCase`
- 클래스, 타입, 인터페이스는 `PascalCase`
- 상수는 주로 `UPPER_SNAKE_CASE` 또는 `camelCase` (팀 또는 프로젝트 정책에 따라 다름)
- 인터페이스 이름에 접두어 `I`는 사용하지 않는 것을 권장
---
위 FAQ는 타입스크립트 코드 작성 시 참고할 수 있는 대표적인 스타일 가이드 핵심 내용을 정리한 것입니다. 실제 프로젝트에서는 팀 환경에 맞게 세부 규칙을 추가하거나 조정하는 것이 일반적입니다.
작성자:
최현우 [비회원]
| 작성일자: 1년 전
2024-09-10 05:32:16
조회수: 167 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 167 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.