9초 걸리던 요청, 구조 손봤더니 3초 컷
·
삽질로그
1. 들어가며이전 포스팅에서는 Spring Boot가 어떻게 동시 요청을 처리하는지를 Tomcat의 스레드풀 관점에서 살펴보았다. 당시에는 스레드가 요청마다 어떻게 할당되고, 동기 방식의 로직이 어떤 한계를 가지는지까지 함께 정리했다. 2025.03.09 - [삽질로그] - 여러 요청이 동시에 들어오면, Spring Boot는 어떻게 처리할까? 여러 요청이 동시에 들어오면, Spring Boot는 어떻게 처리할까?1. 들어가며지난 글에서는 웹소켓 핸들러를 Event 기반으로 처리하여 동기 방식으로 해결했다.이를 통해 코드가 더 깔끔해지고 유지보수가 쉬워졌지만, 한 가지 새로운 고민이 생겼다. 🔗 이전mingking2.tistory.com 이처럼 스레드풀과 비동기 처리 구조에 대한 지속적인 관심은 단순한..
[한이음 드림업(구.ICT멘토링] Ep.1 수강신청 시스템은 어떻게 돌아갈까? 서버 구조 설계해보기
·
프로젝트 도전기
1. 들어가며지난 글에서는 프로젝트를 어떻게 시작하게 되었고, 왜 이 주제를 선택했는지에 대해 이야기했다.2025.04.12 - [프로젝트 도전기] - [한이음 드림업 Ep.0] 진짜 터지지 않는 수강신청 시스템, 가능할까? [한이음 드림업 Ep.0] 진짜 터지지 않는 수강신청 시스템, 가능할까?1. 들어가며졸업 전, 나만의 규모 있는 프로젝트를 완성해보고 싶다는 욕심이 늘 있었다. 가능하다면 공모전에도 도전해보고 싶다는 생각도 있었고, 마지막 학년인 지금이 아니면 도전하기 어렵mingking2.tistory.com “진짜 안 터지는 수강신청 시스템”을 만들기 위해서는기능보다 더 중요한 것이 있다.바로, 무엇부터 만들 것인가, 그리고 어떻게 작게 시작해서 확장할 것인가다. 우리는 모든 걸 한 번에 만들지..
[한이음 드림업(구.ICT멘토링] Ep.0 진짜 터지지 않는 수강신청 시스템, 가능할까?
·
프로젝트 도전기
1. 들어가며졸업 전, 나만의 규모 있는 프로젝트를 완성해보고 싶다는 욕심이 늘 있었다. 가능하다면 공모전에도 도전해보고 싶다는 생각도 있었고, 마지막 학년인 지금이 아니면 도전하기 어렵겠다는 마음이 들었다. 그러던 중, 우연히 ‘한이음 드림업 프로젝트’를 알게 되었다. 사실 이 프로젝트는 예전부터 선배들에게 “꼭 한 번 해보라”는 추천을 많이 받았던 프로그램이었다. 마침 좋은 주제와 일정이 맞았고, 지금이 기회라는 생각이 들어 본격적으로 도전해보기로 결심했다. 한이음 드림업은 기업 전문가와 대학생이 함께 실무형 프로젝트를 수행하는 인력 양성 프로그램이다.기존에는 주로 학교 동기들과 팀 프로젝트를 해왔지만, 이번에는 현업에서 일하고 있는 멘토님의 피드백과 실무 조언을 받을 수 있다는 점이 큰 매력으로 다..
Tomcat 해부학 - Spring Boot 안에 살아있다?
·
삽질로그
1. 들어가며이전 글에서는 Servlet, Tomcat, 그리고 Spring MVC를 중심으로 자바 웹 애플리케이션의 요청 처리 구조를 살펴보았다.-> 2025.03.23 - [삽질로그] - Tomcat은 그냥 서버가 아니다? Tomcat은 그냥 서버가 아니다?1. 들어가며이전 글에서 Java의 ExecutorService와 Spring Boot의 TaskExecutor를 비교하며, Spring Boot의 비동기 요청 처리가 Tomcat의 스레드풀과 별개로 동작한다는 점을 정리했다.  2025.03.16 - [삽질로그] - Sprimingking2.tistory.com다만 해당 글은 흐름 위주의 설명에 초점이 맞춰져 있었고, Tomcat이 내부적으로 어떻게 동작하는지에 대한 코드 레벨의 깊이 있는 분석은..
Tomcat은 그냥 서버가 아니다?
·
삽질로그
1. 들어가며이전 글에서 Java의 ExecutorService와 Spring Boot의 TaskExecutor를 비교하며, Spring Boot의 비동기 요청 처리가 Tomcat의 스레드풀과 별개로 동작한다는 점을 정리했다.  2025.03.16 - [삽질로그] - Spring Boot 비동기 처리 = 스레드풀? Spring Boot 비동기 처리 = 스레드풀?1. 들어가며이전 포스팅에서 Java의 ExecutorService와 Spring Boot의 스레드풀을 비교하는 방식이 잘못되었다는 피드백(토스 개발자 피셜)을 받았다. 2025.03.09 - [삽질로그] - 여러 요청이 동시에 들어오mingking2.tistory.com 이번 글에서는 Spring Boot에서 가장 많이 사용되는 두 웹 기술인 S..
Spring Boot 비동기 처리 = 스레드풀?
·
삽질로그
1. 들어가며이전 포스팅에서 Java의 ExecutorService와 Spring Boot의 스레드풀을 비교하는 방식이 잘못되었다는 피드백(토스 개발자 피셜)을 받았다. 2025.03.09 - [삽질로그] - 여러 요청이 동시에 들어오면, Spring Boot는 어떻게 처리할까? 여러 요청이 동시에 들어오면, Spring Boot는 어떻게 처리할까?1. 들어가며지난 글에서는 웹소켓 핸들러를 Event 기반으로 처리하여 동기 방식으로 해결했다.이를 통해 코드가 더 깔끔해지고 유지보수가 쉬워졌지만, 한 가지 새로운 고민이 생겼다. 🔗 이전mingking2.tistory.com 당시 나는 Spring Boot가 멀티스레딩을 지원하여 동시 요청을 처리할 수 있다는 점을 설명하려 했고,이에 따라 “그럼 Java..
여러 요청이 동시에 들어오면, Spring Boot는 어떻게 처리할까?
·
삽질로그
1. 들어가며지난 글에서는 웹소켓 핸들러를 Event 기반으로 처리하여 동기 방식으로 해결했다.이를 통해 코드가 더 깔끔해지고 유지보수가 쉬워졌지만, 한 가지 새로운 고민이 생겼다. 🔗 이전 글: 2025.03.03 - [삽질로그] - 복잡한 웹소켓 핸들러, Event로 깔끔하게 해결하기 복잡한 웹소켓 핸들러, Event로 깔끔하게 해결하기1. 들어가며최근 아두이노 기반 대여기 시스템을 구축하면서, 서버와 대여기가 WebSocket을 통해 실시간으로 메시지를 주고받는 구조를 만들게 되었다. 하지만 기존 방식으로 WebSocket을 처리하는mingking2.tistory.com 💡 만약 동시에 많은 대여 요청이 들어온다면 어떻게 될까?아두이노(대여기)는 여러 요청을 동시에 처리할 수 있을까?한 요청이 ..
복잡한 웹소켓 핸들러, Event로 깔끔하게 해결하기
·
삽질로그
1. 들어가며최근 아두이노 기반 대여기 시스템을 구축하면서, 서버와 대여기가 WebSocket을 통해 실시간으로 메시지를 주고받는 구조를 만들게 되었다. 하지만 기존 방식으로 WebSocket을 처리하는 과정에서 여러 가지 문제점이 발생했다.메시지를 수신하고 처리하는 과정이 한 곳에서 집중적으로 이루어져 유지보수가 어려움새로운 메시지 타입이 추가될 때마다 핸들러를 계속 수정해야 하는 문제 발생이를 해결하기 위해 Spring의 Event을 활용하여 WebSocket 메시지를 처리하는 구조로 개선해보았다.이제 하나씩 기존 코드와 문제점을 분석한 뒤, 어떻게 Spring Event를 활용한 이벤트 중심 처리 방식을 적용했는지 살펴보자.2. 기존 코드 분석public class WebSocketHandler e..