문서 작업 가이드

목록과 로그의 순서를 잃지 않고 중복 줄 제거하기

ID, URL, 라벨, 로그 메시지의 대소문자와 공백 규칙을 정한 뒤 첫 등장 순서, 개수, 줄바꿈을 검증하고 중복을 제거합니다.

작성 및 검수 게시일: 검토일:

이 작업 흐름을 검증한 방법

“이슈 ID의 첫 등장 순서 유지” 확인에는 가이드 원본 데이터와 중복 줄 제거의 “대소문자 규칙 선택” 절차를 사용했습니다. 출력은 문서 결과와 일치해야 했습니다. 기록 전 경계 증거는 “불투명 ID에 대소문자 무시 적용”, “trim 비교가 남긴 줄까지 정리한다고 기대” 항목별로 검토했습니다.

대소문자를 무시한 비교는 이슈 ID 6행을 첫 등장 순서의 4행으로 줄이고 제거 2건을 보고했으며, 남은 값을 정렬하지 않았습니다.

문제 상황

합친 내보내기 파일과 복사한 로그에는 완전히 같은 줄, 대소문자 변형, 눈에 잘 안 보이는 앞뒤 공백, 혼합 줄바꿈이 함께 들어옵니다. 규칙 없이 중복을 지우면 서로 다른 식별자를 합치거나 공백을 예상과 다르게 남기고, 너무 일찍 정렬해 시간 순서까지 잃을 수 있습니다.

이럴 때 사용하세요

  • 스프레드시트 열이나 내보낸 목록에 ID, 이메일 주소, 라벨, URL이 반복될 때
  • 허용 목록, 차단 목록, 호스트명, 설정 조각 여러 개를 하나의 고유 목록으로 합칠 때
  • 로그에 같은 메시지가 반복되지만 첫 등장 순서는 유지해야 할 때
  • 사람이 편집한 줄이 대소문자나 앞뒤 공백만 달라 명시적인 비교 규칙이 필요할 때
  • 숨은 스프레드시트 처리 대신 전후 개수와 정확한 텍스트 다운로드가 필요할 때

단계

  1. 1단계

    원본 블록 보관

    수정하지 않은 사본을 남기고 순서, 대소문자, 들여쓰기, 마지막 줄바꿈이 대상 시스템에서 의미가 있는지 기록합니다.

  2. 2단계

    무관한 빈 줄은 별도로 제거

    빈 줄이 잡음이면 빈 줄 제거 도구로 먼저 정리합니다. 중복 제거는 빈 줄도 실제 비교 값으로 보고 하나를 남깁니다.

  3. 3단계

    대소문자 규칙 선택

    AbC1과 abc1이 다른 기계 식별자라면 정확한 비교를 켭니다. 표기만 다른 사람용 라벨이면 끈 상태를 사용합니다.

  4. 4단계

    공백 규칙 선택

    앞뒤 공백이 실수일 때만 공백 무시를 켭니다. 결과의 첫 번째 원문 줄 자체는 trim되지 않습니다.

  5. 5단계

    로그는 원래 순서 유지

    시간, 우선순위, 첫 등장 순서가 중요하면 정렬을 끕니다. 각 비교 키의 첫 번째 줄이 원래 순서로 남습니다.

  6. 6단계

    실행 후 진단 확인

    원본, 고유, 제거, 중복 그룹 개수를 비교하고 비교 옵션으로 합쳐진 원문 경고와 혼합 줄바꿈 통일 알림을 읽습니다.

  7. 7단계

    검증 후 내보내기

    대소문자, 공백, Unicode 조합이 다른 값을 표본 확인한 뒤 정확한 결과를 복사하거나 다운로드하고 대상 시스템에서 시험합니다.

예시

이슈 ID의 첫 등장 순서 유지

입력

BUG-104
bug-104
BUG-208
BUG-315
BUG-208
BUG-401

출력

대소문자 무시, 정렬 끔:
BUG-104
BUG-208
BUG-315
BUG-401

원본: 6 | 고유: 4 | 제거: 2

흔한 실수

불투명 ID에 대소문자 무시 적용

일부 데이터베이스, 토큰, 경로, 외부 시스템은 대소문자를 구분합니다. 변형을 합치기 전에 대상 규칙을 확인하세요.

trim 비교가 남긴 줄까지 정리한다고 기대

trim은 중복을 찾는 키만 바꿉니다. 결과 자체의 공백을 지워야 한다면 별도 공백 정리 단계를 사용하세요.

시간 순 로그를 정렬

자연 정렬은 목록을 읽기 쉽게 만들지만 첫 등장 시간 순서를 없앱니다. 장애 분석 중에는 정렬을 끄세요.

눈에 같은 Unicode를 동일하다고 가정

중복 비교는 Unicode 정규화를 하지 않으므로 조합형과 분해형 문자가 같은 모양이어도 별도로 남을 수 있습니다.

혼합 줄바꿈을 무시

섞인 LF, CRLF, CR은 대표 형식으로 통일됩니다. 바이트에 민감한 가져오기나 패치 전에 알림을 확인하세요.

자주 묻는 질문

어떤 중복 줄을 남기나요?

각 비교 키의 첫 번째 원문 줄을 남깁니다. 정렬을 끄면 남은 줄끼리도 첫 등장 순서를 유지합니다.

공백만 있는 줄도 중복인가요?

완전히 같은 공백 줄은 중복입니다. trim 비교를 켜면 공백 형태가 달라도 빈 비교 키 하나로 묶여 첫 원문 한 줄만 남습니다.

로그도 중복 제거 뒤 정렬해도 되나요?

메시지 순서가 더 이상 중요하지 않을 때만 가능합니다. 디버깅용 순서 결과를 보관하고 목록 검토용 정렬 사본을 따로 만드세요.

대소문자 무시가 모든 언어에서 같은가요?

애플리케이션 전용 규칙이 아니라 JavaScript 소문자 변환을 사용합니다. 특수 대소문자 규칙은 대상 시스템에서 시험하세요.

브라우저가 목록을 서버로 업로드하나요?

선택한 파일은 로컬에서 읽고 제한된 Worker에서 처리합니다. 분석에는 줄 원문이 아니라 개수와 옵션 플래그만 기록합니다.

얼마나 큰 입력을 처리하나요?

UTF-8 최대 1MiB, 원본 최대 200,000줄, Worker 3초 제한입니다. 더 큰 데이터는 전문 데이터 처리 환경에서 나누어 처리하세요.