Prettier 시대에도 .editorconfig가 여전히 중요한 이유
Min-jun Kim
Dev Intern · Leapcell

.editorconfig 파일은 코드 포매팅 및 파일 스타일링에 대한 규칙을 설정하는 데 사용됩니다. 이러한 규칙은 다양한 개발자와 편집기 간에 일관된 코드 스타일을 보장합니다. .editorconfig 파일은 주로 들여쓰기 스타일, 들여쓰기 크기, 줄 바꿈, 문자 인코딩, 후행 공백 및 최종 줄 바꿈과 같은 속성을 구성합니다.
아래는 .editorconfig 파일에서 사용할 수 있는 구성 옵션과 그 세부 사항입니다.
.editorconfig 파일에 대한 자세한 설명
root
현재 .editorconfig 파일이 프로젝트의 루트 구성 파일인지 여부를 지정합니다. true
로 설정하면 편집기는 상위 디렉터리에서 .editorconfig 파일을 검색하는 것을 중단합니다. 이는 프로젝트에 여러 .editorconfig 파일이 있을 때 현재 파일이 최종 구성으로 작동하도록 하는 데 유용합니다.
root = true
[pattern] - 파일 매칭 패턴
규칙이 적용되는 파일 유형을 정의합니다. *
(모든 문자 일치), ?
(단일 문자 일치) 및 {}
(여러 파일 유형 일치)와 같은 와일드카드가 지원됩니다. 예를 들어 [*.js]
는 모든 JavaScript 파일을 일치시키고, [*.{html,css}]
는 HTML 및 CSS 파일을 모두 일치시킵니다.
[*.js]
indent_style
들여쓰기 스타일을 space
또는 tab
으로 정의합니다. 이를 통해 다양한 편집기에서 일관된 들여쓰기 스타일을 보장하여 코드 가독성을 향상시킵니다.
indent_style = space
indent_size
들여쓰기 크기를 지정합니다. 일반적으로 양의 정수입니다. tab
으로 설정하면 들여쓰기 크기는 tab_width
에 따라 달라집니다. 일반적인 값은 2 또는 4개의 공백입니다.
indent_size = 4
tab_width
탭 문자의 표시 너비를 정의합니다. 이는 탭 기반 들여쓰기의 시각적 모양에 영향을 미칩니다. 일관된 들여쓰기 표시를 보장하기 위해 indent_size
와 함께 자주 사용됩니다.
tab_width = 4
end_of_line
줄 바꿈 형식을 지정합니다. lf
는 Line Feed(\n
)를 나타내고, crlf
는 Carriage Return and Line Feed(\r\n
)를 나타내며, cr
은 Carriage Return(\r
)을 나타냅니다 (거의 사용되지 않음). 균일한 줄 바꿈은 교차 플랫폼 개발에서 버전 관리 충돌을 방지하는 데 도움이 됩니다.
end_of_line = lf
charset
파일의 문자 인코딩을 정의합니다. 일반적인 옵션으로는 utf-8
, utf-16
및 latin1
이 있습니다. utf-8
은 여러 언어를 지원하고 플랫폼 간 호환성이 좋기 때문에 권장됩니다.
charset = utf-8
trim_trailing_whitespace
줄 끝에 불필요한 공백을 자동으로 제거할지 여부를 결정합니다. 이는 깨끗한 코드를 유지하고 버전 관리에서 관련 없는 변경 사항을 방지하는 데 도움이 됩니다.
trim_trailing_whitespace = true
insert_final_newline
파일 끝에 줄 바꿈을 추가할지 여부를 지정합니다. 많은 컴파일러와 툴체인에서 최종 줄 바꿈이 필요하므로 이는 좋은 코딩 습관입니다.
insert_final_newline = true
max_line_length
각 줄의 최대 길이를 설정하여 좁은 뷰포트에서 코드 가독성을 보장합니다. off
로 설정하면 줄 길이 제한이 적용되지 않습니다.
max_line_length = 80
unset
이전에 설정된 속성을 취소하여 기본값으로 되돌립니다. 이는 특정 파일 유형에 대한 전역 설정을 재정의하는 데 사용할 수 있습니다.
indent_size = unset
.editorconfig 파일 예제
다음은 다양한 파일 유형에 대한 특정 구성을 보여주는 완전한 예제입니다.
# 현재 디렉토리를 루트로 표시
root = true
# 모든 파일에 대한 일반 설정
[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
# Markdown 파일에 대한 특수 설정
[*.md]
trim_trailing_whitespace = false
max_line_length = off
# Makefile에 대한 탭 들여쓰기 사용
[Makefile]
indent_style = tab
# JavaScript 파일에 대한 들여쓰기 크기를 2로 설정
[*.js]
indent_size = 2
이 예제 .editorconfig 파일은 다양한 파일 유형에 대해 일관된 코딩 스타일과 포매팅을 설정하여 다양한 편집기를 사용하는 팀 구성원이 통합된 코드 스타일을 유지하도록 하는 방법을 보여줍니다.
.editorconfig는 Prettier를 어떻게 보완합니까?
-
기본 파일 형식 규칙 (비코드 파일)
.editorconfig는 들여쓰기, 문자 인코딩 및 줄 바꿈에 대한 기본 규칙을 제공하여 모든 파일 유형 (예: 구성 파일, Markdown, Makefile)에 적용됩니다. Prettier는 주로 코드 파일에 중점을 둡니다. -
문자 인코딩 및 줄 바꿈 관리
.editorconfig는 Prettier에서 관리하지 않는 문자 인코딩 및 줄 바꿈 스타일 (예: LF 또는 CRLF)을 표준화할 수 있습니다. -
교차 편집기 호환성
.editorconfig는 대부분의 편집기 및 IDE에서 지원됩니다. Prettier가 활성화되지 않은 경우에도 편집기는 일관된 파일 포매팅을 유지할 수 있습니다. -
비프로그래밍 파일 지원
.editorconfig는 비프로그래밍 파일에 대한 기본 포매팅 규칙을 제공하여 Prettier가 일반 텍스트 파일을 지원하지 않는 간격을 메웁니다.
.editorconfig와 Prettier를 모두 사용하는 이유는 무엇입니까?
.editorconfig와 Prettier는 서로 다른 목적을 수행하며 다양한 요구 사항을 충족하기 위해 서로를 보완합니다.
-
.editorconfig: 들여쓰기 스타일, 문자 인코딩 및 후행 공백과 같은 기본 파일 규칙에 중점을 두고 모든 파일 유형에 적용됩니다. 이러한 규칙은 Prettier를 사용하지 않는 경우에도 다양한 편집기에서 일관성을 보장합니다.
-
Prettier: 자동화된 코드 포매팅을 전문으로 하며 빈 줄의 배치, 괄호 스타일 및 기타 언어별 포매팅과 같은 고급 측면을 처리합니다.
둘 다 함께 사용하면 기본 파일 포매팅과 코드 스타일 모두에서 일관성을 보장할 수 있습니다.
교차 플랫폼 개발에서 서로 다른 운영 체제 (예: Windows, macOS, Linux)는 다양한 기본 줄 바꿈을 사용합니다. .editorconfig는 프로젝트의 모든 파일에서 줄 바꿈을 표준화하는 간단한 방법을 제공하여 시스템 차이로 인한 충돌을 방지합니다.
일부 파일 유형 (예: 구성 파일 또는 설명서)의 경우 .editorconfig를 사용하면 특정 규칙으로 더 세분화된 제어가 가능하며 이는 특정 프로젝트에 매우 실용적일 수 있습니다. 또한 모든 프로젝트에서 Prettier를 사용하는 것은 아닙니다. 특히 레거시 프로젝트나 자동화된 포매팅이 필요하지 않은 프로젝트의 경우 .editorconfig는 거의 모든 주류 편집기 및 IDE에서 지원하는 범용 구성 방법으로 Prettier가 없어도 팀 협업에 유용합니다.
결론
.editorconfig는 모든 파일 유형에 대한 기본 포매팅 규칙에 대한 파일 수준 제어를 제공하는 반면 Prettier는 자동화된 코드 스타일링에 중점을 둡니다. 두 도구를 결합하면 파일 스타일과 코드 포매팅에서 포괄적인 일관성을 보장할 수 있습니다.
Node.js 프로젝트 호스팅을 위한 최고의 선택, Leapcell입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다국어 지원
- Node.js, Python, Go 또는 Rust로 개발하십시오.
무제한 프로젝트를 무료로 배포
- 사용량에 대해서만 지불하십시오 - 요청, 요금이 없습니다.
탁월한 비용 효율성
- 유휴 요금 없이 사용한 만큼 지불하십시오.
- 예: $25는 평균 응답 시간 60ms에서 694만 건의 요청을 지원합니다.
간소화된 개발자 경험
- 손쉬운 설정을 위한 직관적인 UI.
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합.
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅.
손쉬운 확장성 및 고성능
- 고도의 동시성을 쉽게 처리하기 위한 자동 확장.
- 제로 운영 오버헤드 - 구축에만 집중하십시오.
문서에서 자세히 알아보십시오!
X에서 저희를 팔로우하십시오: @LeapcellHQ