문서 작업 가이드
코드·데이터·경로 식별자를 안전하게 이름 변경하기
API 필드, 데이터베이스 컬럼, 가져오기 형식, 파일명, 경로, 선택자, 약어와 참조를 깨뜨리지 않고 케이스 명명 규칙을 변경하는 절차입니다.
작성 및 검수 SimpleWebUtils게시일: 검토일:
이 작업 흐름을 검증한 방법
camelCase·snake_case 포함 10가지 케이스 변환기에서 “마이그레이션 전에 자동 후보 검토” 픽스처를 임의로 고치거나 단순화하지 않고 실행했습니다. “목표 명명 정책 작성”에서 “단어 경계와 경고 검토”로 이어지는 결과를 대조했습니다. 비성공 경로 검토에는 “마이그레이션 없이 API·DB 키 변경”, “모든 약어 변환을 그대로 승인” 조건을 사용했습니다.
변환기는 xmlHttpRequestId와 2026Release를 후보로 제시했고, XMLHttp 약어 정책과 숫자로 시작하는 식별자의 유효성 위험은 수동 검토 대상으로 남겼습니다.
문제 상황
User Display Name을 userDisplayName으로 바꾸는 작업은 단순해 보이지만 실제 이름은 소스 코드, JSON payload, 데이터베이스 컬럼, CSV 가져오기, CSS 선택자, 경로, 파일명, 환경 변수, 문서와 외부 클라이언트를 가로지를 수 있습니다. 변환기는 일관된 후보를 만들 수 있지만 API를 api로 쓸지, 숫자 시작 이름이 유효한지, 대소문자 비구분 파일시스템이 case-only 변경을 기록할지, 이전 URL에 redirect가 필요한지는 알 수 없습니다. 안전한 절차는 후보 생성과 계약 마이그레이션을 분리하고 실제 사용 환경에서 결과를 증명합니다.
이럴 때 사용하세요
- 기존 이름 집합을 camelCase, snake_case, kebab-case 또는 PascalCase 규칙으로 이전할 때
- 스프레드시트·CSV 헤더를 데이터베이스 컬럼, JSON 키 또는 가져오기 필드에 명시적으로 매핑할 때
- 경로, CSS 선택자, 패키지 키, 환경 변수, 파일명 또는 디렉터리 이름 규칙을 정리할 때
- camel 표기, 약어, 공백, 하이픈, 밑줄이 섞인 여러 줄을 합치지 않고 일괄 검토할 때
- 출판사의 실제 편집 규칙을 적용하기 전에 제목 대문자화 초안이 필요할 때
단계
- 1단계
이름을 계약으로 보고 사용처 조사
소스, 테스트, 설정, schema, migration, 문서, analytics, 클라이언트와 저장 데이터를 검색합니다. 내부 참조와 호환성·별칭·redirect·단계적 이전이 필요한 외부 참조를 구분하세요.
- 2단계
목표 명명 정책 작성
문맥별 케이스와 약어, 숫자, Unicode, 예약어, 구분자 규칙을 기록합니다. APIResponse를 apiResponse, api_response 또는 별도 승인 형식 중 무엇으로 만들지 명시하세요.
- 3단계
대표 이름을 줄별 후보로 생성
케이스 변환기에 원본 이름을 한 줄에 하나씩 붙여 넣습니다. 각 출력 줄을 원본과 대응할 수 있도록 순서를 유지하고 2 MiB·100,000줄 한도를 지키세요.
- 4단계
단어 경계와 경고 검토
단어 수, 약어 정규화, 구두점뿐인 줄, 숫자 시작 결과, Unicode 길이 변화를 확인합니다. 구두점을 그대로 유지해야 하면 UPPERCASE 또는 lowercase 결과와 비교하세요.
- 5단계
대상 환경에서 유효하지 않은 이름 해결
예약어, 허용 문자, 최대 길이, 대소문자 구분, 파일시스템 제한, 데이터베이스 quoting, 경로 인코딩을 검사합니다. 예외를 하나의 광범위한 치환 규칙으로 숨기지 마세요.
- 6단계
검토 가능한 diff로 변경 적용
가능하면 언어 인식 rename 기능을 사용합니다. 대소문자 비구분 파일시스템의 case-only 파일 변경은 임시 파일명을 거칩니다. 전체 diff를 보고 무관한 문자열과 생성 파일 변경을 제외하세요.
- 7단계
대상 시스템의 호환성 검증
테스트, 타입 검사, schema·가져오기 검증, 링크 검사, 빌드와 대상 플랫폼 실행을 완료합니다. 소비자와 저장 데이터 이전이 끝날 때까지 별칭, DB migration, API 호환 계층 또는 URL redirect를 유지하세요.
예시
마이그레이션 전에 자동 후보 검토
입력
XMLHttp request-id
2026 release출력
camelCase 후보:
xmlHttpRequestId
2026Release
검토: XMLHttp 약어 정책을 확인하고, 두 번째 값은 숫자로 시작해 유효하지 않을 수 있음흔한 실수
처음부터 전체 문자열 치환 실행
무차별 치환은 주석, 예제, 직렬화 데이터, 부분 문자열, 생성 파일과 무관한 이름까지 바꿀 수 있습니다. 먼저 사용처를 조사하고 구문 인식 rename을 사용하세요.
마이그레이션 없이 API·DB 키 변경
클라이언트와 저장 레코드는 이전 이름을 계속 보낼 수 있습니다. 제거 전에 별칭, 호환 reader, schema migration 또는 버전 계약을 준비하세요.
모든 약어 변환을 그대로 승인
자동 경계는 결정적이지만 프로젝트 정책을 알지 못합니다. API, URL, ID, HTTP, OAuth, 제품명을 작성된 규칙과 비교하세요.
대소문자 비구분 파일시스템 무시
userprofile.ts에서 UserProfile.ts로의 변경이 제대로 기록되지 않을 수 있습니다. 임시 경로를 거쳐 이름을 바꾸고 커밋의 파일 항목을 확인하세요.
기계식 Title Case를 그대로 게시
기계식 대문자화는 조사, 문장 경계, 고유명사, 상표, 언어 규칙을 알지 못합니다. 완성 문구가 아니라 교정 후보로 사용하세요.
자주 묻는 질문
JavaScript 속성명은 항상 camelCase여야 하나요?
내부 이름에는 흔하지만 직렬화 키는 API나 데이터 계약에 고정될 수 있습니다. 외부 키를 스타일에 맞춘다는 이유만으로 바꾸지 말고 보존하거나 매핑하세요.
API, URL, ID, OAuth 약어는 어떻게 표기해야 하나요?
보편적인 자동 정답은 없습니다. 프로젝트 스타일 가이드에 예시를 정하고 일관되게 적용하며, 변환기가 약어 경계를 기계적으로 정규화한다는 점을 검토하세요.
변환한 목록만으로 DB 컬럼을 바꿔도 되나요?
안 됩니다. schema migration, 읽기·쓰기 코드, index·query, 저장 데이터 또는 호환 view와 모든 소비 애플리케이션을 함께 이전해야 합니다.
파일명의 대소문자만 안전하게 바꾸는 방법은 무엇인가요?
대소문자 비구분 파일시스템에서는 전혀 다른 임시 이름으로 바꾼 뒤 그 단계를 확인하고 최종 이름으로 이동하세요. import와 저장소 diff도 검사합니다.
케이스 변환 중 Unicode 정규화도 수행하나요?
특정 정규화 형식은 보장하지 않습니다. 대소문자 매핑·단어 연결은 NFC, NFD, NFKC, NFKD와 별개이므로 정규 등가 이름이 중요하면 따로 검사하세요.
변환된 제목은 언제 게시해도 되나요?
사람이 문장 의도, 조사, 고유명사, 약어, 상표, 언어 규칙과 매체 스타일을 확인한 뒤입니다. 기계식 Title Case만으로는 충분하지 않습니다.