| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- 기록으로 실력을 쌓자
- AI
- 코틀린 코루틴의 정석
- SRE
- golang
- PETERICA
- Spring
- kotlin querydsl
- 공부
- CKA
- Kubernetes
- 티스토리챌린지
- APM
- 오블완
- 바이브코딩
- AWS EKS
- aws
- 정보처리기사 실기 기출문제
- Java
- kotlin coroutine
- kotlin
- 컨텍스트 엔지니어링
- Pinpoint
- Linux
- tucker의 go 언어 프로그래밍
- minikube
- MySQL
- CloudWatch
- go
- CKA 기출문제
- Today
- Total
목록전체 글 (932)
피터의 개발이야기
[SRE] SRE(Site Reliability Engineering) 목차 ㅁ 들어가며ㅇ 지난 글, SRE란 무엇인가? SRE는 단순한 ‘운영’이 아니다에서 다음과 같이 이야기 하였다.SRE는 단순한 운영 역할을 넘어서, 서비스의 신뢰성(Reliability)을 코드와 시스템적으로 보장하는 엔지니어링 문화이다.ㅇ 이번 글에서는 "엔지니어링 문화"란 무엇인지 구체적으로 알아보고, 엔지니어 문화를 바탕으로 SRE의 주요 역할을 정리해 보았다. ㅁ 엔지니어링 문화란?"엔지니어링 문화"는 단순한 기술 스택이나 도구의 사용을 넘어, 조직이 문제를 해결하는 방식과 철학, 협업하는 방식, 그리고 기술적 품질을 유지하는 기준과 태도를 모두 포함하는 개념이다. SRE 맥락에서의 엔지니어링 문화는 특히 중요하며, 아래와..
ㅁ 들어가며ㅇ MySQL의 분산처리를 위한 샤딩(Sharding)에 대해서 정리하였다. ㅁ MySQL 샤딩(Sharding)이란?MySQL 샤딩은 대용량 데이터를 여러 개의 데이터베이스(샤드, shard)에 수평 분산 저장하는 방법이다. 즉, 하나의 거대한 데이터베이스에 모든 데이터를 넣지 않고, 여러 서버에 데이터를 나눠 저장함으로써 성능과 확장성을 높인다. ㅁ 샤딩 방식방식설명장점/단점Modular(모듈러) 샤딩샤딩 키(예: user_id)의 해시값을 샤드 개수로 나눈 나머지로 샤드 결정데이터 분포가 균등, 샤드 추가/제거 시 데이터 이동 필요범위 기반 샤딩샤딩 키의 값 범위로 샤드 결정 (예: ID 1~99999 → A, 100000~199999 → B 등)구현이 쉽고 직관적, 데이터 쏠림 발생 가..
[SRE] SRE(Site Reliability Engineering) 목차 ㅁ 들어가며 내가 현재 속해 있는 팀인 카카오 i 플랫폼의 Gateway는 방대한 MSA(Microservices Architecture) 환경에서 트래픽을 집약하고, 서비스 간 연결의 허브 역할을 한다. 이런 복잡한 구조에서 서비스 안정성을 확보하고, 효율적인 운영을 위해 SRE(Site Reliability Engineering) 개념의 도입은 필수적입니다. 본 글에서는 SRE의 핵심 개념과, Gateway 서비스에 적합한 SRE 지표 수립 방법을 정리합니다.ㅁ SRE란 무엇인가?SRE는 구글에서 시작된 운영 및 개발 방법론으로, 소프트웨어 엔지니어링 원칙과 자동화를 통해 대규모 시스템의 신뢰성과 안정성을 확보하는 것을 목..
ㅁ 들어가며 AI Service Agent는 사용자의 발화나 이벤트를 감지해 카카오 i 서버와 연동, AI 음성 서비스의 진입점 역할을 하는 소프트웨어/모듈이다. 카카오 i 플랫폼의 서버와 HTTP/2 기반으로 상시 연결되어, 실시간으로 이벤트와 명령을 주고받는다. 다양한 디바이스(스피커, 앱 등)에 적용 가능하며, 비즈니스 목적에 맞는 맞춤형 AI 음성 서비스를 구현할 수 있다. ㅁ AI Service Agent란?AI Service Agent는 카카오 i 플랫폼에서 다양한 AI 음성 서비스를 구현하고 연동할 수 있도록 제공되는 핵심 구성 요소 중 하나이다. 주로 스마트 스피커, HeyKakao 앱, 내비게이션 등과 같이 사용자의 음성 발화나 디바이스 조작을 감지하고, 이를 카카오 i 서버(KVS)와..
ㅁ 들어가며ㅇ Spring WebClient에서 URI.create()를 사용하지 않을 때 500 Internal Server Error가 발생하는 이유는, URI를 문자열로 직접 넘기는 과정에서 URI의 형식이나 인코딩, baseUrl과의 조합 등에서 문제가 생길 수 있기 때문이다. ㅁ 에러 메시지org.springframework.web.reactive.function.client.WebClientResponseException$InternalServerError: 500 Internal Server Errorㅇ 에러 메시지만으로는 당장 원인을 분석하기 쉽지 않다. ㅁ 원인 분석Spring WebClient에서 uri() 메서드에 URI 문자열이 아닌, 잘못된 타입이나 형식의 값을 넘기거나, URI...
[SRE] SRE(Site Reliability Engineering) 목차 ㅁ 들어가며 SRE는 시스템의 신뢰성(Availability)을 수치로 측정하고 유지하기 위해 SLI(Service Level Indicator)를 정의하고 관리한다.이 글에서는 제가 직접 경험한 CloudWatch 및 Grafana 기반의 모니터링 환경 구축과, 그를 통해 얻은 인사이트와 문제 해결 사례를 공유하고자 한다. 현실적인 운영 상황과 개선 과정을 중심으로, SRE의 시선에서 SLI를 어떻게 "정의하고, 모니터링하고, 개선"했는지를 설명하고자 한다. ㅁ SLI는 무엇이 기준이 되어야 하는가?SRE로 일하면서 가장 먼저 고민한 것은 "우리는 무엇을 측정해야 하는가?"였다.처음에는 AWS CloudWatch에 내장된 ..
[SRE] SRE(Site Reliability Engineering) 목차ㅁ 들어가며ㅇ SRE란 무엇인가? SRE는 단순한 ‘운영’이 아니다에서 서비스의 신뢰성(Reliability)을 코드와 시스템적으로 보장하는 엔지니어링 문화에 대해서 알아보았다. 이번 글에서는 SRE의 판단 기준이자 방향성이며, 실질적인 운영 목표인 SLA, SLO, SLI에 대해서 정리하였다. ㅁ 의료 바이탈 체크와 SRE의 SLA, SLO, SLI드라마나 영화를 보면 응급환자를 케어하는 의사가 먼저 활력징후(vital signs) 리스트를 체크하는 장면을 보곤 한다. 활력징후란, 온도, 맥박, 호흡, 혈압의 수치를 측정한 데이터로, 사람의 몸상태를 수치로 나타낸 것이다. 정확한 진단을 내리기 위해서는 정밀한 검사를 통해 얻은 ..
ㅁ 들어가며ㅇ 블로그에서 자주 사용하는 이모티콘들을 카테고리별로 정리해 보았다. 필요시 복사해서 사용하기 좋다. ✅ 상태 / 체크 / 피드백의미이모티콘설명완료 / 긍정✅체크 완료, OK실패 / 오류❌에러, 잘못됨참고 / 질문❓의문, 질문사항중요⚠️주의, 경고필독 / 하이라이트🔥핵심, 중요 내용 강조참고사항💡팁, 참고 정보성공🎉성공, 축하진행 중⏳로딩, 진행중보류🕒시간, 대기 상태🔧 개발 / 운영 관련의미이모티콘설명코드 / 명령어💻코드 또는 CLI 명령서버 / 백엔드🖥️서버, 시스템배포 / 클라우드☁️클라우드, 배포 관련네트워크🌐인터넷, 네트워크디버깅🐞버그, 디버깅데이터베이스🗄️DB, 저장소모니터링📊지표, 모니터링자동화🤖자동화 시스템📚 문서 / 정보 구성용의미이모티콘설명제목📝문서,..
[SRE] SRE(Site Reliability Engineering) 목차 ㅁ 들어가며“SRE가 정확히 뭐지?”Site Reliability Engineering, 줄여서 SRE는 단순한 운영 역할을 넘어서, 서비스의 신뢰성(Reliability)을 코드와 시스템적으로 보장하는 엔지니어링 문화이다. 구글에서 시작된 개념이지만, 오늘날 대부분의 대규모 플랫폼 서비스 기업들이 SRE 조직을 두고 안정성과 효율성을 동시에 추구하고 있다. ㅁ SRE는 단순한 ‘운영’이 아니다 과거에는 운영(Operation)과 개발(Development)이 분리되어 있었다. 개발자는 코드를 만들고, 운영자는 그것을 배포하고 문제를 해결하는 구조였다. 하지만 이 구조는 다음과 같은 문제를 일으켰다.개발자는 안정성보다 기능에 ..
ㅁ 들어가며 ffmpeg로 HLS 서비스를 운영하면서 원천 스트림의 DNS 캐싱 문제(예: 원천 스트림의 IP가 변경되었는데 ffmpeg가 계속 이전 IP로 접속을 시도하는 현상)는 꽤 흔히 발생할 수 있다. ffmpeg 프로세스가 기동된 상태에서는 내부적으로 한번 해석된 DNS 정보를 계속 사용하기 때문에, 원천 스트림의 IP가 바뀌어도 실시간으로 반영되지 않는다. 이로 인해 스트림 장애가 발생할 수 있다. ㅁ 원인 요약ㅇ ffmpeg는 입력 스트림 URL의 DNS를 최초 연결 시점에만 해석ㅇ 프로세스가 살아있는 동안에는 동일한 IP로만 재접속을 시도ㅇ 원천 도메인의 IP가 바뀌면, ffmpeg는 변경된 IP를 반영하지 못해 연결 오류가 발생 ㅁ 해결 방법ㅇ ffmpeg 프로세스 재시작 - 가장 확실한..
ㅁ 들어가며 Spring Cloud Gateway에서 http://engine-service로 호출했을 때 실제로 http://engine-service.prod.svc.cluster.local로 접근되는 이유는 Kubernetes의 DNS 규칙과 Spring Cloud Gateway가 Kubernetes 클러스터 내부에서 동작하기 때문이다. ㅁ Kubernetes DNS 규칙ㅇ Kubernetes 내부에서는 DNS를 다음 우선순위로 해석한다.서비스명 → 현재 네임스페이스 기준 (engine-service.prod에서 실행 중이면 engine-service.prod.svc.cluster.local)서비스명.네임스페이스명 → 명시적 네임스페이스풀 FQDN (서비스.네임스페이스.svc.cluster.loca..
ㅁ 들어가며 신안 증도는 서해에서 아름다운 해변을 가지고 있다. 증도의 아름다운 해변과 다채로운 도로상황은 다이나믹한 라이딩 경험을 제공하였다. 바다, 산, 갯벌, 산길, 해안길, 염전길 숲속길 등등 다채로운 풍경을 경험할 수 있었다. ㅁ 경로짱뚱어해변 → 짱뚱어다리 → 방축리 해안도로(도로, 시멘트, 비포장) → 증도관광안내소 → 태평염전(비포장) → 화도노두길 → 증도왕바위 → 한반도해송숲 → 짱뚱어해변(모래사장) ㅁ 소요시간2시간 20분 ㅁ 주행거리48.82 km ㅁ 주행 영상🚴캠핑패카의 라이딩] 신안 증도 라이딩 ㅁ 함께 보면 좋은 사이트ㅇ 신안군(증도) 자전거길
ㅁ 들어가며ㅇ AI는 알고리즘의 조합이며, 이러한 알고리즘은 수많은계산이 필요하다. 수많은 알고리즘의 계산을 수행하기 위해 GPU가 필요한데, 확보된 GPU도 효율적으로 사용할 수 있는 방법이 필요하기 마련이다. [VESSL AI X 테디노트] #Agent 시대의 Infra, Ops 그리고 #MCP 🔥을 시청하면서 개발자 친화적인 VESSL AI에 대해서 알게 되어 그 특징과 활용성에 대해서 정리해 보았다.ㅁ VESSL AI란?VESSL AI는 머신러닝(ML)과 인공지능(AI) 프로젝트의 개발, 운영, 배포를 통합적으로 지원하는 MLOps(Machine Learning Operations) 플랫폼을 제공하는 기업이다. 복잡한 AI 운영을 간소화하고, 대규모 AI/LLM(대형 언어 모델) 프로젝트의 학습..
ㅁ 들어가며ㅇ Go로 DB 데이터를 CRUD(Create, Read, Update, Delete)하는 프로젝트를 구성하려고 한다. 가장 널리 사용되는 구조는 Clean Architecture 또는 Layered Architecture(MVC 기반)이다. 아래는 Clean Architecture 기반의 Go CRUD 프로젝트 아키텍처 구성해 보았다. ㅁ 전체 구조 (폴더 트리 예시)go-crud-project/├── cmd/ # 애플리케이션 실행 진입점│ └── main.go├── config/ # 환경설정 관련│ └── config.go├── internal/│ ├── domain/ # 비즈니스 도메인 정의 (Entit..
ㅁ 들어가며 맥과 윈도우를 동시에 사용하다보면 파일공유가 문제가 될 때가 있습니다. 이럴 때에 맥에서 폴더를 공유하여 파일을 공유할 수 있습니다. 우선, 파일 공유를 위한 프로토콜인 SMB를 설명드릴께요. ㅁ SMB란? SMB는 Server Message Block의 약자, 파일이나 프린터를 네트워크에서 공유하기 위한 프로토콜입니다. SMB는 원도우 개발사인 마이크로소프트에서 개발되었습니다. 현재 많은 기업에서 파일 공유를 위해 SMB를 사용하고 있고, 맥OS에서도 파일 공유를 위해 SMB를 지원하고 있습니다. 오늘 설명드릴 맥의 파일공유 활성 방법도 SMB 프로토콜을 이용합니다. 맥과 윈도우를 사용하다보면 한글깨짐 현상이 발생하는데요. SMB를 이용하면 한글깨짐을 예방할 수 있습니다. 자세한 내용..