-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.qmd
533 lines (426 loc) · 29.7 KB
/
setup.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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
```{r}
#| include: false
source("_common.R")
```
# 저작환경 설정
과거 글쓰기는 착상 후 종이와 연필로 글을 작성하고 수차례 수정작업을 거쳐
타자기로 최종탈고 후 출판사에 넘기면 인쇄출판 과정을 거쳐 문고를 통해 독자에게
전달되었다. 하지만, **디지털 전환(Digital Transformation)** 시대 도래로
글쓰기 방식도 크게 변화하고 있다.
@fig-digital 에 디지털 전환 전후 글쓰기 과정이 난이도와 함께 나와 있다.
위지윅 기반 아래 한글이나 마이크로소프트 워드, 리브레 Write와 같은 워드 프로세서(Word Processor)를 넘어서 Vim, Emacs, VS 코드와 같은 코딩기반 편집기를 사용하여
프로그래밍 언어를 통한 소프트웨어 개발은 물론이고 마크다운을 사용하거나
직접 HTML으로 코딩하여 저작을 할 수 있게 되었다. \index{디지털 전환}
![디지털 글쓰기 통합개발환경(IDE)
편집기](images/ide_writing.jpg){#fig-digital fig-align="center"
width="500"}
::: callout-note
## 통합개발환경
통합개발환경(IDE, Integrated Development Environment)은 소프트웨어
개발을 위해 특별히 설계된 어플리케이션 또는 소프트웨어다. 코드 편집,
디버깅, 컴파일, 실행 등 소프트웨어 개발 전반을 지원한다. IDE는
프로그래밍 언어와 플랫폼에 따라 특화된 도구가 존재하고, 대표적으로 VS
코드, Eclipse, IntelliJ, Xcode, RStudio, 파이참 등이 있다.
IDE는 개발자 생산성을 높이고, 작업 효율성을 높이기 위해 자동 완성, 문법
검사, 코드 강조(Highlighting) 등 기능을 제공할 뿐만 아니라, 플러그인
형태로 버전 관리 시스템과 통합, 디버깅 툴, 테스트 자동화 도구 등도
포함되어 있다.
:::
위지윅 혹은 코딩기반 편집기를 사용하여 저작하는 것은 양쪽다 장단점이 존재한다.
그렇다면 위지윅의 장점과 코딩기반 편집기를 사용한 장점을 결합할 수는 없을까?
이러한 요구에 부합하는 것이 **쿼토**다. \index{통합개발환경}
{{< latex >}}을 사용하여 수식을 포함한 학위 논문이나 학술
저널, 컨퍼런스 발표를 위한 논문을 작성이 활발해지고 있다.
`TeXStudio`, `LyX`와 같은 {{< latex >}}에 특화된 통합개발환경(IDE)를 사용하여
{{< latex >}} 저작을 하는 것도 위지윅과 코딩기반 문서저작 장점을 취해
빠른 시간내에 품질 높은 문서를 작성하는 일반화된 전략이다.
쿼토에서 많이 사용되는 RStudio IDE에 혁신적인 변화가 생겼다. \index{latex@\LaTeX}
\index{tex@\TeX}
쿼토 비주얼 편집기(Visual editor)는 표, 인용, 상호 참조, 각주, div/spans,
정의 목록, 속성(attributes), 원시 HTML/{{< tex >}}을 포함한
팬독 마크다운을 위한 위지윔(WYSIWYM) 기능[^wysywym]을 RStudio v1.4부터 제공하고 있다.
[^wysywym]: 위지임(WYSIWYM,What You See Is What You Mean)은 문서 의미와 구조에 중점을 둔 편집 방식으로, 사용자가 문서의 구조와 의미를 명시적으로 표현하고 최종 문서형식은 별도로 처리하는 방식으로 문서의 논리적 구조와 의미에 집중을 둔
학술논문 저작, 기술문서, 데이터 과학과 같은 분야에서 주로 사용되며
{{< latex >}} LyX 를 대표적인 사례로 두고 있다.
글쓰기 IDE 도구가 필요한 이유는 단순한 텍스트 작성을 넘어서 복잡하고
기능적인 문서제작을 위해서 프로그래밍 언어와 플러그인 지원이 필수적이다.
이렇게 작성된 문서는 단순한 텍스트 제한을 벗어나 더 다양한 정보와 기능을
담게된다. 자동 완성, 문법 검사, 실시간 미리보기 등의 기능을 제공하여
문서작성 속도와 효율성이 비약적으로 높아져 생산성이 크게 향상되는데,
특히 복잡한 문서나 코드가 많이 필요한 문서를 작성할 때 시간을 대폭
줄여준다.
쿼토는 `Git`으로 대표되는 버전 관리 시스템과 통합도 가능하므로 국내외 협업을 통한
동시 문서 작성과 수정이 가능하다. 이전 버전과 비교, 병합, 충돌 해결 등 문서 및
코드 공동 작성에서 발생하는 문제를 쉽게 해결할 수 있다. 또한, 소스코드 문서를 웹사이트(HTML), PDF, 워드 문서, 발표자료(PPT), 대쉬보드 등 다양한 파일 형식으로 쉽게 변환할 수 있어 독자별로 차별화함으로써 문서 접근성을 높일 수 있다.
생산성을 높이는 다양한 기능을 제공하는 글쓰기 IDE 도구를 사용함으로써,
문서 작성자는 글쓰기와 고품질 문서 제작에 더 많은 시간을 할애할 수 있어
더 창의적이고 효과적인 글쓰기가 가능해진다. \index{git}
## 쿼토 환경설정
[쿼토(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){#fig-install-workflow
fig-align="center" width="450"}
### 윈도우 설치
[쿼토(Quarto)](https://quarto.org/)는 윈도우를 비롯하여 맥, 리눅스도
지원한다. 다른 운영체제에 쿼토를 설치하는 방법도 유사하기 때문에
윈도우를 기준으로 설치방법을 살펴보자. 윈도우 운영체제에 설치하기
위해서는 몇 가지 단계를 거쳐야 한다. \index{쿼토!설치}
### 쿼토 다운로드
먼저 쿼토 공식 웹사이트에서 윈도우용 설치 파일을 다운로드한다.
웹사이트 ["Download Quarto CLI"](https://quarto.org/docs/get-started/)
윈도우 버전을 선택하여 다운로드한다.
![쿼토 다운로드 화면](images/quarto-download.png){#fig-quarto-homepage
fig-align="center" width="297"}
### 쿼토 설치
다운로드한 파일을 더블클릭 실행하여 설치를 진행한다. 설치 마법사가
나타나면 지시에 따라 설치를 완료하면 된다. 설치가 완료되면 환경 변수에
쿼토 설치 경로를 등록해야 한다. '제어판'을 열고 '시스템과 보안'으로
이동한 다음 '시스템'을 선택한다. '고급 시스템 설정'을 클릭한 후 '환경
변수' 버튼을 누른다. '시스템 변수'에서 'Path' 변수를 찾아 쿼토 설치
경로를 추가한다. 일반적인 경로는
`C:\Users\<사용자명>\AppData\Local\Programs\Quarto\bin`과 같을 수
있다. **사용자명**이 한글로 되어 있다면 영문으로 수정할 것을 강력히 추천한다.
RStudio 등 다른 IDE에서 한글로된 사용자명으로 인해 컴파일이 되지 않은
오류가 발생될 수 있기 때문이다.
![쿼토 설치완료](images/quarto-install.png){#fig-quarto-setup
fig-align="center" width="300"}
### 쿼토 CLI
마지막으로 환경 변수 설정이 올바르게 이루어졌는지 확인하기 위해
터미널을 열어 명령 프롬프트로 `quarto --version` 혹은 `quarto --help` 명령을
입력한다. 올바른 버전 번호가 출력되면 설치가 성공적으로 완료된 것이다.
![쿼토 CLI 실행화면](images/quarto-cli.png){#fig-quarto-cli
fig-align="center" width="450"}
::: callout-tip
윈도우 시스템의 경우 초기 윈도우에서 쿼토 실행명령이 `quarto.cmd`
이였으나 `quarto.exe`도 지원되어 확장자 없이 `quarto` 명령어 실행이 가능하다.
즉, 제어판 → 환경 변수 설정 ... 에서
`"C:\Users\사용자명\AppData\Local\Programs\Quarto\bin` 디렉토리를 등록한
후 `quarto` 명령어를 사용한다.
```{r}
#| eval: FALSE
Sys.which("quarto")
quarto
"C:\\Users\\사용자명\\AppData\\Local\\Programs\\Quarto\\bin\\quarto.exe"
```
:::
## RStudio IDE {#rstudio-ide}
RStudio IDE는 데이터 과학 R 프로그래밍 언어를 위한 통합개발환경으로
시작하였으나 이제는 파이썬을 비롯하여 SQL, Observable JS, 줄리아 등 데이터 과학
전분야를 담당하고 있다. 특히, 데이터 분석, 시각화 및 문서 작업을
간편하게 할 수 있도록 다양한 도구와 기능을 제공할 뿐만 아니라, Shiny 웹
애플리케이션 개발, Plumber를 통한 API 개발, 쿼토(Quarto)/R 마크다운을
활용해 다양한 데이터 과학 산출물을 편리하게 제작할 수 있다.
또한, Git 버전 관리 시스템과 통합되어 코드 이력을 쉽게 추적하고 관리할 수 있고
GitHub과 연결하여 글로벌 협업기능도 지원한다.
GitHub/Microsoft 부조종사(Copilot) 유료구독을 한 경우,
Rstudio와 연결하여 챗GPT로 유명한 생성형 AI를 통해
마크다운 텍스트 및 다양한 프로그래밍 언어로 코드를 생성시킬 수 있다. \index{RStudio}
@fig-rstudio-ide 에 RStudio IDE 설치과정이 나와 있다. 먼저, R 프로그래밍
언어 공식 웹사이트인 [CRAN](https://cran.r-project.org/)에서 R을
다운로드하여 설치한다. 그 다음, [RStudio 공식
웹사이트](https://posit.co/download/rstudio-desktop/)에서 사용자의 운영
체제에 맞는 RStudio IDE 버전을 다운로드한다. 다운로드한 설치 파일을
실행하여 설치 과정을 진행하며, 일반적으로 기본 설정으로 설치하는 것이
좋다. 설치가 완료되면 RStudio를 실행하여 R과 함께 사용한다.
R 설치 버전은 R 4.2버전 이상을 추천하는데 그 이전 버전은 데이터와 코드에 한글 인코딩 문제가 생길 수 있기 때문이다.
![RStudio IDE 설치과정](images/rstudio-ide-install.png){#fig-rstudio-ide}
RStudio 코드 편집기는 자동 완성, 구문 강조, 맞춤법 검사 등 기능을
제공하여 개발자 편의를 향상시켰고, GUI 데이터 뷰어를 통해 데이터프레임과
데이터 객체를 직접적으로 시각적으로 살펴볼 수 있으며, 내장 패키지 관리
시스템을 통해 R 패키지도 손쉽게 설치하고 관리할 수 있다.
웹앱 Shiny 애플리케이션 개발과 테스트도 가능하고, 문서화 프로그래밍을
차세대 R 마크다운 쿼토(Quarto)를 이용하여 코드, 데이터, 그래프를 하나의
문서로 통합하여 구현할 수 있을 뿐만 아니라 팬독(Pandoc)을 통해 다양한
형태 문서를 자동으로 생성할 수 있다.
![RStudio 문서화 프로그래밍 사례](images/rstudio-screenshot.png){#fig-quarto-markdown
fig-align="center" width="450"}
### 비주얼 마크다운 편집기 {#visual-markdown-main-features}
[비주얼(visual) 마크다운](https://rstudio.github.io/visual-markdown-editing) 기능을
사용하게 되면 과학기술 문서 작성이 용이하다. 강력한 인용(Citation)기능과
문학적 프로그래밍(literate programming)을 통해 재현가능한 과학 문서를 수월히
구현할 수 있고, 팬독(`Pandoc`)을 사용하여 텍스트와 코드로 PDF, HTML, 워드 등 다양한 형식의 문서를 동시에 생성할 수도 있다. \index{RStudio!비주얼 마크다운 편집기}
![RStudio 비주얼 마크다운 편집기능](images/visual-edit-execute-code.png){#fig-rstudio-visual
fig-align="center" width="450"}
### 단축키
데이터 과학에서 통합개발환경(Integrated Development Environment, IDE)은
코드 기반의 제품과 서비스 개발 효율성과 효과성을 극대화에 매우 큰 기여를
한다. IDE는 코딩, 디버깅, 컴파일, 배포 등 프로그램 개발에 필요한 다양한
작업을 한 곳에서 수행할 수 있게 통합함으로써 개발자가 보다 집중하고
효율적으로 작업할 수 있는 환경을 제공한다. 단축키를 통해 개발자는
반복적인 작업을 빠르고 효율적으로 수행함으로써 전체적인 작업 속도와
생산성을 크게 높일 수 있다. \index{단축키}
특히, RStudio는 데이터 과학 분야에서 널리 사용되는 프로그래밍 언어인 R을
위한 특화된 통합개발환경을 제공한다. RStudio는 R 언어 특성에 맞춰진
다양한 기능과 도구를 통합하여, 데이터 과학자와 연구자들이 데이터 분석,
시각화, 모형개발 작업을 보다 효율적으로 수행할 수 있도록 개발되었다.
RStudio에서 코드 작성, 편집 및 실행을 보다 빠르고 효율적으로 수행하기
위해 많이 사용되는 단축키는 다음과 같다.
::: {.content-visible when-format="pdf"}
| 단축키 | 윈도우 | 맥 |
|:---------------------:|:-------------------:|:--------------------------:|
| 마지막 명령어 | ↑ | ↑ |
| 마지막 매칭 명령어 | 컨트롤 + ↑ | 커맨드 + ↑ |
| 자동 탭완성 | | 탭 |
| | **실행** | |
| 선택영역 실행 | 컨트롤 + 엔터 | 커맨드 + 엔터 |
| Source | 컨트롤 + 쉬프트 + S | 커맨드 + 쉬프트 + S |
| Source + 메아리(Echo) | 컨트롤 + 쉬프트 + 엔터 | 커맨드 + 쉬프트 + 엔터 |
| | **화면 전환** | |
| 코딩 패널창 전환 | 컨트롤 + 1 | 컨트롤 + 1 |
| 콘솔 패널창 전환 | 컨트롤 + 2 | 컨트롤 + 2 |
| | **코딩 단축키** | |
| `<-` | 알트 + - | 옵션 + - |
| `%>%` | 컨트롤 + 쉬프트 + M | 커맨드 + 옵션 + M |
| 주석처리 | 컨트롤 + 쉬프트 + C | 컨트롤 + 옵션 + C |
| 주석제거 | 컨트롤 + 쉬프트 + / | 컨트롤 + 옵션 + / |
| 실행취소 | 컨트롤 + Z | 커맨드 + Z |
| 다시 실행 | 컨트롤 + 쉬프트 + Z | 커맨드 + 쉬프트 + Z |
| 단축키 참조 | 알트 + 쉬프트 + Z | 옵션 + 쉬프트 + Z |
| 다중커서 | 컨트롤 +알트 + ↑ | 컨트롤 + 옵션 + ↑ |
| | 컨트롤 +알트 + ↓ | 컨트롤 + 옵션 + ↓ |
| | 컨트롤 +알트 + 클릭 | 컨트롤 + 옵션 + 클릭 |
| | **찾기 및 바꾸기** | |
| 줄 찾아가기 | 쉬프트 + 알트 + G | 커맨드 + 쉬프트 + 옵션 + G |
| 찾기 바꾸기 | 컨트롤 + F | 커맨드 + F |
| 파일에서 찾기 | 컨트롤 + 쉬프트 + F | 커맨드 + 쉬프트 + F |
| 모두 접기 | 알트 + O | 커맨드 + 옵션 + O |
| 모두 펴기 | 알트 + 쉬프트 + O | 커맨드 + 옵션 + 쉬프트 + O |
: RStudio에서 자주 사용되는 단축키 {#tbl-rstudio-shortcut}
:::
::: {.content-visible when-format="html"}
| 단축키 | 윈도우 | 맥 |
|:---------------------:|:----------------------------:|:-------------:|
| 마지막 명령어 | ↑ | ↑ |
| 마지막 매칭 명령어 | \^ + ↑ | ⌘ + ↑ |
| 자동 탭완성 | ↹ | ↹ |
| | ---- **실행** ---- | |
| 선택영역 실행 | \^ + ⏎ | ⌘ + ⏎ |
| Source | \^ + ⇧ + S | ⌘ + ⇧ + S |
| Source + 메아리(Echo) | \^ + ⇧ + ⏎ | ⌘ + ⇧ + ⏎ |
| | ---- **화면 전환** ---- | |
| 코딩 패널창 전환 | \^ + 1 | \^ + 1 |
| 콘솔 패널창 전환 | \^ + 2 | \^ + 2 |
| | ---- **코딩 단축키** ---- | |
| `<-` | ⎇ + - | ⌥ + - |
| `%>%` | \^ + ⇧ + M | ⌘ + ⌥ + M |
| 주석처리 | \^ + ⇧ + C | \^ + ⌥ + C |
| 주석제거 | \^ + ⇧ + / | \^ + ⌥ + / |
| 실행취소 | \^ + Z | ⌘ + Z |
| 다시 실행 | \^ + ⇧ + Z | ⌘ + ⇧ + Z |
| 단축키 참조 | ⎇ + ⇧ + Z | ⌥ + ⇧ + Z |
| 다중커서 | \^ +⎇ + ↑ | \^ + ⌥ + ↑ |
| | \^ +⎇ + ↓ | \^ + ⌥ + ↓ |
| | \^ +⎇ + 클릭 | \^ + ⌥ + 클릭 |
| | ---- **찾기 및 바꾸기** ---- | |
| 줄 찾아가기 | ⇧ + ⎇ + G | ⌘ + ⇧ + ⌥ + G |
| 찾기 바꾸기 | \^ + F | ⌘ + F |
| 파일에서 찾기 | \^ + ⇧ + F | ⌘ + ⇧ + F |
| 모두 접기 | ⎇ + O | ⌘ + ⌥ + O |
| 모두 펴기 | ⎇ + ⇧ + O | ⌘ + ⌥ + ⇧ + O |
: RStudio에서 자주 사용되는 단축키 {#tbl-rstudio-shortcut}
:::
## 프로그래밍 언어
{{< latex >}}, `Sweave`, R마크다운을 사용한 경험이 있다면 재현가능하고
추적가능한 과학기술 문서 제작의 장점을 경험했을 것이다. 쿼토는 문서 저작으로 마크다운과
{{< latex >}}, 프로그래밍 언어로 R 언어 뿐만 아니라 파이썬,
자바스크립트(OJS), 줄리아(Julia), SQL, Tikz/mermaid 언어도 지원한다.
\index{프로그래밍 언어} \index{R} \index{파이썬} \index{자바스크립트} \index{줄리아} \index{SQL} \index{Tikz} \index{mermaid}
### R 언어
R 언어를 공식 웹사이트인 [CRAN](https://cran.r-project.org/)에서
사용하는 운영 체제에 맞는 R 버전을 선택하여 다운로드 받는다.
@fig-install-r 처럼 설치과정은 기본 옵션을 따르며, 필요에 따라 추가
옵션을 조정할 수 있다. 설치가 완료되면 R 언어만 사용할 수 있고, R 언어
전용 편집기 RStudio를 설치하고 엔진으로 방금 설치한 R 언어를 선택하면
수월하게 R 프로그래밍을 시작할 수 있다.
![R 설치 과정](images/install_r.png){#fig-install-r width="100%"}
### 파이썬
파이썬을 설치하는 과정은 먼저 [파이썬 공식
웹사이트](https://www.python.org/)에 접속해 운영 체제에 맞는 파이썬 설치
파일을 다운로드한다. 파이썬 버전은 RStudio에서 `reticulate`를 통해
검증된 **파이썬 3.11 버전** 사용을 권장한다. 다운로드한 설치 파일을
실행한 후, 설치 과정에서 'Add Python to PATH' 옵션을 선택하는 것이 좋다.
안내에 따라 설치를 진행하면 설치를 완료할 수 있다.
![파이썬 설치 과정](images/install_python.png){#fig-install-python}
파이썬을 설치한 이유는 파이썬 프로그래밍 언어로 작업한 결과물을 문서에
자동으로 넣고 재현가능하고 추적가능한 과학기술 문서를 만들기 위함이다.
RStudio에서 파이썬 코드를 사용하려면 코드 덩어리(code chunk)에 파이썬
코드를 작성하다. 작성된 코드를 컴파일 시키기 위해서
다음과 같이 설치한 파이썬을 `Python Interpreter`에 지정한다.
바닐라 파이썬 뿐만 아니라 가상환경에서 파이썬, 콘다 환경에서 파이썬을
지정할 수도 있다.
> `Tools -> Global Options -> Python -> Python Interpreter`
![파이썬 RStudio
연결](images/install_python_rstudio.png){#fig-install-python-rstudio}
파이썬 프로그램이 제대로 실행되는지 쿼토 문서(`.qmd`)를 하나 만들어
다음과 같은 파이썬 코드 덩어리를 넣고 실행해본다.
::: columns
::: column
### 파이썬 코드 덩어리 {.unnumbered}
```{{python}}
print("Hello, 파이썬!")
```
:::
::: column
### 실행 결과 {.unnumbered}
```{python}
#| echo: false
print("Hello, 파이썬!")
```
:::
:::
## {{< latex >}} 설치
라텍({{< latex >}}) 설치와 사용은 처음에는 다소 복잡하게 느껴질 수
있다. 일반적으로 {{< latex >}} 배포판(예: TeX Live, MiKTeX)을 설치한 뒤,
{{< latex >}} 전용 편집기(예: TeXShop, TeXworks)를 선택하여 작업환경을 구성한다.
설치가 완료되면, `.tex` 파일을 생성하고 {{< latex >}} 명령을 통해 PDF 문서를
컴파일한다. \index{latex@\LaTeX}
환경변수 설정, 패키지 관리, 글꼴 설정 등 세부적인 환경설정이 필요하다.
특히 한글 문서를 처리할 경우에는 `ko.TeX`나 `CTeX`와 같은 한글을
지원하는 패키지를 별도로 설치하고 한글 글꼴도 설정해야 한다.
`TinyTeX`은 `TeX Live`를 기반으로 한 경량, 이식성 좋고, 사용하기 쉬운
{{< latex >}} 배포판으로 {{< latex >}} 설치와 관련된 일반적인 불편함을
해결하기 위해 만들어졌고, 특히 "이휘 쉬에(Yihui Xie)"가 개발하여
R과 R 마크다운 통합이 잘 되어 있는 것으로 평가된다.
다른 {{< latex >}} 배포판들이 수 기가바이트(GB)의 크기를 갖지만,
`TinyTeX`은 설치 크기가 작고 간단한 설치 과정을 제공으로
쉽지만 미려한 문서를 원하는 사용자들에게 인기가 많다.
특히, R과의 통합도 잘 이루어져 있어, {{< latex >}} 문서를 컴파일할 때
누락된 {{< latex >}} 패키지도 자동으로 설치해주는 기능이 많은
사랑을 받고 있다.
보통 Tex Live에 기반을 둔 `tinytex` 를 사용하는데 한글을 사용하는
입장에서는 `kotex`를 설치하는 방법도 모색이 필요하다. 유니코드 문자를
처리하기 위해서 `xelatex`을 쿼토 {{< latex >}} 기본엔진으로 지정하면 `xelatex`을
통해 CJK 문자가 포함된 PDF 파일 제작이 가능하다.
쿼토를 설치하면 `quarto install tinytex` 명령어로 `TinyTeX`을 쉽게
설치할 수 있고, 설치 정보는 `quarto tools info tinytex` 명령어로 파악이
가능하다.
``` bash
$ quarto install tinytex
Installing tinytex
[✓] Downloading TinyTex v2023.09
[✓] Unzipping TinyTeX-v2023.09.tar.gz
[✓] Moving files
[✓] Verifying tlgpg support
[✓] Default Repository: https://mirrors.rit.edu/CTAN/systems/texlive/tlnet/
Installation successful
$ quarto tools info tinytex
{
"name": "TinyTeX",
"installed": true,
"version": "v2023.09",
"directory": "/home/statkclee/.TinyTeX",
"bin-directory": "/home/statkclee/.TinyTeX/bin/x86_64-linux",
"configuration": {
"status": "ok"
}
}
```
`kotex` 패키지 주요 장점 중 하나는 한글 관련 문제를 해결할 수 있는
다양한 {{< latex >}} 패키지와 기본 한글 글꼴을 내장하고 있어 한글 문서 작성이
훨씬 편리하다. 하지만, `tinytex`를 기본 {{< latex >}} 엔진으로 사용할 경우,
누락된 패키지로 인해 추가 작업이 어려울 수 있다. 이러한 문제를 해결하기
위해 `tinytex::parse_install()` 함수를 사용하면, 오류가 발생한 텍스트를
붙여넣을 때 자동으로 필요한 패키지를 설치해 준다. 설치과정에서 오류
사항이 담긴 `.log` 파일을 `tinytex::parse_install()` 함수에 인자로
넣어주면, 자동으로 필요한 패키지를 설치해 준다.
```{r}
#| eval = FALSE
# log 파일이 hello_world.log
tinytex::parse_install("hello_world.log")
tinytex::parse_install(
text = "! LaTeX Error: File `titlepic.sty' not found."
)
```
::: callout-note
### `tinytex` 설치
윈도우 환경에서 쿼토로 PDF 파일 생성할 때 다음과 같은 오류가 발생하여
로그에 기록될 경우 `tinytex` R 패키지를 설치하고
`tinytex::install_tinytex()` 명령어로 `tinytex`를 다시 설치한다.
``` bash
running xelatex - 1
No TeX installation was detected.
Please run 'quarto install tinytex' to install TinyTex.
If you prefer, you may install TexLive or another TeX distribution.
```
:::
## 부조종사
RStudio에서 GitHub 부조종사(Copilot) 기능을 활용할 수 있도록 저자를
포함하여 수많은 개발자들이 요청하여 2021년 11월 28일 최초 등록된
[이슈(`#10148`)](https://github.com/rstudio/rstudio/issues/10148)가
2023년 7월 18일 베타버전으로 Rstudio [일일 빌드 (Daily
Builds)](https://dailies.rstudio.com/)를 통해 첫 공개되었다. [GitHub
부조종사(Copilot)](https://github.com/features/copilot)를 Rstudio에서
사용하기 위해서는 특별한 버전 Rstudio, 즉 [일일 빌드 (Daily
Builds)](https://dailies.rstudio.com/)가 필요하였으나 현재는 각자
운영체제에 맞는 RStudio 데스크톱 버전을 다운로드한 후 설치하게 되면
기본적으로 부조종사 기능을 사용할 수 있다. 기본적으로 [GitHub
부조종사](https://github.com/features/copilot/) 기능은 구독서비스로 매월
일정액(\$10)을 지불해야 사용할 수 있다.
> `Tools -> Global Options -> Copilot -> Enable Github Copilot`
최신 RStudio 설치가 완료되면 Rstudio를 실행하고 상단 메뉴에서 'Tools'를 선택한 다음
'Global Options'을 클릭한다. 왼쪽 사이드바에서 'Copilot'을 선택하고
'Enable GitHub Copilot' 체크박스를 선택한 다음 'Sign In'을 클릭하고
나타나는 링크에서 인증 코드를 입력한다. 'Authorize Github Copilot
Plugin'을 클릭하여 인증 과정을 완료하면 설정이 완료된다.
![GitHub 부주종사 설치과정](images/rstudio_copilot.jpg){#fig-copilot}
GitHub Copilot를 Rstudio에서 사용해보면, 작성하려는 유령 텍스트(Ghost Text)가
회색으로 예측되어 나타난다. 보통, `#` 주석에 프롬프트를 작성하거나
코드나 텍스트 작성과정에 나타나는 유령 텍스트를 'Tab' 키를 눌러 탭완성(Tab Completion)
기능으로 제시된 코드를 수락하며 개발을 이어 나간다.
## 출판배포 플랫폼
마지막으로 저작물이 PDF가 아닌 웹사이트/블로그, 대쉬보드, 웹앱, API인 경우
출판배포 플랫폼에 회원가입하고 저작물을 공유하거나 출판한다.
데이터 과학 분야에서 산출물을 공유하고 출판하는 것은 매우 중요한 단계로
효과적인 출판과 비용적인 면을 고려하여 최적 플랫폼과 도구를 선정한다.
데이터 과학 분야를 개척한 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/) 등이 있다.
\index{RPubs} \index{Quarto Pub} \index{Netlify} \index{GitHub Pages}
![쿼토 출판배포 플랫폼](images/quarto-publishing.png){#fig-quarto-publishing
fig-align="center" width="450"}
## 연습문제 {.unnumbered}
### 객관식 {.unnumbered}
1. 쿼토 환경설정을 위해 필요한 첫번째 단계는 무엇인가요?
a) 텍스트 편집기 설치
b) 쿼토 CLI 다운로드
c) 쿼토 설치 경로 설정
d) IDE 선택
::: {.content-visible when-format="revealjs"}
정답: b) 쿼토 CLI 다운로드
설명: 쿼토 환경설정의 첫 단계는 쿼토 CLI를 공식 웹사이트에서 다운로드하는 것입니다.
:::
2. RStudio IDE의 주요 특징 중 하나는 무엇인가요?
a) 단순한 텍스트 편집 기능만 제공
b) 데이터 과학을 위한 다양한 기능과 도구 제공
c) 오직 R 언어만 지원
d) 복잡한 설치 과정 필요
::: {.content-visible when-format="revealjs"}
정답: b) 데이터 과학을 위한 다양한 기능과 도구 제공
설명: RStudio IDE는 데이터 과학을 위한 다양한 기능과 도구를 제공하여 효율적인 작업 환경을 지원합니다.
:::
3. 쿼토 프로젝트를 시작할 때 가장 먼저 수행해야 하는 단계는 무엇인가요?
a) 문서 형식 결정
b) 필요한 라이브러리 설치
c) 텍스트 편집기 설정
d) 쿼토 프로젝트 디렉토리 생성
::: {.content-visible when-format="revealjs"}
정답: d) 쿼토 프로젝트 디렉토리 생성
설명: 쿼토 프로젝트를 시작하기 위해서는 먼저 쿼토 프로젝트 디렉토리를 생성하는 것이 필수적입니다. 이는 프로젝트의 구조를 정의하고 관리하는 기본 단위가 됩니다.
:::
### 서술형 {.unnumbered}
1. 쿼토 환경 설정에서 중요한 역할을 하는 쿼토 CLI의 기능에 대해 설명해보세요.
::: {.content-visible when-format="revealjs"}
정답 및 설명: 쿼토 CLI는 쿼토를 실행하고 관리하는 데 사용되는 명령줄 인터페이스 도구입니다. 이를 통해 사용자는 쿼토 프로젝트를 생성, 구성 및 빌드할 수 있으며, 다양한 출력 형식으로 문서를 변환할 수 있습니다.
:::
2. RStudio IDE가 데이터 과학자들에게 인기 있는 이유는 무엇인가요?
::: {.content-visible when-format="revealjs"}
정답 및 설명: RStudio IDE는 데이터 과학자들에게 R 언어에 최적화된 통합 개발 환경을 제공합니다. 이를 통해 데이터 분석, 시각화 및 모형 개발 작업을 효율적으로 수행할 수 있으며, 다양한 플러그인과 통합 도구를 통해 작업의 생산성과 편의성을 높일 수 있습니다.
:::