-
Notifications
You must be signed in to change notification settings - Fork 0
/
editor.qmd
149 lines (84 loc) · 16.6 KB
/
editor.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
---
output: html_document
editor_options:
chunk_output_type: console
---
# 편집기와 출판
디지털 전환(Digital Transformation) 전 글쓰기는 착상 후 종이와 연필을 가지고 글을 작성하고 수차례 수정작업을 거쳐 타자기로 탈고를 하고 이를 출판사에 넘겨 책이나 보고서로 고객에게 전달하게 된다. 하지만, **디지털 전환(Digital Transformation)** 시대 도래로 글쓰기 방식도 크게 변화하게 된다. 아래한글이나 마이크로소프트 워드, 리브레 Write와 같은 워드 프로세서(Word Processor)를 넘어, Vim, Emacs, VS 코드와 같은 코딩 편집기에서 마크다운을 사용하거나 직접 HTML을 코딩하여 글쓰기를 하게 된다.
![디지털 글쓰기 통합개발환경(IDE) 편집기](images/ide_writing.jpg)
중간 단계로 [\LaTeX](http://example.org)을 사용하여 수식을 포함한 학위 논문이나 학술 저널, 컨퍼런스 발표를 위한 논문을 작성하기도 한다. 이를 위해 `TeXStudio`와 같은 [\LaTeX](http://example.org)에 특화된 통합개발환경(IDE)를 사용하여 생산성을 높이기도 한다. RStudio의 Visual 마크다운 편집기가 RStudio v1.4에 도입되면서, 문서 작성 방식에 혁명적 변화가 일어나고 있다. 이러한 변화를 통해 글쓰기의 생산성과 효율성이 대폭 향상되며, 다양한 포맷과 플랫폼에서의 유연한 작업이 가능해진다.
::: callout-note
## 통합개발환경
통합개발환경(IDE, Integrated Development Environment)은 소프트웨어 개발을 위해 특별히 설계된 어플리케이션 또는 소프트웨어다. 코드 편집, 디버깅, 컴파일, 실행 등 소프트웨어 개발 전반을 지원한다. IDE는 프로그래밍 언어와 플랫폼에 따라 특화된 도구가 존재하고, 대표적으로 VS 코드, Eclipse, IntelliJ, Xcode, RStudio, 파이참 등이 있다.
IDE는 개발자 생산성을 높이고, 작업 효율성을 높이기 위해 자동 완성, 문법 검사, 코드 강조(Highlighting) 등 기능을 제공할 뿐만 아니라, 플러그인 형태로 버전 관리 시스템과 통합, 디버깅 툴, 테스트 자동화 도구 등도 포함되어 있다.
:::
글쓰기 IDE 도구가 필요한 이유는 단순한 텍스트 작성을 넘어서 복잡하고 기능적인 문서제작을 위해서 프로그래밍 언어와 플러그인 지원이 필수적이다. 이렇게 작성된 문서는 단순한 텍스트 제한을 벗어나 더 다양한 정보와 기능을 담게된다. 자동 완성, 문법 검사, 실시간 미리보기 등의 기능을 제공하여 문서작성 속도와 효율성이 비약적으로 높아져 생산성이 크게 향상되는데, 특히 복잡한 문서나 코드가 많이 필요한 문서를 작성할 때 시간을 대폭 줄여준다.
Git과 같은 버전 관리 시스템과 통합이 가능하므로 국내외 협업을 통해 동시에 문서 작성과 수정을 할 수 있고, 이전 버전과의 비교, 병합, 충돌 해결 등 문서 및 코드 공동 작성에서 발생하는 문제를 수월하게 해결할 수 있다. 소스코드 문서를 웹사이트(HTML), PDF, 워드 문서, 발표자료(PPT), 대쉬보드 등 다양한 파일형식으로 쉽게 변환할 수 있어해 문서 접근성을 높일 수 있고, 다양한 플랫폼에서 사용이 용이하다.
생산성을 높일 수 있는 다양한 기능을 제공하는 글쓰기 IDE 도구로 문서 작성자는 글쓰기와 고품질 문서 제작 본연의 업무에 더 많은 시간을 투여함으로써 더욱 창의적이고 효과적인 글쓰기가 가능하다.
## 저작방식 패러다임 {#paradigm}
**위지위그(WYSIWYG: What You See Is What You Get)**는 "보는 대로 얻는다"는 의미로, 사용자가 문서를 편집할 때 화면에 보이는 형태가 최종 출력물과 동일하게 나오는 편집 방식이다. 대다수 현대 워드 프로세서에서 위지위그 방식을 사용하고 있다. 사용자에게 직관적이고 쉽게 접근할 수 있는 인터페이스를 제공하기 때문이다.
그러나 위지위그 방식에도 단점은 있다. 마크다운, TeX 같은 텍스트 기반 편집 방식은 문서 호환성과 범용성을 위해 쓰이는 반면, 위지위그 저작방식은 호환성과 범용성을 다소 희생할 수 밖에 없다. 특히 복잡한 문서나 웹 페이지를 작성하는 경우, 코딩방식으로 전환하여 수작업으로 최적화를 시도하더라도 완벽한 해결이 어렵다. 예를 들어, 위지위그 편집기에서 문서를 작성하면 뒷단에 불필요한 코드나 태그가 자동으로 생성되어 문서 최적화를 방해하며, 시간이 지남에 따라 누적되어 호환성과 재현성에 심각한 문제를 야기한다. [^editor-1] [^editor-2]
[^editor-1]: [위키백과, "위지위그"](https://ko.wikipedia.org/wiki/%EC%9C%84%EC%A7%80%EC%9C%84%EA%B7%B8)
[^editor-2]: [나무위키, "WYSIWYG"](https://namu.wiki/w/WYSIWYG)
**위지윔(WYSIWYM: What You See Is What You Mean)**은 "당신이 보는 것은 당신이 뜻하는 것이다"라는 의미로, 위지위그(WYSIWYG) 방식의 한계를 극복하기 위해 나온 대안 편집 방식이다. 위지윔 방식에서는 사용자가 무엇을 의미하는지를 중점으로 두어, 본래의 코드 구조를 더 명확하게 알 수 있다. 코드 의미를 직접적으로 반영하여, 불필요한 요소 없이 효율적으로 문서를 작성할 수 있는 장점이 있다.
RStudio의 Visual 편집 기능은 위지윔 지향점을 잘 반영하고 있다. 사용자는 복잡한 코드나 태그 없이도 의미 있는 문서 구조를 쉽게 생성하고 관리할 수 있어 문서 최적화와 호환성을 높일 수 있으며, 더욱 높은 문서 저작 생산성을 달성할 수 있다.
오픈 소스 LaTeX 편집기인 [LyX](https://www.lyx.org/)는 위지윔 방식을 초기부터 채택하여 사용자에게 코드 본래 구조와 의미를 명확하게 파악할 수 있는 인터페이스를 제공했다. 이러한 접근법은 복잡한 수식이나 과학적인 문서를 작성할 때 특히 유용하며, [\LaTeX](http://example.org) 복잡성을 낮추면서도 강력한 기능을 최대한 활용할 수 함으로써 위지위그 한계를 극복했다는 평가를 받고 있다.
| 문서 컴파일 | 위지위그 |
|:------------------------------------:|:--------------------------------:|
| ![](images/wyswig-wikipedia.png){width="250"} | ![](images/wyswyg-word.png){width="250"} |
## 워드 프로세서 [^editor-3] {#main-features}
[^editor-3]: [Jesal Shethna, "Microsoft Word Features", EDUCBA](https://www.educba.com/microsoft-word-features/)
**워드 프로세서(Word Processor)**는 문서 제작을 위한 소프트웨어로, 시각적으로 잘 구성된 인터페이스와 다양한 편집 기능을 제공한다. 사용자는 이러한 기능을 통해 원하는 형태와 구조를 갖는 문서를 쉽게 저작할 수 있다. 워드 프로세서는 글자 스타일, 문단 구성, 이미지 삽입, 표 만들기 등 다양한 기능이 포괄적으로 제공되며, 윈도우에 기본 제공되는 메모장(Notepad) 텍스트 편집기보다 훨씬 더 풍부한 문서 작성이 가능하다. 2023년 9월 1일부로 윈도우에서 무료로 제공되던 워드패드(WordPad)에 대한 지원도 없어지고 윈도우에서도 제거될 것이라는 발표가 있었다. 따라서, 서식이 필요한 문서를 저작할 경우 MS 워드(Word)나 아래한글과 같은 워드 프로세서를 사용해야 된다.
아래한글은 국내에서 널리 사용되는 워드 프로세서 중 하나로, 한국 문화와 업무 환경에 맞춰 특화된 기능을 제공한다. 정부나 공공기관에서 사용하는 특별한 문서 양식을 미리 저장해 두어, 사용자가 양식을 찾는 데 시간을 쓰지 않고 글쓰기에 바로 집중할 수 있도록 큰 도움을 주었다.
| 국산 워드 프로세서 | 해외 워드 프로세서 |
|:------------------------------------:|:--------------------------------:|
| ![아래 한글 워드 프로세서](images/hangul_word.jpg){width="500"} | ![마이크로소프트 워드(Word)](images/word_ms.jpg){width="500"} |
## [\LaTeX](http://example.org) 편집기 {#latex-editor}
[\LaTeX](http://example.org) 편집기는 운영체제나 사용자의 필요에 따라 다양한 선택옵션이 존재한다. 특히, 클라우드 기반 [Overleaf](https://www.overleaf.com/), 설치형 [TeXstudio](https://www.texstudio.org/), 데이터 과학에 특화된 RStudio IDE가 대표적이다. 편집기들은 [\LaTeX](http://example.org)에 특화되었거나, 일부 [\LaTeX](http://example.org) 기능을 분리하여 사용자 요구에 맞춰 활용할 수 있다.
![[\LaTeX](http://example.org) 편집기 다양성](images/latex-editor.png){fig-align="center" width="1151"}
[Overleaf](https://www.overleaf.com/)는 초기에 `ShareLaTeX` 서비스로 시작해 현재는 클라우드 기반의 [\LaTeX](http://example.org) 편집 기능을 제공한다. 클라우드 특성을 살려 문서의 공유와 협업이 용이하다는 점이 큰 장점이다.
`TeXstudio`는 `Texmaker` 후속으로 오픈 소스 [\LaTeX](http://example.org) 편집기로 제공된다. 사용자는 [TeXstudio](https://www.texstudio.org/) 웹사이트에서 다운로드 받아 설치할 수 있으며, GitHub [`texstudio`](https://github.com/texstudio-org/texstudio) 저장소를 통해 한국어 현지화 작업에도 참여할 수 있다.
| 클라우드 편집기 | 설치형 편집기 |
|:------------------------------------:|:--------------------------------:|
| ![Overleaf 스크린샷](images/overleaf-screenshot.png){fig-align="center" width="500"} | ![TeXstudio 스크린샷](images/texstudio-screenshot.png){fig-align="center" width="500"} |
## RStudio IDE 편집기 {#rstudio-ide}
RStudio IDE는 처음 데이터 과학 R 프로그래밍 언어를 위한 통합개발환경으로 시작하였으나 이제는 파이썬을 비롯하여 SQL, Observable JS 등 데이터 과학 전분야를 담당하고 있다. 특히, 데이터 분석, 시각화 및 문서 작업을 간편하게 할 수 있도록 다양한 도구와 기능을 제공할 뿐만 아니라, Shiny 웹 애플리케이션 개발, Plumber를 통한 API 개발, 쿼토(Quarto)/R 마크다운을 활용해 다양한 데이터 과학 산출물을 제작할 수 있다. 또한, Git 버전 관리 시스템과 통합되어 코드 이력을 쉽게 추적하고 관리할 수 있고 GitHub과 연결하여 협업기능도 지원한다.
RStudio 코드 편집기는 자동 완성, 구문 강조, 맞춤법 검사 등 기능을 제공하여 개발자 편의를 향상시켰고, GUI 데이터 뷰어를 통해 데이터프레임과 데이터 객체를 직접적으로 시각적으로 살펴볼 수 있으며, 내장 패키지 관리 시스템을 통해 R 패키지도 손쉽게 설치하고 관리할 수 있다.
웹앱 Shiny 애플리케이션 개발과 테스트도 가능하고, 문서화 프로그래밍을 차세대 R 마크다운 쿼토(Quarto)를 이용하여 코드, 데이터, 그래프를 하나의 문서로 통합하여 구현할 수 있을 뿐만 아니라 팬독(Pandoc)을 통해 다양한 형태 문서를 자동으로 생성할 수 있다.
![RStudio 문서화 프로그래밍 사례](images/rstudio-screenshot.png){fig-align="center" width="763"}
### Visual 마크다운 편집기 {#visual-markdown-main-features}
[Visual 마크다운](https://rstudio.github.io/visual-markdown-editing) 기능을 사용하게 되면 과학/기술 문서 작성의 용이성 뿐만 아니라 인용(Citation), 문학적 프로그래밍(literate programming) 을 통한 재현가능한 과학문서 구현, 팬독(`Pandoc`)을 사용하여 텍스트와 코드로 PDF, HTML, 워드 등 다양한 문서 동시 생성이 가능하다.
![RStudio Visual 마크다운 편집기능](images/visual-edit-execute-code.png){fig-align="center"}
### [맞춤법 검사](https://statkclee.github.io/comp_document/cd-rstudio-wp.html){#spelling-check}
## 쿼토 설치
[쿼토(Quarto)](https://quarto.org/) 웹사이트에서 Quarto CLI 엔진과 통합개발도구(IDE)를 설치한다. 쿼토 CLI를 지원하는 IDE는 VS Code, RStudio, Jupyter, VIM/Emacs 와 같은 텍스트 편집기가 포함된다. IDE까지 설치를 했다면 문학적 프로그래밍(literate programming)을 통해 사람이 저작하는 마크다운(Markdown)과 기계가 저작하는 프로그래밍 언어(R/Python/SQL/줄리아/자바스크립트)를 결합한 다양한 문서저작을 시작할 수 있다.
![쿼토 도구모음](images/quarto-toolchain.png)
### 윈도우 설치
[쿼토(Quarto)](https://quarto.org/)를 윈도우 운영체제에 설치하기 위해서는 몇 가지 단계를 거쳐야 한다.
### 쿼토 다운로드
먼저 Quarto 공식 웹사이트에서 윈도우용 설치 파일을 다운로드한다. 웹사이트 ["Download Quarto CLI"](https://quarto.org/docs/get-started/) 윈도우 버전을 선택하여 다운로드한다.
![쿼토 다운로드 화면](images/quarto-download.png){fig-align="center" width="400"}
#### 쿼토 설치
다운로드한 파일을 더블클릭 실행하여 설치를 진행한다. 설치 마법사가 나타나면 지시에 따라 설치를 완료하면 된다. 설치가 완료되면 환경 변수에 쿼토 설치 경로를 등록해야 한다. '제어판'을 열고 '시스템과 보안'으로 이동한 다음 '시스템'을 선택한다. '고급 시스템 설정'을 클릭한 후 '환경 변수' 버튼을 누른다. '시스템 변수'에서 'Path' 변수를 찾아 Quarto의 설치 경로를 추가한다. 일반적인 경로는 `C:\Users\<사용자계정명>\AppData\Local\Programs\Quarto\bin`과 같을 수 있다.
![쿼토 설치완료](images/quarto-install.png){fig-align="center" width="350"}
### 쿼토 CLI
마지막으로 환경 변수 설정이 올바르게 이루어졌는지 확인하기 위해 명령 프롬프트나 터미널을 열어 `quarto --version` 혹은 `quarto --help` 명령을 입력한다. 올바른 버전 번호가 출력되면 설치가 성공적으로 완료된 것이다.
![쿼토 CLI 실행화면](images/quarto-cli.png)
::: callout-tip
윈도우 시스템의 경우 초기 윈도우에서 쿼토 실행명령이 `quarto.cmd` 이였으나 `quarto.exe`도 지원된다. 즉, 제어판 → 환경 변수 설정 ... 에서 `"C:\Users\사용자명\AppData\Local\Programs\Quarto\bin` 디렉토리를 등록한 후 `quarto` 명령어를 사용한다.
```{r}
#| eval: FALSE
Sys.which("quarto")
quarto
"C:\\Users\\사용자명\\AppData\\Local\\Programs\\Quarto\\bin\\quarto.exe"
```
:::
## 부조종사
[GitHub 부조종사(Copilot)](https://github.com/features/copilot)를 Rstudio에서 사용하기 위해서는 특별한 버전 Rstudio, 즉 [일일 빌드 (Daily Builds)](https://dailies.rstudio.com/)가 필요하여 각자 운영체제에 맞는 RStudio Desktop 버전을 다운로드한 후 설치한다.
> `Tools -> Global Options -> Copilot -> Enable Github Copilot`
설치가 완료되면 Rstudio를 실행하고 상단 메뉴에서 'Tools'를 선택한 다음 'Global Options'을 클릭하면, 왼쪽 사이드바에서 'Copilot'을 선택하고 'Enable GitHub Copilot' 체크박스를 선택한 다음 'Sign In'을 클릭하고 나타나는 링크에서 인증 코드를 입력한다. 'Authorize Github Copilot Plugin'을 클릭하여 인증 과정을 완료하면 설정이 완료된다.
![GitHub 부주종사 설치과정](images/rstudio_copilot.jpg)
GitHub Copilot를 Rstudio에서 사용해보면, 작성하려는 코드가 회색으로 예측되어 나타난다. 'Tab' 키를 눌러 탭완성(Tab Completion) 기능으로 제시한 코드를 수락하여 개발을 이어간다.
## 출판 플랫폼
데이터 과학 분야에서 산출물을 공유하고 출판하는 것은 매우 중요한 단계로 효과적인 출판과 비용적인 면을 고려하여 최적 플랫폼과 도구를 선정한다. 데이터 과학 분야를 개척한 RStudio IDE로 과거 R 마크다운 산출물을 [RPubs](https://rpubs.com/)에 출판한 경험이 있다면, [`Quarto Pub`](https://quartopub.com/)은 그와 유사한 경험을 제공한다. 다른 대안으로는 [netlify](https://netlify.com/), [GitHub Pages](https://github.com/), [RStudio Connect](https://www.rstudio.com/products/connect/) 등이 있다.
![쿼토 출판](images/quarto-publishing.png)