코딩 도구/백엔드 개발 (Backend Development)(27)
-
[Spring DB] 스프링과 트랜잭션 문제 해결 정리
스프링과 트랜잭션 문제 해결 정리이 글은 인프런 김영한님의 "스프링 DB 1편 - 데이터 접근 핵심 원리" 강의를 수강하고 정리한 내용이다. 이번 글에서는 JDBC 트랜잭션을 시작으로, 트랜잭션 추상화, 트랜잭션 매니저, 트랜잭션 템플릿, 그리고 AOP 기반 선언적 트랜잭션 관리 방식까지 스프링이 제공하는 다양한 트랜잭션 처리 기법들을 실무 흐름에 맞춰 정리한다.1. 트랜잭션을 서비스 계층에서 직접 관리할 때의 문제점MemberServiceV2에서는 서비스 계층에서 다음과 같이 JDBC 트랜잭션을 직접 제어한다:Connection con = dataSource.getConnection();con.setAutoCommit(false);try { // 비즈니스 로직 con.commit();} ca..
2025.05.26 -
[Spring DB] 트랜잭션 이해
[Spring DB] 트랜잭션 이해 정리이 글은 인프런 김영한님의 "스프링 DB 1편 - 데이터 접근 핵심 원리" 강의를 수강하고 정리한 내용이다. 이번 글에서는 트랜잭션의 기본 개념부터 데이터베이스 락, 트랜잭션 적용 예제까지 전반적인 흐름을 단계적으로 정리한다.1. 트랜잭션이 필요한 이유애플리케이션이 파일 대신 데이터베이스에 데이터를 저장하는 가장 큰 이유 중 하나는 데이터베이스가 트랜잭션(Transaction)을 지원하기 때문이다.예를 들어 A 계좌에서 B 계좌로 5,000원을 송금한다고 할 때 다음과 같은 작업이 수행되어야 한다:A의 잔고 -5,000B의 잔고 +5,000이 두 작업은 하나의 단위로 묶여야 한다. 둘 중 하나라도 실패하면 전체 작업이 실패한 것으로 간주하고 이전 상태로 되돌려야 한..
2025.05.20 -
[Spring DB] 커넥션 풀과 DataSource
[Spring DB] 커넥션 풀과 DataSource 이해이 글은 인프런 김영한님의 "스프링 DB 1편 - 데이터 접근 핵심 원리" 강의를 수강하고 정리한 내용이다. 이번 정리에서는 데이터베이스 커넥션의 비효율을 해결하기 위한 커넥션 풀과, 커넥션 획득 방식을 추상화하는 DataSource 인터페이스의 역할과 이점을 다룬다. 실제 코드 예제를 통해 DriverManager, DriverManagerDataSource, HikariCP 커넥션 풀 적용 방식도 함께 살펴본다.1. 커넥션 풀의 필요성커넥션을 매번 새로 만드는 비용커넥션 획득 과정은 TCP/IP 연결, 인증, 세션 생성 등 복잡하고 비용이 크다.특히 SQL 실행 시간 외에 커넥션 생성 시간이 추가되어 응답 지연이 발생한다.이러한 반복은 시스템 ..
2025.05.12 -
[Spring DB] JDBC 이해
[Spring] DB JDBC 이해 정리이 글은 인프런 김영한님의 "스프링 DB 1편 - 데이터 접근 핵심 원리" 강의를 수강하고 정리한 내용이다. 이번 정리에서는 JDBC의 등장 배경부터 실제 데이터베이스 연결과 CRUD 구현까지, JDBC를 활용한 데이터 접근의 전반적인 흐름을 다룬다. 또한 JDBC의 한계와 이를 보완하는 최신 기술까지 정리한다.1. JDBC 등장 배경과 개요데이터베이스 연결 문제애플리케이션이 데이터베이스와 통신하려면 다음과 같은 과정을 거쳐야 한다:커넥션 연결 (주로 TCP/IP)SQL 전달결과 응답 수신하지만 데이터베이스 종류마다 위 과정이 다르게 구현되어 있어 다음과 같은 문제가 발생한다:DB 변경 시 코드 수정 필요개발자가 DB마다 다른 API와 연결 방법을 학습해야 함이 문..
2025.05.05 -
[Spring] 파일 업로드 정리
스프링 MVC 2 - 파일 업로드 정리이 글은 인프런 김영한님의 "스프링 MVC 2편 - 백엔드 웹 개발 활용 기술" 강의의 '파일 업로드' 파트를 수강하고 정리한 내용이다. 이 강의에서는 웹 애플리케이션에서 파일 업로드를 처리하는 다양한 방식을 다루며, multipart/form-data의 구조부터 서블릿 API, 그리고 실무에서 널리 사용하는 MultipartFile 기반의 스프링 방식까지 점진적으로 발전시켜 나간다. 특히 마지막 실무 예제를 통해 실제 파일 업로드, 다운로드 구현 시 고려할 부분들을 세세히 배울 수 있다.정리 및 흐름 요약폼 전송 방식 이해: application/x-www-form-urlencoded vs multipart/form-data서블릿 기반 파일 업로드 처리 (Part ..
2025.04.28 -
[Spring] API 예외 처리 정리
스프링 MVC 2 - API 예외 처리 정리이 글은 인프런 김영한님의 "스프링 MVC 2편 - 백엔드 웹 개발 활용 기술" 강의의 'API 예외 처리' 파트를 수강하고 정리한 내용입니다. 웹 페이지 오류 처리와 달리 API는 오류 상황에 따라 클라이언트에 JSON 형태의 명확한 오류 응답을 내려줘야 한다. 스프링 MVC는 다양한 예외 처리 방법을 제공하고 있으며, 이번 강의에서는 API에 특화된 예외 처리 흐름을 순차적으로 학습한다. ErrorPage, ExceptionResolver, @ExceptionHandler, @ControllerAdvice 등 예외 처리 전략을 점진적으로 개선하면서 실무에서 사용할 수 있는 방식으로 발전시킨다.정리 및 흐름 요약ErrorPage 등록으로 시작하는 API 예외 ..
2025.04.21 -
[Spring] 예외 처리와 오류 페이지 정리
스프링 MVC 2 - 예외 처리와 오류 페이지 정리이 글은 인프런 김영한님의 "스프링 MVC 2편 - 백엔드 웹 개발 활용 기술" 강의의 '예외 처리와 오류 페이지' 파트를 수강하고 정리한 내용입니다.실무에서 예외와 오류는 언제나 발생할 수 있으며, 사용자에게는 의미 있는 오류 화면을 제공하고 개발자에게는 디버깅 정보를 제공해야 한다. 이번 강의에서는 서블릿의 예외 처리, 스프링 부트의 오류 페이지 처리, 필터와 인터셉터의 예외 흐름, 스프링 부트의 자동 오류 처리 메커니즘까지 폭넓게 다룬다.정리 및 흐름 요약서블릿 예외 처리 (Exception, sendError)서블릿 오류 페이지 등록 (web.xml 방식, 스프링 부트 방식)오류 페이지 컨트롤러 구현 및 오류 정보 활용DispatcherType 이..
2025.04.14 -
[Spring] 로그인 처리2 (필터, 인터셉터) 정리
스프링 MVC 2 - 로그인 처리2: 필터와 인터셉터 정리이 글은 인프런 김영한님의 "스프링 MVC 2편 - 백엔드 웹 개발 활용 기술" 강의의 '로그인 처리2 - 필터, 인터셉터' 파트를 수강하고 정리한 내용입니다. 인증과 권한은 웹 애플리케이션의 핵심 기능 중 하나다. 이 강의에서는 로그인한 사용자만 접근할 수 있는 URL에 대해 서블릿 필터와 스프링 인터셉터를 통해 공통 인증 체크 로직을 효율적으로 관리하는 방법을 다룬다. 또한 ArgumentResolver를 통해 로그인 정보를 더욱 편리하게 주입받는 기법까지 소개한다.정리 및 흐름 요약서블릿 필터와 인터셉터의 개념 및 흐름요청 로그 필터 및 인증 체크 필터 구현인터셉터 기반 요청 로그, 인증 체크 구현로그인 후 redirect 처리 방법@Logi..
2025.04.07 -
[Spring] 로그인 처리1 (쿠키, 세션) 정리
스프링 MVC 2 - 로그인 처리1: 쿠키, 세션 정리이 글은 인프런 김영한님의 "스프링 MVC 2편 - 백엔드 웹 개발 활용 기술" 강의의 '로그인 처리1 - 쿠키, 세션' 파트를 수강하고 정리한 내용입니다.웹 애플리케이션에서 로그인 기능은 사용자 인증의 핵심이다. 이 강의에서는 쿠키와 세션을 활용하여 로그인 상태를 유지하는 다양한 방법을 학습한다. 먼저 쿠키 기반의 로그인부터 시작해서, 직접 만든 세션 매니저를 구현하고, 마지막에는 서블릿이 제공하는 HttpSession 기능까지 활용하여 보안과 유지보수성을 높이는 방향으로 발전시킨다.정리 및 흐름 요약홈 화면: 로그인 전/후 상태 구분회원 가입, 로그인 폼 구현로그인 처리 (1단계: 쿠키 기반)쿠키의 보안 이슈 분석로그인 처리 (2단계: 직접 만든 ..
2025.03.31 -
[Spring] 검증2 (Bean Validation) 정리
[Spring] 검증2 (Bean Validation) 정리스프링 MVC 2 - 검증2(Bean Validation) 정리이 글은 인프런 김영한님의 "스프링 MVC 2편 - 백엔드 웹 개발 활용 기술" 강의의 '검증2 - Bean Validation' 파트를 수강하고 정리한 내용입니다. 검증 기능을 매번 코드로 작성하는 것은 번거롭고, 유지보수에도 불편함이 따른다. 스프링에서는 Bean Validation이라는 표준 기술을 사용해, 검증 로직을 애노테이션 기반으로 간단하게 처리할 수 있다. 정리 및 흐름 요약Bean Validation 소개 및 개념 정리의존성 추가 및 애노테이션 적용 방법스프링과 통합된 Bean Validation 적용 방식글로벌/오브젝트 오류 처리등록 vs 수정 상황별 검증 조건 분리..
2025.03.25