분류 전체보기 63

AWS ECS Health Check - 반드시 알아야 할 기본 사항

AWS ECS Health Check - 반드시 알아야 할 기본 사항서문AWS ECS를 사용할 때 가장 중요한 것은 기본적인 사항을 제대로 이해하는 것입니다. 특히 Health Check 설정은 안정적인 서비스 운영을 위한 핵심 요소입니다. 단순히 메트릭상 CPU와 Memory 사용률이 낮다는 이유로 리소스를 조정하면 예상치 못한 문제가 발생할 수 있습니다.실제 사례를 보면, Health Check에 대한 이해 없이 리소스 최적화만 진행한 결과 배포가 정상적으로 이루어지지 않고 지속적인 롤백이 발생하는 문제가 있었습니다. ECS Service Events에서 Health checks failed with these codes: [503]라는 메시지와 함께 새로운 Task들이 계속 실패했습니다.이런 문제를..

AWS ECS 2025.09.03

Spring Boot API 서버의 Request/Response 로깅 구현기: ContentCachingWrapper 활용과 문제 해결 과정

Spring Boot API 서버의 Request/Response 로깅 구현기: ContentCachingWrapper 활용과 문제 해결 과정 들어가며API 서버를 운영하다 보면 디버깅이 필요한 순간이 많습니다. 특히 에러가 발생했을 때 "정확히 어떤 요청이 들어왔는지", "서버는 어떤 응답을 보냈는지"를 알아야 문제를 재현하고 해결할 수 있습니다.이번 글에서는 Spring Boot에서 HTTP Request/Response 로깅을 구현하면서 마주친 예상치 못한 문제들과 해결 과정을 공유합니다. Spring Framework의 설계 철학을 이해하고, 운영 환경에서 실제로 발생하는 이슈들까지 다뤄보겠습니다.1. 첫 번째 시도: RequestCachingFilter의 실패처음에는 단순하게 생각했습니다. "F..

Claude Code MCP 설정 갱신시 주의사항

문제 상황Claude Code에서 MCP MySQL 서버를 사용하던 중 호스트를 변경했음에도 불구하고 기존 설정이 계속 동작하는 문제가 발생했습니다.원인 분석claude mcp list 명령어로 확인해보니 설정하지 않은 기존 MySQL MCP 서버가 여전히 활성화되어 있었습니다. 이는 이전 설정이 완전히 제거되지 않아 새로운 설정이 제대로 적용되지 않은 것이 원인이었습니다.해결 방법기존 MCP 서버 제거claude mcp remove [기존_mysql_서버_이름]프로젝트별 고유한 MCP 서버 이름 사용각 프로젝트마다 다른 이름으로 MySQL MCP 서버를 설정예: mysql-project1, mysql-project2 등설정 확인루트 디렉토리의 .claude.json 파일에서 기존 설정이삭제되었는지 확인..

MCP 2025.08.13

Claude Code MCP 설정: 글로벌 vs 프로젝트별 설정

개요Claude Code에서 MCP(Model Context Protocol) 설정 시 글로벌 설정과 프로젝트별 설정의 우선순위와 동작 방식에 대한 가이드입니다.MCP 설정 방법Claude Desktop에서 MCP 설정먼저 Claude Desktop에서 MCP 서버를 설정합니다.Claude Code에서 설정 가져오기설정 우선순위우선순위 규칙claude mcp add-from-claude-desktop이 명령어를 사용하여 Claude Desktop의 MCP 설정을 Claude Code로 가져올 수 있습니다.프로젝트별 설정 (높은 우선순위)글로벌/사용자 설정 (낮은 우선순위)중요한 발견사항글로벌 설정과 프로젝트별 설정에 같은 이름의 MCP 서버가 있으면 글로벌 설정이 우선됩니다프로젝트별 설정을 제대로 적용하..

MCP 2025.08.07

Pull Request Best Practices: My Translation and Insights

이 글은 GitHub 공식 문서의 내용을 번역하면서 개인적인 경험과 인사이트를 추가한 것입니다.Rule 1: Making your changes easy to reviewPR에서 명확한 컨텍스트를 제공하면 리뷰어들이 빠르게 무엇이 변경되었는지, 그리고 왜 중요한지 파악할 수 있습니다. 이는 리뷰 과정을 더 빠르고 매끄럽게 만들어 주고, 오고가는 대화를 줄이며, 팀이 더 나은 피드백을 제공하고 확신에 찬 결정을 내릴 수 있도록 도와줍니다.GitHub 문서에서 말하는 핵심GitHub 문서에서 제시하는 "less back-and-forth"의 목표:🎯 효율적인 PR 작성법작은 PR: 단일 목적에 집중명확한 컨텍스트: 제목, 설명, 목적 명시자체 리뷰: 제출 전 스스로 검토보안 검토: 사전 보안 이슈 해결실제..

SW개발생각 2025.08.01

Optimizing StackTrace with LogstashEncoder: Mastering ShortenedThrowableConverter

LogstashEncoder로 StackTrace 최적화하기: ShortenedThrowableConverter 완전 정복들어가며시스템 운영 로그를 관리하다 보면, 예외 로그의 StackTrace가 너무 길어져서 Logstash의 버퍼 크기를 초과하거나 스토리지 비용이 증가하는 문제를 겪게 됩니다. 특히 Spring Boot 애플리케이션에서 중첩된 예외가 발생할 때, StackTrace가 수십 줄에서 수백 줄까지 길어질 수 있습니다.이번 글에서는 logstash-logback-encoder의 ShortenedThrowableConverter를 활용해 StackTrace를 효과적으로 줄이고 최적화하는 방법을 실제 예제와 함께 알아보겠습니다.문제 상황일반적인 StackTrace의 문제점// 중첩된 예외 발생..

Java 2025.07.29

Integrating Google Calendar with Claude Desktop: A Complete Hand-off Guide (MCP)

Google Calender Claude Desktop에 연동하기 (MCP) 목적: 일반인이 Claude를 통해 Google Calendar 관리준비사항: Google 계정, Claude Desktop실습환경: macOS Sequoia Google Cloud Console 접속 및 계정 연동크롬으로 Google Cloud Console 을 검색해주세요. Chrome에서 https://console.cloud.google.com/ 접속캘린더 연동할 계정으로 로그인해주세요.연동하는 과정에서 주소, 폰 인증, 결제 카드 등록 (과금 없음, 크레딧 제공) 해주세요.Google Cloud Console에서 우측 상단에 활성화 버튼을 클릭하지 않으면 과금 안됩니다.무료로 시작하기 클릭해줍니다.서비스약관 위 두개 ..

MCP 2025.07.02

Util classes와 Helper classes

헬퍼 클래스는 다른 클래스들이 애플리케이션의 핵심 목적이 아닌 반복적인 작업을 수행하는 데 사용하는 메서드를 포함합니다.헬퍼 클래스는 인스턴스화 될 수 있으며, 인스턴스 변수, 인스턴스 메서드 그리고 정적 메서드를 포함할 수 있습니다. 유틸 클래스는 애플리케이션 전체에서 사용할 수 있는 정적 메서드를 제공하는 클래스입니다. 유틸리티 클래스의 정적 메서드는 애플리케이션에서 공통적인 작업을 수행하는 데 사용됩니다. 유틸리티 클래스는 인스턴스화 할 수 없으며, 상태를 갖지 않습니다. 유틸리티 클래스는 final로 선언하고, 모든 메서드는 반드시 정적이어야 합니다. 유틸리티 클래스가 인스턴스화되는 것을 원하지 않기 때문에, private 생성자를 도입합니다. 유틸리티 클래스의 목적은 프로그램 내에서 특정 기능..

Java/기초 2025.05.26

2025 개발툴 정리

2025년 현재 사용중인 개발 툴 정리OS: MacDBredis insightpubsub용으로만 쓰고, redis cache는 intellij로 database plugin추가해서 사용gitforkintellij gitconflict가 상세히 발생하는경우 intellij에서 사용ideintellijcursorcursor 구독 취소후 claude-code 사용claude-code는 비용이 너무 비싸서 다시 cursor로 돌아옴LLMclaude desktop 원툴MCP로 filesystem을 연동해서 cursor처럼 맥락 파악및 페어프로그래밍 가능dockerorbstackdocker desktop 보다 훨씬 빠름k8slensTerminalwarpNetworkproxyman (무료 사용중이었지만, 그냥 사려고..

카테고리 없음 2025.04.02

Implementing Redis Cache in Spring Boot: From Basic Setup to Serialization

Implementing Redis Cache in Spring Boot: From Basic Setup to Serialization캐시무효화와 Cache Aside를 통해 캐시를 사례를 구성했습니다.환경mackotlinspringboot준비사항springboot projectredis cluster ( container )다루는 내용@Cacheable, @CacheEvictSpring Cache, Spring Data RedisJackson1. Spring Cache와 Redis 연동을 위한 기본 설정필요한 의존성 설명implementation("org.springframework.boot:spring-boot-starter-data-redis")implementation("com.fasterxml.j..