본문 바로가기

전체 글175

주니어 백엔드 개발자가 서비스/서버 운영하며 배운 몇 가지 이번 글에서는 서비스를 운영하며 겪었던 몇 가지 경험을 공유하려 합니다. 해당 글은 개인적인 경험과 책 을 참고하여 작성했습니다. 자기소개 문제는 피할 수 없다: 서비스 운영의 현실 Case 1. 타임아웃(timeout) Case 2. 빠른 실패 Case 3. 서킷 브레이커 (circuit breaker) Case 4. 데이터 정리하기 Case 5. 로드밸런싱과 스케일 아웃 Case 6. 서비스 재시작하기 Case 7. 인프라 자동화 도구를 조심하자 (조속기를 활용하자) 마치며: 처음 운영했던 때처럼 자기소개 안녕하세요. 저는 특정 도메인 커머스 플랫폼에서 회사에서 추천 서비스, AB 테스트, 어드민 관리 등을 담당하는 개발자입니다. 업무 특징상 앱 실행 초기 팝업부터 메인 페이지 추천, 상품 상세 페.. 2024. 3. 2.
분산 메시지 큐 시스템 설계 1. 분산 메시지큐 주요 기능, 컴포넌트 설명과 초기 설계안 이번 글에서는 분산 메시지 큐가 무엇인지 알아보고, 분산 메시지 시스템 설계를 한다는 가정하에 요구사항을 구체화하고 초기 설계안에 대해 설명하고자 합니다. 해당 내용은 가상 면접 사례로 배우는 대규모 시스템 설계 기초 2의 4장 분산 메시지 큐를 주로 참고하여 작성되었습니다. 목차 1. 서론 1.1 분산 메시지 큐의 중요성 1.2 분산 메시지 큐의 장점 / 단점 1.3 메시지 큐 vs 이벤트 스트리밍 플랫폼 2. 설계에 앞서 2.1 요구사항 구체화 하기 2.2 기능 및 비기능 요구사항 정리 3. 주요 기능 / 컴포넌트 3.1 메시지 모델 (일대일 모델 / 발행-구독 모델) 3.2 토픽, 파티션, 브로커 3.3 소비자 그룹 3.4 초기 설계안 4. 마치며, 다음 글에서 Reference 1. 서론 1.1 .. 2024. 2. 18.
AWS ElastiCache for Redis에서 발생한 Network bandwidth out allowance exceeded와 대처 방안 최근 신규 프로젝트 개발을 마치고 릴리즈를 앞두고 있었습니다. 릴리즈 전 부하테스트를 하다 AWS ElastiCache for Redis에서 네트워크 대역폭의 허용 범위를 넘게 되었는데요. 겪었던 문제와 해결한 경험을 가볍게 소개드리려 합니다. 목차 1. 네트워크 대역폭이란? - 네트워크 대역폭의 기본 개념 - AWS ElastiCache for Redis에서의 대역폭 중요성 2. Network Bandwidth Out Allowance Exceeded의 의미 - AWS ElastiCache for Redis 인스턴스 스펙 - Baseline bandwidth vs Burst bandwidth 3. 해결 방법 - 데이터 압축 - 요청 딜레이 적용 - 스케일업 및 스케일 아웃 마치며 Reference 1... 2024. 1. 21.
SpringBoot 3.2에서 AWS SecretsManager 사용하여 패스워드 및 인증 관리하기 목차 1. 시작하며 1.1 패스워드 및 인증 관리 서비스 1.2 글의 목적과 범위 소개 2. AWS 라이브러리 선택 2.1 org.springframework.cloud vs io.awspring.cloud 3. 의존성 추가하기 3.1 Spring Cloud AWS Dependencies와 Starter Secrets Manager 추가 4. AWS SecretsManager 사용 방법 4.1 비용 4.2 AWS Console에서 SecretManager 생성과 secret 값들 생성하기 4.3 SpringBoot 실행하는 곳에 권한 설정하기 (AWS Login, IAM Role, STS) 4.4 SpringBoot에서 SecretManager를 통한 secret 데이터 접근 및 관리 (코드) 5. 마.. 2024. 1. 6.
[회고] 글쓰기 모임 '글또', 8기를 마치고, 9기를 시작하며 안녕하세요. 쿠킴입니다. 새로운 회사에 적응한다는 핑계로 5개월 동안 블로그 글을 작성하지 못했네요. 글쓰기에는 꽤 나태해졌지만, 업무가 그만큼 많이 생겼다는 좋은(?) 뜻으로 생각하고 있습니다. 글또 9기 모집 글을 보고 고민없이 지원했습니다. 업무에 절여진 뇌에 산소가 필요했거든요. (벌써 12월이네요. 미리 메리 크리스마스 🎄) 글또란? 글또 (글 쓰는 또라이가 세상을 바꾼다)는 글 쓰는 개발자 모임입니다. 약 6개월의 기간 동안, 2주마다 1개의 글을 작성합니다. 본인이 속한 개발 직군 채널(e.g. 백엔드)에 글을 공유합니다. 채널 멤버들끼리 글을 피드백을 합니다. 온오프라인(커피챗, 공식 행사 등) 모임도 있습니다. 7기부터 모임을 시작했는데 어느덧 9기네요. 모임이 10기까지만 진행된.. 2023. 12. 7.
스프링 부트 살펴보기 / 의존성 관리 간소화, 배포 간소화, 자동 설정 웹 백엔드 개발을 시작하며 많은 언어와 프레임워크를 사용해 보았습니다. 튜토리얼 수준으로 Python의 Django, Flask, Node Express, Nest를 접했고 주로 Java SpringBoot, Golang의 Gin을 사용하였습니다. 최근 Gin을 주로 사용하면서 SpringBoot가 그리울 때가 있습니다. Gin에서는 SpringBoot에서 당연히 해주는 것들이 없고, 직접 구현해야 하는 경우가 많았거든요. (언어, 프레임워크가 추구하는 바가 다르기 때문에 직접적인 비교는 실례지만요.) 아무쪼록 Golang Gin 사용 덕분에 직접 구현하며 날 것의 맛을 알게 되었고, MSG 가득한 SpringBoot의 마법(?)에도 관심이 가게 되었습니다. SpringBoot를 사용하며 당연하게(또는 .. 2023. 6. 4.