Hamutaro - Hamtaro 4

Infra 21

[GCP] ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์ž์ฃผ ์“ฐ๋Š” GCP ์„œ๋น„์Šค

๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์ž์ฃผ ์“ฐ๋Š” GCP ์„œ๋น„์Šค๋ฐ์ดํ„ฐ ์ˆ˜์ง‘โ”œโ”€โ”€ Cloud Storage (GCS) ← S3 ๊ฐ™์€ ํŒŒ์ผ ์ €์žฅ์†Œโ””โ”€โ”€ Pub/Sub ← Kafka ๊ฐ™์€ ๋ฉ”์‹œ์ง€ ํ (์ŠคํŠธ๋ฆฌ๋ฐ)๋ฐ์ดํ„ฐ ์ €์žฅ & ์ฒ˜๋ฆฌโ”œโ”€โ”€ BigQuery ← ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šคโ””โ”€โ”€ Dataflow ← ๋ฐฐ์น˜/์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌํŒŒ์ดํ”„๋ผ์ธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜โ””โ”€โ”€ Cloud Composer ← Airflow ๋งค๋‹ˆ์ง€๋“œ ์„œ๋น„์Šค๋ฐ์ดํ„ฐ ๋ณ€ํ™˜โ””โ”€โ”€ dbt + BigQuery Cloud Storage (GCS)ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์œผ๋กœ ๋กœ์ปฌ๋กœ ์น˜๋ฉด ํ•˜๋“œ๋””์Šคํฌ์— ํ•ด๋‹นํ•œ๋‹ค.๊ตฌ์กฐ : ๋ฒ„ํ‚ท(Bucket) > ํด๋” > ํŒŒ์ผ์˜ˆ์‹œ :gs://my-company-data/โ”œโ”€โ”€..

Infra/GCP 2026.05.28

[AWS] IAM Admin ์‚ฌ์šฉ์ž ๋งŒ๋“ค๊ธฐ

1. IAM > ์‚ฌ์šฉ์ž > ์‚ฌ์šฉ์ž ์ƒ์„ฑ 2. ๊ถŒํ•œ ์„ค์ • 3. ์‚ฌ์šฉ์ž ์ƒ์„ฑ .CSV ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ (๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌํ™•์ธ ๋ถˆ๊ฐ€ํ•˜๋‹ˆ๊นŒ ๋ฐ˜๋“œ์‹œ ์ €์žฅ) 3. IAM ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ ๋กœ๊ทธ์•„์›ƒ ํ›„ ์ฝ˜์†” ๋กœ๊ทธ์ธ URL๋กœ ๋‹ค์‹œ ๋กœ๊ทธ์ธํŒจ์Šค์›Œ๋“œ ๋ฆฌ์…‹ํ•˜๋ผ๊ณ  ๋œจ๋Š”๋ฐ ์ƒˆ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋จ

Infra/AWS 2026.02.21

[AWS] ๋ณด์•ˆ์„ ์œ„ํ•œ Root MFA ์„ค์ •ํ•˜๊ธฐ

1. IAM ๊ฒ€์ƒ‰ - IAM ๋Œ€์‹œ๋ณด๋“œ - MFA ์ถ”๊ฐ€IAM = Identity and Aceess ManagementMFA = Multi-Factor Authentication (๋‹ค์ค‘์ธ์ฆ)MFA๋Š” ๋กœ๊ทธ์ธํ•  ๋•Œ ๋น„๋ฐ€๋ฒˆํ˜ธ + ์ถ”๊ฐ€์ธ์ฆ ์ˆ˜๋‹จ์„ ์š”๊ตฌํ•˜๋Š” ๋ณด์•ˆ์žฅ์น˜Root ๊ณ„์ •์€ ๋ˆ„๊ตฐ๊ฐ€ ์นจ์ž…ํ•˜๋ฉด ์ฑ„๊ตด, ๊ณผ๊ธˆ ํญํƒ„ ๋“ฑ์˜ ์œ„ํ—˜์ด ์žˆ์œผ๋ฏ€๋กœ ๋ฐ˜๋“œ์‹œ MFA ์„ค์ •์„ ํ•ด์•ผ ํ•จ IAM ๋Œ€์‹œ๋ณด๋“œ๋Š” ๋ˆ„๊ฐ€ AWS์—์„œ ๋ญ˜ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ด€๋ฆฌํ•˜๋Š” ๊ณณ์˜ˆ๋ฅผ ๋“ค๋ฉด ์‚ฌ์šฉ์ž ์ƒ์„ฑ, ๊ถŒํ•œ ๋ถ€์—ฌ, ์—ญํ•  ์„ค์ •, ์ •์ฑ… ๊ด€๋ฆฌ ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. AWS ๊ธฐ๋ณธ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€๋ฐ Root๋Š” ์ž ๊ฐ€๋‘๊ณ  IAM์œผ๋กœ ์ž‘์—…ํ•˜๋Š”๊ฒŒ ์ผ๋ฐ˜์ Root๊ณ„์ • ์†Œ์œ ์ž (์ตœ์ƒ์œ„)IAM User์‹ค์ œ ์ž‘์—…์ž 2. ๋‹ค์Œ ๋ˆ„๋ฅธ๋’ค Google Authenticator ์•ฑ ์„ค์น˜ํ•˜๊ณ , QR ์ฝ”..

Infra/AWS 2026.02.21

[AWS] ๋น„์šฉ ๋ฐฉ์–ด๋ฅผ ์œ„ํ•œ Budget ์ƒ์„ฑํ•˜๊ธฐ

AWS๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•ด๋ณธ ๊ฒฝํ—˜์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฒˆ์— ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ AWS๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.GPT์˜ ๊ฐ€์ด๋“œ๋ฅผ ๋ฐ›์•„์„œ ๊ณ„์ •์„ ์ƒ์„ฑํ•˜๊ณ , CI/CD ๊ตฌ์ถ•์„ ์œ„ํ•œ AWS ์‚ฌ์šฉ์„ ์ตํžˆ๊ณ ์ž ํ•œ๋‹ค.ํ”„๋ฆฌํ‹ฐ์–ด์ง€๋งŒ ์ œํ•œ์—์„œ ์กฐ๊ธˆ๋งŒ ๋ฒ—์–ด๋‚˜๋ฉด ๋ฐ”๋กœ ๊ณผ๊ธˆ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋น„์šฉ ๋ฐฉ์–ด๋ฅผ ์œ„ํ•œ ์˜ˆ์‚ฐ์„ ์ƒ์„ฑํ•œ๋‹ค. AWS ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€ 1. AWS ํ™ˆ ํ™”๋ฉด์—์„œ - ๊ฒ€์ƒ‰ - Budget ๊ฒ€์ƒ‰ 2. ์˜ˆ์‚ฐ ์ƒ์„ฑํ•˜๊ธฐ 3. ์˜ˆ์‚ฐ ์œ ํ˜• ์„ ํƒ - ์˜ˆ์‚ฐ์ƒ์„ฑ- ๋‚˜๋Š” ์›”๋ณ„ ๋น„์šฉ ์˜ˆ์‚ฐ์„ ์„ ํƒํ–ˆ๋‹ค- ์˜ˆ์‚ฐ์€ 10๋‹ฌ๋Ÿฌ, ์†Œ๋Ÿ‰ ํŠธ๋ž˜ํ”ฝ์ด๋ฉด ๋ณดํ†ต 15๋‹ฌ๋Ÿฌ ์ดํ•˜๋ผ๊ณ  AI๊ฐ€ ์˜ˆ์ธกํ•ด์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ- ์˜ˆ์‚ฐ์ด๋ฆ„๊ณผ ์•Œ๋ฆผ์„ ๋ฐ›์„ ์ด๋ฉ”์ผ๋„ ์ง€์ •ํ•˜๊ธฐ

Infra/AWS 2026.02.21

[Security] JWT + HttpOnly Cookie + SameSite ์ „๋žต ์ •๋ฆฌ

ํ˜„์žฌ ๊ตฌ์กฐ ๋‘˜ ๋‹ค LocalStorage์— ์ €์žฅํ•˜๋ฉด?XSS ๊ณต๊ฒฉ ์‹œ ํƒˆ์ทจ ์œ„ํ—˜๋ณด์•ˆ ์ทจ์•ฝ๋‘˜ ๋‹ค ์ฟ ํ‚ค์— ๋„ฃ์œผ๋ฉด?CSRF ์œ„ํ—˜ ์ฆ๊ฐ€ํ˜„์žฌ ๊ตฌ์กฐ๋Š”Access Token -> JS์—์„œ ์ œ์–ด ๊ฐ€๋ŠฅRefresh Token -> HttpOnly๋กœ JS ์ ‘๊ทผ ์ฐจ๋‹จSameSite๋กœ CSRF ๋ฐฉ์–ดํ† ํฐ์ €์žฅ ์œ„์น˜๋ชฉ์ Access TokenAuthorization HeaderAPI ์ธ์ฆRefresh TokenHttpOnly Cookie์žฌ๋ฐœ๊ธ‰์šฉ HttpOnly๊ฐ€ ํ•˜๋Š” ์ผ.httpOnly(true)JS์—์„œ ์ฟ ํ‚ค ์ ‘๊ทผ ๋ถˆ๊ฐ€document.cookie๋กœ ์ฝ์„ ์ˆ˜ ์—†์ŒXSS ๋ฐฉ์–ด SameSite ์˜ต์…˜ ์ •๋ฆฌStrict๋‹ค๋ฅธ ์‚ฌ์ดํŠธ์—์„œ ์ ˆ๋Œ€ ์ฟ ํ‚ค ์ „์†ก ์•ˆ๋จ๋ณด์•ˆ ๊ฐ•ํ•จUX ๊นจ์งˆ ์ˆ˜ ์žˆ์ŒLaxGET ์ด๋™์€ ํ—ˆ์šฉPOST ์ž๋™ ์ „์†ก ๋“ฑ์€ ์ฐจ๋‹จCSRF ๋Œ€..

Infra/Security 2026.02.14

[WSL] ์œˆ๋„์šฐ ์šฐ๋ถ„ํˆฌ ํ™˜๊ฒฝ์—์„œ Claude Code ์„ค์น˜ํ•˜๊ธฐ

์ค€๋น„์šฐ๋ถ„ํˆฌ ์„ค์น˜ํ•˜๊ธฐnode.js ์„ค์น˜ํ•˜๊ธฐ (18๋ฒ„์ „ ์ด์ƒ)# Ubuntu์—์„œ Node.js ์„ค์น˜curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -sudo apt-get install -y nodejs Claude Code ์„ค์น˜sudo npm install -g @anthropic-ai/claude-code ์„ค์น˜ ํ™•์ธclaude-code --version ์‹คํ–‰claude-code

Infra/Linux 2026.02.14

[Docker] ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„ ๋ณ€๊ฒฝํ•˜๊ธฐ

Docker Desktop UI ์—์„œ๋Š” ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ ์ง์ ‘ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค.๊ทธ๋ž˜์„œ CLI ์—์„œ docker rename ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ํ˜„์žฌ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„ ํ™•์ธ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋งŒ ๋ณด๊ธฐdocker ps ์‹คํ–‰ + ์ •์ง€๋œ ์ปจํ…Œ์ด๋„ˆ ๋ชจ๋‘ ๋ณด๊ธฐdocker ps -a ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„ ๋ณ€๊ฒฝdocker rename ๊ธฐ์กด์ด๋ฆ„ ์ƒˆ์ด๋ฆ„ ๋ณ€๊ฒฝ ๊ฒฐ๊ณผ ํ™•์ธdocker ps -a

Infra/Docker 2026.02.12

[Security] CSRF ๋ž€?

CSRF (Cross-Site Request Forgery)์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ์•…์šฉํ•ด์„œ ๊ณต๊ฒฉ์ž๊ฐ€ ์˜๋„ํ•œ ์š”์ฒญ์„ ์„œ๋ฒ„์— ๋Œ€์‹  ๋ณด๋‚ด๊ฒŒ ๋งŒ๋“œ๋Š” ๊ณต๊ฒฉ ์–ด๋–ป๊ฒŒ ๊ณต๊ฒฉ์ด ๋˜๋Š”์ง€?1. ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋น„์Šค์— ๋กœ๊ทธ์ธ (์ฟ ํ‚ค๋กœ ์ธ์ฆ)2. ์‚ฌ์šฉ์ž๊ฐ€ ๊ณต๊ฒฉ์ž ์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธ3. ๊ณต๊ฒฉ์ž ์‚ฌ์ดํŠธ์— ์ด๋Ÿฐ ์ฝ”๋“œ๊ฐ€ ์žˆ์Œ 4. ๋ธŒ๋ผ์šฐ์ €๋Š” ์ฟ ํ‚ค๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ™์ด ์ „์†ก5. ์„œ๋ฒ„๋Š” ์ •์ƒ ๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž ์š”์ฒญ์œผ๋กœ ์˜คํ•ด CSRF ์„ฑ๋ฆฝ ์กฐ๊ฑด์ธ์ฆ ์ˆ˜๋‹จ์ด ์ฟ ํ‚ค ๊ธฐ๋ฐ˜์ผ ๊ฒƒ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ž๋™์œผ๋กœ ์ธ์ฆ ์ •๋ณด ์ „์†กํ•  ๊ฒƒ์„ธ์…˜ + ์ฟ ํ‚คโœ… ๋ฐ˜๋“œ์‹œ ํ•„์š”JWT + HeaderโŒ ๋ถˆํ•„์š”์ˆœ์ˆ˜ REST APIโŒ disable

Infra/Security 2026.02.10

[Git] ๊นƒํ—ˆ๋ธŒ ์ด์Šˆ ๋“ฑ๋ก ํ•„์š”์„ฑ๊ณผ Issue Template ์ƒ์„ฑํ•˜๊ธฐ

Issue ๋“ฑ๋ก ํ•„์š”์„ฑ์ž‘์—… ์ถ”์  ๋ฐ ๊ธฐ๋ก์šฐ์„ ์ˆœ์œ„ ๊ด€๋ฆฌ๋ช…ํ™•ํ•œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ž‘์—… ๋ถ„๋ฐฐ๋น„๋™๊ธฐ ํ˜‘์—…๋ฒ„๊ทธ ์ถ”์ ๋ณ€๊ฒฝ ์ด๋ ฅ ๊ด€๋ฆฌ Issue Template ์ƒ์„ฑํ•˜๊ธฐ 1. ์ด์Šˆ ํ…œํ”Œ๋ฆฟ์„ ๋“ฑ๋กํ•  Repository์˜ Settings 2. ์•„๋ž˜์˜ Features - Issues - Set up templates ํด๋ฆญ 3. ์›ํ•˜๋Š” ์ข…๋ฅ˜์˜ ํ…œํ”Œ๋ฆฟ ์„ ํƒ 4. Custom template - Preview and edit (ํ…œํ”Œ๋ฆฟ ์ปค์Šคํ…€ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•จ) 5. Template name์„ ์ง€์ •ํ•ด์ฃผ๊ณ , Template content์— Markdown ํ˜•์‹์œผ๋กœ ํ…œํ”Œ๋ฆฟ์„ ์ž‘์„ฑํ•œ๋‹ค.์ด์Šˆ ๋“ฑ๋กํ•  ๋•Œ ์ด๊ฒƒ์ €๊ฒƒ ๋งŽ์ด ์ž‘์„ฑํ•˜๋ฉด ๋ฒˆ๊ฑฐ๋กœ์šธ ๊ฒƒ ๊ฐ™์•„์„œ ์ตœ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์–‘์‹์œผ๋กœ ๋งŒ๋“ค๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ,GPT๋Š” ๋ง๊ท€๋ฅผ ๋ชป์•Œ์•„๋“ฃ๊ณ  ๊ณ„์† ๋ณต์žกํ•œ ํ…œํ”Œ๋ฆฟ์„ ์คฌ์Œ... ..

Infra/Git 2026.02.08

[Git] ์ด๋ฏธ Pushํ•œ Commit ๋ฉ”์‹œ์ง€ ์ˆ˜์ •ํ•˜๊ธฐ + GitHub Token ์ธ์ฆ

๊ฐœ์š”์‹ค๋ฌด์—์„œ๋Š” ํšŒ์‚ฌ์˜ ์ปค๋ฐ‹ ๊ทœ์น™์„ ๋”ฐ๋ผ์„œ Git์„ ๊ด€๋ฆฌํ–ˆ์—ˆ๋‹ค.์•ž์œผ๋กœ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” Git ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๊ทœ์น™์— ๋งž๊ฒŒ ํ†ต์ผํ•˜๋ ค๊ณ  ์ˆ˜์ •ํ–ˆ๋‹ค.์ด๋ฏธ master ๋ธŒ๋žœ์น˜์— push๋œ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๊นŒ์ง€ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ์ƒํ™ฉํ˜‘์—…์„ ํ•˜๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด ์ด๋Ÿฐ ๋ถˆํ•„์š”ํ•œ ์ง“์€ ์•ˆํ•˜๊ฒ ์ง€๋งŒ ํ˜ผ์ž ์“ฐ๋Š” ๊นƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋…ธ๊ฐ€๋‹ค ์ž‘์—…์„ ์ข€ ํ–ˆ๋‹ค... ๋‹จ๊ณ„1. ์ž‘์—…์ค‘์ธ ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธgit status 2. ์ž‘์—…์ค‘์ธ ํŒŒ์ผ์ด ์žˆ์„ ๊ฒฝ์šฐ ๋ณด๊ด€git stash -> git status๋กœ cleanํ•œ ๊ฒƒ์„ ํ™•์ธํ•˜๋ฉด ์•„๋ž˜ ๋‹จ๊ณ„๋ฅผ ์ง„ํ–‰ 3. ์ˆ˜์ •ํ•  ์ปค๋ฐ‹ ๋ฒ”์œ„ ์„ ํƒํ•˜๊ณ  Rebase์˜ˆ์‹œ : ์ตœ๊ทผ 8๊ฐœ์˜ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด HEAD~8git rebase -i HEAD~8 4. rebase-todo ํ™”๋ฉด์—์„œ ์ˆ˜์ •ํ•  ์ปค๋ฐ‹ ์„ ํƒ์—ฌ๊ธฐ์„œ ์ข€ ํ—ท๊ฐˆ๋ ค์„œ..

Infra/Git 2025.11.22