backend 3

[Java & SpringBoot] Spring Boot + MyBatis 동작 원리 — @MapperScan과 namespace가 연결되는 방법

Spring Boot와 MyBatis를 연동할 때, DAO 인터페이스에는 구현체가 없는데도 메서드를 호출하면 SQL이 실행된다. 이 글에서는 그 연결이 언제, 어떻게 체결되는지를 설정 파일부터 요청 흐름까지 끝까지 추적한다. 구현체도 없는 인터페이스가 왜 동작하는가JDBC로 게시글 목록을 가져오는 코드를 먼저 보자.Connection conn = DriverManager.getConnection(url, user, pw);PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM post");ResultSet rs = pstmt.executeQuery();List list = new ArrayList();while (rs.next()) { Pos..

Dev Study/Backend 2026.05.25

[Java & BackEnd] 서블릿만 안쓰고 JSP가 등장해야했던 이유

HTML이라는 도화지: 웹 페이지의 뼈대를 이해하다서블릿(Servlet)과 JSP를 본격적으로 다루기 전에, 이 두 기술이 최종적으로 만들어내는 결과물인 HTML의 기본 구조부터 짚고 넘어가야 한다. 웹 브라우저는 서버로부터 HTML 문서를 받아 위에서 아래로 읽으며 화면을 그린다.가장 기본적인 HTML 문서의 뼈대는 다음과 같다. 본문 영역 브라우저에 실제로 보이는 내용은 여기에 작성한다.은 "이 문서는 HTML5 표준이다"라는 선언이다. Servlet 실습 로그인 폼 회원가입 폼 구구단 계산기 실습 프로젝트에서 index.html은 각 실습 페이지로 이동할 수 있는 네비게이션 허브(대문) 역할을 한다. 태그로 다른 HTML이나 JS..

Dev Study/Backend 2026.04.25

Java ArrayList와 HashMap 완벽 정리: VS Code 디버깅으로 보는 내부 동작

Java로 실무 비즈니스 로직을 다루다 보면, 데이터의 개수가 가변적인 상황을 필연적으로 마주하게 된다. 배열(Array)처럼 고정된 크기의 그릇으로는 사용자 수나 주문량이 폭증하는 동적인 환경에 유연하게 대처하기 어렵다.오늘은 Java Collections Framework가 어떻게 이 '크기의 제약'을 우아하게 해결하는지, 그리고 실무에서 가장 빈번하게 쓰이는 ArrayList와 HashMap의 내부 동작 원리를 파헤쳐 본다. Environment: Windows 11, JDK 21, VS Code, Antigravity1. 고정된 크기가 불러오는 재앙 (Bad Code)신입 개발자가 흔히 저지르는 실수 중 하나는 "학생 수는 대략 30명이니까 30개짜리 배열을 만들면 되겠지?"라고 단정 짓는 것이다..

Dev Study/Java 2026.02.09