본문 바로가기

전체보기

(205)
[프레임워크] <Spring>〈Maven〉Advice 동작 시점 동작 시점 ◎ aspect(위빙) 설정할 때 함께 설정한다. 시점 종류 before 비즈니스 메서드 수행 전 after 유사 finally 비즈니스 메서드 수행 후 after-returning 비즈니스 메서드 return 반환 후 after-throwing 유사 catch 비즈니스 메서드 예외 발생 시 around 비즈니스 메서드 수행 전후로 접근가능 핵심로직의 성능평가 AfterReturningAdvice ◎ bean 설정 ◎ Service 코드 public class AfterReturningAdvice { public void afterReturningPrintLog() { System.out.println(" 로그 02 비즈니스 메서드 수행 후에 로그를 출력합니다."); } } AfterThrow..
[에러] <Spring> Error creating bean with name 'org.springframework.aop.aspectj.AspectJPointcutAdvisor#0' 내용 ◎ applicationContext.xml에 pointcut과 aspect를 등록한 후 실행 했더니 발생한 에러 10:35:28.070 [main] WARN org.springframework.context.support.GenericXmlApplicationContext -- Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'boardDAO' defined in file [C:\JAVA_web_lecture_record_spring\day063\..
[프레임워크] <Spring>〈Maven〉AOP 관심 분리 관심 분리(Separation of concerns) ◎ 비즈니스 메서드(비즈니스 로직, 핵심 관심, CRUD)에서 횡단 관심(공통 로직)을 분리하는 것이다. ◎ 로직(관심)들끼리 코드를 관리한다. ⇨ 높은 응집도를 보장한다. AOP를 활용하기 위한 applicationContext.xml 스키마 ◎ xmlns:aop="http://www.springframework.org/schema/aop" ◎ http://www.springframework.org/schema/aop ◎ http://www.springframework.org/schema/aop/spring-aop-4.2.xsd" 공통 로직(횡단 관심) 인증 로깅 보안 트랜잭션 예외처리 C O O X O O R X O X X X U O O O O O..
[프레임워크] <Spring>〈Maven〉pom.xml 설정 개선 feat. 어노테이션 설정들이 많아진다면? ◎ 개발자에게 부담이된다. ◎ 작은 에러라도 발생하면 프로그램이 실행되지 않는다. 개선 ◎ 과도한 설정을 줄이기 위해 @어노테이션 기능을 개발했다. ◎ 일반 스프링 환경에서는 .xml + @이지만 부트에서는 @ 위주로 실행한다. 부트를 활용하기 위한 추가 스키마 ◎ xmlns:context="http://www.springframework.org/schema/context" ◎ http://www.springframework.org/schema/context ◎ http://www.springframework.org/schema/context/spring-context-4.2.xsd" @어노테이션 ◎ 개발자의 가독성을 증가시켜 준다. ◎ xml로의 접근을 줄여준다. ⇨ .java에 ..
[프레임 워크] <Spring>〈Maven〉application.xml 생성 없을 시 발생하는 에러 파일 생성 ◎ 경로 : src/main/resources ◎ 이름 : applicationContext.xml 기본 스키마 ◎ 스키마는 시스템 버전에 따라 수정이 필요하다.
[프레임워크] <Spring>〈Maven〉스프링 프로젝트 생성 컨테이너 ◎ 톰캣 : 서블릿 컨테이너, 웹 서버.... ⇨ Servlet 클래스를 new 해준다. ⇨ FrontController 등 ⇨ web.xml ◎ 스프링 컨테이너 : POJO 클래스를 new 해준다. ⇨ DAO, DTO, Action(Controller) 등 ⇨ 코드내에서 new 역할을 담당하는 컨테이너이다. ⇨ applicationContext.xml ◎ 루트(최상위) 컨테이너 ⇨ .jar(라이브러리)를 관리해준다. ⇨ 설정 관련 컨테이너이다. ⇨ pom.xml 프로젝트 설정 ◎ Name : 프로젝트 이름 ◎ Type ⇨ Gradle : 스프링부트 기반 라이브러리 제공 ⇨ Maven : 자바 기반의 라이브러리 제공 ◎ Pakaging ⇨ JAR : 자바 아카이브 ⇨ WAR : 웹 어플리케이션 ..
[프레임워크] <Spring>〈Maven〉DI DI(Dependency Injection) ◎ 의존 주입 ◎ 기존에는 개발자가 했지만 Spring에서는 Spring 컨테이너가한다. ◎ IoC를 배울때에 함께 알아야하는 개념이다. 의존성 ◎ 어떤 메서드를 수행할 떄, 다른 객체를 미리 new 해야하는 상황을 말한다. 생성자 주입(Constructor Injection) ◎ 강제성이 짙다. ◎ 생성자 주입할 때 에러가 발생하면 해당 객체는 생성되지 않기 때문에 필수적일 때 사용하는 방식이다. setter 주입 ◎ 생성자 주입보다 덜 강제적이다. ◎ 기본 생성자가 필수이다. ⇨ 기본 생성자 + setter 리스트를 이용한 주입 a b c 맵을 이용한 주입 a 에이 b 비
[개발패턴] <Factory> Singleton과의 차이 Factory 목적 ◎ 객체 생성을 캡슐화한다. ◎ 클라이언트 코드로부터 객체 생성 로직을 분리하는 것이 주된 목적이다. 특징 ◎ 클라이언트 코드는 객체를 직접 생성하는 대신에 팩토리에게 객체 생성을 요청하고, 팩토리는 요청에 맞는 객체를 반환한다. ◎ 객체 생성 로직을 숨기기 때문에 클라이언트 코드는 객체의 구체적인 클래스에 대한 지식이 없어도 된다. ◎ 인터페이스를 사용하여 여러 종류의 객체를 생성할 수 있다. 예제 코드 // 인터페이스: 생성될 객체의 공통 동작을 정의합니다. public interface Shape { void draw(); } // 구체적인 클래스: 인터페이스를 구현하여 도형을 그리는 방법을 정의합니다. public class Circle implements Shape { @Ov..