spring
-
핸들러 메소드 - 2 (스프링 MVC - 6)Programming/Spring MVC 2020. 3. 26. 17:47
1. @SessionAttributes - 모델 정보를 HTTP 세션에 저장해주는 애노테이션 - 이 애노테이션에 설정한 이름에 해당하는 모델 정보를 자동으로 세션에 넣어준다. - @ModelAttribute는 세션에 있는 데이터도 바인딩한다. - 여러 화면에서 사용해야 하는 객체를 공유할 때 사용함 ex) 회원 가입을 여러 창에 나누어서 할 때 - SessionStatus를 사용해서 세션 처리 완료를 알려줄 수 있다. (폼 처리가 끝나고 세션을 비울 때 사용) 2. @SessionAttribute - 해당 컨트롤러 안에서 동작하는 @SessionAttributes와는 다르게 쓰임 -> @SessionAttribute는 컨트롤러 밖 (인터셉터 또는 필터 등)에서 만들어 준 세션 데이터에 접근할 때 사용함 ..
-
핸들러 메소드 - 1 (스프링 MVC - 5)Programming/Spring MVC 2020. 3. 24. 19:17
1. 지원하는 메소드 아규먼트와 리턴 타입 주요한 아규먼트와 리턴 타입이며, 전부는 아님. 심지어 직접 커스텀하여 사용 가능 1) 핸들러 메소드 아규먼트 : 주로 요청 그 자체 또는 요청에 들어있는 정보를 받아오는데 사용한다. 요청 또는 응답 자체에 접근 가능한 API (Low Level 느낌) - WebReqeust - NativeWebRequest - HttpServletRequest, HttpServletResponse (서블릿 API) 요청 본문을 읽어옥거나, 응답 본문을 쓸 때 사용할 수 있는 API (Low Level 느낌) - InputStream, OutputStream - Reader, Writer HTTP/2 리소스 푸쉬에 사용 기존) 클라이언트가 서버에 요청 -> 서버 응답 -> 해당..
-
요청 맵핑하기 (스프링 MVC - 4)Programming/Spring MVC 2020. 3. 24. 00:23
1. HTTP Method @ReqeustMapping @GetMapping @PostMapping @Controller public class SampleController { @RequestMapping(value = "/hello", method = {RequestMethod.GET, RequestMethod.POST}) public @ResponseBody String hello() { return "hello"; } } GET - 클라이언트가 서버의 리소스를 요청할 때 사용 - 캐싱할 수 있다. (조건적인 GET으로 바뀔 수 있다) - 브라우저 기록에 남는다 - 북마크 할 수 있다 - 민감한 데이터를 보낼 때 URL에 보이니까 사용하면 안됨 - idemponent (동일한 GET 요청이면 모두 ..
-
WebMvcConfigurer (스프링 MVC - 3)Programming/Spring MVC 2020. 3. 22. 23:01
1. Formatter 문자열 객체 사이의 변환 1) Controller 작성 @RestController public class SampleController { @GetMapping("/hello/{name}") public String hello(@PathVariable("name") Person person) { return "hello " + person.getName(); } } 2) Person 클래스 작성 public class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } 3. Formatter 작성 // 빈..
-
서블릿 애플리케이션 (스프링 MVC - 2)Programming/Spring MVC 2020. 3. 22. 01:22
1. 서블릿 애플리케이션 서블릿 - 자바EE는 웹 애플리케이션 개발용 스펙과 API를 제공 - 요청 당 쓰레드를 만들거나, 풀에서 가져다가 사용 - HttpServlet 서블릿 장점 - 빠르다 - 플랫폼 독립적 - 보안 - 이식성 서블릿 컨테이너 - 톰켓, 제티, 언더토 - 서블릿 스펙(웹 애플리케이션 개발 스펙과 API)을 준수하는 것들 - 세션 관리 - 네트워크 서비스 - 서블릿 생명주기 관리 (init, destroy) 2. 서블릿 리스너와 서블릿 필터 서블릿 리스너 - 웹 애플리케이션에서 발생하는 주요 이벤트를 감지하고 각 이벤트에 특별한 작업이 필요한 경우에 사용할 수 있다. - 서블릿 컨텍스트 수준의 이벤트, 세션 수준의 이벤트 서블릿 필터 - 들어온 요청을 서블릿으로 보내고, 또 서블릿이 작..
-
스프링 MVC 란? (스프링 MVC - 1)Programming/Spring MVC 2020. 3. 21. 23:59
1. 스프링 MVC? M(모델) - 평범한 자바 객체 - 도메인 객체 또는 DTO로 화면에 전달할 또는 화면에서 전달 받은 데이터를 담고 있는 객체 V(뷰) - HTML, JSP, 타임리프.. - 데이터를 보여주는 역할. 다양한 형태로 보여줄 수 있음 (HTML, JSON, XML) C(컨트롤러) - 스프팅 @MVC - 사용자의 입력을 받아 모델 객체의 데이터를 변경하거나, 모델 객체를 뷰에 전달 - 입력 값 검증, 입력 받은 데이터를 모델 객체로 변경, 변경된 모델 객체를 뷰에 전달 2. MVC 패턴의 장점 동시 다발적 개발 높은 결합도 낮은 의존도 개발 용이성 한 모델에 대한 여러 형태의 뷰를 가질 수 있음 3. MVC 패턴의 단점 코드 네비게이션이 복잡함 코드 일관성 유지에 노력이 필요함 높은 학습..
-
스프링 부트 운영 (스프링 부트 활용 - 12)Programming/Spring Boot 2020. 3. 14. 20:18
스프링 부트는 애플리케이션 운영 환경에서 유용한 기능을 제공한다 . 스프링 부트가 제공하는 엔드포인트와 메트릭스 그리고 그 데이터를 활용하는 모니터링 기능에 대해 학습한다. 1. 스프링 Actuator 소개 - 어플리케이션의 각종 정보를 확인할 수 있는 Endpoints JMX(Jconsole, JvisualVM) 또는 HTTP를 통해 접근 가능 함 활성화 옵션 조정 공통적으로 의존성 추가 2. Jconsole 터미널에 Jconsole 입력 3. JvisualVM 설치 후 터미널에 JvisualVM 입력 4. HTTP 다음의 설정 추가하면, 모든 정보가 노출되므로 스프링 시큐리티로 admin만 접근가능하도록 하는 등 처리 필요 management.endpoints.web.exposure.include=*..