:
project: website
type-dir: docs
output
:
website: "workshop"
title:
navbar:
left- href: index.qmd
: Home
text- about.qmd
- setup.qmd
:
format:
html: cosmo
theme: styles.css
css: true toc
환경설정
Quarto 기반 데이터 과학 작업흐름은 프로그래밍 언어 뿐만 아니라 통합개발환경(IDE), 다양한 문서 양식과 최종적으로 배포하는 환경까지 아우르게 된다. 예를 들어 데이터 과학 주 언어로 R을 선정하고, 통합개발환경으로 RStudio를 선택하고, 산출물을 웹사이트로 특정하고 이를 배포하는 서비스로 GitHub Pages를 선정하는 것이다.
프로젝트 구조
GitHub Pages를 통해 정적 웹사이트 서비스를 통해 데이터 과학 산출물을 공유하고자 하는 경우 통합개발환경 RStudio에서 New Project...
→ Create Project
에서 New Directory
를 선정하고 → Project Type
에서 Quarto Website
를 특정하고 마지막으로 Create Quarto Website
디렉토리 명칭과 프로젝트가 위치할 디렉토리 위치를 확인하고 엔진을 비롯한 각종 선택사항을 지정한다.
상기 작업결과 예를 들어, workshop
디렉토리에 다음과 같은 기본 설정값들이 쫙 깔리게 된다.
$ tree
.
|-- _quarto.yml
|-- _site
| |-- about.html
| |-- index.html
| |-- search.json
| |-- site_libs
| | |-- bootstrap
| | | |-- bootstrap-icons.css
| | | |-- bootstrap-icons.woff
| | | |-- bootstrap.min.css
| | | `-- bootstrap.min.js
| | |-- clipboard
| | | `-- clipboard.min.js
| | |-- quarto-html
| | | |-- anchor.min.js
| | | |-- popper.min.js
| | | |-- quarto-syntax-highlighting.css
| | | |-- quarto.js
| | | |-- tippy.css
| | | `-- tippy.umd.min.js
| | |-- quarto-nav
| | | |-- headroom.min.js
| | | `-- quarto-nav.js
| | `-- quarto-search
| | |-- autocomplete.umd.js
| | |-- fuse.min.js
| | `-- quarto-search.js
| `-- styles.css
|-- about.qmd
|-- image
| |-- github_repo.png
| |-- quarto_init.png
| `-- quarto_website.png
|-- index.qmd
|-- styles.css
`-- workshop.Rproj
8 directories, 28 files
상기 ㄷ렉토리에서 중요한 것은 _quarto.yml
파일에 특히 관심을 둬야한다. 즉, _quarto.yml
파일이 Quarto 웹사이트를 비롯한 각종 문서의 뼈대에 해당되는 사항을 모두 담고 있기 때문이다.
_quarto.yml
파일
GitHub Pages
정적 웹사이트(static website) 구축을 위한 환경설정을 다음과 같이 수정한다. output-dir: docs
설정을 특히 유념한다. 나중에 GitHub Pages
를 설정할 때 꼭 필요한 사항이다. 기존 디폴트 설정으로 되어 있는 _site
디렉토리를 docs
로 변경시킨 것으로 역할은 Quarto 로 작업한 모든 결과물을 정정웹사이트로 컴파일하여 docs
디렉토리로 최종 결과물을 몰아넣게 된다. 나머지 website
아래 웹사이트 구조에 대한 사항을 지정하게 된다.
quarto render
_quarto.yml
은 콘텐츠 즉 .qmd
파일을 어떤 형태로 꿰어야 되는지 지정한 정보를 담고 있다면 quarto render
명령어 그 이전에 quarto preview
명령어는 개발자나 저작자가 저작한 저작물을 기계가 컴파일하는 과정을 담고 있다. 윈도우의 경우 quarto.cmd
맥/리눅스는 quarto
명령어로 해당 작업을 수행하게 된다.
상기 컴파일 작업을 통해 docs
디렉토리가 새로 생겼으며 정적 웹사이트를 기계인식 가능한 형태로 변환된 것을 확인할 수 있다.
$ quarto.cmd render
.....
$ tree -d
.|-- _site
| `-- site_libs
| |-- bootstrap
| |-- clipboard
| |-- quarto-html
| |-- quarto-nav
| `-- quarto-search
|-- docs
| `-- site_libs
| |-- bootstrap
| |-- clipboard
| |-- quarto-html
| |-- quarto-nav
| `-- quarto-search
`-- image
15 directories
$ rm -rf _site
로컬에서 docs/
디렉토리로 들어가서 index.html
파일을 더블클릭하게 되면 웹브라이져 크롬에서 웹사이트가 정상 제작된 것을 확인할 수 있다. 이제 로컬 컴퓨터에서 제작한 웹사이트를 본인 뿐만 아니라 인터넷 접속이 가능한 다른 분들도 데이터 과학 결과물을 공유할 수 있도록 외부에 배포하는 과정을 살펴보자.
Git 과 GitHub 저장소
로컬에서 작업한 결과물을 인터넷으로 공유하는 방식은 여러가지가 존재하지만, 서버 없이(비용없이 무료) GitHub 에서 제공하는 Pages
기능을 사용하여 웹사이트를 제작하여 배포하는 방법을 살펴보자.
GitHub 저장소
GitHub 웹사이트에 회원가입하고 나면 저장소를 무료로 생성시킬 수 있다. 저장소 명칭, 저장소 공개범위(공개 혹은 비공개) 그리고 Git 브랜치 등 관련 사항을 개발 언어와 목적에 맞춰 취사선택한다.
Git
로컬 컴퓨터에서 작업을 한 후 git add .
→ git commit -m"첫 커밋"
Git 작업흐름에 맞춰 작업을 한 후에 프라이빗 사설 저장소의 경우 PAT(Personal Assess Token) 을 사용해서 다음 명령어로 연결하는 하고 그렇지 않고 공공 퍼블릭으로 설정한 경우 다음 명령어로 원격 GitHub 저장소를 연결한다.
로컬과 원격 연결
로컬 컴퓨터에 있는 저장소를 원격 클라우드 컴퓨터 저장소와 연결시켜야 후속 작업을 진행할 수 있게 된다. 이를 위해서 먼저 로컬 저장소와 원격 저장소를 git remote add origin
명령어로 연결시킨다. git remote -v
명령어로 관련 사항을 확인한다.
$ git remote add origin git@github.com:bit2r/workshop.git
$ git remote -v
@github.com:bit2r/workshop.git (fetch)
origin git@github.com:bit2r/workshop.git (push) origin git
원격 저장소 가져오기
로컬 저장소와 원격 저장소가 연결되었으면 다음 작업은 먼저 원격 저장소의 저작물을 로컬 컴퓨터로 끌어가져오는 과정을 거친다. 저장소와 로컬 저장소는 모두 각자 Git History가 달라 이를 합치하는 과정을 거쳐야 한다. 이때 --allow-unrelated-histories
옵션을 준다.
$ git pull origin main --allow-unrelated-histories
:bit2r/workshop
From github.com* branch main -> FETCH_HEAD
원격 저장소 내보내기
원격 저장소를 연결했고 원격 저장소와 로컬 저장소 관련 충돌(conflict) 과정을 해소했기 때문에 원격 저장소아 로컬 조장소 동기화에 필요한 모든 준비가 마무리되었기 때문에 다음 단계로 git push
명령어로 로컬 저장소 결과물을 원격 저장소로 내보낸다.
$ git push --set-upstream origin main
-to-date
Everything up'main' set up to track remote branch 'main' from 'origin'. Branch
GitHub Pages 설정
GitHub Pages를 활성화시켜 정적 웹사이트로 GitHub 저장소를 탈바꿈시킨다. 이를 위해서 해당 GitHub 저장소에서 Settings
→ Pages
→ Branch
에서 docs/
디렉토리를 지정한다.
quarto
웹사이트
GitHub 저장소 명칭을 workshop
으로 해서 해당 웹사이트에 정상적으로 배포된 것을 크롬 웹브라우저에서 확인할 수 있다.