BYUN Kyuhyun

Chatting Team Lead at Karrot๐Ÿฅ•

AWS Serverless Hero

Less is more!

DORA ๋ฉ”ํŠธ๋ฆญ์Šค: DevOps ์„ฑ๊ณผ ์ธก์ •์˜ ํ•ต์‹ฌ ์ง€ํ‘œ

์—…๋ฌด๋ฅผ ํ•˜๋‹ค ๋ณด๋ฉด ์„ฑ๊ณผ๋ฅผ ์ •๋Ÿ‰์ ์œผ๋กœ ์ธก์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•˜๊ฒŒ ๋œ๋‹ค. ์—…๋ฌด ํšจ์œจ์ด ํ–ฅ์ƒ๋˜๋”๋ผ๋„ ์ด๋ฅผ ๋ช…ํ™•ํ•œ ์ง€ํ‘œ๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ๋Š” ์‰ฝ์ง€ ์•Š๋‹ค. ์ด๋Ÿฌํ•œ ๊ณ ๋ฏผ ์†์—์„œ DORA๋ผ๋Š” ๋ฐฉ๋ฒ•๋ก ์„ ํ†ตํ•ด ์—…๋ฌด๋ฅผ ์ธก์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ์‹ค์ œ๋กœ ์ธก์ •๊ณผ ๊ธฐ๋ก, ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ์ผ์ด๋ผ ์‹ค๋ฌด์— ์ ์šฉํ•˜๊ธฐ๋Š” ์‰ฝ์ง€ ์•Š์ง€๋งŒ, ์—…๋ฌด๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ด€์ ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์ด์— DORA ๋ฉ”ํŠธ๋ฆญ์Šค์— ๋Œ€ํ•ด ์กฐ์‚ฌํ•˜๊ณ  ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. DORA(DevOps Research and Assessment) ๋ฉ”ํŠธ๋ฆญ์Šค๋Š” DevOps ํŒ€์˜ ์„ฑ๊ณผ์™€ ํšจ์œจ์„ฑ์„ ํ‰๊ฐ€ํ•˜๋Š” 4๊ฐ€์ง€ ํ•ต์‹ฌ ์ง€ํ‘œ์ด๋‹ค. ์ด ์ง€ํ‘œ๋“ค์„ ํ†ตํ•ด ์†Œํ”„ํŠธ์›จ์–ด ์ œ๊ณต ํ”„๋กœ์„ธ์Šค์˜ ํ’ˆ์งˆ์„ ๊ฐ๊ด€์ ์œผ๋กœ ์ธก์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ...

January 13, 2025โ€2 min

ํšŒ๊ณ  ๋ฐฉ๋ฒ•๋ก  (Retrospective Methods)

ํšŒ๊ณ ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๋ก ๋“ค์„ ์†Œ๊ฐœํ•œ๋‹ค. ๊ฐ ๋ฐฉ๋ฒ•์˜ ํŠน์ง•๊ณผ ์žฅ์ ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ƒํ™ฉ์— ๋งž๋Š” ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜์—ฌ ํšŒ๊ณ ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. 1. KPT (Keep, Problem, Try) ๊ฐ„๋‹จํ•˜๋ฉด์„œ๋„ ์‹ค์šฉ์ ์ธ ํšŒ๊ณ  ๋ฐฉ์‹์œผ๋กœ, ๊ฐœ์ธ ํšŒ๊ณ ์— ๋งค์šฐ ์ ํ•ฉํ•˜๋‹ค. ๋•Œ๋กœ๋Š” ๊ฐ€๋ณ๊ฒŒ ํ”„๋กœ์ ํŠธ ํšŒ๊ณ ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ๋„ ์œ ์šฉํ•˜๋‹ค. Keep: ์ž˜ํ–ˆ๋˜ ๊ฒƒ, ์œ ์ง€ํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ Problem: ๋ฌธ์ œ์ , ๊ฐœ์„ ์ด ํ•„์š”ํ•œ ๊ฒƒ Try: ์•ž์œผ๋กœ ์‹œ๋„ํ•ด๋ณผ ๊ฒƒ, ๊ฐœ์„  ๋ฐฉ์•ˆ 2. 5F (Fact, Feeling, Finding, Future, Feedback) ๊ฐ์ •์ ์ธ ๋ถ€๋ถ„๊นŒ์ง€ ๊นŠ์ด ์žˆ๊ฒŒ ๋Œ์•„๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ํ•œ๋‹ค. ์‹ค์ œ ์—…๋ฌด์—์„œ ์‚ฌ์šฉํ•ด๋ณธ ์ ์€ ์—†๋‹ค. ๋‹ค๋งŒ ๊ฐ์ •์„ ๋Š๋‚€๋‹ค๋Š” ์ธก๋ฉด์—์„œ ๊ฐœ์ธ ํšŒ๊ณ ์— ์ ํ•ฉํ•˜๋‹ค๊ณ  ํ•œ๋‹ค. ...

January 1, 2025โ€3 min

AWS EBS, FSx, EFS for EC2: Storage Comparison (2024)

๊ฐœ์š” ML Data platform engineering์—์„œ Feature Store์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด storage ์˜ต์…˜๋“ค์„ ๊ฒ€ํ† ํ•˜๊ณ  ์žˆ๋‹ค. Remote cache๋งŒ์œผ๋กœ๋Š” network latency ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด์„œ, disk storage๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋” ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€๋œ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” AWS EC2์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฃผ์š” storage ์˜ต์…˜๋“ค์„ ๋น„๊ต ๋ถ„์„ํ•œ๋‹ค: Storage ์ตœ์ ํ™” EC2 ์ธ์Šคํ„ด์Šค: ๋กœ์ปฌ์— ์ง์ ‘ ์—ฐ๊ฒฐ๋œ NVMe SSD๋กœ ์ตœ๊ณ ์˜ I/O ์„ฑ๋Šฅ ์ œ๊ณต EBS (Elastic Block Store): EC2์— ์—ฐ๊ฒฐ๋˜๋Š” ๋ธ”๋ก ์Šคํ† ๋ฆฌ์ง€๋กœ ๋†’์€ IOPS์™€ ์ฒ˜๋ฆฌ๋Ÿ‰ ์ง€์› FSx: ์™„์ „ ๊ด€๋ฆฌํ˜• ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ์—ฌ๋Ÿฌ EC2 ์ธ์Šคํ„ด์Šค์—์„œ ๊ณต์œ  ๊ฐ€๋Šฅ EFS (Elastic File System): ์™„์ „ ๊ด€๋ฆฌํ˜• NFS ํŒŒ์ผ์‹œ์Šคํ…œ์œผ๋กœ ์ž๋™ ํ™•์žฅ/์ถ•์†Œ ์ง€์› AWS EC2์˜ Storage ์ตœ์ ํ™” ์ธ์Šคํ„ด์Šค ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ์…‹์— ๋Œ€ํ•œ ๊ณ ์„ฑ๋Šฅ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์ž‘์—…์ด ํ•„์š”ํ•œ ์›Œํฌ๋กœ๋“œ๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ๋‹ค. ...

November 15, 2024โ€9 min

hxxp์™€ hxxps: URL ๋ฌดํ•ดํ™”(Defanging)๋ฅผ ์œ„ํ•œ http/https ๋Œ€์ฒด ํ‘œ๊ธฐ๋ฒ• ์•Œ์•„๋ณด๊ธฐ

URL ๋ฌดํ•ดํ™”(Defanging)๋ž€? ๋ณด์•ˆ ์ „๋ฌธ๊ฐ€๋“ค์€ ์•…์„ฑ URL์„ ๊ณต์œ ํ•  ๋•Œ ํŠน๋ณ„ํ•œ ํ‘œ๊ธฐ๋ฒ•์„ ์“ด๋‹ค. http ๋Œ€์‹  hxxp๋ฅผ, https ๋Œ€์‹  hxxps๋ฅผ ์“ฐ๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฐ ๋ฐฉ์‹์„ โ€˜URL ๋ฌดํ•ดํ™”(URL defanging)โ€˜๋ผ๊ณ  ํ•œ๋‹ค. hxxp/hxxps ํ‘œ๊ธฐ๋ฒ•์„ ์•Œ๊ฒŒ ๋œ ๊ณ„๊ธฐ ์ตœ๊ทผ ProtonMail(pm.me)์˜ ์ด๋ฉ”์ผ์„ ๋ฐ›์•„๋ดค๋‹ค. ์ด ํšŒ์‚ฌ์˜ ๊ฐœ๋ฐœ ๋ฐฉ์‹์ด ๊ถ๊ธˆํ•ด์„œ ์ฐพ์•„๋ณด๋‹ˆ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ GitHub์—์„œ ๊ณต๊ฐœ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ์šฐ์—ฐํžˆ โ€œAdd checks to prevent formatting hxxpsโ€๋ผ๋Š” ์ œ๋ชฉ์˜ PR์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ์ด PR์„ ๋ณด๊ณ  hxxp/hxxps ํ‘œ๊ธฐ๋ฒ•์ด ๋ฌด์—‡์ธ์ง€, ์™œ ์“ฐ๋Š”์ง€ ๊ถ๊ธˆํ–ˆ๋‹ค. URL ๋ฌดํ•ดํ™”(Defanging)๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  ๋ณด์•ˆ ์ „๋ฌธ๊ฐ€๋“ค์ด hxxp/hxxps ํ‘œ๊ธฐ๋ฒ•์„ ์“ฐ๋Š” ์ฃผ๋œ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค: ...

November 7, 2024โ€2 min

2024 AWS Serverless Computing ์ข…๋ฅ˜ ์ •๋ฆฌ

1. Computing & Application AWS Lambda ์†Œ๊ฐœ: ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์˜ ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ… ์„œ๋น„์Šค ํ•ด๊ฒฐ๋ฌธ์ œ: ์งง์€ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ž‘์—…, ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, API ์š”์ฒญ ์ฒ˜๋ฆฌ ๋Œ€์ฒด์„œ๋น„์Šค: EC2, ECS, EKS ๊ทœ๋ชจ: ์ตœ์†Œ: 128MB ๋ฉ”๋ชจ๋ฆฌ, ์‹คํ–‰์‹œ๊ฐ„ ์ œํ•œ 15๋ถ„ ์ตœ๋Œ€: 10GB ๋ฉ”๋ชจ๋ฆฌ, ๋™์‹œ์‹คํ–‰ 1000๊ฐœ (์ฆ์„ค ๊ฐ€๋Šฅ) AWS Fargate ์†Œ๊ฐœ: ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ… ์—”์ง„ ํ•ด๊ฒฐ๋ฌธ์ œ: ์ปจํ…Œ์ด๋„ˆ ์šด์˜์— ๋”ฐ๋ฅธ ์„œ๋ฒ„ ๊ด€๋ฆฌ ๋ถ€๋‹ด ์ œ๊ฑฐ ๋Œ€์ฒด์„œ๋น„์Šค: ECS/EKS with EC2 ๊ทœ๋ชจ: ์ตœ์†Œ: vCPU 0.25๊ฐœ, ๋ฉ”๋ชจ๋ฆฌ 0.5GB ์ตœ๋Œ€: vCPU 16๊ฐœ, ๋ฉ”๋ชจ๋ฆฌ 120GB 2. Integration & Orchestration ...

October 23, 2024โ€3 min

UI Bakery vs. Retool: A Comprehensive Comparison for 2024

Looking to choose between UI Bakery and Retool for building internal tools? This comprehensive comparison breaks down the key differences between these popular low-code platforms, focusing on data handling, dashboard creation, and ease of use. Data Handling and Integration Retool Retool excels in data handling and integration, making it a strong choice for operating in-house data[1][4]. It offers: Powerful integration with external data sources, including APIs, databases, and cloud services Support for SQL/NoSQL databases and services like Firebase, MongoDB, and PostgreSQL Real-time data syncing between the UI and data sources UI Bakery ...

October 21, 2024โ€4 min

AppWrite vs. Supabase in 2024: Which Backend Platform Should You Choose?

AppWrite vs. Supabase: A Comprehensive Comparison for 2024 Choosing between AppWrite and Supabase for your backend infrastructure? This detailed comparison covers everything you need to know about these popular Backend-as-a-Service (BaaS) platforms to make an informed decision. Key Differences at a Glance Database: AppWrite uses MariaDB, Supabase uses PostgreSQL Hosting Options: Both offer cloud and self-hosted solutions Language Support: AppWrite supports 10+ languages, Supabase focuses on TypeScript Performance: AppWrite shows better performance in stress tests Pricing Model: Both offer free tiers with different scaling options Performance and Scalability Benchmarks Recent performance tests reveal significant differences between these platforms: ...

October 21, 2024โ€2 min

PostgreSQL Connection Modes: Session vs Transaction Mode Explained

What are PostgreSQL Connection Modes? PostgreSQL offers two primary connection modes through connection poolers like PgBouncer: Session Mode (also known as Connection Mode) and Transaction Mode. Each mode serves different use cases and comes with its own set of advantages and trade-offs. Session Mode (Connection Mode) Explained Provides a dedicated database connection for each client throughout their entire session Only releases the connection when the client explicitly disconnects Maintains full compatibility with all PostgreSQL features and session-level commands Offers better reliability and compatibility with all PostgreSQL clients Consumes more database resources due to long-lived connections[2] Transaction Mode Deep Dive Maintains database connections only during active transactions Automatically returns connections to the pool after transaction completion Supports up to 10,000 client connections with minimal pool size Optimizes resource usage by efficiently managing idle connections Particularly effective for applications with numerous low-activity connections[2][3] Key Differences Between Session and Transaction Modes Connection Lifecycle: ...

October 21, 2024โ€2 min

Golang Project Guide from A to Z: From Feature Development to Enterprise Application Design

Summary โ€œ๊ณ ์–ธ์–ด ํ”„๋กœ์ ํŠธ ๊ฐ€์ด๋“œ A-Z"๋ผ๋Š” ์ฃผ์ œ๋กœ, ์ž‘์€ ํ”„๋กœ์ ํŠธ๋ถ€ํ„ฐ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊นŒ์ง€ Go ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•œ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์— ๋Œ€ํ•ด์„œ ๊ณต์œ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ž‘์€ ํ”„๋กœ์ ํŠธ์™€ ํฐ ํ”„๋กœ์ ํŠธ์˜ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•˜๊ณ , ์ž‘์€ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•œ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ ํŒจํ„ด์„ ์†Œ๊ฐœํ•˜๊ณ , ๊ธฐ๋Šฅ ๋‹จ์œ„์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ ํŒจํ„ด์œผ๋กœ Handler์™€ HandlerFunc ๋ฐฉ์‹์„ ๋น„๊ตํ•˜๊ณ  ๊ฐ๊ฐ์˜ ์žฅ๋‹จ์ ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ์ฝ”๋“œ ํŒจํ„ด์œผ๋กœ Domain Driven Design (DDD) ์ ‘๊ทผ ๋ฐฉ์‹์„ ์†Œ๊ฐœํ•˜๊ณ , ๊ฐ ๋ ˆ์ด์–ด(Presenter, Handler, Usecase, Service, Repository, Recorder)์˜ ์—ญํ• ๊ณผ ์žฅ์ ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (DynamoDB) ์‚ฌ์šฉ ์‹œ์˜ ๋ชจ๋ธ๋ง ๋ฐฉ๋ฒ•์„ ๊ฐ„๋žตํžˆ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ๋ ˆ์ด์–ด์—์„œ์˜ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐฉ๋ฒ•๊ณผ ๋ชจํ‚น ๋„๊ตฌ์ธ counterfeiter์˜ ์‚ฌ์šฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ์œ„ํ•ด ํ•„์š”ํ•œ ๋„๊ตฌ๋“ค(APM, ์—๋Ÿฌ ๋ชจ๋‹ˆํ„ฐ๋ง, ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘, ๋กœ๊ทธ ์„œ๋น„์Šค)์„ ์†Œ๊ฐœํ•˜๊ณ  ๊ทธ ์ค‘์š”์„ฑ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค. ...

October 14, 2024โ€2 min

Go แ„ƒแ…ฉแ„‹แ…ตแ†ธ แ„’แ…ฎ 4แ„‚แ…งแ†ซ แ„€แ…กแ†ซ แ„€แ…ตแ„…แ…ฉแ†จ

Summary Gophercon Korea 2023์—์„œ ๋ฐœํ‘œํ•œ โ€œGo ๋„์ž… ํ›„, 4๋…„ ๊ฐ„์˜ ๊ธฐ๋ก"์ด๋ผ๋Š” ์ฃผ์ œ๋กœ ๊ณต์œ ํ–ˆ์Šต๋‹ˆ๋‹ค. Go๋ฅผ ๋„์ž…ํ•˜์—ฌ ๋†’์€ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ฃผ์š” ์ด์Šˆ์™€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๊ณต์œ ํ•˜๊ณ , Go๋ฅผ ํ†ตํ•ด ๋” ํšจ์œจ์ ์ด๊ณ  ์•ˆ์ •์ ์ธ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ๋ฏผ๋“ค์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. Youtube Slideshare Go แ„ƒแ…ฉแ„‹แ…ตแ†ธ แ„’แ…ฎ 4แ„‚แ…งแ†ซ แ„€แ…กแ†ซ แ„€แ…ตแ„…แ…ฉแ†จ from Kyuhyun Byun

July 25, 2024โ€1 min