[Backend] DB 성능 최적화: 커넥션 풀(Connection Pool)과 HikariCP의 등장
·
Engineering/Backend Core
1. 서론: 왜 속도가 중요할까?학원 수업 중 강사님께서 "HikariCP가 DBCP보다 훨씬 빠르기 때문에 요즘은 무조건 이걸 쓴다"고 말씀하셨다. 단순히 "빠르다"고만 알고 넘어가기엔 백엔드 개발자로서 궁금증이 생겨, 정확히 무엇이 다르고 얼마나 차이가 나는지 정리해 보았다. 2. 커넥션 풀(Connection Pool)이란?DB와 연결을 맺는 과정(Connection)은 꽤 무거운 작업이다.비유하자면, 매번 통화할 때마다 전화선을 새로 설치하고(연결), 통화하고(SQL 실행), 선을 뽑는(종료) 것과 같다.커넥션 풀이 없을 때: 요청마다 연결/해제를 반복하여 시간이 오래 걸림.커넥션 풀(Connection Pool): 전화기(Connection) 10대를 미리 설치해두고, 요청이 오면 수화기만 빌려..
TIL: MVC 패턴의 본질과 Service 인터페이스의 진실
·
Engineering/Backend Core
1. 배경 (Background)학원에서 순수 자바(Servlet/JSP)에서 Spring Boot와 MyBatis로 넘어가면서 파일이 많아지고 구조가 복잡해졌다. REST API를 짜면서도 "도대체 MVC 패턴이 뭐고, 왜 이렇게 쪼개는 거지?"라는 의문이 들어 개념을 확실히 정리하게 되었다.2. MVC 패턴과 Model의 진화MVC는 Model, View, Controller의 약자로 애플리케이션의 역할을 나누는 것이다. Spring Boot로 넘어오면서 'Model'의 역할이 세분화되었다.📌 구조의 변화Controller: 여전히 교통정리(요청/응답) 담당.Model (세분화됨):Service: 핵심 비즈니스 로직 (What).Mapper: DB 접근 및 SQL 실행 (How).DTO/VO: 데이..