본문 바로가기

스프링 프레임워크

(13)
뉴렉처[스프링 프레임워크_AOP] 1강 ~8강 1강 - AOP(Aspect Oriented Programming) 이란? Aspect 의 의미 : "관점" 이라는 뜻. 개발을 하다보니 사용자의 관점만이 아닌 개발자의 관점, 운영자(관리자)의 관점도 존재한다. AOP란, 사용자의 관점에서 주 업무 로직과 개발자의 관점 또는 운영자의 관점의 보조 업무 로직을 어떻게 분리하고 결합하여 프로그램을 만들 것인가? 에 대한 방법론. *용어: Primary(Core) Concern 과 Cross-cutting Concern (주 업무) (보조 업무) (보조업무는 탈 부착이 가능하다.) 과거에는 Cross-cutting 하는 것이 쉽지 않았다. 주 업무 소스코드에 직접 보조 업무 소스코드가 박혀 있기때문에 소스코드를 직접 손댔어야 했기때문이다. => 위와 같은 이..
뉴렉처[스프링 프레임워크] 16강~17강 16강 - 특화된 @Component 어노테이션 (@Controller / @Service / @Repository) 이제 @Component로 객체 생성시 필드값 초기화 작업을 어떻게 할까? ==> @Value 라는 어노테이션을 활용!! 초기화 할 필드명 위에 @Value("초기화값")을 써주면 된다. ex. @Value("20") private int kor; @Value("30") private int eng; private int math; private int com; NewlecExam 클래스를 @Component 로 객체화 하는 것은 개념상 잘 맞지 않다. ==> @Component 는 MVC 방식으로 웹 개발을 할때 MVC를 구성하고 있는 자바형 코드를 명시할때 사용된다. @Componen..
뉴렉처[스프링 프레임워크] 10강~15강 10강 - 생성자 DI Exam exam = new NewlecExam(30, 40, 40, 50); 을 xml파일에서는 필드의 순서대로 넣어주면 된다. (반드시 NewlectExam 클래스에 생성자(디폴트 생성자 아닌 매개변수 있는 생성자)를 만들어준 상태에서 하기!!) => bean객체(NewlectExam클래스의 exam 객체)를 생성시 값 할당 //kor //eng //math //com 위와 같이 넣으면 어떤 필드값에 값이 할당 되는지 헷갈릴 수 있다. case1) 필드 순서를 나타내는 index값을 넣어줌으로써 헷갈리는 것을 해결할 수 있다. //kor //eng //com //math case2) 필드명을 나타내는 name값을 넣어줌으로써 해결할 수 있다. 예외 상황 발생 ) 필드명은 같은데..
뉴렉처[스프링 프레임워크] 5강~9강 5강 - Dependency를 직접 Injection 하기 6강 - 스프링 DI 설정을 위해 이클립스 플러그인 설치하기 7강 - Spring DI 지시서 작성하기 (Spring Bean Configuration) 클래스파일에서 Exam exam = new NewlectExam(); 으로 객체를 선언했다면 .xml 파일에서는 으로 객체 생성을 세팅한다. (객체화 할 클래스명은 패키지와 함께 써줌으로써 중복을 방지) ※ 은 객체를 정의할때 쓰는 태그임 ex. ExamExamConsole console = new GridExamConsole(); 을 .xml 에서 세팅해보면 불러올때는 exam이라는 id값을 이용해서 불러온다. console.setExam(exam); 와 같은 결합(injection)은 어떻게..
뉴렉처[스프링 프레임워크] 1강~4강 1강 - Spring 소개와 학습 안내 Spring을 이용해서 Java EE(Enterprise Edition)을 대체한다. 따라서 Java SE 위에 Java EE를 얹지 않고 Spring을 얹어서 웹 개발을 진행한다. 2강 - 느슨한 결합력과 인터페이스 현재 B1에서 소스변경을 하여 B2를 새로 만들어야하는 상황일때, Service함수를 B2로 연결하려면 새로운 B2객체를 생성해서 연결해야하는 Service의 소스 코드를 수정해야하는 상황 발생! 어떻게 하면 소스코드를 수정하지 않고 DAO의 접근을 바꿀 수 있을까? ==> Interface를 생각해볼 수 있다. B1과 B2의 소스코드는 완전히 다른 소스가 아니기에 공통적인 소스코드를 interface에 정의하고 추가되는 소스 또는 변경 되는 소스는 ..