객체의 참조와 테이블의 외래 키를 매핑하는 것N:1, 한 개의 Question(질문)은 여러개 Answer(답변)을 가질 수 있으므로 Answer 기준으로 @ManyToOne을 선언합니다.1:N, 여러개 Answer(답변)은 한 개의 Question(질문)에 등록될 수
질문 생성 시, form 데이터 값들이 공백, 빈 문자열, null값이 저장되는 것을 방지하기 위해서 SpringBoot Validation을 이용하기 위해 QuestionForm 객체를 생성하였습니다.그리고 @Valid 어노테이션을 이용해 QuestionForm의 값
질문 수정 시, 입력 값이 null, 공백, 문자열을 검사하기 위해서 Spring Validation을 적용하였다. 하지만 질문 수정 버튼을 클릭할 경우, DB에 저장된 제목, 내용 정보를 가져오지 못하는 문제가 발생하였다.gif1오류를 확인해보니 <th:fiel
스프링부트 3.0부터 스프링 시큐리티 6.0.0이상의 버전이 적용되었습니다. 2.7.3이후로 시큐리티 설정쪽에 drprecated 되는게 추가되었고 3.0부터는 아예 삭제된 설정방식들이 있습니다. GradleMaven의존성을 추가해주게 되면 모든 경로에 대해서 로그인화
Spring Security적용 후, 로그인 기능을 구현했다. 하지만 로그인 실패 시, 오류 메시지를 출력하려고 했다.위 코드는 로그인 기능을 구현했을 때 코드이다. 로그인을 하기위해서 /loginForm경로로 이동하고, 로그인 처리를 하기 위해서 /login경로로 이
Spring Security는 Spring MVC 기반 애플리케이션의 인증 (Authentication)rhk 인가 (Authorization) 기능을 지원하는 보안 프레임워크이다.다양한 유형(폼 로그인 인증, 토큰 기반 인증, OAuth2 기반인증, LDA인증)의 사
JWT는 서버 측에 인증된 사용자의 정보를 세션 형태로 세션 저장소에 저장하는 방식이다.세션은 인증된 사용자 정보를 서버 측 세션 저장소에서 관리한다.생성된 사용자 세션의 고유한 ID인 세션ID는 클라이언트의 쿠키에 저장되어 요청을 보낼 때 인증된 사용자인지를 증명하는
현재 진행 중인 웹 프로젝트를 진행하면서 프론트 영역과 통신 하기 위해서는 REST API방식으로 개발을 진행해야겠다는 생각이 들었다. 그렇기 때문에 Form로그인 방식과 같은 세션기반이 아닌 프론트엔드 영역으로부터 받은 JSON객체를 Spring Security에 적
스프링 웹 MVC는 서블릿 기반의 애플리케이션을 쉽게 만들 수 있도록 도와주는 프레임워크이다.그렇다면 서블릿은 무엇일까?Servlet은 자바 EE에서 제공하는 웹 애플리케이션 개발용 스팩이다. 조금 더 쉽게 말하면, Servlet은 이러한 서블릿이 하는 역할로는 세션관
이전 글에서 Listener는 웹 애플리케이션의 생명 주기 이벤트를 감지하고 이벤트에 따라 특정 작업을 수행하는 클래스라고 했다. 그렇다면,
이전 글에서 Filter는 요청에 의해서 실행될 Servlet 실행 전/후로 특별한 처리가 필요한 경우 실행되는 클래스라고 했다. 즉, 클라이언트의 HTTP 요청이 Servlet에 도달하기 전이나 후에 요청/응답 데이터를 가로채어 변경하거나 처리하는 클래스인 것이다.그
Servlet, Listener, Filter는 모두 Java 웹 애플리케이션에서 사용되는 구성요소이다. 즉, 세가지 구성 요소 모두 Class라는 것이다. 하지만 세 가지 구성 요소는 실행 목적이 다르다.Listener는 웹 애플리케이션의 생명 주기 이벤트를 감지하고
Application Context는 스프링 프레임워크에서 제공하는 핵심 컨테이너이며, IoC(Inversion of Control) 컨테이너의 한 종류이다. 이러한 Application Context는 스프링에서 객체(빈)의 생성, 관리, 의존성 주입 등을 담당하며
이전 글에서는 ApplicationContext가 어떠한 역할을 수행하고, xml방식과 어노테이션을 이용하여 초기화하는 방법에 대해 알아보았다.이번 글에서는 Spring MVC와 연동하기 위해 DispatcherServlet에 대해 알아보려고한다.DispatcherSe
멀티 모듈 프로젝트에 공부를 하면서 에러를 발견해서 해당 글을 작성하게 되었습니다.multi-module 프로젝트 하위에 domain, database, service라는 3개의 모듈을 생성하였습니다. 그리고 domain모듈에는 Entity, database모듈에는 R