분류 전체보기

    커스텀 예외 처리와 NestedServletExceeption

    🔍 문제 상황 컨트롤러 테스트를 하던 중 RestControllerAdvice를 이용하여 커스텀 예외 처리가 되어야 하는 부분에서 UnverifiedException이 아닌 NestedServletException이 발생하는 문제가 발생하였다. 예외 처리를 하고 있는 Service 코드는 다음과 같다. @Override public User login(UserDTO.loginForm form) { User user = userRepository.findByEmail(form.getEmail()).orElseThrow(() -> new NotFoundException(ErrorCode.NOT_FOUND_USER)); if(!user.getPassword().equals(form.getPassword()))..

    [LeetCode] Clone Graph (Java)

    ✉️문제 https://leetcode.com/problems/clone-graph/description/ Clone Graph - LeetCode Can you solve this real interview question? Clone Graph - Given a reference of a node in a connected [https://en.wikipedia.org/wiki/Connectivity_(graph_theory)#Connected_graph] undirected graph. Return a deep copy [https://en.wikipedia.org/wiki/Object_copy leetcode.com 🗝 문제풀이 class Solution { Node[] visited; publi..

    [LeetCode] Insert Interval

    ✉️문제 https://leetcode.com/problems/insert-interval/description/ Insert Interval - LeetCode Can you solve this real interview question? Insert Interval - You are given an array of non-overlapping intervals intervals where intervals[i] = [starti, endi] represent the start and the end of the ith interval and intervals is sorted in ascending order b leetcode.com 🗝 문제풀이 겹치는 부분의 조건을 확인하고 겹칠 때 마다 newIn..

    [DB] MySQL 아키텍처: 스토리지 엔진

    [DB] MySQL 아키텍처: 스토리지 엔진

    🔍 스토리지 엔진 MySQL의 스토리지 엔진에서 가장 많이 사용되는 InnoDB에 대해서 알아보자. 앞으로 스토리지 엔진이라고 하면 InnoDB 스토리지 엔진이다. 다음은 InnoDB 스토리지 엔진의 아키텍처 도식도이다. 세부적으로 표현되어야 할 부분은 뒤에서 자세히 설명할 것이다. 🔍 InnoDB의 특징 ✏️ 프라이머리 키에 의한 클러스터링 InnoDB의 모든 테이블은 PK를 기준으로 클러스터링되어 저장된다. 클러스터링이란 특정 열의 값을 기준으로 데이터를 정렬하여 디스크 상에서 서로 인접하게 저장해주는 기술이다. 즉, InnoDB의 모든 테이블은 PK값을 기준으로 비슷한 값들이 모여 있다. 이는 범위 검색을 빠르게 처리할 수 있게 해준다. ✏️ MVCC(Multi Version Concurrency ..

    [DB] MySQL 아키텍처: MySQL엔진

    [DB] MySQL 아키텍처: MySQL엔진

    🔍 MySQL 아키텍처 MySQL의 아키텍처는 머리 역할을 하는 "MySQL 엔진"과 손 역할을 하는"스토리지 엔진"으로 나눠진다. MySQL 엔진은 요청된 SQL 문장을 분석, 최적화 하는 역할을 하며, 실제 데이터를 조작하는 작업은 스토리지 엔진이 전담한다. 사용자가 서버로 SQL 쿼리를 전달하면 서버는 다음과 같은 과정을 거친다. 대부분의 작업은 MySQL 엔진에 의해 처리되며, 마지막 단계인 데이터의 읽기/쓰기만 스토리지 엔진이 처리된다. SQL 파서 -> 옵티마이저 -> SQL 실행기 -> 데이터 읽기/쓰기 디스크 MySQL의 작동 MySQL엔진과 스토리지 엔진에 대해 공부하기 전에 MySQL 서버가 어떻게 작동하는지 알아보자. MySQL 서버는 스레드 기반으로 작동하며 크게 "포그라운드 스레드..