목록콤퓨타 왕기초 (187)
파게로그
프론트와 백의 구분이 점차 이루어지면서 Tiles도 잘 안 쓰이는 추세라고 한다. 페이지 모듈 집중화 도 가능하지만, 이것도 페이지 만들 때마다 넣기 귀찮으니까 Tiles를 이용한다. header/footer/aside/main(content) layout 1. HTML 파일(index.html 등등...)에서 를 잘라내서... 2. view 안에 inc 폴더를 만들어서... 3. header.jsp를 생성 후 클립보드의 내용을 붙여넣기 4. 도 footer.jsp로 마찬가지 5. 도 잘라내서 (여러 페이지에 공통적으로 있으니까) view/inc(include)는 완전 공통인 애들 얘는 그건 아니니까 view/customer/inc 폴더 만들어서 여기다가 visual.jsp를 생성 후 클립보드의 내용을 ..
Spring은 기본적으로 JSP 등 동적인 페이지와는 달리 HTML, CS, JavaScript 등 정적인 리소스에 대한 접근을 막는다. 정적인 리소스를 서비스해야 한다면 dispatcher-servlet.xml에 를 추가함으로써 접근을 허용할 수 있다. dispatcher-servlet.xml mvc 사용을 위해 네임스페이스와 스키마를 추가해주고, 를 통해 접근을 허용해준다. 여기서 '**'은 하위 폴더 아래의 파일까지 모두 포함함을 의미한다. 이런 걸 모두 모아서 resource에 넣고 아래와 같이 사용할 수 있다.
// 기존 ModelAndView mv = new ModelAndView("/WEB-INF/view/index.jsp"); // 변경 ModelAndView mv = new ModelAndView("index"); ViewResolver를 통해서 '기존'을 '변경'처럼 간단하게 표현할 수 있다. dispatcher-servlet.xml
IndexController extends HttpServlet... 이렇게 컨트롤러를 만들 수도 있지만, 그러한 서블릿의 기능은 Spring DispatcherServlet이 가져가도록 분리할 것이다. 이렇게 분리한 후 Controller는 POJO로 생성한다. Front Controller는 모든 URL에 대한 요청을 다 받아야만 한다. 다시 말해서, Front Controller가 매핑해주지 않은 URL은 표시가 되지 않아야 한다. URL mapping을 위해서 기존에는 annotation을 사용했는데, 이제는 소스 코드가 없으므로 annotation을 이용하는 것은 불가능하다. 즉, web.xml을 이용해야 한다. web.xml dispatcher org.springframework.web.ser..
정확히는 Spring Tools 4를 이용하지 않고 Eclipse에서 Java EE perspective를 이용한다. 먼저, Maven Project를 생성한다. JAR(Java Archive)와 WAR(Web Archive)는 둘 다 Java 기반의 어플리케이션 배포 형태이며, Java JAR Tool을 통해 압축된 파일이다. 그러나 WAR는 웹 어플리케이션 설정 정보가 들어있는 web.xml 등을 추가적으로 포함하고 있다. 지금 생성하고 있는 Maven Project 또한 패키징 방식으로 WAR을 선택한다. pom.xml에서 위와 같은 에러가 발생한다. 이는 web.xml이 지정된 경로에 존재하지 않기에 발생한 것이다. Tomcat Root/webapps/ROOT 해당 위치에 존재하는 WEB-INF ..
MVC Pattern MVC는 소프트웨어 디자인 패턴으로서 어떤 프로젝트나 애플리케이션의 구성 요소를 Model, View, Controller로 구분한다. 🎯 Model: data storage, integrity, consistency, queries & mutations 애플리케이션의 데이터를 가진 객체를 뜻한다. 즉 데이터베이스, 초기에 정의하는 상수, 초기화 값, 변수 등을 뜻하거나, 또는 이러한 데이터의 가공을 책임지는 컴포넌트를 뜻한다. DAO(Data Access Object), DTO(Data Transfer Object ~ VO(Value Object))로 구분할 수 있다(velog.io/@emawlrdl/DAO%EC%99%80-DTO) 규칙 ▪ 사용자가 편집하길 원하는 모든 데이터를 ..
Program.java package admin.school.ui; import admin.school.entity.Exam; public class InlineExamConsole implements ExamConsole { private Exam exam; @Override public void print() { System.out.printf("SUM: %d, AVG: %.2f\n", exam.sum(), exam.avg()); throw new IllegalStateException("oops..."); } public void setExam(Exam exam) { this.exam = exam; } } JavaConfig.java package admin.school; import admin.s..
Spring으로 AOP 구현 XML이든 annotation이든, 공통 기능이 가시적이지 않다. 여기서는 먼저 XML을 통해서 AOP를 구현해보자. Program.java는 다음과 같아서 마치 비즈니스 로직만 존재하는 것처럼 보인다. Program.java package spring.aop; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import spring.aop.entity.Exam; public class Program { public static void main(String[] args) { Applicatio..