세상을 바꾸고 싶은 개발자

세상에 필요한 서비스를 만들고쉽고 편리한 경험에 가치를 더합니다.

복잡한 문제를 단순하게 풀고, 오래 남는 사용자 경험을 고민합니다.

change_the_world.java
public class BetterWorld {
void deployJoy(Day today) {
// 작은 개선이 큰 변화를 만든다.
today.fixOneBug();
today.shareCoffee(HOT);
return users.smile() ? Status.BLOOMING : Status.LOADING;
} // deployJoy
}

About

Developer S. profile

재밌는걸 평생 만들고 싶어요.

Backend시니어아키텍쳐SpringJavaRedisDockerDBCI/CDUIUXJPASEOPythonRubyAWSDjangoClaude Code

기술적 부채(Tech Debt)보다 무서운 것은 '창의적 부채'다.
AI가 다 해줄 때, 당신의 독창성은 어디에 있는가?

Tech

기술 블로그

Spring Boot API Versioning 전략 — URI, 헤더, 미디어 타입 중 무엇을 골랐는가

Spring Boot API Versioning 전략 — URI, 헤더, 미디어 타입 중 무엇을 골랐는가

Spring Boot 4.0의 공식 API Versioning 지원을 계기로, 실무에서 URI 방식과 헤더 방식 사이에서 고민한 과정과 기존 API를 점진적으로 버전 관리한 경험을 정리했습니다.

서비스 간 결합도를 낮추기 위한 이벤트 기반 아키텍처 도입기

서비스 간 결합도를 낮추기 위한 이벤트 기반 아키텍처 도입기

마이크로서비스 환경에서 서비스 간 강한 결합을 끊기 위해 Spring ApplicationEvent에서 시작해 Kafka로 확장한 실전 경험을 공유합니다.

Spring AI로 LLM API 연동하기 — 백엔드 개발자의 첫 AI 기능 도입기

Spring AI로 LLM API 연동하기 — 백엔드 개발자의 첫 AI 기능 도입기

Spring AI 프레임워크를 활용해 Spring Boot 프로젝트에서 LLM을 연동하고, ChatClient와 프롬프트 템플릿, 스트리밍 응답까지 실무에 적용한 과정을 정리했습니다.

AI 코딩 도구 실무 비교: Copilot, Cursor, Claude Code를 반년간 쓰며 느낀 것들

AI 코딩 도구 실무 비교: Copilot, Cursor, Claude Code를 반년간 쓰며 느낀 것들

백엔드 개발자가 GitHub Copilot, Cursor, Claude Code를 실무에서 반년간 사용하며 비교한 경험입니다. 각 도구의 강점과 한계, 그리고 어떤 상황에서 어떤 도구가 맞는지 정리했습니다.

Spring Boot Virtual Threads 실무 적용기 — WebFlux 없이 높은 동시성을 달성한 경험

Spring Boot Virtual Threads 실무 적용기 — WebFlux 없이 높은 동시성을 달성한 경험

Spring Boot 4에서 기본이 된 Virtual Threads를 실무에 적용하면서, 기존 WebFlux 코드를 블로킹 스타일로 전환하고도 높은 동시성을 달성한 과정과 주의할 점을 정리합니다.

Spring Security: JWT 인증이 필요한 API의 완벽한 통합 테스트 환경 구축기

Spring Security: JWT 인증이 필요한 API의 완벽한 통합 테스트 환경 구축기

로그인이 필수인 API를 테스트할 때 매번 토큰을 발급받아야 하는 번거로움을 피하고, 우아하게 인증 컨텍스트를 주입(Mocking)하여 테스트하는 방법을 다룹니다.