๋ฒˆํ˜ธ : 038, ์ž‘์„ฑ์ผ์ž: 2024-09-30

2024.09.19 ~ 2024.09.29

๐ŸŒŽย Ignite


๐Ÿ”—ย Ignite๋Š” Swift ๊ฐœ๋ฐœ์ž๋“ค์ด Static Website๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ๋„์›€์„ ์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

์ €๋Š” ์ฃผ๊ฐ„ํšŒ๊ณ ๋ก๋ธ”๋กœ๊ทธ๋ฅผ ๋™์ผํ•œ ๊ธฐ๋Šฅ์ธ ๐Ÿ”—ย Publish ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ด€๋ฆฌ์ค‘์ด์˜€์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ Publish๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ปค์Šคํ…€์„ ์ž์œ ๋กญ๊ฒŒ ํ•˜๊ธฐ์—๋Š” HTML, CSS ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ง€์‹์ด ํ•„์š”ํ•˜์ง€๋งŒ Ignite๋Š” SwiftUIํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•ด์„œ ๋งค์šฐ ๊ฐ„ํŽธํ•˜๊ณ  ์ง๊ด€์ ์ด์—ฌ์„œ ๋ณ€๊ฒฝ์„ ๊ฒฐ์‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

Ignite์˜ ์‚ฌ์šฉ๋ฒ•์€ ๊ฐ„๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. CLI๋ฅผ ์„ค์น˜ํ•œ ํ›„ ๐Ÿ”—ย Sample Site๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ฃผ์–ด์ง„ Component๋“ค์„ ์กฐํ•ฉํ•˜์—ฌ UI๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Package๋ฅผ ๋นŒ๋“œํ•˜๊ฒŒ ๋˜๋ฉด Build ํด๋”๊ฐ€ ์ƒ์„ฑ๋˜๋Š”๋ฐ ํ•ด๋‹น ํด๋”๋‚ด๋ถ€์˜ ํŒŒ์ผ๋“ค์„ ๋ฐฐํฌํ•˜๋ฉด Static Website๊ฐ€ ์™„์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ €๋Š” ๋”ฐ๋กœ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“  ํ›„ Github action์„ ์‚ฌ์šฉํ•˜์—ฌ github.io ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ Build ํด๋” ๋‚ด๋ถ€ํŒŒ์ผ๋“ค์„ ์ „๋‹ฌํ•˜๋„๋ก ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

Ignite์—๋Š” ContentPreview๋ผ๋Š” Component๋ฅผ ์ œ๊ณต ์ค‘์ธ๋ฐ ์ปค์Šคํ…€์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์„œ ์ปค์Šคํ…€์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํด๋กœ์ €๋ฅผ ์ „๋‹ฌ๋ฐ›๋„๋ก ์˜คํ”ˆ์†Œ์Šค๋ฅผ ์ˆ˜์ •ํ–ˆ๋Š”๋ฐ PR ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›๊ณ  ์ˆ˜์ •์ž๋กœ ์ „๋‹ฌ๋ฐ›๋„๋ก ๊ตฌํ˜„๋ฐฉ์‹์„ ์ œ์•ˆ๋ฐ›์•„์„œ ์žฌ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”ย Github Token ์—ฌ๋Ÿฌ ๊ณ„์ •๊ด€๋ฆฌ


๐Ÿ”—ย Github Docs - ์—ฌ๋Ÿฌ ๊ณ„์ •๊ด€๋ฆฌ

ํ•˜๋‚˜์˜ ๊ธฐ๊ธฐ์—์„œ Github์˜ ์—ฌ๋Ÿฌ ๊ณ„์ •์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” HTTPS ๋ฐฉ์‹์—์„œ ๋”ฐ๋กœ ์ฒ˜๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ๋ฉ๋‹ˆ๋‹ค.

HTTPS ๋ฐฉ์‹์—์„œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ณ„๋กœ Github Token์„ ์ธ์ฆ๋ฐ›๋„๋กํ•˜๋ฉด ๊ณ„์ •๋ณ„๋กœ๊ฐ€ ์•„๋‹Œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ณ„๋กœ ์ธ์ฆ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๊ฒฐ๋˜์ง€๋งŒ ํ‚ค์ฒด์ธ์— ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์Œ“์ด๊ฒŒ ๋˜๊ณ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ณ„๋กœ ๋งค๋ฒˆ ์ธ์ฆํ•ด์•ผํ•ด์„œ ๋ฒˆ๊ฑฐ๋กญ๊ธฐ ๋•Œ๋ฌธ์— SSH๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋‚˜์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

HTTPS ๋ฐฉ์‹ ์—ฌ๋Ÿฌ ๊ณ„์ • ๊ด€๋ฆฌ

$ git config --get credential.helper

# Enter
$ git credential-osxkeychain erase
host=github.com
protocol=https

$ git config --global credential.https://github.com.useHttpPath true

SSH ๋ฐฉ์‹ ์—ฌ๋Ÿฌ ๊ณ„์ • ๊ด€๋ฆฌ

# ๊ฐ ๊ณ„์ •๋งˆ๋‹ค SSH ํ‚ค ์ƒ์„ฑ
$ ssh-keygen -t ed25519 -C "your_email@example.com"

# SSH์„ค์ •ํŒŒ์ผ ์ž‘์„ฑ 
$ ~/.ssh/config

#############
Host github-personal
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_personal

Host github-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_work
#############

# ๊ฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋งˆ๋‹ค ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ก 
git clone git@github-personal:username/repo.git
git clone git@github-work:username/repo.git

๐Ÿ™‹๐Ÿปโ€โ™‚๏ธ ๊ธฐํƒ€ ์‚ฌํ•ญ


  1. macOS Sequoia 15, Xcode 16์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ•œ ํ›„ ์— HandyJSON์ด ๋นŒ๋“œ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ด์Šˆ๋ฅผ ์ˆ˜์ •ํ•œ branch๊ฐ€ ์žˆ์–ด์„œ ํ•ด๋‹น branch๋กœ SwiftPM์— ์ถ”๊ฐ€ํ•˜๋ฉด ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
  2. Xcode 16์—์„œ code completion์ด ๊ฐ•ํ™”๋˜์—ˆ๋Š”๋ฐ ์ œ์‹œ๋œ ์ฝ”๋“œ์ œ์•ˆ์„ ์ž‘์„ฑํ•˜๋ ค๋ฉด Tap๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  3. Facebook Login SDK์— ๋Œ€ํ•œ Reject์„ ๋ฐ›์•˜๋Š”๋ฐ ๋งค๋ฒˆ ๋Š๋ผ์ง€๋งŒ Facebook์— ๋Œ€ํ•œ ํ•ด๊ฒฐํŒ์€ ์ผ๋‹จ ์—ฌ๋Ÿฌ๋ฒˆ ์ œ์ถœํ•ด์•ผ ์ž์„ธํ•œ ์ด์œ ๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.