본문 바로가기
콤퓨타

웹게임 개발기 (13) - Google Material Design 으로 UI 구성하기 / favicion 적용하기

by 다_녤 2025. 1. 30.
반응형

이번에는 아무런 라이브러리 없이 빈약하게 구성된 화면을 좀 정상적으로 꾸며보기로 했다.

 

1. Google Material Design 으로 UI구성하기

현재 사이트는 아래와 같이 단순하고 조잡한 형태를 띄고있어 흡사 정상적이지 않은 사이트처럼 보인다.

[사진] 홈화면

이를 위해 google의 material design을 활용하여 UI를 더 보완하기로 했으며, 우선 아래와 같이 material/web을 패키지에 추가해야한다.

npm install @material/web

 

그렇게 설치하고 나면, material/web은 Module JS 기반으로 동작하기 때문에, 전체프로젝트 관점에서는 Common JS 와 혼재한 상태가 된다. 그래서 이번에 webpack과 babel을 추가하여 이러한 문제를 해결하기 위한 번들링과 트랜스파일링을 진행하였다.

 

webpack은 아래 코드를 기준으로 설치하였고,

npm install webpack webpack-cli webpack-dev-server --save-dev

 

babel은 아래 코드를 통해 설치했다.

* babel은 transfiling이라고 하여, ES6+ 버전의 js 코드를 실행하지 못하는 브라우저에서도 사용하기 위한 목적으로 하위브라우저가 호환이 가능하도록 코드를 변경해주는 패키지이다.

npm install babel-loader @babel/core @babel/preset-env --save-dev

 

이번 프로젝트 같은 경우, 여러 .html 을 사용하면서 html 간의 번들링도 필요하여 webpack에서 사용가능한 html 번들링 관련 플러그인을 같이 설치하였다.

npm install html-webpack-plugin --save-dev

 

 

개발 도중에 아래와 같은 에러가 발생하기도 했는데, 이는 webpack에서 제대로 material/web을 인식하지 못해서 발생하는 에러로, webpack.config.js에서 해당 번들링 대상 파일 위치를 제대로 설정해줘야했던 문제이다.

 

Uncaught TypeError: Failed to resolve module specifier "@matrieal/web/md-outlined-button.js". Relative references must start with either "/", "./", or "../".

 

2. favicon 적용하기

전문성있는 사이트임을 증명하기 위해서는 favicon 설정도 중요하다.

나는 피그마(figma.com)를 활용하여 favicon을 만들었다. 사이즈는 32 x 32 px 정도의 크기로 제작해야한다. 우측 하단의 export tab을 이용하여 .png 로 export 하여 적용할 준비를 마쳤다.

디자인이 전문분야가 아니다보니 완성도 있는 디자인은 아니지만, 최대한 단순하면서도 서비스명을 담을 수 있는 형태로 구성하였다.

* 도형 여러개를 겹쳐서 그리더라도 나중에 한번에 component (그룹핑)을 시키면 하나의 아이콘처럼 보이게 된다.

 

[사진] figma를 통해 favicon 그리는 모습

 

아래 코드를 참고하여 favicon을 추가하면 된다.

<!-- head안에 위치해야함 -->
<head>
	<!-- rel을 "icon"으로 지정하여 favicon인 것으로 인식 -->
	<link rel="icon" href="favicon 파일 위치">
</head>

 

 

위 코드와 같이 적용하고 나면 favicon이 적용된 것을 확인할 수 있다.

[사진] browser 상단 favicon

 

반응형