[Spring] JWT (JSON Web Token)
·
Backend/Spring
JWT(JSON Web Token) 토큰 기반의 인증 시스템 사용자가 로그인 할 때 session -> was에 사용자가 로그인을한다. (ID와 비밀번호) > controller에서 db와 비교를 한다. 이 것을 JSP로 내려보내준다. was안에 세션에다가 사용자의 유일한 정보를 담는다(ID). 아이디가 저장되어 있는 세션에 고유한 번호를 만들어준다(세션ID). 세션안에는 세션의 고유한 번호를 가지고 있고, 사용자의 ID나 PWD를 가지고 있다. 세션 아이디를 내려보내준다. 브라우저는 리스펀스로 세션 아이디를 받고, 쿠키에 저장을 한다. (쿠키 : 브라우저 내에 정보를 저장하는 공간(저장소)) 다음 새로운 요청이 있으면, 새로운 요청을 할 때 요청 객체에 쿠키를 포함해서 보낸다. 서버는 쿠키로 부터 세션..
[Spring] PRG 패턴 / 와이어프레임
·
Backend/Spring
PRG 패턴 (Post Redirect GET) - 웹 MVC 구조에서 가장 흔하게 사용하는 패턴으로 POST 방식과 Redirect를 결합해서 사용하는 패턴이다. PRG 패턴 방식 - 사용자는 컨트롤러에 원하는 작업을 POST 방식으로 처리하기를 요청 - POST 방식을 컨트롤러에서 처리하고 브라우저는 다른 경로로 이동(GET)하라는 응답(Redirect) - 브라우저는 GET 방식으로 이동 PRG 패턴의 게시판 예시 - 사용자가 새로운 게시글의 내용을 작성하고 POST 방식으로 전송 - 서버에서 새로운 게시글을 처리한 후에 브라우저의 주소를 목록 화면 경로로 이동하도록 응답 (Redirect) - 브라우저는 목록 화면을 보여주고 사용자는 자신이 추가한 게시글이 추가된 결과를 확인 PRG 패턴은 POS..
[Spring] Web MVC 방식
·
Backend/Spring
MVC 구조와 서블릿 / JSP 브라우저의 요청은 해당 주소를 처리하는 서블릿에 전달되고 서블릿 내부에서는 응답에 필요한 재료 데이터들을 준비한다. 서블릿은 준비한 데이터들을 JSP로 전달하고 JSP에서는 EL을 이용해서 최종적인 결과 데이터를 생성한다. JSP를 이용해서 생성된 결과 화면은 톰캣을 통해서 브라우저로 전송된다. 웹 MVC라는 구조는 'Model - View - Controller'의 역할을 분리해서 처리하는 구조로 데이터는 컨트롤러에서 결과는 뷰에서 처리한다. 여기서 서블릿이 컨트롤러 역할이고, JSP가 뷰 역할이라고 할 수 있다. 컨트롤러 역할을 하는 서블릿은 JSP에 필요한 데이터를 가공하는 역할을 하는데 이때 필요한 데이터를 제공하는 객체를 모델이라고 한다. MVC구조 예시 - 브라..
[Spring] Web 기본 동작 방식
·
Backend/Spring
Request/Response GET 방식 : 주소창에 직접 원하는 데이터를 적거나 링크를 클릭해서 호출 - 원하는 웹의 주소를 호출할 때 필요한 데이터를 '?', '&' , '=' 를 이용해서 같이 전송하는 방식 - 주소와 필요한 데이터를 한번에 같이 보내기 때문에 단순 링크로 처리되므로 다른 사람들에게 메신저나 SNS등을 통해 쉽게 공유 가능 - GET 방식은 주로 특정한 정보를 조회하는 용도로 사용 쿼리 스트링 - 웹에서 주소창 뒤에 '?'로 시작하는 내용물을 퀴리 스트링(query string) -무언가를 요구하거나 물어보는 용도로 데이터를 전달하기 위해 사용 - '키=값'의 형태로 데이터를 전달하는데 여러 개의 데이터가 필요한 경우 '&'를 사용한다. - '키=값' 형태를 파라미터 라고 한다. ..
[Spring] Socket을 이용해서 채팅 웹페이지 만들기 ! (1)
·
Backend/Spring
채팅 웹페이지 완성본입니다. 일단 저는 java 17 / tomcat 9.0 사용해서 만들었습니다 ! file > new > other > wizards에 spring 검색하셔서 "Spring Starter Project" 누르세요! Type : Maven / packaging : War로 설정 / 그리고 package : com.web.demo로 해주시면 됩니다! 그리고 next Available : WebSocket 선택해 주시고 Finish ! - War - Spring Boot 애플리케이션을 War파일로 패킹징하고 배포할 수 있고, War파일은 웹 애플리케이션 아카이브로, 대부분 서플리 컨테이너(Apache Tomcat, jetty 등)에서 실행할 수 있습니다. WebSocket - 양방향 통신을..
[Spring] 내가 보려고 만든 spring 용어 정리 ( 9월 25일 수정 )
·
Backend/Spring
1.세션 (Session) - 세션은 웹 애플리케이션에서 클라이언트와 서버 간의 상태를 유지하고 정보를 저장하는 방법 중 하나. 세션은 HTTP 프로토콜의 기본적인 무상태 특성을 극복하기 위해 사용된다. 이를 통해 사용자가 웹 애플리케이션과 상호작용하면서 정보를 계속 유지하고, 다양한 페이지 간에 데이터를 공유할 수 있다. 특징 : 1. 상태 유지 : 세션을 통해 웹 애플리케이션은 사용자가 로그인한 상태인지, 장바구니에 어떤 물건이 들어있는지 등을 기록할 수 있다. 2. 고유성 : 각 세션은 고유한 세션 ID를 가진다. 이 ID를 사용하여 서버는 각 클라이언트의 세션을 식별하고 구분한다. 3. 세션 데이터 : 세션은 클라이언트와 관련된 데이터를 저장하는데 사용된다. 이 데이터는 웹페이지 간에 공유되며, ..
[Spring] Spring Project - MVC 배우기 !
·
Backend/Spring
내가 계속 보려고 만드는 spring mvc 방법 ! [ 스프링 프레임워크에서 MVC(Model - View - Controller) 아키텍처를 구현하는 방법 ] MVC : 웹 애플리케이션을 구성하는데 사용되며, 데이터, 비즈니스 로직, 사용자 인터페이스를 분리하여 관리할 수 있게 해준다. 1. spring 프로젝트 설정 Maven 또는 Gradle과 같은 빌드 도구를 사용하여 필요한 spring 라이브러리를 프로젝트에 추가하고, web.xml 파일을 설정하여 spring 의 DispatcherServlet 을 등록한다. dispatcher org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/dispatcher-..
[Spring] DI(Dependency Injection) 란 ?
·
Backend/Spring
DI란 ? -> Dependency Injection, 즉 의존성 주입이라는 뜻이다. 예를 들어 베터리 분리형 장난감은 베터리가 떨어지면 베터리만 교체하면 되는 형식으로 더 효율적이다. 객체 지향 프로그래밍에서 사용되는 중요한 디자인 패턴 중 하나로, 객체를 다 독립시켜 유연성 있게 필요한 것을 추가, 삭제 등을 하여 유지보수가 가능하게 하는 것이다. DI는 객체가 필요로 하는 다른 객체를 직접 생성하는 것이 아니라, 외부에서 주입받는 방식으로 의존성을 관리한다. 즉, 어떤 객체가 다른 객체에 의존할 때, 이 의존성을 코드 내에서 하드 코딩하는 대신 외부에서 필요한 의존 객체를 제공받는다. 1. 생성자 주입 @Controller public class Controller{ private Service s..