본문 바로가기

Room 102. Back-end/Spring

(18)
[실전 개발자를 위한 Spring Framework ] 강의 - 인터셉터/로그인 처리 22강 트랜잭션과 로깅 목차 내용 스프링 인터셉터 인터셉터 활용 사례 학습 목표 인터셉터의 개념과 서블릿 필터와 차이넘을 이해 인터셉터를 활용한 사례를 통해 인터셉터를 구현 인터셉터와 서블릿 필터는 모든 요청과 응답을 가로채서 처리할 수 있다는 점에서 동일합니다. 차이점은 ServletDispatcher 를 중심으로 서블릿 필터는 이전에 처리되고, 인터셉터는 이후에 처리되어 빈 컨테이너에 로딩된 빈을 사용할 수 있습니다. Spring Interceptors 모든 요청에 반드시 거쳐야 하는 서블릿 필터와 유사 Servlet Filter 와는 다름 인터셉터는 Contorller 요청에만 적용됨 Bean Container 로딩 후에 적용되기 때문에 빈을 사용할 수 있음 사례 : 로그인 처리 요청 경로마다 별도..
[실전 개발자를 위한 Spring Framework ] 강의 - 예외 처리 21강 스프링 예외처리 목차 내용 스프링 예외처리 학습 목표 스프링에서의 예외처리 방식을 이해하고 구현 @ControllerAdvice 사용한 예외처리 작성 Spring 예외처리 개요 서버에서 발생된 예외를 최종 사용자에게 전달되는 것을 방지 DAO 와 Service 에서 발생되 예외는 Controller 로 모여짐 System 예외는 Business 예외로 다시 던지는(re-throwing) 방식 사용 @ExceptionHandler 와 @ControllerAdvice 를 사용하여 예외를 처리 스프링에서는 Controller 딴에서 예외를 처리하는 것을 권고하고 있음. Spring 예외처리 특징 컨트롤러 기반 Controller - Service - DAO 에서 결국 Controller 로 돌아오기 때..
[실전 개발자를 위한 Spring Framework ] 강의 - 트랜잭션과 로깅 20강 트랜잭션과 로깅 목차 내용 스프링 선언적 트랜잭션 종류 스프링 로깅 방식 학습 목표 스프링에서의 트랜잭션을 처리하는 방식을 이해하고 구현 스프링에서의 로깅 방식과 SLF4J 와 LogBack 을 이용하여 로깅을 구현 스프링 트랜잭션 선언적 트랜잭션 (3가지있음) - 스프링은 선언적 트랜잭션 방식을 사용 어노테이션을 이용한 선언적 방식 AOP를 이용한 선언적 방식 프로그램에 의한 트랜잭션 처리 (권장되지 않음) 스프링에서 트랜잭션 처리 모범사례 선언적 방식에 의한 트랜잭션 처리 트랜잭션은 주로 서비스 메소드를 대상으로 함 어노테이션에 의한 트랜잭션 트랜잭션이 필요한 클래스나 메소드에 @Transactional 어노테이션을 추가한다는 의미임. @root-context.xml 에 Transaction ..
[실전 개발자를 위한 Spring Framework ] 강의 - AOP 18강 AOP(Aspect Oriented Programming 목차 내용 AOP 개념 AOP 주요 용어 학습 목표 Aspect Oriented Programming 개념 파악 AOP 주요 용어 이해 스프링 AOP와 AspectJ의 차이점 이해 AOP 개요 핵심 기능과 부가 기능 업무 로직을 포함하는 핵심 기능(Core Concerns) 핵심 기능을 도와주는 부가적인 기능(로깅, 보안 등)을 부가기능(Cross-cutting Concerns)이라 부름 객체지향의 기본 원칙을 적용하여도 핵심기능에서 부가기능을 분리해서 모듈화하는 것은 어렵다. 애플리케이션에서의 관심사의 분리(기능의 분리). 즉, 핵심적인 기능에서 부가적인 기능을 분리, 분리한 부가기능을 Aspect라는 독특한 모듈 형태로 만들어서 설계하고..
[실전 개발자를 위한 Spring Framework ] 강의 - MyBatis 15강 MyBatis 목차 내용 MyBatis 개요와 특징 MyBatis 주요 컴포넌트 학습 목표 스프링 데이터 접근 기술 중 하나인 MyBatis의 개요 학습 MyBatis의 주요 컴포넌트와 설정을 수행 MyBatis 핵심 기능 중 하나는 SQL 과 Java 객체를 매핑시켜주는 기능으로 Object-Mapper 기술입니다. MyBatis 의 개요 자바 오브젝트와 SQL문 사이의 자동 Mapping 기능을 지원하는 Object Mapper 입니다. SQL을 별도의 파일로 분리해서 관리하게 해주며, 객체-SQL 사이의 파라미터 Mapping 작업을 자동으로 해주기 때문에 많은 인기를 얻고 있는 기술입니다. Hibernate나 JPA(Java Persistence Api)처럼 새로운 DB 프로그래밍 패러다임..
[실전 개발자를 위한 Spring Framework ] 강의 - Context 분리와 전략 14강 Context 분리와 전략 목차 내용 Servlet context와 Root context 컨텍스트 분리 전략 학습 목표 Servlet context와 Root context의 차이점과 계층구조를 이해합니다. 컨텍스트 분리 전략을 이해하여 구현합니다. Servlet Context DispatcherServlet - 웹의 요청을 최초로 접수 DispatcherServlet - 설정 파일을 이용해서 ServletContext(ㅅ프링 컨테이너) 로딩 Spring-MVC와 관련 있는 빈을 설정 Root Context Spring-MVC와 분리되어 빈을 관리하고 싶을 때 사용 일반적으로 Servlet context와 Root context 분리하여 운용 Controller / ViewResolver 등 웹..
[실전 개발자를 위한 Spring Framework ] 강의 - Data Access 13강 Spring Data Access 기술과 DataSource 목차 내용 Spring-Data Access 기술 이해 DataSource 이해와 설정 학습 목표 스프링에서 사용 가능한 데이터 접근 기술에 대해 이해합니다. DataSource 개념을 이해하고 설정합니다. DAO 디자인 패턴 비즈니스 서비스와 로우 레벨의 데이터 액세스 작업을 분리해 놓았습니다. 고로 DAO가 DB에게 데이터 액세스를 하기 위한 작업이 필요합니다. 데이터 액세스 기술 JDBC 자바에서의 관계형 데이터 베이스 접속 기술 JDK 레벨에서 지원하며, 다른 고수준 기술의 기반이 됩니다. Spring JDBC 스프링 자체적으로 지원하는 JDBC Wrapper MyBatis Third-party 자바 관계형 DB 매핑 라이브러리입..
[실전 개발자를 위한 Spring Framework ] 강의 - JUnit 12강 JUnit 목차 내용 JUnit 테스팅과 스프링 테스트 JUnit의 개요 Java에서 독립된 단위테스트(Unit TesT)를 지원해주는 프레임워크입니다. 단위테스트란? 소스 코드의 특정 모듈이 의도된 대로 정확히 동작하는지 검증하는 절차입니다. 모든 함수와 메소드에 대한 테스트 케이스를 작성하는 절차를 뜻함. JUnit의 특징 TDD의 창시자인 Kent Beck과 디자인 패턴 책의 저자인 Erich Gamma가 작성. 단정(assert) 메소드로 테스트 케이스의 수행 결과를 판별합니다 ex) assertEquals(예상 값, 실제 값) jUnit4부터는 테스트를 지원하는 어노테이션을 지원합니다. @Test / @Before / @After 각 @Test 메소드가 호출될 때마다 새로운 인스턴스를 생..