728x90
반응형

Web/Java+Spring 33

Logging

정보를 제공하는 일련의 기록인 로그(log)를 생성하도록 시스템을 작성하는 활동 프린트 줄 넣기(printlining)는 간단한, 보통은 일시적인, 로그를 생성하기만 한다. 시스템 설계자들은 시스템의 복잡성 때문에 로그를 이해하고 사용해야 한다. 로그가 제공하는 정보의 양은, 이상적으로는 프로그램이 실행되는 중에도, 설정 가능해야 한다. 일반적으로 로그 기록의 이점 - 로그는 재현하기 힘든 버그에 대한 유용한 정보를 제공할 수 있다. - 로그는 성능에 관한 통계와 정보를 제공할 수 있다. - 설정이 가능할 때, 로그는 예기치 못한 특정 문제들을 디버그하기 위해, 그 문제들을 처리하도록 코드를 수정하여 다시 적용하지(redeploy) 않아도, 일반적인 정보를 갈무리할 수 있게 한다. 로그를 출력하는 방법 ..

Web/Java+Spring 2021.09.10

ArgumentResolver

ArgumentResolver 컨트롤러의 메소드 인자로 사용자가 임의의 값을 전달하는 방법을 제공하고자 할 때 사용 서비스 운영 중에 받는 여러 종류의 데이터(파라미터)를 공통으로 처리할 수 있도록 구현된 인터페이스 예로, 세션에 저장된 값 중 특정 이름의 값을 메소드의 인자로 전달할 때 ArgumentResolver를 Controller 단에서 사용하면 중복 코드 (HttpSession의 세션 로드, HttpServletRequest의 요청 URL 및 ip 정보 로드 등)을 깜끌하게 처리할 수 있다 ArgumentResolver 작성 방법 HandlerMethod ArgumentResolver 인터페이스를 구현한 클래스 작성 supportsParameter 메소드를 오버라이딩한 후 원하는 타입의 인자가..

Web/Java+Spring 2021.07.13

Interceptor

인터셉터(Interceptor) Interceptor는 Dispatcher servlet에서 Handler(Controller)로 요청을 보낼 때, Handler에서 Dispathcer servlet으로 응답을 보낼 때 동작합니다. 스프링 DispathcerServlet의 내부 동작 클라이언트로부터 요청이 들어왔을 때 필터가 존재하면 필터를 수행 아래 사진같은 경우 스프링에서 제공된 charset을 지정하는 필터가 정의되어 있었음 web.xml이나 그와 같은 일을 하는 부분에 이 필터를 등록 필터는 요청을 받기 전, 응답이 나가기 전에 수행됨 그 다음에 DispatcherServlet이 수행 필터처럼 선처리 작업이 존재한다면 먼저 선처리 작업을 해주고 HandlerMapping을 통해서 실제 어떤 Han..

Web/Java+Spring 2021.07.13

Spring MVC에서 Session 사용하기

@SessionAttributes & @ModelAttribute Controller 위쪽에 SessionAttributes를 적고 메소드의 인자로 ModelAttribute를 적었는데 인자로 전달될 이름이 같은 경우 먼저 세션에서 전달된 이름으로 저장된 객체를 찾고 해당 객체에 요청으로부터 넘어온 값을 설정해서 전달. 메소드가 return한 값은 argument의 이름을 key로 하여 세션에 저장되게 됨 아래의 예제는 세션에 값을 초기화하는 목적으로 사용되었습니다. setUpUserForm() 메서드에서 반환하는 User 객체가 이 user 라는 이름으로 세션에 저장됨 @SessionAttributes("user") public class LoginController { @ModelAttribute("..

Web/Java+Spring 2021.07.08

RestController - Rest API by Spring MVC

@RestController Spring 4, Spring MVC에서 Rest API 또는 Web API를 개발하기 위해 등장 이전 버전의 @Controller와 @ResponseBody를 포함합니다. MessageConvertor JSON 변환 관련 담당. jackson 라이브러리를 추가해야만 JSON 처리 Convertor가 등장함 추가하지 않았다면 500번 오류 예 외부에서 전달받은 JSON 메소드를 내부에서 사용할 수 있는 객체로 변환하기 컨트롤러를 반환한 객체가 클라이언트에게 JSON으로 변화해서 전달될 수 있도록 하는 역할 자바 객체와 HTTP 요청 / 응답 바디를 변환하는 역할 @ResponseBody, @RequestBody @EnableWebMvc 로 인한 기본 설정 WebMvcConfi..

Web/Java+Spring 2021.06.10

Layered Architecture 실습 - 방명록

이번 시간엔 방명록을 Spring 프레임워크를 이용해 만들어 보도록 하겠습니다. 이를 통해 각 레이어별로 어떤 내용들을 작성해야 하는지 알아보고, 완전히 동작하는 웹 어플리케이션을 개발해 봄으로써 Spring 웹 어플리케이션에 대한 이해를 높이는 시간이 될 수 있길 바랍니다. 방명록 만들기 실습 Spring JDBC를 이용하여 DAO 작성 Controller, Service Dao로 레이어드 아키텍처 구성 트랜잭션 처리 Spring MVC에서 form 값 입력받기 Spring MVC에서 redirect하기 Controller에서 jsp에게 전달한 값을 JSTL과 EL을 이용해 출력 방명록 요구 사항 데이터베이스 관련 guestbook 테이블 방명록 정보 id는 자동으로 입력되도록 한다 id, 이름, 내용..

Web/Java+Spring 2021.06.09

Layered Architecture

Controller에서 중복되는 부분 - 헤더의 로그인 버튼, 검색창 - 광고 배너 Controller에서 중복되는 부분을 처리하려면? 별도의 객체로 분리합니다. 별도의 메소드로 분리합니다. 예를 들어 쇼핑몰에서 게시판에서도 회원 정보를 보여주고, 상품 목록 보기에서도 회원 정보를 보여줘야 한다면 회원 정보를 읽어오는 코드는 어떻게 해야 할까요? 컨트롤러와 서비스 컨트롤러들이 중복 호출된 부분들을 별도의 객체인 Service로 구현 이 객체는 보통 업무와 관련된 메소드를 가지고 있어, 비즈니스 메소드라고 함 이런 서비스 객체란 비즈니스 로직을 수행하는 메소드를 가진 객체를 말함 하나의 비즈니스 로직은 하나의 트랜잭션으로 동작 컨트롤러는 Service객체를 사용하도록 합니다. 상품 서비스의 경우, 컨트롤러..

Web/Java+Spring 2021.06.07

Spring MVC - Controller 작성 실습 3

Controller작성 실습 2/3 http://localhost:8080/mvcexam/userform 으로 요청을 보내면 이름, email, 나이를 물어보는 폼이 보여진다. 폼에서 값을 입력하고 확인을 누르면 post방식으로 http://localhost:8080/mvcexam/regist 에 정보를 전달하게 된다. regist에서는 입력받은 결과를 콘솔 화면에 출력한다. 1. 유저 정보 받기 - userform.jsp 경로: src/main/webapp/WEB-INF/views name : email : age : 2. 유저 정보를 담을 객체를 위한 클래스 생성 DTO 패키지 생성 경로: src/main/java 이름: kr.or.connect.mvcexam.dto User.java package ..

Web/Java+Spring 2021.06.07

Spring MVC - Controller 작성 실습 2

이전 실습에서는 각각의 어노테이션이나 설정 파일들이 어떤 의미를 가지는지 살펴봤다면, 이번 실습에서는 실제로 컨트롤러가 어떻게 사용되는지 살펴보기 Controller작성 실습 1/3 웹 브라우저에서 http://localhost:8080/mvcexam/plusform 이라고 요청을 보 내면 서버는 웹 브라우저에게 2개의 값을 입력받을 수 있는 입력 창과 버튼이 있는 화면을 출력한다. 웹 브라우저에 2개의 값을 입력하고 버튼을 클릭하면 http://localhost:8080/mvcexam/plus URL로 2개의 입력값이 POST방식으로 서버에게 전달한다. 서버는 2개의 값을 더한 후, 그 결과 값을 JSP에게 request scope으로 전달하여 출력한다. jsp file 생성 /src/main/java..

Web/Java+Spring 2021.06.07

Spring MVC - Controller 작성 실습 1

실습 가이드 1. 웹 브라우저에서 http://localhost:8080/mvcexam/plusform 이라고 요청을 보내면 서버는 브라우저에게 2개의 값을 입력받을 수 있는 입력창과 버튼이 있는 화면을 출력 2. 웹 브라우저에 2개의 값을 입력하고 버튼 클릭하면 http://localhost:8080/mvcexam/plusform URL로 2개의 입력값이 POST 방식으로 서버에 전달 서버는 2개의 값을 더한 결과를 JSP에게 request scope로 전달하여 출력 프로젝트 생성 및 라이브러리 추가 Maven Proejct archetypes : webapp group id : kr.or.connect artifact id : mvcexam src/main/ 에 java 폴더 생성 pom.xml에 수..

Web/Java+Spring 2021.06.07
728x90
반응형