반응형 백엔드/스프링34 [Spring] 도서 대여 콘셉트 트랜잭션 실습과 피드백 마크다운 실습3 : 도서 대출 및 반납 트랜잭션 적용하기 [조건1] AppStart , BookController , BookService , BookMapper (DTO 선택) [조건2] 도서대출 : 1. 대출 요청 시 해당 책의 재고를 1 감소한다. 재고가 0이면 예외발생 2. 재고 감소 후 대출기록을 (등록) 처리한다. 대출기록 처리가 실패하면 예외발생 3. 예외가 발생하면 전체 SQL 실행은 rollback한다. 도서반납 : 1. 반납 요청 시 해당 책의 재고를 1 증가한다. 만약 없는 책이면 예외발생 2. 재고 증가 후.. 2025. 9. 26. [Spring] 13주차+: 마이크로서비스 아키텍처(MSA) 입문 13주차+: 마이크로서비스 아키텍처(MSA) 입문목표: 지금까지 학습한 모놀리식(Monolithic) 아키텍처의 한계를 이해하고, 현대적인 클라우드 네이티브 애플리케이션의 표준으로 자리 잡은 마이크로서비스 아키텍처(MSA)의 기본 개념을 학습합니다. MSA를 구축할 때 마주치는 여러 문제점과 이를 스프링 클라우드(Spring Cloud) 생태계가 어떻게 해결하는지 맛보는 것을 목표로 합니다.주의: 이 파트는 실제 코드를 깊게 파고들기보다는, MSA의 개념적 이해와 앞으로 학습해 나갈 방향을 잡는 데 중점을 둡니다.1. 모놀리식 아키텍처의 한계지금까지 우리가 만든 "할 일(Todo) 애플리케이션"은 모놀리식(Monolithic) 아키텍처입니다. '모놀리식'은 '하나의 거대한 돌'이라는 뜻으로, 애플리케이션.. 2025. 9. 22. [Spring] 12주차: 설정 분리 및 비동기 처리 12주차: 설정 분리 및 비동기 처리목표: 실제 프로덕션 환경에서 애플리케이션을 안정적으로 운영하기 위한 고급 기술들을 학습합니다. 프로파일(Profile)을 사용하여 개발, 테스트, 운영 환경별로 설정을 분리하는 방법을 익히고, @Async를 활용하여 오래 걸리는 작업을 비동기적으로 처리함으로써 애플리케이션의 응답성을 향상시키는 방법을 배웁니다.1. 프로파일을 이용한 설정 분리지금까지 우리는 application.yml (또는 .properties) 파일 하나에 모든 설정을 담았습니다. 하지만 실제 애플리케이션은 여러 환경(개발, 테스트, 스테이징, 운영)에서 실행되며, 각 환경은 서로 다른 설정을 필요로 합니다.개발(local) 환경: 내 PC의 로컬 데이터베이스에 연결, H2 같은 인메모리 DB 사.. 2025. 9. 22. [Spring] 11주차: 예외 처리 및 유효성 검사 11주차: 예외 처리 및 유효성 검사목표: 애플리케이션의 안정성과 사용자 경험을 향상시키기 위한 두 가지 중요한 기술을 배웁니다. @RestControllerAdvice를 사용하여 여러 컨트롤러에서 발생하는 예외를 한 곳에서 공통으로 처리하는 방법을 익히고, Jakarta Bean Validation(과거 JavaX Validation)을 활용하여 API 요청 데이터의 유효성을 선언적으로 검증하는 기술을 학습합니다.1. 전역 예외 처리 (Global Exception Handling)지금까지 우리는 서비스나 컨트롤러에서 예외가 발생하면, 톰캣이 제공하는 기본 오류 페이지(Whitelabel Error Page)나 알아보기 힘든 JSON 오류 응답을 받았습니다. 이는 사용자 친화적이지도 않고, 어떤 문제가.. 2025. 9. 22. [Spring] 10주차: JWT를 이용한 API 인증 10주차: JWT를 이용한 API 인증목표: 전통적인 세션-쿠키 방식의 한계를 이해하고, 현대적인 API 서버 환경에 적합한 JWT(JSON Web Token) 기반의 인증 방식을 학습합니다. JWT의 구조와 동작 원리를 배우고, Spring Security 필터 체인에 JWT 인증 필터를 직접 구현하여 통합하는 방법을 익힙니다.1. 세션-쿠키 방식의 한계9주차에서 배운 Form Login은 Spring Security가 세션(Session) 을 사용하여 인증 상태를 유지하는 방식입니다.사용자가 로그인에 성공하면, 서버는 세션 저장소(보통 서버 메모리)에 사용자 정보를 저장하고, 세션 ID를 생성합니다.서버는 이 세션 ID를 쿠키(JSESSIONID)에 담아 클라이언트에게 응답으로 보냅니다.클라이언트는 .. 2025. 9. 22. [Spring] 9주차: Spring Security 기본 9주차: Spring Security 기본목표: 스프링 기반 애플리케이션의 보안 표준 프레임워크인 Spring Security의 기본 개념과 아키텍처를 이해합니다. 서블릿 필터 기반의 동작 원리를 배우고, Form Login과 같은 기본적인 인증(Authentication) 및 인가(Authorization) 설정을 직접 구현하여 내 애플리케이션을 보호하는 방법을 익힙니다.1. 왜 Spring Security인가?웹 애플리케이션에서 보안(인증, 인가, 각종 공격 방어)을 직접 구현하는 것은 매우 어렵고 위험한 일입니다. Spring Security는 스프링 생태계와 완벽하게 통합되어, 이러한 보안 관련 기능들을 안정적이고 체계적으로 구현할 수 있도록 도와주는 강력한 프레임워크입니다.인증 (Authenti.. 2025. 9. 22. 이전 1 2 3 4 5 6 다음 반응형