Spring
-
WebSocket이란 무엇일까? (채팅기능)Spring 2021. 7. 5. 23:12
WebSocket? 서버와 클라이언트 간에 Socket Connection을 유지해 언제든 양방향 통신 또는 데이터 전송이 가능하도록 하는 기술. Real-time web application 구현을 위해 널리 사용되어지고 있다. 웹 어플리케이션에서 기존의 서버와 클라이언트 간의 통신은 대부분 HTTP를 통해 이루어 졌으며 HTTP는 Request/response 기반의 Stateless protocol이다. 다시 말해, 서버와 클라이언트 간의 Socket connection 같은 영구적인 연결이 아니라 클라이언트 쪽에서 필요에 의해 request를 할때만 서버가 response를 하는 방식으로 진행되는 한방향 통신이다. 이럴경우 서버쪽 데이터가 업데이트 되더라도 클라이언트 쪽에는 새로고침을 하지 않는한..
-
WebSocket을 이용한 채팅Spring 2021. 7. 2. 23:16
기본설정 1. pom.xml 에 dependency 추가 2. EchoHandler class 생성 package com.sp.ex; import java.util.ArrayList; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.socket.CloseStatus; import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.WebSocketSes..
-
Mapper에서 특정 문자를 포함한 쿼리 검색Spring 2021. 7. 1. 23:15
상품검색을 할 때 특정한 문자열이 포함된 문자열을 가지고 검색을 하려고 했는데 아무리 해도 계속 해서 에러가 났다. 검색을 통해 해결하였다. 를 통해서 부등호나, 다른 부호들이 모두 문자로써 표현되게 만들어 주었고 LIKE 뒤에 들어가는 부분을 '%'||#{productName}||'%' 이렇게 해줘야 cmd나 일반적인 쿼리를 작성할때 사용하는 SELECT * FROM PRODUCT WHERE PRODUCTNAME LIKE '상품이름'; 이렇게 하는것과 같은 결과값을 가져올 수 있다.
-
SMTP 프로토콜을 이용한 Spring 에서 메일 보내기 (gmail)Spring 2021. 6. 30. 19:29
1. pom.xml 에 dependency 추가 2. Biz / Service 부분에 메소드 추가하기 @Override public void sendEmail(UserDto dto) { // 네이버일 경우 네이버 계정, gmail일 경우 gmail 계정 final String user = "@gmail.com"; // 위의 계정 패스워드 final String password = ""; String msg = ""; msg += ""; msg += ""; msg += dto.getUserid() + "님의 임시 비밀번호 입니다. 비밀번호를 변경하여 사용하세요."; msg += "임시 비밀번호 : "; msg += dto.getPassword() + ""; //SMTP 서버 정보 설정하기 Propertie..
-
컨트롤러와 프론트(jsp) 값 전달하는 방법Spring 2021. 6. 29. 18:23
Spring 프레임워크의 컨트롤러와 JSP사이에서 값을 주고 받는 것은 웹프로그래밍에서 가장 기본적인 작업이다. 하지만 막상 코드를 작성하다보면 막히거나, 이해하지 못하는 부분이 생기기 마련이다. JSP(프론트영역)에서 Controller(백엔드)으로 데이터 전송하기 JSP에서 Controller로 데이터를 전달하는 방법에 대해서 알아보자. 프론트 영역에서 GET방식과 POST 방식 두가지로 이루어져 있는데 문제는 GET과 POST방식을 이용하여 Form-Action을 통해 구현하기도 하고 Ajax를 이용하거나 혹은 그냥 location.href를 통해서 바로 URL주소에 태워서 보내기도 한다. 여기에 jQuery까지 가세한다면 초심자 입장에서는 더욱더 복잡하게 느껴지기 때문에 정리가 필요하다. Form..
-
reCAPTCHA v2Spring 2021. 6. 26. 23:05
SpringBoot가 아니라 Spring Legacy project 에서 구글의 reCAPTCHA를 사용하는 법 https://developers.google.com/recaptcha/docs/display reCAPTCHA v2 | Google Developers This page explains how to display and customize the reCAPTCHA v2 widget on your webpage. To display the widget, you can either: See Configurations to learn how to customize your widget. For example, you may want to specify the language or theme for ..
-
@RequestBody / @ResponseBodySpring 2021. 6. 22. 22:54
스프링은 비동기 처리를 할 때 @RequestBody 와 @ResponseBody를 사용한다. 어떻게 비동기를 처리하는가? 클라이언트와 서버의 비동기 처리 웹에서 이루어지는 데이터를 가져오고, 전송하는 이러한 동작들은 클라이언트(Client)와 서버(Server)간의 통신이 이루어지기 때문에 가능하다. 예를들어 우리가 브라우저에서 검색 키워드를 입력하고 검색 버튼을 누르면 검색 키워드가 클라이언트(.js)를 통해 서버(.java)로 전송이 되며 서버에서 검색 키워드를 이용하여, 클라이언트에서 요청한 메시지를 처리하고, 응답을 만들어 다시 클라이언트에게 보내며 클라이언트는 이를 활용하여 클라이언트에게 뿌려주는 역할을 하게된다. 여기서 가장 중요한 2가지가 요청(request) 과 응답(response) 이..
-
HttpSessionSpring 2021. 6. 20. 21:09
웹에서 로그인의 가장 기본적인 방식은 HttpSession 객체를 이용하여 사용자의 정보를 보관하고, 필요한 경우 사용하거나 수정하는 방식이다. HttpSession의 동작은 세션 쿠키를 통해 이루어진다. 서버는 접속한 브라우저에게 고유한 세션쿠키를 전달하고, 매번 브라우저에서 서버를 호출할 때 세션 쿠키를 가지고 다니기 때문에, 이를 마치 열쇠처럼 사용해서 필요한 데이터를 보관한다. 세션쿠키가 열쇠라면 HttpSession은 열쇠가 필요한 잠금장치가 되어있는 상자와 비슷하다. 이 상자들이 모여있는 공간을 세션 저장소(Session Repository)라고 하는데, 너무나 많은 세션이 존재하면 서버의 성능에 영향을 미치기 때문에 서버는 일정시간 이상 사용되지 않는 상자들을 정리하는 기능을 가지고 있다. ..