개인 블로그의 검색 엔진 노출을 개선하기 위해 SEO(Search Engine Optimization) 전반을 점검하고 최적화했습니다. 이 과정에서 다국어 블로그의 SEO 구조를 설계하고, 유지보수성을 고려한 중앙 관리 시스템을 구축한 경험을 공유합니…
문제 상황 Cloudflare Pages로 배포한 사이트에 커스텀 도메인을 연결했는데, 서브도메인이 계속 Inactive (Error) 상태였습니다. 몇 시간이 지나도 해결되지 않았고, 루트 도메인으로 접속하면 www로 리다이렉트는 되지만 아래와 같은…
각 컨트롤러 메서드마다 현재 로그인한 사용자의 정보를 조회하고 모델에 담는 로직은 코드의 중복을 발생시키고 유지보수성을 저하시킵니다. 또한 비로그인 사용자의 접근 시 발생할 수 있는 NullPointerException의 잠재적 원인이 되기도 합니다.…
서비스의 확장성과 유지보수성을 높이기 위해 공통 응답 객체를 개선하고, 사용자가 직접 자신의 정체성을 표현할 수 있는 프로필 이미지 관리 기능을 구현했습니다. 이 과정에서 겪은 기술적 해결 방안을 공유합니다. 공통 응답 객체의 제네릭 타입 추론 개선 …
어떤 이의 관심사는 그 사람의 결핍과 관련이 있는거같다. 미래가 걱정되면 자기계발서를, 마음이 헛헛하면 읽다 만 소설책을 꺼내보곤 한다.
기록의 본질에 집중하는 플랫폼 '무제'는 정식 출시 이후 사용자의 이용 패턴을 분석하며 시스템의 안정성과 데이터 신뢰성을 높이는 데 주력하고 있습니다. 특히 이번 업데이트에서는 사용자가 게시물을 소비하는 가장 기본적인 지표인 '조회수' 산정 방식의 개…
무제는 사용자의 다양한 페르소나를 존중하며, 기록의 가치를 보존하는 플랫폼을 지향합니다. 서비스가 성장함에 따라 기존에 작성된 파편화된 로직들은 유지보수의 복잡도를 높이고, 때때로 사용자 의도와 다른 결과를 초래하기도 합니다. 최근 진행된 업데이트를 …
무제 프로젝트가 오늘 정식 버전을 배포했습니다. 스프링 부트 기반의 기술 스택을 활용하여 서비스의 완성도를 높이는 과정에서 마주했던 기술적 도전과 이를 해결한 과정에 대해 공유하고자 합니다. 1. 사용자 경험의 핵심, 검색 시스템 설계와 구현 정보가 …
블로그 프로젝트 를 개발하며 사용자 경험(UX)의 핵심인 게시물 관리 기능을 고도화했습니다. 기존의 페이지 단위 렌더링 방식에서 벗어나, 비동기 통신을 통한 동적 UI 업데이트와 공통 로직의 외부화를 통해 코드 유지보수성을 확보한 과정을 공유합니다. …
저사양 컨테이너 환경에서 Spring Boot 서비스의 안정성을 확보하는 방법 클라우드 환경의 발전으로 서비스를 손쉽게 배포할 수 있게 되었지만, 제한된 리소스 내에서 애플리케이션의 안정성을 유지하는 것은 여전히 엔지니어에게 중요한 과제입니다. 특히 …
서비스의 규모가 커짐에 따라 사용자에게 노출되는 UI 컴포넌트의 일관성을 유지하는 것은 개발자에게 중요한 도전 과제가 됩니다. 특히 블로그나 SNS와 같이 게시물 카드가 다양한 페이지에서 반복적으로 사용되는 경우, 이를 관리하는 로직이 파편화되면 사소…
들어가며 "부트스트랩으로 어려운 거만 커스텀 CSS를 작성해달라"는 요청에서 시작된 프로젝트였습니다. 기존의 레거시 UI를 현대적인 SNS 스타일로 완전히 리뉴얼하면서 겪었던 경험과 해결책을 공유하고자 합니다. 문제 상황 기존 블로그는 전통적인 웹 블…
개요 멀티 환경 애플리케이션을 개발할 때 가장 골치 아픈 문제 중 하나는 환경별 설정을 어떻게 관리할 것인가 하는 점입니다. 개발 환경, 스테이징, 운영 환경마다 데이터베이스 주소, 캐시 정책, 로깅 레벨 등이 모두 달라야 하기 때문입니다. 이번 글에…
https://dribbble.com/shots/16842379-Social-Feed https://dribbble.com/shots/27002130-Vibe-Coding-Website-Design-Landing-page


들어가며 웹 애플리케이션에서 이미지 업로드 기능은 필수적이지만, 관리하지 않으면 사용되지 않는 파일들이 스토리지에 누적되어 비용과 관리 부담이 증가하게 됩니다. 특히 사용자가 이미지를 업로드한 후 게시물 작성을 취소하거나, 게시물을 삭제할 때 연결된 …
이번 글에서는 프로젝트의 품질을 한 단계 높이기 위해 진행했던 리팩토링 과정을 공유합니다. 데이터베이스 접속 정보를 안전하게 보호하는 암호화 작업부터, 프론트엔드 코드의 중복을 제거하는 모듈화, 그리고 빈번한 데이터 갱신 상황에서의 동시성 제어 처리 …
1. 스프링 부트 애플리케이션의 배포와 데이터베이스 연결 오류 해결 프로젝트의 초기 단계에서 배포 편의성을 고려하여 Railway 플랫폼을 선택하였습니다. Dockerfile을 기반으로 한 자동 배포 시스템을 구축하였으나, 실행 단계에서 이 발생하는 …
소프트웨어 개발 및 운영 과정에서 로그(Log)는 시스템의 상태를 파악하고 문제를 진단하는 핵심적인 지표가 됩니다. 무분별한 로그 기록은 시스템 성능 저하와 저장 공간 부족을 초래할 수 있으며, 반대로 부족한 기록은 장애 대응을 어렵게 만듭니다. 이를…
김준영 백엔드 엔지니어 이메일 이력서 링크드인 안녕하세요, 기록을 좋아하는 백엔드 개발자 김준영입니다. 주로 Java와 Spring을 사용하여 RESTful API를 설계하고 확장 가능한 서버 아키텍처를 개발하며, 안정적이고 효율적인 시스템을 기반으로…
