본문 바로가기

전체 글36

DispatcherServlet과 스프링 부트와 관계 개요스프링 프레임워크 6.2.8 공식 문서와 스프링 부트 3.5.0 공식 문서를 참고해 DispatcherSerlvet에 대한 설명과 스프링 부트와 관계에 대해 알아보겠습니다.본문문서 양식이 티스토리보다 노션이 더 적절해 작성한 노션 링크를 첨부하겠습니다.https://zesty-beetle-b1a.notion.site/DispatcherServlet-21216457c27780f69e44c68afbca074a?source=copy_link DispatcherServlet | Notion다른 많은 웹 프레임워크와 마찬가지로 Spring MVC는 프런트 컨트롤러 패턴을 중심으로 설계되었습니다. 여기서 중앙 서블릿인 DispatcherServlet은 요청 처리를 위한 공유 알고리즘을 제공하고, 실제zesty-.. 2025. 6. 15.
Spring WebFlux의 Overview Spring WebFlux는 왜 만들어졌나요? 그 답의 일부는 적은 수의 스레드로 동시성을 처리하고 더 적은 하드웨어 리소스로 확장할 수 있는 논블로킹 웹 스택이 필요하다는 것입니다. 서블릿의 논블로킹 I/O는 서블릿 API의 나머지 부분들과는 방향이 다릅니다. 왜냐하면 나머지 기능들은 (Filter, Servlet 같은) 동기 방식이거나 (getParameter, getPart 같은) 블로킹 방식이기 때문이다. 이는 모든 논블로킹 런타임에서 기반으로 활용되는 새로운 공통 API에 대한 모티브가 되었습니다. 이는 비동기, 논블로킹 영역에 확고히 자리 잡은 서버(예: Netty) 때문에 중요합니다. 답의 다른 부분은 함수형 프로그래밍입니다. Java 5에서 어노테이션을 추가하면서 기회(어노테이션이 달린 R.. 2025. 6. 14.
스프링 부트는 무엇인가? 이번 포스팅에서 스프링 부트 공식 문서를 통해 스프링 부트는 무엇이며 어떤 기능을 하는 것인지 알아보겠습니다. 스프링 부트 3.5.0 버전의 공식 문서를 참고하여 작성합니다.스프링 부트 개요스프링 부트를 사용하면 실행 가능한 독립 실행형, 프로덕션 등급의 스프링 기반 애플리케이션을 만들 수 있도록 도와줍니다. 스프링 개발사 측에서 스프링 플랫폼과 서드-파티 라이브러리에 대한 주관적인 견해가 있기 때문에 최소한의 번거로움으로 시작할 수 있습니다. 대부분의 스프링 부트 에플리케이션들은 아주 약간의 스프링 설정만 필요합니다.스프링 부트의 주요 목표는 다음과 같습니다:모든 스프링 개발에 있어 매우 빠르고 폭넓은 접근성을 갖춘 시작 환경을 제공한다.초기 설정이나 기본 동작은 명확하게 제공하되, 사용자의 요구사항이.. 2025. 6. 13.
프로그래머스 - 쌍둥이 빌딩 숲 (JAVA) 문제https://school.programmers.co.kr/learn/courses/30/lessons/140105 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이쌍둥이 빌딩 숲 문제의 풀이 과정은 필자가 답을 찾아간 과정을 정리해보겠습니다. 최초에 브루트 포스로 접근했습니다. 하지만 중복 순열로 모든 경우의 수를 계산해보면 브루트 포스나 백트랙킹으로 접근하기에 경우의 수가 너무 많은 것을 알 수 있습니다. 그래서 계산을 줄이기 위해 부분해로 전체 해를 구하는데 활용할 수 있는 동적 프로그래밍으로 방향을 틀었습니다. 동적 프로그래밍을 사용해야겠다는 생각은 했지만 문제를 어떻게 나눌 것인지가 과제였습니다... 2025. 6. 8.
MySQL 인덱스 생성 시 성능 기준 잡아보기 서론RDBMS에서 조회 쿼리의 성능을 높이고자 할 때 가장 먼저 떠올리는 방법은 아마도 인덱스를 생성하는 것일 것입니다. 필자 역시 인덱스 적용을 위해 여러 관련 학습 자료를 찾아보았지만, 대부분 인덱스의 동작 방식이나 성능 향상 효과에 대해서만 다루고 있었습니다. 반면, 인덱스를 언제, 어떤 기준으로 적용해야 하는지에 대해서 설명하는 자료를 찾기 어려웠습니다. 일부 자료에서는 "읽기/쓰기 비율이 9:1 또는 8:2처럼 읽기 비중이 클 경우 인덱스를 사용하는 것이 효과적"이라고 설명하지만, 이는 너무도 단순한 상황입니다. 만약 그런 단순한 상황만 존재했다면, 인덱스 적용에 대해 깊이 고민할 필요조차 없었을 것입니다. 이러한 고민을 하게 된 데에는 실제 경험이 바탕이 되었습니다.콘서트 예매 관련 프로젝트를.. 2025. 5. 9.
[도서] Real MySQL : 인덱스 - 질문지 디스크 읽기 방식Q. SSD와 HDD의 순차, 랜덤 I/O의 성능 차이는 어떠한가요?더보기디스크의 헤더를 움직이지 않고 한 번에 많은 데이터를 읽는 순차 I/O에서는 SSD가 하드 디스크 드라이브보다 조금 빠르거나 거의 비슷한 성능을 보이기도 합니다. 하지만 SSD의 장점은 HDD보다 랜덤 I/O가 훨씬 빠르다는 것입니다. 데이터베이스에서 순차 I/O 작업은 그다지 비중이 크지 않고 랜덤 I/O를 통해 작은 데이터를 읽고 쓰는 작업이 대부분이므로 SSD 장점은 DBMS용 스토리지에 최적이라고 볼 수 있습니다. Q. HDD의 랜덤 I/O와 순차 I/O는 어떤 차이가 있나요?더보기순차 I/O는 디스크에 기록 및 읽기을 위해 디스크 헤드를 1번 움직이지만 랜덤 I/O는 디스크 헤더의 위치를 여러 번 옮기게 됩.. 2025. 5. 6.