오픈 소스라는 존재에 대해서는 "언제 한번쯤은 기여해보고 싶다"는 마음은 항상있었지만,막연하게만 생각하고 있었습니다.그러다 우연히 오픈소스 기여 모임이라는 곳을 알게 되었습니다. 오픈소스 기여모임“누구나 원하는 오픈소스에 기여를” 할 수 있게 기여를 직접 돕습니다!medium.com 초심자 분들께도 체계적으로 가이드를 주신다는 후기를 봤기 때문에 이번에는 꼭 오픈 소스에 기여를 해보겠다는 생각으로 일단 참가부터 했던 것 같습니다.오픈소스 기여 모임 10기 모집 글 Spring Batch를 선택한 이유기여할 프로젝트를 고를 때, 고민 없이 spring-batch를 선택했습니다. spring-batch는 저에게 꽤 특별한 프로젝트입니다. 본격적인 개발 스터디를 시작한 게 바로 spring-batch 스터디..
배경서비스를 운영하면서 디버깅 시 어려움을 겪었습니다. 특히 예외가 발생하지 않았지만 오류인 경우를 파악하기 어려웠습니다. 예를 들어, 사용자는 A 옵션을 선택했다고 생각했으나 클라이언트 앱에서 잘못 처리되어 B로 전송되는 경우가 있었습니다. 이런 상황에서는 서버 입장에서 정상적으로 처리되기 때문에 예외 로그가 남지 않지만, 실제로는 사용자 의도와 다른 결과가 발생하는 문제였습니다. 기존에는 사용자가 어떤 요청을 했는지 로그 포맷이 따로 정해져 있지 않아 필요한 시점에 개별적으로 로그를 추가하는 방식으로 작업했기 때문에 다음과 같은 문제점이 있었습니다.API 요청/응답 흐름을 추적하기 어려움일관되지 않은 로그 형식문제 발생 시 원인 파악에 시간이 오래 걸림새로운 로그가 필요하다면 재배포가 필요함 해결 방..
이 글은 2025년 12월부터 K-DEVCON에서 진행된 시스템 디자인 스터디 시즌2의 내용을 정리한 글입니다.'가상 면접 사례로 배우는 대규모 시스템 설계 기초 2권'을 함께 읽고 토론하는 형식으로 진행되는 스터디로,책 내용을 그대로 옮긴 것이 아니라 스터디에서 논의된 내용과 제가 추가로 찾아본 내용을 함께 담았습니다.좋은 스터디를 만들어주신 K-DEVCON 운영진 분들께 감사드립니다! 들어가며2025년 12월부터 K-DEVCON에서 진행된 시스템 디자인 스터디 시즌2에 참여하고 있습니다.'가상 면접 사례로 배우는 대규모 시스템 설계 기초 2권'을 함께 읽고 토론하는 스터디인데요, 이번 주 주제는 3장 - 구글 맵이었습니다. 스터디를 마치고 궁금했던 부분들을 직접 찾아보면서 정리해보았습니다. 왜 지도 ..
제가 개발하고 있는 서비스는 이미지를 많이 다루기 때문에 썸네일 서버가 필수적입니다.기존에는 줌(zum.com)의 썸네일 서버를 함께 사용했으나,사용 중 이슈가 발생했고 외부 의존성을 제거하기 위해 썸네일 작업을 자체적으로 처리하기로 결정했습니다. 그래서 구글링을 통해 찾을 수 있었던 대표적인 라이브러리들을 비교해서 적합한 라이브러리를 선택하기로 했습니다. 비교 대상 라이브러리Graphics2D - Java 기본 APIImage.getScaledInstance() - Java 기본 APIImgscalr - 간단하고 효율적인 리사이징 전용 라이브러리Thumbnailator - 사용하기 쉽고 기능이 풍부한 라이브러리Marvin - 이미지 처리 프레임워크 이 중에서 저희 서비스는 Imgscalr를 사용하기로 ..
클라우드 클럽에서는 한 기수를 완료하기 위해 2번의 스터디에 참여해야 한다.7기 활동을 마친 지 꽤 시간이 지났지만, 기록으로 남겨본다. 1번째 스터디 - 시붕방: 시스템 붕괴 방지 위원회 스터디 장으로 참여한 첫 번째 스터디였다.재미를 더하기 위해 스터디만의 컨셉과 로고도 만들었다. 나는 책 스터디를 할 때 챕터마다 내용을 꼼꼼히 정리하고 기록하는 스타일은 아니다.편하게 읽되, 동기부여를 위한 스터디를 진행하고 싶었다.그래서 자유로운 인증 방식으로 각자만의 정리를 해서 독서하는 것으로 했다. 해당 스터디는 '가상 면접 사례로 배우는 대규모 시스템 설계 기초' 1권과 2권을 모두 읽는 것이 목표였다.1권까지는 비교적 순조로웠지만, 2권부터 난이도가 급상승하면서 결국 완독하지 못했다. 발표 자료나 PD..
10월에는 긴 연휴가 있었습니다. 바로 추석! 인프런에서 특별한 이벤트를 진행했어요. 바로 '향로'와 함께하는 추석 완강 챌린지였는데요.연휴 동안 매일 1강 이상 듣고 인증을 남기면 신청비를 환급해주는 이벤트였어요. '향로' 와 함께하는 추석 완강 챌린지 챌린지 | 향로 - 인프런40% 강의 쿠폰도 받고, 연휴 동안 미션 완주하면 신청비까지 몽땅 환급! 향로와 함께하는 밑져야 본전 그 이상인 추석 챌린지!www.inflearn.com 그런데 제가 당첨됐어요! 🎊 사실 1600명이 넘는 분들이 참여하는 챌린지에서 딱 10명만 추첨이라 기대도 안 하고 있었거든요.문자를 받고 진짜 깜짝 놀랐어요. 제가 구매한 강의가 25만 7천원이었는데,솔직히 전액이 다 환급될 거라고는 생각도 못 했어요. 확인하고 정말 ..
글로벌 서비스를 개발할 때 다국어 지원은 필수적인 기능입니다. HTTP의 Accept-Language 헤더를 활용하면 사용자의 언어 설정에 따라 자동으로 적절한 언어로 서비스를 제공할 수 있습니다. 이번 글에서는 HTTP 기초부터 Spring Boot에서 Accept-Language를 활용한 다국어 서비스 구현까지 알아보겠습니다. 이 글에서 사용한 예제 코드는 GitHub 레포지토리에 정리해 두었습니다.자세한 내용은 글 하단의 링크를 참고해주세요.HTTP 기초 이해하기HTTP란?HTTP(HyperText Transfer Protocol)는 웹에서 클라이언트와 서버 간의 통신을 위한 프로토콜입니다. 요청-응답(Request-Response) 모델을 기반으로 하며, 클라이언트가 서버에 요청을 보내면 서버가 ..
쿠버네티스를 간단히 실습할 수 있는 환경인 kind를 활용하는 방법을 소개합니다. kind란?kind (Kubernetes IN Docker)는 Docker 컨테이너 기반으로 쿠버네티스 클러스터를 구성할 수 있게 해주는 도구입니다.테스트, CI/CD, 경량 개발 환경에 적합VM 없이 컨테이너로만 클러스터 구성매우 빠르고 가벼움구성 예시kind-multinode/├── kind-cluster.yaml # 클러스터 노드 설정 파일└── create-cluster.sh # 클러스터 생성 스크립트kind-cluster.yamlkind: ClusterapiVersion: kind.x-k8s.io/v1alpha4nodes: - role: control-plane - role: wor..