크로스 브라우징(Cross Browsing)이란 웹 사이트에 접근하는 브라우저의 종류에 상관 없이 동등한 화면과 기능을 제공할 수 있도록 만드는 작업을 의미한다.
여기서 중요한 포인트는 '동일한'이 아니라 '동등한'이라는 표현을 쓴다는 것이다.
크로스 브라우징은 모든 브라우저에서 완전히 똑같은 화면이 보이도록 만드는 것이 아니다.
애초에 브라우저마다 사용하는 렌더링 엔진이 다르기 때문에 화면을 완전히 동일하게 만드는 것은 불가능하다.
따라서 크로스 브라우징의 목표는 모든 브라우저에서 동등한 수준의 정보와 기능을 제공하는 것이라고 할 수 있다.
한번씩 크로스 브라우징이 되지 않아 불편했던 일을 한 번씩은, 어쩌면 아주 많이 겪어 보았을 거다.
한국에서 인터넷 익스플로러가 계속 브라우저 점유율 1위를 차지하게 만들었던, 1위에서 내려온 뒤에도 계속해서 높은 점유율을 차지하게 만든 원인이기도한 ActiveX 때문이다.
이는 공공기관을 포함한 한국의 웹 사이트들이 ActiveX의 사용을 사용자에게 거의 강제했기 때문이다.
또한 인터넷 ActiveX를 써야하는 익스플로러는 최신 스펙의 CSS와 자바스크립트를 제대로 지원하지 못했고, 이 때문에 크로스 브라우징을 위해서 웹 표준을 저해하는 코드를 작성해야만 했다.
다른 웹 브라우저들은 최신 문법을 지원하는데, 오직 익스플로러만을 위해서 크로스 브라우징에 시간과 비용을 투자해야 했다.
이러한 이유 때문에 익스플로러는 웹 개발자 사이에서 '공공의 적'이라고 까지 불리게 되었다.
초기 기획
초기 기획 단계에서 어떤 웹 사이트를 만들 것인지 정확하게 결정해야 한다.
어떤 콘텐츠와 기능이 있어야 하는지, 디자인은 어떻게 할지 등의 사항을 결정해야 한다.
그 후 이 사이트의 고객이 누구일지 생각해야 한다.
고객이 사용하는 브라우저는 무엇일지, 기기는 무엇일지 고민이 필요하다.
타겟 고객층이 주로 사용하게 될 브라우저와 기기를 파악했다면, 여기에 맞는 기술을 사용해서 개발할 수 있도록 기획해야 한다.
개발
코드를 작성할 때 사용하는 코드가 각 브라우저에서의 호환성이 어떤지 파악하고 사용해야 한다.
MDN, Can I Use 등의 사이트에서 코드의 호환성을 확인할 수 있다.
아래 예시는 MDN에서 제공하는 브라우저 호환성 정보이다. 인터넷 익스플로러에서의 호환성이 처참한 것을 확인할 수 있다. 만약 주요 고객층의 인터넷 익스플로러 사용 비율이 높다면 해당 코드는 사용하지 않는 것이 좋다.

코드를 작성하다보면 크로스 브라우징을 힘든 상황을 만나게 될 수도 있는데, 이런 경우에는 이를 인정하고 대체 수단을 마련해야한다.
또, 개발중인 웹 사이트가 일부 오래된 브라우저에서는 어쩔 수 없이 제대로 기능하지 않을 수도 있다는 사실을 알고 받아들여야 한다.
테스트/발견
각 기능을 구현한 후에는 그 기능에 대한 테스트가 필요하다.
직접 테스트를 수행할 수도 있지만, 자동으로 테스트를 진행하는 도구를 이용하는 것도 방법이다.
TestComplete, LambdaTest, BitBar 등의 크로스 브라우징 테스트 툴이 있다.
테스트 단계에서 버그가 발견되었다면 수정이 필요하다.
버그가 발생하는 위치를 최대한 좁혀서 특정하고, 버그가 발생하는 특정 브라우저에서의 해결 방법을 정해야 한다.
급하게 코드를 수정했다가는 다른 브라우저에서 버그가 발생할 수 있으므로, 조건문을 작성해 다른 코드를 실행하게 하는 방식으로 고쳐나가는 것이 좋다.
수정이 완료되면 3번 과정부터 반복한다.
웹 페이지를 개발할 때 웹 표준만 잘 지켜도 크로스 브라우징을 어느 정도 실현할 수 있다.
웹 표준 자체가 어떠한 운영체제나 브라우저를 사용하더라도 웹페이지가 동일하게 보이고 정상적으로 작동할 수 있도록 하는 웹 페이지 제작 기법이기 때문이다.