Cute Black Pencil

전체 글

· Spring
현재까지는 OOP를 이용하여 공부를 했지만, OOP는 응집도가 낮다는 단점이 있어서 응집도를 높이기 위해 AOP를 공부해야 한다. (IoC로 결합도를 낮췄으니 AOP로 응집도를 높여보자 !) OOP와 AOP의 차이점 OOP - AOP 이전에는 일일히 로그를 직접 추가했었다. 따라서 단순 페이지 요청 조차도 로그가 찍혔다. 메소드 호출을 하기 때문에 느리다. AOP - 이제는 AOP를 사용하므로 Service를 사용하는 건에 대해서만 AOP를 수행하기 때문에, 로그가 찍히지 않는다. 따라서 메소드 호출을 하지 않기 때문에 빠르다. AOP란 ? AOP는 관점 지향 프로그래밍으로, 관점을 기준으로 다양한 기능을 분리하여 보는 프로그래밍을 말한다. * 응집도를 높일 수 있는 구조 기본적으로 구조는 아래와 같다...
· Spring
먼저 전체적인 흐름에 대해 알아보자면 1. 브라우저(사용자)에서 서버로 .do를 요청한다. 2. .do 요청을 받았으니 DispatcherServlet 서블릿을 생성하고 멤버변수로 DI를 필요로 한다. --> DispatcherServlet-servlet.xml 을 참고하여 DI 해줌 --> 스프링 컨테이너가 구동됨 (여기서 스프링 컨테이너가 구동되는 객체를 '프레젠테이션 레이어'라고 한다) 3. .do 요청에 맞는 Controller 객체를 호출하여 사용한다. --> Controller만 사용하는 것이 아니라 Controller, DAO, VO, Model, ... 등을 사용함 --> 이것들을 Command 객체라고 함 * 이것들을 사용하기 위해서는 '비즈니스 레이어'를 끼워야 한다. --> 이유 : ..
· Spring
Command 객체는 별도의 설정 없이 바로 VIEW에서 EL 표현식으로 사용가능하다. (단, 클래스 타입을 소문자로 시작해야함) 일반적으로는 값을 VIEW에 넘기려하면, MAV를 사용하여 넘겨준다. 현재는 VIEW가 VO를 알고있는 상황으로 설정되어 있지만 보통은 VIEW에서는 VO 개념을 모르기 때문에 "@ModelAttribute()" 로 객체를 VIEW에 넘겨줘야한다. 또한, 현재 Controller 객체의 메소드 OUTPUT은 Stirng 혹은 ModelAndView로 설정되어 있는데, ModelAndView를 Model 형태로 변경하고, 반환값은 보다 가벼운 String으로 통일할 예정이다. @ModelAttribute() 사용 이유 View에서 사용할 데이터를 세팅하려는 목적으로 활용하는 어..
· Spring
@Repository MVC 패턴 Model 파트에서 사용 (DAO 구나라고 알 수 있음) @Service Controller 파트에서 사용 (Service 레이어에서 활용됨) @Controller Controller 파트에서 사용 implements Controller 대신 사용 @Override 삭제 가능 @Controller 를 사용하므로써 메소드의 강제성이 사라졌다. 따라서 메소드 시그니처가 고정되어 있지 않다는 말이 된다. 그러므로 특정 요청에 대해 Controller 객체를 찾아가는 것이 아니라 메소드를 찾아가는 것이 된다. 또한, 비슷한 로직끼리의 메소드를 묶을 수 있지만 응집도가 높아지는 단점이 있다. LoginController.java @Controller public class Log..
· Spring
오늘은 web.xml에서 내가 만든 클래스를 스프링이 제공하는 클래스로 변경하는 법에 대해 알아보려고 한다. org.springframework.web.servlet.DispatcherServlet * 스프링을 사용할 때 필요한 하는 명령어 WebApplicationContext 추상 클래스인 AbstractApplicationContext 하위에 WebApplicationContext가 존재한다. '○○○○ApplicationContext' 는 컨테이너를 구동하겠다는 뜻을 말한다. 컨테이너를 구동하기 위해서는 .xml 파일이 필요하다. 현재는 웹에서의 컨테이너가 필요하기 때문에 WebApplicationContext가 필요하다. 이는 WEB-INF 하위에서 생성하고 Spring Bean Configur..
· Spring
ViewResolver Controller류의 객체가 .handleRequest()의 수행결과로 String을 반환 했을 때, '어떻게 갈지' 와 '어디로 갈지'를 판단해서 처리해주는 주체를 말함. 또한, 자신의 멤버 변수를 setter로 받음. *참고: xxxResolver 는 특정 역할을 자동으로 처리해주는 주체를 의미함. JAVA에서 멤버 변수 초기화를 생성자에서 진행을 했다면, Spring에서는 의존 관계 주입으로 진행한다. 의존관계 주입 방법 1. 생성자 주입 2. setter 주입 DispatcherServlet 멤버변수를 두개 가지고 있는데 HandlerMapping과 ViewResolver 가 있음 HandlerMapping 이미 기본 생성자를 가지고 있음 의존 관계를 주입할 때 기본 생성..
· Spring
M1 맥북 이상을 사용할 경우, oracle databases 설치가 불가하다. 따라서 Docker를 이용하여 우회하여 다운받을 예정이다. 먼저 Docker를 다운 받기 위해 Colima를 먼저 설치한다. (homebrew가 없을 경우 아래의 링크에서 다운로드한 후 진행) https://brew.sh/index_ko Homebrew The Missing Package Manager for macOS (or Linux). brew.sh Homebrew가 설치가 완료 되었다면, 아래의 명령어로 Colima를 설치한다. brew install colima Colima 설치가 되는 동안 아래의 링크에서 Docker를 다운 받는다. https://docs.docker.com/desktop/install/mac-i..
웹코린이
코딩기록