본문 바로가기
728x90
반응형

Java Web Programming/6. Spring | MyBatis39

[Spring] 스프링 AOP의 Around Advice를 통한 성능 확인 (+Log4j, StopWatch 라이브러리) [ 요구사항 시나리오] 기존 시스템의 성능을 체크한다. 서비스하는 각 메서드의 소요 시간을 레벨 별로 체크해서, 리포트를 제출해야 한다. 리포트는 0.5초 ~ 1초 소요 시에는 log.warn(target class명, 메서드 소요시간) 1초 초과 시에는 log.error(target class명, 메서드 소요시간) * 유의사항 : Exception 발생 여부와 관계 없이, 모든 서비스 계열의 모든 메서드가 체크되어야 한다. 1. 로그 관련 라이브러리 (or 컴포넌트) 체크하기 → Log4j 라이브러리 사용 2. 소요 시간 체크 관련 라이브러리 체크하기 → Spring StopWatch 사용 → StopWatch 사용법 (Log4j로 일정 시간 이상 시, 에러로 체크) /log4j.xml Spring c.. 2020. 10. 29.
[Spring] 스프링 스탑워치(StopWatch) 라이브러리 사용법 * 로그를 이용하여, 1초 이상 시 error가 발생되도록 하였다. /TestStopWatch.java package test; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.util.StopWatch; /** * Spring StopWatch 라이브러리 테스트 */ class DemoService{ //Log4j 사용하기 private Logger log =LogManager.getLogger(DemoService.class); public void getList() { // 시간 체크를 위해 stopwatch 객체 만들기 StopWatch watch .. 2020. 10. 29.
[Spring] 스프링 AOP의 Around Advice이용하기 + Log4j 활용 AOP Around Advice 연습예제 - Around Advice는 before, atfer, after-returning, after-throwing 네가지 advice를 모두 처리할 수 있다. [ Spring, AOP, Log4j 환경 설정 준비 ] 1. convert to maven project 2. pom.xml 환경 설정 org.springframework spring-context 4.3.14.RELEASE org.apache.logging.log4j log4j-core 2.12.1 org.aspectj aspectjweaver 1.8.1 3. src 내에 log4j.xml 생성 - scr에 만드는 이유 : class complie 시 컴파일 진행 대상이 되도록! /log4j.xml Sp.. 2020. 10. 29.
[Spring] Logging 로깅 - Log4j (스프링 AOP 방식 적용) [요구사항] 현재 시스템에서 서비스 중인 package - org.kosta.model 이하의 Service 계열의 class의 메서드를 대상으로, 예외 발생 여부와 관계 없이 어떤 서비스(메서드 실행)가 실행되는 지를 특정 파일(report.log)에 시간 정보와 클래스와 메서드 정보를 로깅하도록 한다. 파일 입출력 (File IO) 관련 오픈 소스 라이브러리를 이용해보자! → 자바 Logging Library인 Log4j를 이용한다. *별도의 프로젝트에서 테스트 후 적용해보도록 한다. log4j: 프로그램 작성시 로그를 남기기 위해 사용되는 자바 기반 로깅 라이브러리 설정 파일에서 팩키지별로 레벨 지정이 가능, 지정한 등급 이상의 로그만 저장하는 방식이다. ​ FATAL(가장 높은 로그레벨) ERRO.. 2020. 10. 28.
[Spring] 스프링 AOP 개념 이해와 적용 방법 (+Proxy 프록시) [ AOP 란? ] " AOP란 OOP를 더 OOP 답게!" : Aspect Oriented Programming = 관점 지향 프로그래밍 > AOP 적용 전 > AOP 적용 후 *위빙 : 횡단 관심 사항을 엮어준다. * Aspect : 관점 ! 시스템을 두 가지 관점으로 나누어 본다. 시스템을 핵심관심사(Core Concern) 와 횡단관심사(Cross-cutting Concern)로 구분하여 설계와 구현을 한다 핵심관심사(Core Concern)란 시스템의 목적에 해당하는 주요 로직 부분을 말한다 횡단관심사(Cross-cutting Concern)란 시스템의 여러 부분에 걸쳐 공통적이고 반복적으로 필요로 하는 처리내용을 말한다 AOP는 시스템의 여러 영역에 걸쳐 공통적이고 반복적으로 적용된 횡단관심사.. 2020. 10. 28.
[Spring] DBCP를 Spring config로 설정해보기! (+IOC/DI+DL) DBCP를 사용하는 이유?! - data driver loading & connection 시 매번 하다보면 비용이 발생한다. 이를 해결하기 위해, DBCP(DataBaseConnectionPool)을 이용해, 미리 한번 만들어 둔 Connection을 빌려오고 반납하는 형식을 이용한다. DBCP 사용 환경 설정 > pom.xml 에 추가 commons-dbcp commons-dbcp 1.4 org.springframework spring-context 4.3.14.RELEASE /ioc.xml 에 추가 [ Spring Framework 동작 프로세싱 ] SQL table 생성 CREATE TABLE account( id VARCHAR2(100) PRIMARY KEY, name VARCHAR2(100) .. 2020. 10. 27.
[Spring] 비즈니스 로직 계층 추가 (IOC, DI+DL) 기존 제어 방식에서 IOC 적용 어플리케이션으로 변경 > 1. 추상화 (인터페이스 적용) 2. maven을 통한 Spring 실행 환경 구축 (spring library를 실행환경에 추가) 3. Spring config (ioc.xml) 정의 4. ApplicationContext(Spring container)를 실행하여 필요한 의존 객체 확보 (DL or DI) 5. 비즈니스 실행 (입금 처리) 스프링 비즈니스(서비스) 계층가 있는 이유 비즈니스(서비스) 계층은 한 가지 서비스(ex. 계좌 계설)가 있고,영속성 계층 DAO에 여러 DAO(계좌DAO, 포인트DAO, 이력DAO)와 메서드가 각각 있을 경우,프레젠테이션 계층(ex.TestIOC)가 한 가지 서비스를 요청해도, 영속성 계층에 있는 여러 기능.. 2020. 10. 27.
[Spring] 생성자를 통한 DI/DL 적용(constructor-arg) + IOC + maven SpringBean Configuration file /ioc.xml = DL 방식 (id= ticket, peson로 객체 할당 - TestIOC에서 getBean으로 검색하여 할당받기 가능) = DI 방식, 생성자에 값 주입(name과 ticket을 주입해줌) - ticket과 person에 DL 방식으로 할당- person을 생성하기 위해 에 생성자 요소를 DI방식으로 주입해준다. 아이유 /model /Ticket.java package model; public interface Ticket { public void ticketing(); } name or ticket을 set할 때, Spring IOC Container로부터 주입받는다. + name과 Ticket의 생성자를 생성한다. /Perso.. 2020. 10. 27.
[Spring] DI/DL 적용 + Spring IOC 개발 + maven [복습] Spring IOC : Inversion of Control - 역 제어, 제어의 역행, 제어의 반전 - 기존 제어 방식 vs 제어의 역행(IOC) - 기존 제어 방식 : 필요 시 생성 - 의존 대상 객체를 사용자가 new 하여 생성하거나, getInstance()를 통해 객체를 생성함 - IOC : 필요 시 IOC 컨테이너가 반환해줌 - 사용자에게 의존 대상 객체를 반환 받음 ex) 여행을 할 때, 항공권이 필요함 (대한항공을 먼저 끊었으나, 일정 변경으로 아시아나로 변경) - 기존 제어 방식 : 여행자가 대한항공 항공권을 끊었다가, 다시 아시아나 항공권으로 변경함 - IOC 방식 : 여행자는 대행업체를 통해 항공권을 예매함. 대항항공 항공권에서 아시아나 항공권으로 변경은 대행업체에서 변경해줌.. 2020. 10. 27.
728x90
반응형