자바스크립트에서 MAC 주소를 표준 형식인 AB:CD:EF:GH:IJ:KL 형태로 변환하는 함수를 직접 만들어보았습니다. 개발 과정에서 겪었던 시행착오와 함께, 실제 적용 가능한 소스 코드를 공유합니다.
자바스크립트 MAC 주소 포맷팅 함수 만들기
MAC 주소는 네트워크 장치를 식별하는 고유한 번호로, 보통 12자리의 16진수 문자열로 구성됩니다. 하지만 입력되는 MAC 주소는 콜론(:)이나 하이픈(-) 없이 붙어있거나, 불필요한 특수문자가 포함된 경우가 많습니다. 개발 중 이러한 다양한 형태의 MAC 주소를 표준 형식인 6쌍의 16진수와 콜론으로 구분된 형태로 변환해야 할 필요가 있었습니다. 직접 함수를 구현하며 겪었던 경험을 바탕으로, 안정적으로 MAC 주소 형식을 맞추는 방법을 소개합니다. 이 함수는 입력된 문자열에서 특수문자와 공백을 제거하고, 2자리마다 콜론을 삽입하여 표준 MAC 주소 형식으로 만들어 줍니다.
위 이미지는 함수 실행 전후의 MAC 주소 형식 차이를 보여줍니다. 왼쪽은 원본의 불규칙한 형식이고, 오른쪽은 함수 적용 후 표준화된 형식입니다. 이처럼 함수는 입력값의 유효성을 검사하고, 정해진 규칙에 따라 변환을 수행합니다. 예를 들어, '012334567890'과 같은 입력은 '01:23:34:56:78:90'으로 변환됩니다. 만약 입력값이 null, undefined, 빈 문자열이거나, 변환 후 길이가 짝수가 아닌 경우에는 오류를 콘솔에 출력하여 개발자가 문제를 인지하도록 돕습니다.
MAC 주소 유효성 검사와 정규 표현식 활용
관련 글
MAC 주소 포맷팅 함수를 구현하기 전에, 입력값의 유효성을 검사하는 것이 중요합니다. 원본 MAC 주소 문자열에는 다양한 특수문자나 공백이 포함될 수 있으므로, 이를 제거하는 과정이 선행되어야 합니다. `replace()` 메서드를 사용하여 `[!@#$%^&*().,?:;/_{}+=-]`와 같은 특수문자와 공백(` `, ` `, ` ` 등)을 모두 제거합니다. 이후, 남은 문자열의 길이가 짝수인지 확인합니다. MAC 주소는 2자리씩 묶여 콜론으로 구분되므로, 총 길이는 항상 짝수여야 합니다. 만약 길이가 짝수가 아니라면, 이는 유효하지 않은 MAC 주소일 가능성이 높으므로 오류 처리를 합니다. 이 과정에서 정규 표현식의 `test()` 메서드를 활용하여 특정 패턴(예: MAC 주소 형식)을 만족하는지 검사할 수도 있지만, 본 함수에서는 직접적인 문자열 처리와 길이 검사를 통해 유효성을 확보했습니다. 실제 개발 환경에서는 입력값의 출처와 예상되는 형식에 따라 정규 표현식의 활용 범위를 조절할 수 있습니다.
위 이미지는 자바스크립트 `test()` 함수의 기본적인 사용법을 보여줍니다. `test()` 함수는 정규 표현식 객체와 함께 사용되며, 주어진 문자열이 해당 정규 표현식 패턴과 일치하는지 여부를 `true` 또는 `false`로 반환합니다. 예를 들어, 이메일 주소 유효성 검사 등에 유용하게 활용될 수 있습니다. MAC 주소 포맷팅 함수에서는 직접적인 패턴 검사보다는, 입력값의 특수문자 제거 및 길이 검증에 집중했습니다. 하지만 복잡한 형식 검증이 필요할 경우, `test()` 함수와 정규 표현식을 조합하여 더욱 정교한 유효성 검사를 구현할 수 있습니다.
자세한 소스 코드 및 활용법은 원본 글에서 확인하세요.





