전체 글
-
스프링 웹 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..
-
Querydsl로 동적쿼리 쉽게 작성하기JPA 2021. 3. 1. 19:48
JPA를 사용할 때 동적 쿼리를 작성하려면 정말 까다롭고 어렵다. 하지만 Querydsl을 사용하면 쉽고 간편하게 동적 쿼리를 작성할 수 있다. Querydsl의 장점은 자바처럼 SQL문을 작성할 수 있고, 문법 오류가 나면 컴파일 에러로 잡을 수 있기 때문에 정말 좋다. (보통의 SQL문은 런타임에 에러가 발생) Querydsl로 동적 쿼리를 작성하는 방법은 크게 두 가지가 있다. 1) Builder 적용 2) Where절 적용 Builder 적용 void dynamicQuery_BooleanBuilder() throws Exception { String usernameParam = "member1"; Integer ageParam = 10; List result = searchMember1(usern..