Svelte
를 공부하면서, 하나씩 공부한 것들을 구현해보는 간단한 프로젝트를 하나 만들었다. 로컬PC에서만 서버를 구동해서 결과만 확인하다가, 무료 웹호스팅을 이용하여 언제든 외부에서 접근할 수 있게 하고 싶었다. Vercel
을 한번 사용해서 무료로 클라우드 서비스를 이용해보자.
Svelte 에서 highlight.js 연동하기
Svelte 를 공부하면서 코드를 웹페이지에 넣을 일이 많아지는데, <pre>
태그만 쓰자니 아쉬워서 highlight.js 라이브러리를 사용해보기로 했다. 공식문서만 보고 그냥 html 파일에 따라하는 것은 그렇게 어렵지 않았는데, 이걸 svelte 구조에 맞춰 처리하려니 생각보다 어려웠다. 2가지 방식만 정리해본다.
Svelte 링크 클릭시 전체페이지 리로딩하는 방법
<a>
태그는 앱의 경로 사이를 탐색하는 데 사용된다. 그런데 <a>
로 페이지간 이동할때, Svelte
에서는 페이지 전체가 리로드(reload) 되지 않고 하나의 앱처럼 매끄럽게 동작하는게 디폴트이다. 웹 어플리케이션을 구현하는 데는 적절하나, 간혹 전체 페이지를 로딩(새로고침)해야 하는 케이스도 필요한데 그 방법을 알아보고자 한다.
Hugo 프로젝트에 Bootstrap Icons 설정하여 아이콘 사용하기
부트스트랩 아이콘은 2,000개 이상의 아이콘이 있는 무료 고품질 오픈 소스 아이콘 라이브러리이며, SVG, SVG 스프라이트 또는 웹 글꼴 등 원하는 대로 포함가능하다. 아이콘을 적당히 잘쓰면 깔끔한 디자인의 웹페이지를 만들 수 있다. Bootstrap Icons
을 hugo
프로젝트에 연동하는 법을 정리해본다.
Svelte 에서 Bootstrap Icons 사용하기
반응형 웹사이트 구축하는데 Bootstrap
로 주로 공부하며 사용하고 있다. 웹페이지에 가끔 인스타그램, 트위터 같은 아이콘이 필요할 때가 있다. 이미지로 할 수도 있지만, 아이콘으로도 추가할 수 있다. Bootstrap
에서는 아이콘도 무료로 배포하여 사용할 수 있게 되어 있다.
Mongo Docker 이미지에 oh-my-zsh 설치
mongodb
는 항상 docker 이미지로 설치를 해서 사용하고 있다. 최근에 새로 svelte
프로젝트를 개발하면서 mongodb
도 필요해서 새로운 7버전 docker 이미지로 설치를 했는데, 애용하는 oh-my-zsh
설치가 정상적으로 안되는 문제가 있었다. 분명 Dockerfile
안에 설치스크립트를 넣었지만 이미지를 실행해 들어가보면 전혀 셋팅이 안되어 있는 현상이었다.
서브도메인 생성해서 Vercel 에 커스텀 도메인으로 설정하기
나만의 블로그를 만들고 싶어서 여러가지 서비스를 알아보다, Netlify에 정착한지 꽤나 오랜시간이 흘렀다. Netlify 에서 준 https://xxxxx.netlify.app/
과 같은 이름보다는 오랫동안 내가 사용할 이름을 하나 도메인을 구매하는 것도 좋겠다 싶어 후이즈에서 도메인 구매도 진행하였다. 수익도 안나는 블로그에 돈을 태울일인가 싶긴한데, 그래도 하나쯤은 괜찮겠다 싶어 사긴했다.
Bootstrap validation 기능 사용법 및 Svelte에 적용하기
Bootstrap
을 이용해서 웹사이트를 만드는 편인데, 거기서 제공하는 validation
기능을 사용하고 있다. 그대로 Svelte
에서 사용할 수 있으면 좋겠지만, 그게 그렇게 되질 않았다. SvelteKit
을 사용하여 각페이지들을 Route
하기위해 페이지를 컴포넌트처럼 나누어 개발하고 합치기 때문인데, 알아보는 시간은 꽤나 오래걸렸지만 그래도 비슷하게 구현을 했다.
Svelte Nested component 사용하기
웹페이지를 만들다보면 자주 사용하는 레이아웃 부분은 별도로 모듈화 하여 재사용하고 싶어진다. svelte
에도 독립적인 기능을 하는 컴포넌트를 쉽게 만들 수 있으며, 그 컴포넌트를 사용하여 앱의 구조를 조직화하고 코드를 재사용할 수 있게 된다. svelte document 에서 Nested Components 라는 주제로 설명되어 있으니 참고하자.
Svelte 이용하여 Form 만들기
Svelte
에서 데이터를 입력하는 Form 을 하나 만들어본다. 이름과 성별정도 입력할 수 있도록 하고, 그 결과를 실시간으로 Object 로 반영하도록 bind 처리까지 간단히 해보자. 대략 아래의 레이아웃으로 만들 예정이다. 여기서 설명하는 건 Svelte 공식홈페이지 Tutorial 에도 있으니 참고한다.