๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Python

[Colab] Colab & Jupyter์—์„œ !, %, %% Magic commands ์™„๋ฒฝ ์ •๋ฆฌ

by clolee 2025. 3. 24.

๐Ÿ“˜ Colab & Jupyter์—์„œ !, %, %% ํŠน์ˆ˜ ๋ช…๋ น์–ด Magic commands ์™„๋ฒฝ ์ •๋ฆฌ

โ”€ Shell ๋ช…๋ น์–ด์™€ Magic ๋ช…๋ น์–ด์˜ ์ฐจ์ด, ์‚ฌ์šฉ๋ฒ•, ์ „์ฒด ๋ฆฌ์ŠคํŠธ๊นŒ์ง€!

Colab์ด๋‚˜ Jupyter Notebook ํ™˜๊ฒฝ์—์„œ๋Š” ์ผ๋ฐ˜ Python ์ฝ”๋“œ ์™ธ์—๋„ !, %, %% ๊ฐ™์€ ํŠน์ˆ˜ ๊ธฐํ˜ธ๋ฅผ ํ†ตํ•ด
ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด๋‚˜ ์œ ํ‹ธ ๊ธฐ๋Šฅ์„ ๋ฐ”๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ.
ํ•˜์ง€๋งŒ ์ฒ˜์Œ ์“ฐ๋ฉด ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ถ€๋ถ„์ด ๋งŽ์Œ โ€” ํŠนํžˆ !cd์™€ %cd, !pip์™€ %pip์ฒ˜๋Ÿผ
๊ธฐ๋Šฅ์€ ๋น„์Šทํ•ด ๋ณด์ด๋Š”๋ฐ ๋™์ž‘ ๋ฐฉ์‹์ด ์™„์ „ํžˆ ๋‹ค๋ฅธ ๋ช…๋ น์–ด๋“ค์ด ์žˆ์Œ.

์ด ๊ธ€์—์„œ๋Š” ์ด ์„ธ ๊ฐ€์ง€ ๊ธฐํ˜ธ๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๊ณ , ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋ฉฐ,
์–ธ์ œ ์–ด๋–ค ๊ฑธ ์จ์•ผ ํ•˜๋Š”์ง€ ์ „์ฒด์ ์œผ๋กœ ์ •๋ฆฌํ•ด๋ด„.


โœ… 1. ! ๋ช…๋ น์–ด โ†’ Shell Command Operator (์‰˜ ๋ช…๋ น ์‹คํ–‰์ž)

๐Ÿ“Œ ์ •์˜

!๋Š” Python ์ฝ”๋“œ ์…€ ์•ˆ์—์„œ ๋ฆฌ๋ˆ…์Šค ์…ธ ๋ช…๋ น์–ด(Bash ๋ช…๋ น์–ด)๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐํ˜ธ์ž„.
Colab์€ Python ์ฝ”๋“œ ์‹คํ–‰ ํ™˜๊ฒฝ์ด์ง€๋งŒ, !๋ฅผ ๋ถ™์ด๋ฉด ํ•ด๋‹น ์ค„์„ ํ„ฐ๋ฏธ๋„์ฒ˜๋Ÿผ ํ•ด์„ํ•ด์„œ ์‹คํ–‰ํ•จ.

๐Ÿ“Œ ์‚ฌ์šฉ ์˜ˆ์‹œ


  
!pip install pandas # pip๋กœ ํŒจํ‚ค์ง€ ์„ค์น˜
!ls -al # ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ํŒŒ์ผ ๋ชฉ๋ก ๋ณด๊ธฐ
!nvidia-smi # GPU ์ƒํƒœ ํ™•์ธ
!wget http://example.com/file.csv # ์™ธ๋ถ€ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ

โœ… 2. %, %% ๋ช…๋ น์–ด โ†’ Magic Command (๋งค์ง ๋ช…๋ น์–ด)

๐Ÿ“Œ ์ •์˜

%์™€ %%๋Š” IPython์—์„œ ์ œ๊ณตํ•˜๋Š” ํŠน์ˆ˜ ๋ช…๋ น์–ด๋กœ, Python ํ™˜๊ฒฝ ๋‚ด์—์„œ
์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ธฐ๋Šฅ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ™•์žฅ ๊ธฐ๋Šฅ์ž„.

  • % โ†’ ํ•œ ์ค„์— ์ ์šฉํ•˜๋Š” ๋ผ์ธ ๋งค์ง(line magic)
  • %% โ†’ ์…€ ์ „์ฒด์— ์ ์šฉํ•˜๋Š” ์…€ ๋งค์ง(cell magic)

๐Ÿ” ! vs % ์ฐจ์ด์  ์ •๋ฆฌ

ํ•ญ๋ชฉ  ! (Shell ๋ช…๋ น์–ด)  %, %% (Magic ๋ช…๋ น์–ด)
๊ธฐ๋Šฅ ํ„ฐ๋ฏธ๋„ ๋ช…๋ น ์‹คํ–‰ IPython ๋‚ด๋ถ€ ๊ธฐ๋Šฅ ์‹คํ–‰
์†Œ์† ์‹œ์Šคํ…œ Bash ์…ธ IPython ํ™˜๊ฒฝ
์‹คํ–‰ ๋Œ€์ƒ ํŒŒ์ผ ์‹œ์Šคํ…œ, ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด Python ์„ธ์…˜ ๋˜๋Š” Jupyter ํŠนํ™” ๊ธฐ๋Šฅ
์ง€์†์„ฑ ์…€๋งˆ๋‹ค ์ƒˆ ์…ธ์—์„œ ์‹คํ–‰๋จ (์ผ์‹œ์ ) ์„ธ์…˜ ์ „์ฒด์— ์ ์šฉ๋จ (์˜์†์ )
์˜ˆ์‹œ !pip install, !ls %cd, %time, %%writefile

โ— %cd vs !cd โ€” ๊ฐ€์žฅ ํ—ท๊ฐˆ๋ฆฌ๋Š” ์ฐจ์ด

  • cd๋Š” ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด์ง€๋งŒ, !cd๋Š” ํšจ๊ณผ๊ฐ€ ์—†์Œ.
  • ์ด์œ ๋Š” !cd๊ฐ€ ์ž„์‹œ ์…ธ์—์„œ๋งŒ ๋””๋ ‰ํ† ๋ฆฌ ์ด๋™์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž„.
    ์…€์ด ๋๋‚˜๋ฉด ๋ฐ”๋กœ ์›๋ž˜ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋Œ์•„๊ฐ.
  • ๋ฐ˜๋ฉด %cd๋Š” ํ˜„์žฌ Python ์‹คํ–‰ ์„ธ์…˜์˜ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‹ค์ œ๋กœ ๋ณ€๊ฒฝํ•จ.

  
%cd /content/drive/ โœ… ๋””๋ ‰ํ† ๋ฆฌ ๋ณ€๊ฒฝ ์„ฑ๊ณต
!cd /content/drive/ โŒ ๋‹ค์Œ ์…€์—์„œ ๋ฐ˜์˜ ์•ˆ ๋จ

๐Ÿง™ ๋งค์ง ๋ช…๋ น์–ด ์ „์ฒด ๋ฆฌ์ŠคํŠธ ํ™•์ธํ•˜๊ธฐ


  
%lsmagic

์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ line magic๊ณผ cell magic ๋ช…๋ น์–ด ๋ชฉ๋ก์ด ์ถœ๋ ฅ๋จ.


๐Ÿ”น ์ž์ฃผ ์“ฐ๋Š” ๋ผ์ธ ๋งค์ง ๋ช…๋ น์–ด (%)

๋ช…๋ น์–ด  ๊ธฐ๋Šฅ  ์˜ˆ์‹œ
%cd ๋””๋ ‰ํ† ๋ฆฌ ์ด๋™ %cd /content/drive/
%pwd ํ˜„์žฌ ๊ฒฝ๋กœ ํ™•์ธ %pwd
%env ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • %env MY_VAR=value
%pip install pip๋กœ ํŒจํ‚ค์ง€ ์„ค์น˜ %pip install pandas
%time ์‹คํ–‰ ์‹œ๊ฐ„ ์ธก์ • (ํ•œ ์ค„) %time sum(range(10000))
%timeit ํ‰๊ท  ์‹คํ–‰ ์‹œ๊ฐ„ ์ธก์ • %timeit sum(range(10000))
%who ํ˜„์žฌ ๋ณ€์ˆ˜ ๋ชฉ๋ก ๋ณด๊ธฐ %who
%whos ๋ณ€์ˆ˜ ๋ชฉ๋ก + ํƒ€์ž…/๊ฐ’ ๋ณด๊ธฐ %whos
%reset ๋ณ€์ˆ˜ ์ „์ฒด ์‚ญ์ œ %reset

๐Ÿ”ธ ์ž์ฃผ ์“ฐ๋Š” ์…€ ๋งค์ง ๋ช…๋ น์–ด (%%)

๋ช…๋ น์–ด  ๊ธฐ๋Šฅ ์˜ˆ์‹œ
%%time ์…€ ์ „์ฒด ์‹คํ–‰ ์‹œ๊ฐ„ ์ธก์ • %%time + ์ฝ”๋“œ
%%bash ์…€ ์ „์ฒด๋ฅผ Bash๋กœ ์‹คํ–‰ %%bash + ์‰˜ ๋ช…๋ น
%%writefile ์…€ ๋‚ด์šฉ์„ ํŒŒ์ผ๋กœ ์ €์žฅ %%writefile hello.py
%%capture ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ณ€์ˆ˜์— ์ €์žฅ %%capture output
%%html ์…€ ๋‚ด์šฉ์„ HTML๋กœ ๋ Œ๋”๋ง %%html <h1>Hello</h1>

๐Ÿ“ฆ pip install์€ !pip vs %pip ์ค‘ ๋ญ๊ฐ€ ๋” ๋‚˜์€๊ฐ€?

  • Colab์ด๋‚˜ Jupyter์—์„œ๋Š” %pip install ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•จ.
  • !pip install๋„ ๋˜๊ธด ํ•˜์ง€๋งŒ, %pip๋Š” IPython์—์„œ ๋” ์ž˜ ํ†ตํ•ฉ๋˜๊ณ 
    ํ™˜๊ฒฝ ๊ด€๋ฆฌ ์ธก๋ฉด์—์„œ ๋” ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•จ.

  
%pip install numpy โœ… ๊ถŒ์žฅ ๋ฐฉ์‹
!pip install numpy ๐Ÿ”ธ ๊ฐ€๋Šฅ์€ ํ•˜์ง€๋งŒ ์„ธ์…˜ ์ถฉ๋Œ ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ

๐Ÿง  ์ตœ์ข… ์š”์•ฝ

๊ธฐํ˜ธ  ๋ช…์นญ  ๊ธฐ๋Šฅ  ์˜ˆ์‹œ
! ์‰˜ ๋ช…๋ น ์‹คํ–‰๊ธฐ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด ์‹คํ–‰ !ls, !pip install
% ๋ผ์ธ ๋งค์ง ํ•œ ์ค„ ํ™•์žฅ ๊ธฐ๋Šฅ ์‹คํ–‰ %cd, %time
%% ์…€ ๋งค์ง ์…€ ์ „์ฒด ํ™•์žฅ ๊ธฐ๋Šฅ ์‹คํ–‰ %%bash, %%time

 

๋Œ“๊ธ€