스프링(Spring) 12

Spring Interceptors(스프링 인터셉터)

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다 *모든 이미지의 출처는 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'에 있습니다 1. Spring Interceptors의 특징 - 모든 요청에서 반드시 거쳐야 하는 Servlet Filter와 유사하지만, 인터셉터는 컨트롤러 요청에만 적용됨 - Been Container 로딩 후에 적용되므로, Bean 사용 가능 - 총 3부분에 대해 공통 기능을 넣을 수 있음 1) preHandle: 컨트롤러(핸들러) 실행 전 2) postHandle: 컨트롤러(핸들러) 실행 후, 아직 뷰를 실행하기 전 3) afterCompletion: 뷰를 실행한 이후 2. 사례: 웹 요..

스프링(Spring) 2023.01.02

예외처리

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다 1. Spring에서의 예외처리 - 사용 이유: 서버에서 발생된 예외가 최종 사용자에게 전달되는 것 방지- DAO와 Service에서 발생된 예외는 Controller로 모여짐- System 예외는 Business 예외로 다시 던지는(re-throwing) 방식 사용- @ExeptionHandler와 @ControllerAdvice를 사용하여 예외 처리 2. Spring 예외처리 특징1) 컨트롤러 기반- 부가기능을 제공하는 Advice 클래스 작성- XML 설정 파일에 를 이용해서 aspect를 설정(즉, Advice와 Pointcut을 설정) 2) 글로벌 Exception 핸들러-..

스프링(Spring) 2022.12.27

스프링 트랜잭션과 로깅

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다 *모든 이미지의 출처는 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'에 있습니다 1. 스프링 트랜잭션 1) 트랜잭션 처리 (1) 프로그램에 의한 트랜잭션 처리 (권장되지 않음) (2) 선언적 트랜잭션 [스프링에서 이 방식을 사용] 2) 스프링 트랜잭션 처리 모범사례 - 선언적 방식에 의한 트랜잭션 처리 (주로 서비스 메소드를 대상으로 함) (1) 어노테이션에 의한 트랜잭션 - @root-context.xml에 Transaction Manager 설정 - 설정 - 트랜잭션이 필요한 클래스나 메소드에 @Transactional - 주로 서비스 클래스의 메소드에 적용..

스프링(Spring) 2022.12.05

PointCut 표현식과 Advisor 구현

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다 *모든 이미지의 출처는 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'에 있습니다 1. PointCut 표현식 1) 문법 - AspectJ 포인트컷 표현식은 포인트컷 지시자를 이용하여 작성함 - 포인트컷 지시자 중 가장 대표적으로 사용되는 것은 execution() - execution() 지시자를 사용한 포인트컷 표현식의 문법구조는 다음과 같음 //[접근제한자 패턴]: public, private과 같은 접근제한자 (생략가능) //타입패턴[타입패턴.]: 앞의 타입패턴은 리턴값의 타입패턴이고, 뒤의 타입패턴은 패키지와 클래스 이름에 대한 패턴(생략가능, 사용할때 ..

스프링(Spring) 2022.11.20

Dynamic SQL (MyBatis 동적 SQL), AOP(Aspect Oriented Programming)

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다 *모든 이미지의 출처는 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'에 있습니다 1. MyBatis 동적 SQL 1) Dynamic SQL - 검색조건에 따라 검색해야 하는 SQL문이 달라지기 때문에 이를 처리하기 위해서 동적 SQL이 사용됨 2) MyBatis의 표현식 (1) if - MyBatis에서 가장 공통적으로 사용되는 요소 * 아래 구문은 파라미터 중 title에 값이 존재할 경우 and title like #{title} 구문을 본 쿼리문에 포함시킨다. select * from blog where state = 'ACTIVE' and title li..

스프링(Spring) 2022.11.02

MyBatis 소개, Mapper XML 파일

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다 *모든 이미지의 출처는 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'에 있습니다 1. MyBatis 소개 1) MyBatis의 개요 - 자바 오브젝트와 SQL문 사이의 자동 Mapping 기능을 지원하는 Object Mapper - SQL을 별도의 파일로 분리해서 관리하게 함 - 객체-SQL 사이의 파라미터 Mapping 작업 자동 진행 -> 많은 인기를 얻고 있음 - ORM(Object Relation Mapper) 아님 - Hibernate나 JPA(Java Persistence Api)처럼 새로운 DB 프로그래밍 패러다임을 익혀야 하는 부담이 없음 ->개발..

스프링(Spring) 2022.10.27

Spring-Data Access, DataSource, Servlet Context, Context 분리와 전략

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다 1. Spring-Data Access 1) DAO 디자인 패턴 - 비즈니스 서비스와 로우레벨의 데이터 엑세스 작업을 분리 *위치 순서 -> 비즈니스 레이어(Business Layer), DAO, 데이터베이스(DB) - DAO 레이어: 비즈니스 레이어와 데이터베이스 가운데에 위치, CRUD(Create, Read, Update, Delete) 작업 수행 2) 데이터 엑세스 기술 (ORM-Object Relation Mapping) - JDBC: 자바에서의 관계형 데이터베이스 접속 기술, JDK 레벨에서 지원, 다른 고수준 기술의 기반이 됨 - Spring JDBC: 스프링 자체적으로 ..

스프링(Spring) 2022.10.19

static file 처리와 FileUpload, JUnit & Spring-Test

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다 1. static file 처리와 FileUpload 1) Static Resource 처리 (1) Static Web Resource 처리하기 - 서버의 처리가 필요 없는 static web resources는 요청 시 서버를 거치지 않고 곧바로 응답해야 함 - 특정 URL로 요청이 오면 static resource로 인식하고 바로 응답 수행 (2) - mapping: HTTP 요청 URL - location: 실제 응답할 파일이 있는 위치 예시) 요청: http://localhost:8080/hello/resources/scripts/jQuery.js 응답: /WEB-INF/res..

스프링(Spring) 2022.10.12

@Controller, HTTP 파라미터 처리, RESTful API

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다 1. @Controller (1) Controller 1) 사용자 요청(URL 기반)에 해당하는 Controller의 특정 메소드가 호출됨 2) Controller는 요청의 파라미터가 있으면 처리 3) 비즈니스 처리를 위해서 서비스 컴포넌트를 주입받아 실행 4) 실행된 결과를 전달받아(화면에 대한 정보와 함께) DispatcherServlet에게 반환 *DispatcherServlet : 웹 어플리케이션 최전방에서 사용자 요청 접수 -> URL 기준으로 요청을 처리할 Controller 찾음 -> 해당 Controller 호출 및 실행 *사용되는 Annotation : @Control..

스프링(Spring) 2022.10.05

Layered Architecture & @Component, Spring MVC 소개

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다 1. Layered Architecture & @Component 1) Layered Architecture (1) 특징: 계층화 아키텍처- 효율적인 개발과 유지보수를 위해 계층화하여 개발- 대부분의 중/대규모 어플리케이션에서 적용- 각 레이어는 독립된 R&R을 가짐 (2) Layered Architecture의 영역은 3가지로 구분됨 - 프레젠테이션 영역, 비즈니스 영역, 데이터 영역 - 프레젠테이션 영역: 사용자와 상호작용을 담당, 사용자의 요청을 분석/응답 - 비즈니스 영역: 기능을 수행, 트랜잭션 수행 - 데이터 영역: 데이터의 저장과 조회를 담당, 주로 데이터베이스와 연동하여..

스프링(Spring) 2022.09.27