728x90

JSP 26

Spring(스프링) -서블릿, JSP, MVC패턴

Servlet으로 만들어진 HTML 서블릿과 자바만으로 HTML 생성 → 이 방식은 동적인 HTML 생성이 불편 자바코드로 HTML을 생성하는 것보다 HTML에 동적으로 변경해야 하는 부분만 자바 코드를 넣는 것이 더 효율적 → 템플릿 엔진 사용 템플릿 엔진으로 JSP, Thymeleaf 등이 있음 JSP로 만들어진 HTML JSP 안에서의 requst와 response는 그냥 사용이 가능 객체명을 request, response로 사용해야함 Java 코드는 안에 넣어 주어야 함 Java 코드 출력은 안에 넣어 주어야 함 실행할 때 .jsp까지 경로에 작성해 주어야 함 MVC 패턴 하나의 서블릿이나 JSP에서 뷰와 로직을 모두 처리하는 것은 하나의 곳에서 너무 많은 역할을 하고 유지보수가 어려워짐 뷰와 ..

자바 성능 튜닝 - 웹 개발(JSP/서블릿/스프링)

WAS 에서 병목 현상이 발생할 수 있는 부분은 서버쪽의 UI부분과 비즈니스 로직 부분으로 나눌 수 있습니다. JSP와 서블릿으로 서버단의 UI를 구성합니다. JSP는 가장 처음에 호출되는 경우에만 시간이 소요되고 그 이후에는 컴파일된 서블릿 클래스가 수행됩니다. JSP 라이프 사이클 1. JSP URL 호출 2. 페이지 번역 3. JSP 컴파일 4. 클래스 로드 5. 인스턴스 생성 6. jspInit 메서드 호출 7. _jspService 메서드 호출 8. jspDestory 메서드 호출 => JSP 페이지가 이미 컴파일 및 클래스 로드가 되어져 있고 JSP 파일이 변경되지 않았다면 2~4 프로세스는 생략됩니다. Pre- compile : 서버 종류에 따라 서버가 기동될 때 컴파일을 미리 수행하는 옵션..

언어와 애플리케이션 분류

사용 용도에 따른 컴퓨터 언어 분류 1. 문서 언어 - HTML : 마크업 언어로서 문서와 관련이 있으며 태그를 사용해 작성합니다. - UML : 설계 언어로서 프로그램을 설계 할 때 사용하는 언어입니다. 2. 프로그래밍 언어 - 고급 언어(JAVA, C ..) : 자연어와 유사한 언어입니다. - 기계어 : 환경에 따라 달라지는 언어입니다. 3. 스크립트 언어 - 클라이언트 : JavaScript가 있으며 동적 문서를 작성하는데 사용합니다. - 서버 : JSP,ASP 등이 있으며 문서 작성하는데 사용하며 프로그래밍 요소를 가지고 있는 언어 입니다. 4. 작업 제어 언어 - OS와 밀접한 언어로 배치 작업 등을 처리하는데 사용합니다. 5. DB 언어 - 테이블 제작 및 각종 레코드들을 처리할 때 사용합니다..

모델1 구조와 모델2 구조/커맨드핸들러/MVC패턴

모델 1 모델1 구조는 하나의 페이지에서 입력과 출력을 동시에 구현하고 있습니다. 유지보수와 가독성 문제가 발생하는 구조입니다. 모델2 모델2 구조는 입력 부분은 JAVA로 구현되는 Servlet객체로 처리하고 출력은 JSP로 구현하는 구조입니다. 커맨드핸들러 커맨드핸들러는 요청경로에 해당하는 요청의 내용을 처리하는 객체입니다. 요청마다 서블릿을 두는 방식은 web.xml에 일일이 다 등록을 해주어야 하고 파일이 커지는 문제점이 발생합니다. 그러므로 요청을 받아들이는 서블릿을 두고 요청의 각 세부 내용에 대해 별도의 처리를 할 수 있는 방식으로 작성합니다. 서블릿객체는 요청에 대해 요청의 세부 내용을 판별하고 분류하는 작업을 수행하고 실제 요청 수행은 커맨드 핸들러 객체를 호출하여 수행하도록 합니다. 이..

학습(구)/JSP 2020.12.13

서블릿,필터,리스너

서블릿 서블릿은 웹을 통해 클라이언트와의 입출력을 수행하는 자바객체입니다. 서블릿은 클래스로부터 객체생성, 요청 처리를 위한 URL 매핑, 초기화설정은 톰캣 컨테이너가 수행하기 때문에 서블릿 관련 설정은 web.xml을 사용하여 설정을 합니다. 서블릿 클래스는 HttpServlet 클래스를 상속받아 doGet, doPost, init 메소드를 재정의하여 구현합니다. doGet은 GET 요청 방식을 처리하고 doPost는 POST요청방식을 처리하며 init 메소드는 서블릿 객체가 처음 생성될 때 수행되는 초기화 메소드 입니다. 서블릿 객체 생성과 요청 경로 매핑 서블릿 클래스의 객체생성과 요청 경로 매핑은 web.xml을 이용하거나 어노테이션을 사용하여 설정할 수 있는데 어노테이션은 변경시 일일이 다 바꾸..

학습(구)/JSP 2020.12.12

객체의 분류

입력 객체 - 필터 객체 : 요청 데이터를 필터링하여 데이터를 변경하거나 수행 흐름을 변경하는 객체 - 서블릿 객체 : 클라이언트의 모든 요청을 받아 들여 요청 경로에 따라 분류하여 커맨드 핸들러 객체를 구동시키고 커맨드 핸들러가 반환한 JSP 뷰 페이지를 연결하는 객체 - 커맨드 핸들러 객체 : 요청 경로에 해당하는 요청의 내용을 처리하는 객체 서비스 객체 - 업무 처리 객체 - 커맨드 핸들러에서 모두 수행하지 않고 서비스 객체로 넘겨 수행 시킴 DAO 객체 - DB서버와 연동하는 객체 데이터 객체 - 커맨드 객체 : 요청 파라미터를 객체화 한것 - 모델 객체 : 응답 문서를 생성하는 JSP 페이지에서 사용할 내용을 담은 각채 - VO 객체 : 매개변수로 사용되는 자바Bean 객체 매핑 객체 - DAO..

학습(구)/JSP 2020.11.19

디자인 패턴 - 행위 패턴

행위 패턴 : 일 처리를 수행하는 객체와 알고리즘을 수행하는 객체를 분리하여 구현하는 패턴입니다. - 책임체인 패턴 : 요청을 처리하는 객체들끼리 연결고리를 만들어 실제 요청을 처리하는 객체를 만날 때까지 계속해서 요청을 내부적으로 전달하거나 요청에 대한 처리를 1개의 객체가 수행하지 않고 여러 객체로 분산하여 이를 수행할 때 사용하는 패턴입니다. - 커맨드 패턴 : 요청 자체를 객체로 바꿈으로서 이 객체를 다른 객체처럼 저장하거나 전달할 수 있도록 하여 요청처리 호출자와 요청처리 실행자를 분리하여 의존성을 제거해주는 패턴입니다. - 해석자 패턴 : 클라이언트는 표현하기 쉬운 표현을 사용하게 하고 이를 해석하는 객체를 통해 약속된 알고리즘을 수행하는 패턴입니다. 클라이언트가 원하는 다양한 명령을 쉽게 표..

학습(구)/JSP 2020.11.19

디자인 패턴 - 구조 패턴

구조 패턴 : 기능확대를 위해 클래스 혹은 객체를 어떻게 합성하는가를 다루는 패턴입니다. 1) 클래스 구조 패턴 : 상속을 사용하여 인터페이스나 클래스를 정적으로 복합하는 패턴입니다. 2) 객체 구조 패턴 : 새로운 기능을 실현하기 위해 런타임 때 객체를 동적으로 합성하는 패턴입니다. - 어댑터 패턴 : 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변경하는 디자인 패턴입니다. 이미 존재하는 두 인터페이스의 불일치를 극복하는것이 목적입니다. - 브릿지 패턴 : 기능과 구현을 분리하여 이들이 독립성을 가질 수 있도록 하는 패턴입니다. 객체의 기능과 객체의 구현을 독립적으로 만들고 이를 연결하는 것이 목적입니다. - 컴포지트 패턴 : 개별 객체와 복합 객체를 동일한 방법으로 사용할 수 있도록 ..

학습(구)/JSP 2020.11.16

디자인 패턴 - 생성 패턴

디자인 패턴 : 설계에서 자주 접하는 문제들을 해결해주는 문제 해결 답안으로 증명된 해법을 체계적으로 정리한 설계 기법입니다. # 생성 패턴 : 객체의 생성방식을 결정하는 패턴입니다. 생성 패턴에는 추상팩토리, 빌더, 프로토타입, 싱글톤, 펙토리 메서드 등이 있습니다. - 팩토리 패턴 : 대부분의 객체 생성 패턴으로써 클라이언트가 객체를 생성할 때 'new 생성자 호출'을 사용하여 객체를 생성하지 않고 공장 객체에게 객체 생성을 의뢰하여 객체를 생성하는 패턴입니다. 이 패턴은 객체 생성과 관련한 작업으로부터 클라이언트를 독립시켜 객체를 생성하는 부분과 객체를 사용하는 부분을 구분합니다. 1) 추상 팩토리 패턴 : 상세화된 서브 클래스를 정의하지 않고 서로 관련성이 있거나 의존하는 객체들에 대해 객체 군을..

학습(구)/JSP 2020.11.16

Spring - MVC

스프링 MVC 설정 파일 설정이므로 @Configuration과 mvc설정인 @EnableWebMvc를 설정합니다. WebMvcConfigurer를 구현하는 클래스로 정의합니다. 이때 여러 디폴트 메소드들이 구현되어져 있으며 필요한 메소드만 재정의하여 사용합니다. 기본적으로 configureDefaultServletHandling메소드와 ConfigureViewResolvers메소드를 구현합니다. 전자는 매핑경로가 '/'일때 html/css 등을 처리해주기 위해 디폴트 서블릿을 설정하고 후자는 컨트롤러의 실행 결과를 보여주기 위해 뷰 리졸버에 관련된 설정을 해줍니다. web.xml WAS안에서 dispatcher가 생성될 때 같이 스프링 컨테이너도 생성이 됩니다. 이때 스프링 컨테이너 생성시 필요한 정보..