๋ผ์ฆ๋ฒ ๋ฆฌ PI 3 ๋ชจ๋ธ B+
์ด ํํ ๋ฆฌ์ผ์์๋ Raspberry Pi์์ Swift๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ์ฌํญ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. Raspberry Pi๋ ์ปดํจํ ๋ฆฌ์์ค์ ์ํด์๋ง ์ ์ฌ๋ ฅ์ด ์ ํ๋๋ ์๊ณ ์ ๋ ดํ ๋จ์ผ ๋ณด๋ ์ปดํจํฐ์ ๋๋ค. ๊ธฐ์ ์ ๋ฌธ๊ฐ์ DIY ์ ํธ๊ฐ๋ค ์ฌ์ด์์ ์ ์๋ ค์ ธ ์์ต๋๋ค. ์ด๋ ์์ด๋์ด๋ฅผ ์คํํ๊ฑฐ๋ ์ค์ ๋ก ํน์ ๊ฐ๋ ์ ํ ์คํธํด์ผ ํ๋ ์ฌ๋๋ค์๊ฒ ํ๋ฅญํ ์ฅ์น์ ๋๋ค. ๊ด๋ฒ์ํ ํ๋ก์ ํธ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๊ฑฐ์ โโ๋ชจ๋ ๊ณณ์ ์ฝ๊ฒ ๋ง์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ชจ๋ํฐ ๋ฎ๊ฐ์ ์ฅ์ฐฉํ์ฌ ๋ฐ์คํฌํ์ผ๋ก ์ฌ์ฉํ๊ฑฐ๋ ๋ธ๋ ๋๋ณด๋์ ์ฐ๊ฒฐํ์ฌ ์ ์ ํ๋ก๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค.
Malinka์ ๊ณต์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ Python์
๋๋ค. Python์ ์ฌ์ฉํ๊ธฐ ๋งค์ฐ ์ฝ์ง๋ง ์ ํ ์์ ์ฑ์ด ๋ถ์กฑํ๊ณ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋นํฉ๋๋ค. ๋ฐ๋ฉด Swift์๋ ARC ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ด ์์ผ๋ฉฐ Python๋ณด๋ค ๊ฑฐ์ 8๋ฐฐ ๋น ๋ฆ
๋๋ค. ๊ธ์, Raspberry Pi ํ๋ก์ธ์์ RAM ์ฉ๋๊ณผ ์ปดํจํ
๊ธฐ๋ฅ์ ์ ํ๋์ด ์์ผ๋ฏ๋ก Swift์ ๊ฐ์ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ๋ฏธ๋ PC ํ๋์จ์ด์ ์ ์ฌ๋ ฅ์ ๊ทน๋ํํ ์ ์์ต๋๋ค.
OS ์ค์น
Swift๋ฅผ ์ค์นํ๊ธฐ ์ ์ OS๋ฅผ ์ ํํด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒํ๋ ค๋ฉด ๋ค์์ ์ํํ์ญ์์ค.
- ์ต์ ๋ฒ์ ์ Raspbian OS๋ฅผ ๋ค์ด๋ก๋ํ์ธ์.
๋ฐ๋ผ์ . ๋์คํฌ ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ SD ์นด๋๋ฅผ FAT๋ก ํฌ๋งทํ์ธ์. .- ์ฐ๋ฆฌ๋ ์ฌ์ฉ
๋ฐฉ๊ธ๋ผ ํฌ๋งท๋ ์นด๋์ ์ ๋ก๋ํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค.
XNUMX๋จ๊ณ: MS-DOS(FAT)์์ SD ์นด๋ ํฌ๋งท
XNUMX๋จ๊ณ: balenaEtcher๋ฅผ ์ฌ์ฉํ์ฌ Raspbian์ ์นด๋์ ์ฑ์๋๋ค.
์ด๋ณด์๋ฅผ ์ํ ๋ฌด๋ฃ ๊ธฐ๊ณ ํ์ต ์ง์ค ๊ณผ์ ์ ๊ถ์ฅํฉ๋๋ค.
XNUMX์ผ ๋ง์ ์ฒซ ๋ฒ์งธ ๊ธฐ๊ณ ํ์ต ๋ชจ๋ธ์ ์์ฑํฉ๋๋ค. โ 2์ 4~XNUMX์ผ. ๋จธ์ ๋ฌ๋์ด ๋ฌด์์ธ์ง ์ดํดํ๊ณ ์ธํฐ๋ท์ ๊ณต๊ฐ ๋ฐ์ดํฐ๋ก ์์ ํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์๋ ๋ฌด๋ฃ ์ง์ค ๊ณผ์ ์ ๋๋ค. ๋ํ ์์ฒด ๊ฐ๋ฐํ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ๋ฌ๋ฌ ํ์จ์ ์์ธกํ๋ ๋ฐฉ๋ฒ๋ ํ์ตํฉ๋๋ค..
๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด ์ค์
๋ฒ์จ ์ ๋ฐ ์์ด์! ์ด์ ์ฌ์ฉํ OS๊ฐ ํฌํจ๋ SD ์นด๋๊ฐ ์์ง๋ง ์ด์ ์ฒด์ ๋ ์์ง ์ค์น๋์ง ์์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ ๊ฐ์ง ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
- ์ฅ์น์ ์ฐ๊ฒฐ๋ ๋ชจ๋ํฐ, ํค๋ณด๋, ๋ง์ฐ์ค๋ฅผ ์ฌ์ฉํ์ญ์์ค.
- SSH๋ฅผ ํตํด ๋๋ USB ์ฝ์ ์ผ์ด๋ธ์ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ PC์์ ๋ชจ๋ ์์ ์ ์ํํ์ธ์.
Pi๋ฅผ ์ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ต์ #1์ ๊ถ์ฅํฉ๋๋ค. Raspbian OS SD ์นด๋๊ฐ Pi์ ์ฝ์ ๋๋ฉด HDMI ์ผ์ด๋ธ, ๋ง์ฐ์ค, ํค๋ณด๋ ๋ฐ ์ ์ ์ผ์ด๋ธ์ ์ฐ๊ฒฐํฉ๋๋ค.
Pi๊ฐ ์ผ์ง๋ฉด ๋ถํ ๋์ด์ผ ํฉ๋๋ค. ์ถํํด์! ์ด์ ๋ฐ์คํฌํ๊ณผ ๊ทธ ๊ธฐ๋ฅ์ ๋ํด ์์๋ณด๋ ๋ฐ ์ฝ๊ฐ์ ์๊ฐ์ ํ ์ ํ ์ ์์ต๋๋ค.
์ค์ํํธ ์ค์น
Raspberry์ Swift๋ฅผ ์ค์นํ๋ ค๋ฉด ์ด๋ฅผ ์ธํฐ๋ท์ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค(๋ณด๋ ๋ชจ๋ธ์ ๋ฐ๋ผ ์ด๋๋ท ๋๋ WiFi ์ฌ์ฉ). ์ธํฐ๋ท์ด ์ฐ๊ฒฐ๋๋ฉด Swift ์ค์น๋ฅผ ์์ํ ์ ์์ต๋๋ค.
๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ํํ ์ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ -
์ด๋ Linux ์ฅ์น์ฉ ์ฑ ๋ฐ ํจํค์ง๋ฅผ ์ํ App Store์ ๊ฐ์ ์ผ์ข
์ ๋ช
๋ น์ค ๋๊ตฌ์
๋๋ค. ํฐ๋ฏธ๋์ apt-get์ ์
๋ ฅํ์ฌ apt ์์
์ ์์ํฉ๋๋ค. ๋ค์์ผ๋ก ์ํ ์ค์ธ ์์
์ ๋ช
ํํ ํ๋ ์ฌ๋ฌ ๋ช
๋ น์ ์ง์ ํด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ์๋ Swift 5.0.2๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค. ํด๋น ํจํค์ง๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์, ์์ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด์ apt๋ฅผ ์ฌ์ฉํ์ฌ Swift๋ฅผ ์ค์นํ ๊ฒ์์ ์์์ผ๋ฏ๋ก ๋ฆฌํฌ์งํ ๋ฆฌ ๋ชฉ๋ก์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
์ ์ฅ์ ๋ช
๋ น ์ถ๊ฐ/์ค์น
curl -s <https://packagecloud.io/install/repositories/swift-arm/release/script.deb.sh> | sudo bash
๋ค์์ผ๋ก ์ถ๊ฐ๋ ์ ์ฅ์์์ Swift๋ฅผ ์ค์นํฉ๋๋ค.
sudo apt-get install swift5=5.0.2-v0.4
๊ทธ๊ฒ ๋ค์ผ! ์ด์ Swift๊ฐ Raspberry์ ์ค์น๋์์ต๋๋ค.
ํ ์คํธ ํ๋ก์ ํธ ์์ฑ
์๊ฐ์์,
๋จผ์ MyFirstProject๋ผ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค.
mkdir MyFirstProject
๋ค์์ผ๋ก ํ์ฌ ์์
๋๋ ํฐ๋ฆฌ๋ฅผ ์๋ก ์์ฑ๋ MyFirstProject๋ก ๋ณ๊ฒฝํฉ๋๋ค.
cd MyFirstProject
์๋ก์ด ์คํ ๊ฐ๋ฅํ Swift ํจํค์ง๋ฅผ ๋ง๋ญ๋๋ค.
swift package init --type=executable
์ด ์ธ ์ค์ MyFirstProject๋ผ๋ ๋น Swift ํจํค์ง๋ฅผ ์์ฑํฉ๋๋ค. ์คํํ๋ ค๋ฉด Swift ์คํ ๋ช
๋ น์ ์
๋ ฅํ์ธ์.
์ปดํ์ผ์ด ์๋ฃ๋๋ฉด "Hello, world!"๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ํ์๋ฉ๋๋ค. ๋ช
๋ น์ค์์.
์ด์ ์ฒซ ๋ฒ์งธ Pi ํ๋ก๊ทธ๋จ์ ๋ง๋ค์์ผ๋ฏ๋ก ๋ช ๊ฐ์ง ์ฌํญ์ ๋ณ๊ฒฝํด ๋ณด๊ฒ ์ต๋๋ค. MyFirstProject ๋๋ ํฐ๋ฆฌ์์ main.swift ํ์ผ์ ๋ณ๊ฒฝํด ๋ณด๊ฒ ์ต๋๋ค. ์ฌ๊ธฐ์๋ Swift run ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ํจํค์ง๋ฅผ ์คํํ ๋ ์คํ๋๋ ์ฝ๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
๋๋ ํฐ๋ฆฌ๋ฅผ Sources/MyFirstProject๋ก ๋ณ๊ฒฝํฉ๋๋ค.
cd Sources/MyFirstProject
๋ด์ฅ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ main.swift ํ์ผ ํธ์งํ๊ธฐ
nano main.swift
ํธ์ง๊ธฐ๊ฐ ์ด๋ฆฌ๋ฉด ํ๋ก๊ทธ๋จ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. main.swift ํ์ผ์ ๋ด์ฉ์ ๋ค์์ผ๋ก ๋ฐ๊พธ๊ฒ ์ต๋๋ค:
print("Hello, Marc!")
๋ฌผ๋ก ์ด๋ฆ์ ๋ฃ์ด๋ ๋ฉ๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ๋ ค๋ฉด ๋ค์์ ์ํํด์ผ ํฉ๋๋ค.
- Ctrl+X๋ฅผ ๋๋ฌ ํ์ผ์ ์ ์ฅํฉ๋๋ค.
- โYโ๋ฅผ ๋๋ฌ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธํ์ธ์.
- Enter๋ฅผ ๋๋ฌ main.swift ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธํ์ธ์.
๋ชจ๋ ๋ณ๊ฒฝ์ด ์๋ฃ๋์์ผ๋ฏ๋ก ์ด์ ํ๋ก๊ทธ๋จ์ ๋ค์ ์์ํ ์ฐจ๋ก์
๋๋ค.
swift run
์ถํํด์! ์ฝ๋๊ฐ ์ปดํ์ผ๋๋ฉด ํฐ๋ฏธ๋์ ์์ ๋ ํ์ด ํ์๋์ด์ผ ํฉ๋๋ค.
์ด์ Swift๊ฐ ์ค์น๋์์ผ๋ฏ๋ก ํด์ผ ํ ์ผ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ LED, ์๋ณด, ๋ฆด๋ ์ด์ ๊ฐ์ ํ๋์จ์ด๋ฅผ ์ ์ดํ๋ ค๋ฉด Linux/ARM ๋ณด๋์ฉ ํ๋์จ์ด ํ๋ก์ ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Raspberry Pi์์ Swift๋ฅผ ์ฌ๋ฏธ์๊ฒ ์คํํด ๋ณด์ธ์!
์ถ์ฒ : habr.com