๐Ÿค”๐Ÿ—๏ธ ์‚ฝ์งˆ ๋…ธํŠธ svg ๋ฐฐํฌํ•˜๊ธฐ ๐Ÿšœ ๐Ÿ”จ๐Ÿ‘ท

๊ทธ๊ฑฐ์•„๋ƒยท2024๋…„ 9์›” 15์ผ
0

์‚ฝ์งˆ๋…ธํŠธ

๋ชฉ๋ก ๋ณด๊ธฐ
2/4
post-thumbnail

๋ฌธ์ œ์˜ ์‹œ์ž‘

๋‹น์‹œ ์ƒํ™ฉ

์กธ์ž‘์„ ์œ„ํ•ด์„œ ๊นƒํ—ˆ๋ธŒ ๋ฆฌ๋“œ๋ฏธ์— ๋„์šธ ๋™์ ์ธ ์ด๋ฏธ์ง€๊ฐ€ ํ•„์š”ํ•˜์˜€์Œ
svgํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๊ณ , ๋ฐฐํฌ์ฃผ์†Œ/badge/?name={username} ์„ ํ†ตํ•ด
์œ ์ €์ด๋ฆ„์„ ๋ฐ›์•„์˜ค๊ณ , api๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ๋ฐ›์•„ svg๋ฅผ ๋™์ ์„ ์ƒ์„ฑํ•ด์•ผํ•จ
ํ”„๋ก ํŠธ์—”๋“œ ๋‹ด๋‹น์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ์•กํŠธ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœํ•˜๊ณ ์ž ํ•˜์˜€์Œ

๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ฐพ์•„๋ณด๋‹ˆ ์•„๋ž˜์˜ 2๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋˜์—ˆ์Œ

![Badge](https://port-0-rankit-badge-node-m13a9z9a30079128.sel4.cloudtype.app/badge?name=User123.svg)
![Badge](https://port-0-rankit-badge-node-m13a9z9a30079128.sel4.cloudtype.app/badge?name=User123)

.svg๊ฐ€ ์‚ฌ์šฉ๋œ ๋ฐฉ๋ฒ•์€ ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ์ •์ ์ธ ์ด๋ฏธ์ง€๋ฅผ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด์„œ ๊ฐ€์ ธ์˜ด
.svg๊ฐ€ ์—†๋Š” ๋ถ€๋ถ„์€ ๋™์ ์œผ๋กœ ๋ณ€ํ™”ํ•˜๋Š”

<svg></svg>

ํƒœ๊ทธ์•ˆ์— ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด์คŒ ์•„๋ž˜์˜ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉ


์ด๋ฃจ๊ณ ์ž ํ–ˆ๋˜๋ฐ”

ํ•ด๋‹น ๋งํฌ๋กœ ๋งˆํฌ๋‹ค์šด์„ ํ†ตํ•ด ๋„์› ์„ ๋•Œ, ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋œ svg๊ฐ€ ํ‘œ์‹œ๋˜์–ด์•ผํ•จ
url์„ ํ†ตํ•ด username์„ ๋ฐ›์•„์˜ค๊ณ , api๋ฅผ ํ†ตํ•ด ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋ฐ›์•„์™€์„œ ๋„์›Œ์ฃผ๋Š”๋ฐ ์ด๊ฒƒ์„ ๋ฆฌ์•กํŠธ๋กœ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜์˜€์Œ
vite์™€ pnpm์œผ๋กœ ์„ธํŒ…์„ ํ•˜๊ณ , gitaction์„ ํ†ตํ•ด gitpage์— ์ž๋™๋ฐฐํฌํ•˜์—ฌ ๊ณต์งœ๋กœ ์ด์šฉํ•˜๋Š” ๊ผผ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์—ˆ์Œ


ํ•ด๋ณธ ์‚ฝ์งˆ๋“ค

์œ„์—์„œ ์–ธ๊ธ‰ํ•œ๋Œ€๋กœ ๊นƒํŽ˜์ด์ง€์— ๋ฐฐํฌ๋ฅผ ํ•˜์˜€์Œ

๋ฆฌ์•กํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ•จ
-> ๋ฆฌ์•กํŠธ ์ด๊ธฐ ๋•Œ๋ฌธ์—

<html><head><body>

์ด๋Ÿฐ ํƒœ๊ทธ๊ฐ€ ์ž๋™์œผ๋กœ ๋นŒ๋“œ๋˜์–ด ๋ถ™๊ธฐ ๋•Œ๋ฌธ์— ๋งˆํฌ๋‹ค์šด ๋ฌธ์„œ์— ํ™œ์šฉํ•  ์ˆ˜ ์—†์—ˆ์Œ
๊ทธ๋ž˜์„œ ๋ฆฌ์•กํŠธ ๋‚ด์—์„œ ๋งŒ๋“ค์–ด์„œ svg๋กœ ์–ด๋””๋“  ์„œ๋ฒ„์— ํƒ‘์žฌ๋ฅผ ํ•ด์•ผ ๋œ๋‹ค๋Š” ๊ฒฐ๋ก ์„ ์–ป์—ˆ์—ˆ์Œ

์‚ฝ์งˆํ•œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์กธ์ž‘ ํšŒ์˜๋ฅผ ์ง„ํ–‰ํ•จ
ํšŒ์˜ ์ค‘ ๋ฆฌ์•กํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ๋ฌด์กฐ๊ฑด์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผ ๋œ๋‹ค๋Š” ๊นจ๋‹ฌ์Œ์„ ์–ป์Œ
(๋‹ค๋ฅธ ์œ ์‚ฌ ์„œ๋น„์Šค๋“ค์˜ ์ฝ”๋“œ๋ฅผ ๋’ค์ ธ๋ณด๋‹ˆ ๋ฐฑ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ๋“ค์„ ์‚ฌ์šฉํ•œ ๊ฒƒ์œผ๋กœ ํ™•์ธ์ด ๋˜์—ˆ์Œ)


ํ•ด๊ฒฐ์ฑ…

node.js ์‚ฌ์šฉ
url์— ๋ฐ›์€ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ

<svg></svg>

์ด๊ฒƒ๋งŒ์„ returnํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์Œ
local์€ ์˜๋ฏธ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ, cloudtype์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋จ
https://github.com/jamooooong/rankit-badge-node
์—ฌ๊ธฐ์— node.js๋ฅผ ํ†ตํ•ด ๋ฐฐํฌ๋ฅผ ์ง„ํ–‰

์ถ”๊ฐ€์ ์ธ ๋ฌธ์ œ
ํ”ผ๊ทธ๋งˆ์—์„œ svg๋ฅผ ๋งŒ๋“œ๋‹ˆ text๊ด€๋ จ ํƒœ๊ทธ๊ฐ€ ๋‹ค๊นจ์ง
์ผ๋Ÿฌ์ŠคํŠธ๋กœ ์ง„ํ–‰ํ•ด์•ผ ํƒœ๊ทธ๊ฐ€ ์•ˆ๊นจ์ง€๊ณ  ๊น”๋”ํ•˜๊ฒŒ ๋‚˜์˜ด
์ฝ”๋“œ ์ž์ฒด๊ฐ€ ์‰ฌ์›Œ์„œ ๋ณด๋ฉด text์–ด๋””๋ฅผ ๊ฑด๋“ค์—ฌ์•ผ ํ• ๊ฑด์ง€ ๋ˆˆ์— ๋ณด์ž„


๋А๋‚€์ 

๋งจ๋‚  ๋ฆฌ์•กํŠธ๋งŒ ํ•˜๋‹ค๋ณด๋‹ˆ ๋ชจ๋“  ๊ฒƒ์„ ๋ฆฌ์•กํŠธ๋กœ ํ• ๋ ค๊ณ  ํ–ˆ๋˜ ๋ฉ์ฒญํ•จ์„ ๋А๊ผˆ์Œ
node๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•ด๋ณด์•˜๋Š”๋ฐ ๊ฐ„๋‹จํ•ด์„œ gpt๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์—ˆ์Œ


profile
์ง€๊ธˆ ํ•˜๊ณ  ์žˆ๋Š” ๊ทธ๊ฑฐ ๊ทธ๊ฑฐ์•„๋ƒ

0๊ฐœ์˜ ๋Œ“๊ธ€