🚀 공통 파일 업로드 기능 리팩토링 - 사용자 정보 추가 및 리팩토링 공통 파일 시스템 사용자 정보 추가 및 리팩토링 📅 개발 기간 시작: 2026.05.25 종료: 2026.05.25 총 소요 시간: 3.5H 🎯 개발 배경 (Why) 회원 기능 개발이 추가됨에 따라 파일 업로드 시 사용자 정보를 함께 저장할 ...
Pick Place - 공통 파일 업로드 기능 리팩토링
Spring Batch는 왜 필요할까?
백엔드 개발을 하다 보면 아래와 같은 요구사항을 만나게 된다. 매일 새벽 정산 작업 실행 예약 푸시 메시지 발송 CSV → DB 적재 회원 데이터 일괄 변경 (휴면계정 전환) 로그 데이터 집계 외부 API 데이터 동기화 이런 기능들을 구현하는 방법을 찾아보다 보면 자연스럽게 스프링 배치(Spring Batch) 를 사용하는...
Spring 과 Tomcat 의 실행 구조
스프링 애플리케이션은 흔히 톰캣 위에서 실행된다고 이야기한다. 둘은 어떤 관계로 동작하는지 자세히 알아보자. Tomcat은 무엇인가? Tomcat(톰캣)을 웹 서버 정도로만 이해하지만, 사실 톰캣 자체도 JVM 위에서 실행되는 하나의 자바 애플리케이션으로, 크게 두 가지 역할을 수행한다. 1. HTTP Server TCP Socket 오픈 ...
Spring MVC의 DispatcherServlet은 어떻게 동시에 수천 개의 요청을 처리할까?
이전 글 에선 Spring MVC 가 디스패처 서블릿 (DispatcherServlet) 하나로 모든 HTTP 요청을 처리한다고 했었다. 그럼 아래 같은 의문이 생길 수 있다. 디스패처 서블릿이 하나만 존재하니 클라이언트의 요청도 하나씩 처리할까? 싱글톤(Singleton) 패턴이니 여러 요청이 동시에 접근하면 동시성 문제가 발생하지 않을...
Spring MVC와 DispatcherServlet
이전 글에선 Servlet 과 Servlet Container 에 대해 다뤘다면, 이번에는 Spring MVC 가 Servlet 기반 위에서 어떻게 동작하는지, 그리고 DispatcherServlet 이 어떤 역할을 하는지 알아보겠다. Spring MVC란? Spring MVC 는 Servlet 스펙 위에서 동작하는 웹 프레임워크이다. 즉, Apa...
Pick Place - 공통 파일 업로드 기능 개발
🚀 공통 파일 업로드 기능 개발 - 이미지 및 파일 업로드 / 관리 시스템 목표: 다양한 도메인에서 재사용 가능한 공통 파일 시스템 설계 및 구현 📅 개발 기간 시작: 2026.04.12 종료: 2026.04.28 총 소요 시간: 5H 🎯 개발 배경 (Why) 서비스 내 여러 기능(위치 기반 추천, 게시글 등)...
Servlet과 Servlet Container
Spring Framework를 제대로 공부하기 위해선 먼저 Servlet과 Servlet Container에 대해 이해해야 한다. Spring MVC가 Servlet 기반으로 동작하기 때문이다. Servlet이란? 서블릿(Servlet)이란 자바 기반 웹 애플리케이션에서 클라이언트의 요청(Request)을 처리하고, 응답(Response)을 생성...
자바 동시성 문제 해결하기 -2 (ReentrantLock)
이전 게시글과 이어집니다. 이번에는 저번 게시글에서 소개한 synchronized 의 한계를 보완한 ReentrantLock 을 사용하여 동시성 문제를 해결해 보겠습니다. ReentrantLock 우선 ReentrantLock 에 대해 알아보겠습니다. ReentrantLock 은 자바 1.5 버전부터 추가된 클래스이며, synchronized 보...
(Troubleshooting) 자바 리플렉션 사용 시 주의 사항
오늘은 실무에서 자바 리플렉션(Reflection)에 대한 이해 부족으로 발생했던 버그와 해결 과정을 공유하고, 이를 통해 리플렉션 사용 시 주의해야 할 점에 대해 이야기해보려 합니다. 리플렉션 리플렉션(Reflection)은 자바에서 클래스의 타입을 컴파일 시점이 아닌 런타임 시점에 동적으로 분석하고 조작할 수 있도록 해주는 기능입니다. 글로만 ...
자바 동시성 문제 해결하기 -1 (synchronized)
자바의 멀티 스레드 환경에서 자주 발생하는 동시성 문제를 어떻게 해결하는지 단계별로 알아보겠습니다. 사전 지식 프로그램과 프로세스 우선 프로그램(Program)과 프로세스(Process)에 대해 알아보겠습니다. 프로그램이란 컴퓨터에서 실행할 수 있는 파일을 의미합니다. 그리고 이 프로그램을 실행시켜 컴퓨터에서 작업 중인 프로그램 상태를 프로세스라...