Spring
-
스프링 웹 MVC 4일차Spring 2021. 3. 14. 22:28
HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법을 알아보자. 클라이언트에서 서버로 요청 데이터를 전달할 때 다음 3가지 방법을 사용한다. GET - 쿼리 파라미터 /url?username=hello&age=20 메시지 바디 없이, URL 쿼리 파라미터에 데이터를 포함해서 전달 검색, 필터, 페이징 등에서 많이 사용하는 방식 POST - HTML Form content-type: application/x-www-form-urlencoded 메시지 바디에 쿼리 파라미터 형식으로 전달 username=hello&age=20 회원 가입, 상품 주문, HTML Form 사용 HTTP message body에 데이터를 직접 담아서..
-
스프링 웹 MVC 3일차Spring 2021. 3. 13. 21:18
SpringMVC 구조 1. 핸들러 조회: 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러(컨트롤러)를 조회한다. 2. 핸들러 어댑터 조회: 핸들러를 실행할 수 있는 핸들러 어댑터를 조회한다. 3. 핸들러 어댑터 실행: 핸들러 어댑터를 실행한다. 4. 핸들러 실행: 핸들러: 어댑터가 실제 핸들러를 실행한다. 5. ModelAndView 반환: 핸들러 어댑터는 핸들러가 반환하는 정보를 ModelAndView로 변환해서 반환한다. 6. viewResolver 호출: viewResolver를 찾고 실행한다. 7. View 반환: viewResolver는 뷰의 논리 이름을 물리 이름으로 바꾸고, 렌더링 역할을 담당하는 View 객체를 반환한다. 8. View Rendering: 뷰를 통해 뷰를 렌더링 한다. 과..
-
스프링 웹 MVC 2일차Spring 2021. 3. 11. 21:55
서블릿과 JSP의 한계 서블릿만 사용 서블릿만으로 개발을 하면 뷰(View) 화면을 위한 HTML을 만드는 작업이 자바 코드에 섞여서 지저분하고 복잡하다. @WebServlet(name = "memberFormServlet", urlPatterns = "/servlet/members/new-form") public class MemberFormServlet extends HttpServlet { private MemberRepository memberRepository = MemberRepository.getInstance(); @Override protected void service (HttpServletRequest request, HttpServletResponse response) throws ..
-
스프링 웹 MVC 1일차Spring 2021. 3. 9. 15:30
1. 웹 서버와 웹 애플리케이션 서버(WAS) 모든 것이 HTTP HTML, TEXT, IMAGE, JSON, XML 등 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP를 사용한다. 웹 서버 HTTP 기반으로 동작하고, 정적 HTML, CSS, JS, 이미지, 영상 제공 ex) NGINX, APACHE 웹 애플리케이션 서버(WAS) HTTP 기반으로 동작하고, 웹 서버 기능 포함 + (정적 리소스 제공 가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 가능 동적 HTML, HTTP API(JSON), 서블릿, JSP, 스프링 MVC ex) 톰캣, Jetty 웹 서버와, 웹 애플리케이션 서버의 차이 웹 서버는 정적 리소스, WAS는 애플리케이션 로직, but 둘의..
-
스프링 시큐리티 흐름 (1)Spring 2021. 3. 4. 22:38
스프링 시큐리티를 정리해보려고 한다. 스프링 시큐리티를 이해하기 위해서 Authentication(인증)과 Authorize(인가)에 대해서 정확하게 이해를 해야 한다. Authentication은 보호된 리소스에 접근한 대상에 대해 이 유저가 누구인지, 애플리케이션의 작업을 수행해도 되는 주체인지 확인하는 과정이다. (로그인) Authorize는 해당 리소스에 대해 접근 가능한 권한을 가지고 있는지 확인하는 과정이다. (인증 이후의 과정) 스프링 시큐리티란? 스프링 시큐리티는 스프링 기반의 애플리케이션의 보안을 담당하는 스프링 하위 프레임워크이다. 주로 서블릿 필터와 이들로 구성된 필터체인으로 위임모델을 사용한다. 그리고 보안 관련된 많은 옵션들을 제공해준다. 위의 그림은 Form 기반 로그인에 대한 ..
-
Spring boot 로 메일 보내기Spring 2021. 3. 4. 22:21
스프링 부트로 메일을 보내기 위해서는 다음과 같이 gradle에 라이브러리를 넣어주어야 한다. implementation 'org.springframework.boot:spring-boot-starter-mail' Gmail SMTP Server을 사용할 건데 구글 계정만 있으면 무료로 발송할 수 있다. 사용하려면 아래와 같이 설정을 해주어야 한다. application.yml에는 다음과 같이 추가해준다. spring: mail: host: smtp.gmail.com port: 587 username: [ 자신의 구글 이메일 ] password: [ 자신의 구글 비밀번호 ] properties: mail: smtp: auth: true starttls: enable: true 이제 메일을 발송해보자 Si..
-
스프링 Annotation 알아보기Spring 2021. 2. 14. 18:56
@RestController: @RestController는 @Contorller 어노테이션과 @ResposeBody 어노테이션을 합쳐놓은 어노테이션이다. @Controller는 일반적으로 View Page의 이름을 리턴해주어 사용자에게 View Page를 출력하게 하는데 @RestController는 return 값이 View Page를 통해 출력되는 것이 아니라 HTTP ResponseBody에 직접 쓰이게 된다. 따라서 사용자의 요청이 오면 MessageConverter를 통해서 Json방식이나 Text 형태로 return 하게 된다. 결론적으로 Spring MVC 패턴을 사용하면 @Controller를 사용하고 REST API 형태로 개발하게 되면 @RestController를 사용하게 된다. @..