gatsby 블로그에 조회수 추가하기
gatsby 는 정적 사이트 생성기로써, 훌륭한 블로그 툴입니다. 다만 조회수등 여러가지 다이나믹한 기능들은 (바로) 지원하지 않는데요...
깃헙 블로그를 작성하기 위해서는 로컬 pc 에서 ruby 를 설치하고 jekyll 환경 구성을 해야 합니다.
오늘 포스팅을 작성할려고 했으나, windows 를 다시 깔아버려서 세팅하기가 너무 귀찮더라구요…
이번 기회에 저처럼 자주 이러저리 옮겨다니는 사람들을 위해 이번 내용을 작성하게 되었습니다.

우선 저는 windows 10 에 wsl2 와 docker 를 설치하여 사용하였습니다.
지난 5월 윈도우 Windows 10의 대규모 업데이트가 있었습니다. 이번 업데이트는 2019년 11월 이후 첫 대규모 업데이트로 사용자를 위한 다양한 기능이 추가되었을 뿐만 아니라,
Microsoft 에서 미리 예고한 대로 WSL2 (Windows Subsystem for Linux 2) 를 포함하고 있습니다.
간략히 이야기 드리자면, 윈도우즈에서 경량 가상화 기술을 사용해 리눅스를 구동할 수 있도록 도와주는 기능입니다.
WSL 2 를 설치하려면 먼저 Windows 10 2004 를 업데이트해야 합니다.
현재 설치여부는 Windows Key + R 을 눌러서 실행창에 winver 를 넣고 버전을 확인해 보면 됩니다.

2004 업데이트를 설치했다면 PowerShell 을 관리자로 열고 다음 명령을 실행해서 WSL 을 활성화해줍니다.
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
설치 완료를 위해서 재부팅을 해줍니다.
새 Linux 배포를 설치할 때 Powershell에서 다음 명령을 실행하여 WSL 2를 기본 버전으로 설정합니다.
똑같이 파워쉘을 띄워서 아래 명령어를 입력해줍시다.
wsl --set-default-version 2
각종 배포판을 지원하긴 하지만, 무난한 Ubuntu 18.04 LTS를 설치 해봅니다.
(다른 배포판들은 여기에서 확인 가능합니다.)
microsoft store 에서 ubuntu 를 검색해서 설치합니다.

설치한 배포판을 실행하면 설치하는데 시간이 조금 소요됩니다.

아래 명령어를 이용해서 wsl 버젼을 확인합니다.
PS C:\Users\ecst> wsl --list --verbose
NAME STATE VERSION
* Ubuntu-18.04 Running 2
(https://docs.docker.com/docker-for-windows/wsl-tech-preview/)
위의 링크를 참고하여 윈도우용 docker desktop을 설치 후
General에서 Enable the experimental WSL 2 based engine를 체크하여주고
Resources > WSL Integration에서 설치한 리눅스 버전을 체크해주시면 됩니다.


docker-compose.yaml 파일을 만들어 봅니다.
version: '3.3'
services:
blog:
image: jekyll/jekyll:latest
command: jekyll serve --force_polling --drafts --livereload --trace
ports:
- '4000:4000'
volumes:
- '.:/srv/jekyll'
docker-compose는 서비스에 필요한 docker 컨테이너를 한번에 실행해주는 프로그램 입니다.
다음은 작성된 코드의 의미입니다.
이 작성된 코드로 아래 명령어를 내리면 자동으로 container 가 실행됩니다.
docker-compose up

정상적으로 완료가 되면 자동으로 빌드되는 것을 확인할 수 있습니다


위는 docker dashboard 에서 확인된 container 입니다. vscode 로 열기를 선택하시면 해당 container 에 remote wsl 로 접속을 확인할 수 있습니다!
gatsby 는 정적 사이트 생성기로써, 훌륭한 블로그 툴입니다. 다만 조회수등 여러가지 다이나믹한 기능들은 (바로) 지원하지 않는데요...
github page 기능을 이용해서 수많은 사람들이 블로그로 애용 했습니다. 그렇지만 나는 이미지 파일 하나 올릴껀데? jekyll 블로그를 써야해? 라는 사람이 있겠죠? 그런 사람을 위해서 준비했습니다!
여기서는 gitlab 과 gitlab-runner (+ nexus) 를 설치하여 나도 자동적으로 빌드와 배포가 되도록 CI (Continuous Integration) / CD (Continuous Deployment) 를 구성 해보았습니다.
Apex Seoul의 무입력 차량이 코너를 따라가던 원인을 road-relative 좌표와 passive yaw에서 찾고, world heading 기반 횡이동, 조향 sprite 분리, 가드레일 contact lifecycle과 코너 출구 회전 제한으로 조향이 필요한 코너를 다시 만들었습니다.
최고속과 가드레일을 맞춘 뒤에도 코너는 느리고 차체는 과하게 꺾여 보였습니다. grip과 drift의 sprite 역할을 분리하고, 코너 리듬과 near-field 표식을 고친 뒤, 다른 pseudo 3D 레이싱 게임과 화면 흐름을 비교해 physical speed와 world progression 사이에 longitudinal scale을 도입한 과정을 정리합니다.
최고속을 고치자 가드레일 충돌이 드러나고, 충돌을 고치자 차량이 화면 밖으로 밀렸습니다. Apex Seoul의 자동 주행 QA에서 이어진 실패와 수정 과정을 정리합니다.