JavaScript 정렬 및 압축기

압축되거나 난독화된 JavaScript의 들여쓰기를 복원하여 읽기 쉽게 만들거나, 코드를 압축하여 파일 크기를 줄여보세요.

JavaScript 입력

들여쓰기
변수명
script.js
JavaScript를 붙여넣거나 입력하여 정렬 또는 압축해 보세요.

JavaScript 정렬 및 압축은 브라우저 내에서 직접 처리됩니다. BroBroGo 서버로 어떠한 데이터도 전송되지 않습니다.

자주 묻는 질문

코드 정렬(Beautify)과 코드 압축(Minify)의 차이점은 무엇인가요?

'코드 정렬(Beautify)'은 코드의 들여쓰기와 공백을 정리하여 읽고 디버깅하기 쉽게 만들어 줍니다. 압축되거나 난독화된 파일을 분석할 때 가장 빠른 방법입니다. 반면 '코드 압축(Minify)'은 공백, 주석 및 데드 코드를 제거하여 파일 다운로드 속도를 높입니다. 읽을 때는 정렬을, 배포할 때는 압축을 사용하세요.

압축된 코드를 원래 상태로 되돌릴 수 있나요?

들여쓰기와 줄 바꿈을 복원하여 코드의 논리 구조를 다시 읽기 쉽게 만들 수 있습니다. 하지만 원래의 변수명이나 주석은 복원할 수 없습니다. 압축 과정에서 해당 정보가 완전히 소실되기 때문에 어떤 도구로도 복구할 수 없습니다. 복원된 결과물은 동일한 코드가 깔끔하게 레이아웃된 상태로 제공됩니다.

변수명 '단축(Shorten)'과 '유지(Keep)' 옵션은 각각 무엇을 하나요?

두 옵션 모두 공백, 주석, 데드 코드를 제거하며 스크립트의 동작을 변경하지 않습니다. '단축(Shorten)'은 로컬 변수명을 단일 문자로 변경하여 배포에 적합한 최소 크기의 파일을 만듭니다. '유지(Keep)'는 변수명을 그대로 유지하므로 파일 크기는 조금 더 커지지만, 코드를 읽기 쉽고 디버깅하기 편리한 상태로 남겨둡니다.

JavaScript 코드 정렬의 역할과 디버깅 편의성

개발 과정에서 압축되거나 난독화된 JavaScript 코드를 마주했을 때, 이를 그대로 분석하는 것은 매우 어렵습니다. JavaScript 정렬(Beautify)은 줄 바꿈, 공백, 들여쓰기를 규칙에 맞게 삽입하여 코드의 구조적 가독성을 복원하는 작업입니다. 정렬을 거친 코드는 제어 흐름과 함수 호출 관계가 명확히 드러나므로, 타사 라이브러리 코드를 분석하거나 디버깅 및 유지보수 작업을 수행할 때 분석 시간을 단축해 줍니다.

본 도구에서 코드 정렬을 실행할 때는 들여쓰기 스타일을 선택할 수 있습니다. 사용 가능한 옵션은 다음과 같습니다.

  • 2 spaces (공백 2칸)
  • 4 spaces (공백 4칸)
  • Tab (탭 문자)

JavaScript 코드 압축과 웹 성능 최적화

프로덕션 환경에 스크립트를 배포할 때는 파일 크기를 최소화하여 웹 페이지 로딩 속도를 높여야 합니다. JavaScript 압축(Minify)은 브라우저가 실행하는 데 불필요한 요소들을 제거하는 최적화 기법입니다. 압축 과정에서는 코드 내의 모든 공백, 줄 바꿈, 주석이 제거되며, 실행되지 않는 코드인 데드 코드(Dead code)도 함께 삭제됩니다.

다만, 저작권 및 라이선스 정보를 담고 있는 /*! … */ 형태의 라이선스 배너 주석은 압축 후에도 삭제되지 않고 그대로 보존됩니다. 압축이 완료되면 화면에 "압축 완료 — {pct}% 축소됨." 메시지가 표시되어 원본 대비 감소한 크기 비율을 직관적으로 확인할 수 있습니다.

변수명 처리 방식에 따른 파일 크기와 가독성의 절충

압축을 진행할 때 로컬 변수명을 어떻게 처리할지에 따라 결과물의 크기와 디버깅 편의성이 달라집니다. 본 도구는 두 가지 변수명 처리 옵션을 제공합니다.

  • 단축: 로컬 변수명을 알파벳 한 글자 형태로 변경합니다. 변수명이 차지하는 바이트 수를 극적으로 줄여주므로 배포에 적합한 가장 작은 크기의 파일을 생성할 수 있습니다.
  • 유지: 로컬 변수명을 원래 이름 그대로 유지합니다. 파일 크기는 단축 옵션을 사용할 때보다 약간 더 커지지만, 변수명이 보존되므로 압축된 상태에서도 코드의 의미를 파악하고 디버깅하기가 훨씬 수월합니다.

도구의 입력 제한 및 예외 처리 기준

도구의 안정적인 작동과 브라우저 리소스 보호를 위해 다음과 같은 제한 사항과 예외 처리 규칙이 적용됩니다.

  • 입력 크기 제한: 입력 가능한 JavaScript 코드의 최대 크기는 3,000,000자입니다. 이 제한을 초과하면 "파일 크기가 너무 커서 처리할 수 없습니다. 더 작은 파일로 시도해 주세요."라는 오류 메시지가 출력됩니다.
  • 처리 시간 제한: 코드 변환 작업이 20초 이상 지연되면 브라우저가 멈추는 것을 방지하기 위해 작업을 중단하고 "처리 시간이 너무 오래 걸려 중단되었습니다. 더 작은 파일로 시도해 주세요."라는 오류 메시지를 표시합니다.
  • 구문 오류: 입력된 JavaScript 코드에 문법적 오류가 있어 파싱할 수 없는 경우에는 "이 JavaScript를 처리할 수 없습니다."라는 오류가 발생합니다.
  • 실행 코드 부재: 압축을 시도했으나 주석이나 공백만 존재하여 실행 가능한 코드가 남지 않는 경우, "압축 후 남은 코드가 없습니다. 입력값에 실행 가능한 코드가 포함되어 있는지 확인해 주세요."라는 안내가 나타납니다.
  • 초기화 및 드래프트 삭제: '지우기' 버튼을 누르면 입력창과 출력창의 텍스트가 모두 삭제되며, 브라우저에 임시 저장된 드래프트 데이터도 함께 소멸됩니다.

브라우저 내 로컬 처리 방식과 개인정보 보호

이 도구는 사용자의 프라이버시를 보호하기 위해 모든 연산을 사용자의 웹 브라우저 내부에서 직접 수행합니다. 입력한 JavaScript 코드는 외부 서버나 BroBroGo 서버로 전송되지 않고 로컬 환경에서 즉시 정렬 및 압축되므로, 외부 유출 걱정 없이 코드를 처리할 수 있습니다.

자주 묻는 질문 (FAQ)

Q. 코드 정렬(Beautify)과 코드 압축(Minify)의 차이점은 무엇인가요?
A. '코드 정렬(Beautify)'은 코드의 들여쓰기와 공백을 정리하여 읽고 디버깅하기 쉽게 만들어 줍니다. 압축되거나 난독화된 파일을 분석할 때 가장 빠른 방법입니다. 반면 '코드 압축(Minify)'은 공백, 주석 및 데드 코드를 제거하여 파일 다운로드 속도를 높입니다. 읽을 때는 정렬을, 배포할 때는 압축을 사용하세요.

Q. 압축된 코드를 원래 상태로 되돌릴 수 있나요?
A. 들여쓰기와 줄 바꿈을 복원하여 코드의 논리 구조를 다시 읽기 쉽게 만들 수 있습니다. 하지만 원래의 변수명이나 주석은 복원할 수 없습니다. 압축 과정에서 해당 정보가 완전히 소실되기 때문에 어떤 도구로도 복구할 수 없습니다. 복원된 결과물은 동일한 코드가 깔끔하게 레이아웃된 상태로 제공됩니다.

Q. 변수명 '단축(Shorten)'과 '유지(Keep)' 옵션은 각각 무엇을 하나요?
A. 두 옵션 모두 공백, 주석, 데드 코드를 제거하며 스크립트의 동작을 변경하지 않습니다. '단축(Shorten)'은 로컬 변수명을 단일 문자로 변경하여 배포에 적합한 최소 크기의 파일을 만듭니다. '유지(Keep)'는 변수명을 그대로 유지하므로 파일 크기는 조금 더 커지지만, 코드를 읽기 쉽고 디버깅하기 편리한 상태로 남겨둡니다.