목록분류 전체보기 (170)
관심쟁이 영호
백엔드 공부를 하면서, 많은 고충이 있었다. 그중 가장 많이 맞닿은 문제는 뷰에서의 문제였다. 내가 구현한 내용을 눈으로 확인하고 싶지만 프론트에 대한 지식이 부족하여 발목이 많이 잡혔다. 맷돌에 손잡이가 없어서 맷돌을 사용하면 안되니까! 이번 기회에 확실하게 공부를 하자. 목차 Thymeleaf란? Thymeleaf에 변수, 객체 넘기기 Thymeleaf 사용 선언 Thymeleaf 간단한 표현 text SpringEL URL 링크 속성 값 설정 조건부 평가 Thymeleaf란? 이번에 기록을 하며 확실하게 정리하고 넘어가 보자. 가장 먼저 "템플릿 엔진"에 대해서 알아야 한다. 템플릿 엔진 - 템플릿 엔진은 웹 문서를 출력하는 엔진이다. 개발을 진행하면서 자바 코드 - html 코드 간의 상이함을 최..

오늘은 Spring Boot를 이용하여 파일 업로드에 대해서 공부할 예정이다. 목차 HTML Form 전송 방식 File 도메인 생성 게시글 쓰기 Post Mapping 수정 파일 올리기 Service 작성 FileHanler 작성 HTML 폼 전송 방식 파일을 서버와 주고받기 위해서는 가장 먼저, HTML Form 전송 방식을 알아야 한다. 두 가지의 전송 방식이 있다. application/x-www-form-urlencoded multipart/form-data application/x-www-form-urlencoded - 해당 방식은 HTML 폼 데이터를 서버로 전송하는 가장 기본적인 방법이다. form 태그에 enctype 옵션을 넣어주지 않으면 브라우저는 헤더에 다음 내용을 추가한다. Con..
오늘은 스프링 부트에서 제공하는 필터와 인터셉터에 대해서 공부를 해볼 예정이다. 목차 인터셉터란? 스프링 인터셉터 인터페이스 인터셉터 적용하기 인터셉터란? 하나의 예시를 통해서 이해해보자. 사용자가 Get 요청으로 로그인을 하지않은 상태에서 "회원A의 정보 수정 페이지"를 요청하면 해당 페이지가 나오지 않아야 한다. 그러기 위해서 인터셉터를 사용한다. 여기서 인터셉터는 해당 사용자가 "회원 A"로 로그인을 했는지 살펴봐야한다! 인터셉터 흐름 HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인터셉터 -> 컨트롤러 인터셉터는 서블릿이 컨트롤러를 호출하기 전에 호출된다는 것을 알아두자!! 인터셉터 체인 HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 인터셉터1 -> 인터셉터2 -> 인터셉..

오늘은 로그인에서 쿠키 및 세션을 적용해볼 것이다! 목차 쿠키란? 쿠키구현 쿠키의 한계 세션이란? 세션구현 스프링에서의 세션 세션의 한계 쿠키란? 쿠키는 서버측에서 사용자가 누구인지 알기위한 식별값이다. TCP/IP 위의 HTTP 통신이 지속성이 없기 때문에(한번 요청 - 한번 응답 끝) 사용자가 요청했을 때, 서버측에서는 그 사용자가 누구인지 모른다. 서버는 사용자가 요청을하면 쿠키를 생성하여 응답에 포함하여 전달한다. 그림으로 살펴보자. 1) 최초의 Request - Response 사용자가 서버측에 Post요청을 한다. 서버는 회원 저장소에서 로그인 id에 맞는 정보가 있는지 확인한다. 없어서 쿠키를 설정하고(Set-Cookie: id=abc) 응답한다. 회원은 웹브라우저에 있는 쿠키 저장소에 쿠키..

이번 기록은 Spring Boot와 JPA를 이용하여 로그인을 구현해볼 것이다. 목차 로그인 프론트 생성 로그인 컨트롤러 매핑 로그인 Service 구현 기타 로그인 프론트 생성 가장 먼저 로그인을 받을 프론트를 생성하자! 프론트는 아주 간단하게 만들어 볼 것이다. 코드는 다음과 같다. 로그인입니다. ID : PASSWORD : 제출 화면은 다음과 같다. 코드 설명: form 형태로 id와 password를 post 방식으로 요청한다. 로그인 컨트롤러 매핑 매핑은 Get, Post 이렇게 2가지 방식으로 진행할 것이다. Get 매핑 : "login" 템플릿을 response 한다. Post 매핑: 로그인 정보를 DB에서 조회하여 로직을 거친 다음, 성공 실패 여부를 정한다. 성공 시 HOME화면으로 이동..
이번 기록은 Form 객체를 분리를 통해서 검증 로직을 서로 다르게 적용하는 것이다. 이 말이 무슨 뜻인가!? 다음과 같은 상황으로 이해해보자. "회원 가입 시에는 id의 길이가 최대 10, 회원 정보 수정에는 id의 길이가 최대 15로 수정이 가능하게 해 주세요." 위와 같은 상황에 Form 객체를 분리하여 검증 로직을 다르게 적용한다는 말이다! 목차 Form 객체 분리란? Form 객체 분리하기 분리에 따른 후 처리 번외 - 겪은 에러 Form 객체 분리란? Form 객체로 분리한다는 말이 무슨 뜻일까? 코드로 살펴보자. User.java @Data @Entity(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationT..