Skip to content

Latest commit

ย 

History

History
75 lines (56 loc) ยท 6.58 KB

File metadata and controls

75 lines (56 loc) ยท 6.58 KB

GOAPI for NUBO

license stars last commit

GOAPI๋Š” NUBO์˜ ๊ณ ์„ฑ๋Šฅ ๋ฐฑ์—”๋“œ ๊ตฌํ˜„์ฒด์ž…๋‹ˆ๋‹ค. GoFiber v3 ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ›  NUBO ํ”„๋กœ์ ํŠธ ๊ธฐ์ˆ  ์Šคํƒ

Category Tools
Frontend Nuxt Vue Pinia Tailwind Shadcn
Backend Go
Database MySQL MariaDB
  • ๋ณธ๋ž˜ TSBOARD ํ”„๋กœ์ ํŠธ์—์„œ Bun ๋Ÿฐํƒ€์ž„ ๊ธฐ๋ฐ˜ ์›นํ”„๋ ˆ์ž„์›Œํฌ์ธ ElysiaJS ๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด Go ์–ธ์–ด๋กœ ๊ฐœ๋ฐœํ•œ ๋ฐฑ์—”๋“œ์ž…๋‹ˆ๋‹ค. JS/TS ๋Ÿฐํƒ€์ž„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„ํ•œ ๋ฐฑ์—”๋“œ ๋Œ€๋น„ํ•˜์—ฌ ๋™์‹œ์„ฑ ๊ธฐ๋ฐ˜์˜ ๋ณด๋‹ค ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ์—ฐ์‚ฐ์„ ์ œ๊ณตํ•˜๋ฉด์„œ๋„ ๋” ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • 26๋…„ ๋ถ€ํ„ฐ๋Š” NUBO ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฑ์—”๋“œ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. TSBOARD์˜ ๋ฐฑ์—”๋“œ์—์„œ ํ•œ์ธต ๋” ๊ฐœ์„ ๋˜์—ˆ๊ณ , NUBO์—์„œ ์ œ๊ณตํ•˜๋Š” ์ถ”๊ฐ€ ๊ธฐ๋Šฅ๋“ค์„ ๋ชจ๋‘ ์ง€์›ํ•˜๋„๋ก ๊ฐ™์ด ์—…๋ฐ์ดํŠธ ๋ฉ๋‹ˆ๋‹ค.
  • GoFiber v3 ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  NUBO ํ”„๋กœ์ ํŠธ์—์„œ๋Š” 64bit Linux์šฉ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

GOAPI ์‚ฌ์šฉ ์ค€๋น„

  • ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ./goapi-linux ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” 64bit Linux OS์—์„œ, libvips-dev ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์„ค์น˜๋œ ํ™˜๊ฒฝ์„ ๊ฐ€์ •ํ•˜๊ณ  ์ปดํŒŒ์ผ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋งŒ์•ฝ ์‚ฌ์šฉํ•˜์‹œ๋Š” ์„œ๋ฒ„์˜ CPU๊ฐ€ Intel/AMD๊ฐ€ ์•„๋‹Œ Arm ๊ณ„์—ด์ผ ๊ฒฝ์šฐ(์˜ˆ๋ฅผ ๋“ค์–ด Mac), ์ด ํ”„๋กœ์ ํŠธ๋ฅผ git clone์œผ๋กœ ๋‚ด๋ ค๋ฐ›์•„์„œ ๋ณธ์ธ์˜ ์„œ๋ฒ„์— ๋งž๊ฒŒ ์ƒˆ๋กœ ์ปดํŒŒ์ผ ํ•˜์—ฌ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ./goapi-linux ๋ฐ”์ด๋„ˆ๋ฆฌ (ํ˜น์€ ์—ฌ๋Ÿฌ๋ถ„์ด ์ง์ ‘ ์ปดํŒŒ์ผํ•˜์‹  ./goapi-mac ๋“ฑ)๋Š” NUBO ํด๋” ์•„๋ž˜์— ๋‘๊ณ  ์‹คํ–‰ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: /var/www/nubo.git/goapi-linux)
  • ./goapi-linux ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ์‹คํ–‰ ์‹œ์ ์— ๋™์ผ ๊ฒฝ๋กœ์— .env ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•˜๊ณ , ์—†๋‹ค๋ฉด ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • Go ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ปดํŒŒ์ผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋ฒ„์— Go ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ์ค€๋น„๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

GOAPI ์ตœ๋Œ€๋กœ ํ™œ์šฉํ•˜๊ธฐ

  • ./goapi-linux ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์€ ์‹คํ–‰ ์ „์— ํ•ญ์ƒ ๊ฐ™์€ ๊ฒฝ๋กœ์—์„œ .env ํŒŒ์ผ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • .env ํŒŒ์ผ์—๋Š” ์•„๋ž˜์˜ ๋‚ด์šฉ๋“ค์ด ์žˆ๋Š”๋ฐ, ์†Œ์…œ ๋กœ๊ทธ์ธ์ด๋‚˜ ๋ฉ”์ผ ๋ฐœ์†ก ๋“ฑ์— ์‚ฌ์šฉ๋˜๋Š” ํ‚ค ๊ฐ’๋“ค์„ ๋ณด๊ด€ํ•˜๋Š” ์šฉ๋„์ž…๋‹ˆ๋‹ค.
  • (์•„๋ž˜ ์˜ˆ์‹œ)
# Resend๋กœ ๋ฉ”์ผ ๋ฐœ์†ก์— ํ•„์š”ํ•œ API Key
# ์ฃผ์˜) localhost ์—์„œ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์‹ค์ œ ๋„๋ฉ”์ธ ์ธ์ฆ์„ ๋ฐ›์€ ์„œ๋ฒ„์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค
# ์ฐธ๊ณ ) Resend API Key๊ฐ€ ์ง€์ •๋˜์–ด ์žˆ์œผ๋ฉด Gmail ๋ฉ”์ผ ๋Œ€์‹  Resend๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค
RESEND_API_KEY=

# ๊ตฌ๊ธ€ ์•ฑ๋น„๋ฐ€๋ฒˆํ˜ธ for GMAIL ๋ฐœ์†ก
# ์ฐธ๊ณ ) https://velog.io/@seul06/nodemailer
GMAIL_ID=
GMAIL_APP_PASSWORD=

# ๊ตฌ๊ธ€ OAuth ํด๋ผ์ด์–ธํŠธ
OAUTH_GOOGLE_CLIENT_ID=
OAUTH_GOOGLE_SECRET=

# ๋„ค์ด๋ฒ„ OAuth ํด๋ผ์ด์–ธํŠธ
OAUTH_NAVER_CLIENT_ID=
OAUTH_NAVER_SECRET=

# ์นด์นด์˜ค OAuth ํด๋ผ์ด์–ธํŠธ
OAUTH_KAKAO_CLIENT_ID=
OAUTH_KAKAO_SECRET=

# OpenAI API Key
OPENAI_API_KEY=
  • GOAPI ๋ฐฑ์—”๋“œ์—์„œ ๋ฉ”์ผ์„ ๋ฐœ์†กํ•˜๊ฑฐ๋‚˜, ์†Œ์…œ ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌ๋ฅผ ์›ํ• ํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ๊ฐ€๊ธ‰์  ๊ณต๋ž€์„ ๋ชจ๋‘ ์ฑ„์›Œ์ฃผ์„ธ์š”.
  • OpenAI API๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๊ฐ’๋“ค์€ ๋ชจ๋‘ ๋ฌด๋ฃŒ๋กœ ์–ด๋А ์ •๋„ ์ด์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    • OpenAI API๊ฐ€ ์žˆ์œผ๋ฉด ์—…๋กœ๋“œ๋œ ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด์„œ ์„ค๋ช…๊ธ€์„ ์ƒ์„ฑํ•˜์—ฌ ์ถ”ํ›„ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.
    • ์ด๋ฐ–์—๋„ OpenAI API ๊ธฐ๋ฐ˜์œผ๋กœ NUBO์—์„œ ๋‹ค์–‘ํ•œ (๋ถ€๊ฐ€)๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
    • OpenAI API๋Š” ์ •๋ง๋กœ ์—†์–ด๋„ ๋ฉ๋‹ˆ๋‹ค. ๋ฉ”์ผ ๋ฐœ์†ก ๋“ฑ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ํ•„์ˆ˜์ ์ด์ง„ ์•Š์Šต๋‹ˆ๋‹ค.

GOAPI๊ฐ€ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๋„๋ก ํ•˜๋Š” Nginx ์„ค์ •์€ ์•„๋ž˜ NUBO ํ”„๋กœ์ ํŠธ์˜ README.md๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฐธ๊ณ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ