Safari 브라우저에서 크로스 브라우징 하기

박소정·2023년 4월 16일

📌 크로스 브라우징이란?

크로스 브라우징(Cross Browsing)이란, 웹 사이트 또는 웹 애플리케이션이 서로 다른 웹 브라우저에서 일관된 동작을 보이도록 하는 기술 또는 방법을 의미한다.

크로스 브라우징이 작업마다 필요한 이유!

각각의 웹 브라우저는(Chrome, Safari, Opera 등) HTML, CSS, JavaScript 등 해석하는 방식이 서로 다를 수 있으며, 브라우저마다 랜더링 엔진이 다르다. 이 때문에 웹 사이트나 웹 애플리케이션이 서로 다른 웹 브라우저에서 제대로 동작하지 않을 수 있다.

랜더링 엔진
: 웹 브라우저에서 HTML, CSS, JavaSCript등의 웹 페이지 내용을 해석하고, 화면에 보여주는 역할을 담당하는 소프트웨어 모듈


📱 모바일 서비스 중 발생 가능한 호환성 이슈

1. 디바이스 화면 크기

: 화면 크기와 해상도는 모바이 디바이스에 따라 다양하다. 각 디바이스의 화면에 최적화된 UI를 제공하지 않을 경우 사용자 경험에 문제가 발생할 수 있다.

2. 운영체제 및 브라우저 호환성

: iOS, Android등의 다양한 운영체제와 Chrome, Safari, Firefox 등의 다양한 브라우저가 사용된다. 각 운영체제와 브라우저마다 지원하는 웹 기술이 달라 호환성 문제가 발생 할 수 있다.

3. 모바일 기기의 하드웨어 및 기능

: 모바일 디바이스의 종류에 따라 가기 다른 하드웨워와 기능을 가지고 있다. 따라서, 특정 기능을 지원하지 않는 디바이스에서 모바일 서비브를 사용할 경우, 해당 기능을 사용할 수 없다.

4. 네트워크 연결 상태

: 모바일 디바이스는 Wi-Fi, 셀룰러 데이터 등 다양한 네트워크 연결 상태를 가지고 있다. 따라서, 서비스가 불아정한 네트워크 상태에서도 잘 작동하도록 최적화되어야 한다.


이와 같은 모바일 환경에서의 호환성 문제를 해결하기 위한 방법은 아래와 같은 방법들이 있다.

📍 모바일 환경에서의 호환성 이슈 해결 방법

1. 반응형 웹 디자인

: 반응형 웹 디자인은 웹 페이지가 디바이스의 화면 크기에 따라 자동으로 최적화된 화면 크기를 사용자에게 제공하는 방식이다. CSS에서 미디어 쿼리를 이용하여 반응형으로 화면크기를 조절할 수 있다.

/* 디바이스에서 화면의 너비를 최대 1020px까지 지정한다는 의미 */
@media screen and (max-width: 1020px){

	/* 원하는 css 스타일링을 입력하면 된다. */

}

2. 크로스 브라우징 테스트

: 다양한 운영체제와 브라우저에서 테스트를 수행하여, 호환하여 이슈를 사전에 예방할 수 있다.

3. JavaScript 라이브러리 사용

: 자바스크립트 라이브러리는 웹 개발자들이 자바스크립트 코드를 더 쉽고 효율적으로 작성할 수 있도록 도와준다. 대표적인 예로 jQuery, React, Vue.js가 있다. 이러한 라이브러리를 사용하면 모바일 디바이스에서 호환성 이슈를 최소화 할 수 있다.

📍 매타 태그(Meta Tag) 활용

Meta 태그는 HTML 문서의 head 부분에 위치하며, 검색 엔진 웹 페이지의 제목, 작성자, 키워드, 설명 등과 같은 메타 정보를 검색 엔진이나 브라우저 등에서 상용된다.

1.렌더링 엔진 선택

<meta http-equiv="X-UA-Compatible" content="IE=edge">

이 meta 태그는 IE 브라우저에서 최신 렌더링 엔진을 선택하도록 해준다. 이를 통해 IE에서도 웹 페이지가 일관된 모습으로 나타날 수 있다.

2. 모바일 대응

<!-- 웹 페이지의 너비는 디바이스의 화면 너비이며, 비율은 1:1이라는 의미이다. -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">

viewport는 화면 크기를 설정하고 초기 배율을 조정하는데 사용된다. 이 meta 태그는 모바일 기기에서 웹 페이지가 올바르게 표시되도록 하는 역할을 한다.

3. 캐싱 제어

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">

이 meta 태그는 브라우저의 캐시(cache)에 저장되지 않도록 한다. 이를 통해 사용자가 웹 페이지 방문시 새로운 데이터를 불러올 수 있어 최신 정보를 제공할수 있다.

참고
ChatGPT

0개의 댓글