목록Framework/Spring (6)
Min's dev-log
스프링 2-layred 아키텍처 방식 동작순서 ====== .do 요청전에 서버킨후의 동작 ====== 0. 처음에 서버를 키면 서블릿 컨테이너/톰캣이 구동되고 => 이때 web.xml을 보고 서블릿 컨테이너 구동된다. web.xml은 서블릿 관련 설정이기 때문에 DS 서블릿, 필터, 리스너 관련 설정이 들어간다. contextConfigLocation classpath:applicationContext.xml org.springframework.web.context.ContextLoaderListener web.xml에 설정해둔 위의 코드를 보고 1. 리스너가 제일 먼저 동작하면서 applicationContext.xml을 호출하고 => 이때 xml 실행된다. => 스프링 컨테이너 동작(root 컨테이..

▷ Client가 요청을 하면 DispatcherServlet이 구동된다. ▷ HandlerMapping(RequestMapping)을 사용해서 요청을 처리할 Controller 객체를 찾는다. ▷ 해당 Controller로 가서 Serviece 인터페이스를 구현한 ServiceImpl가 Dao를 호출하고 jdbcTemplate 또는 MyBatis를 이용해 데이터베이스에 접근해 값을 불러오거나 추정한다. ▷ 결과값을 가지고 Controller로 와서 요청을 처리하고 ModelAndView에 처리 결과인 모델 데이터 값과 가야할 뷰 페이지를 담는다. ▷ ViewResolver를 통해 가야할 곳을 찾는다. ▷ 뷰에 모델에서 받아온 데이터를 세팅한다. ▷ 사용자에게 응답한다. 이런 흐름으로 개발자가 전체적으로..
스프링 컨테이너 자바 객체(Bean)의 생명 주기(생성, 관리, 제거 등)를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공한다. 스프링 컨테이너는 xml, 어노테이션 기반의 자바 설정 클래스로 만들 수 있다. 스프링 컨테이너의 종류 1) BeanFactory 스프링 컨테이너의 최상위 인터페이스로 bean객체를 관리하고 조회하며, getBean() 메서드를 통해 객체화 할 수 있다. @Bean 어노테이션이 붙은 메서드의 이름을 스프링 bean의 이름으로 사용하여 등록한다. 2) ApplicationContext 일반적으로 스프링 컨테이너라고 하면 ApplicationContext를 의미한다. BeanFactory 기능을 모두 상속받아서 제공하며 이외에 부가 기능을 제공한다. - MessageSou..

AOP는 결합시점도 설정해줄 수 있다. 1. before : 메서드 수행 전에 동작 2. after : 메서드 수행 종료 후에 동작 3. after-returning : 반환 이후에 동작 4. after-throwing : 예외가 발생해야지만 동작 5. around

AOP에 대해 더 알아보자. 스프링 프레임워크에서는 높은 응집도를 통해 유지보수 용이한 코드를 작성할 수 있는 AOP를 지원한다. AOP (Aspect Oriented Programming) 관점지향 프로그래밍 OOP 객체지향 프로그래밍 : OOP의 한계 (dao 중점적 코딩 - dao는 디비랑 관련된 아이니까 매번 비슷한 로직 여러번 등장함 -> JDBCUtil) 비슷한 로직의 코드가 여러번 등장하는 상황이 있다. ex) JDBCUtil : AOP의 시작이라고 볼수있는 예시상황 CRUD(비즈니스 메서드, 핵심 로직) + 횡단관심(공통로직 - OOP를 쓰고 있다면 낄 수 밖에 없다) AOP에서는 횡단로직 완전히 빼낼 수 있다. AOP에서는 완전 분리한 공통 로직 코드들이 각각 클래스화 되어있다. => 응..
프레임워크를 사용하는 이유? 개발을 어떻게 해야하는지 아웃라인을 제공한다. 다양한 프로그래밍 언어를 사용하다보면 체계적인 구조를 잡고, 추후에 유지보수를 쉽게하기 위해 사용하곤 한다. ★ 사용하는 이유 1) 개발시간 단축, 개발비용 절감 2) 관리가 용이 == "유지보수" 용이 3) 개발자들의 실력이 상향 평준화(구조에 대해 모르는 사람도 쓸수있음) 스프링 프레임워크 " IOC와 AOP를 지원하는 경량의 프레임워크 " 재사용성이 향상된 애플리케이션을 개발할 수 있다. 1) IOC (Inversion of Control) 제어의 역행 DI(의존성 주입), 객체화를 컨테이너가 처리한다. 제어의 역행: 기존에 개발자가 했던것(new하는 것)을 컨테이너,프레임워크가 해줄 것 new를 개발자로 부터 가져감으로써 ..