본문 바로가기

Java26

[Thymeleaf] 스프링부트 타임리프에서 유효성 검증 (@Valid 활용) [Thymeleaf] 스프링부트 타임리프에서 유효성 검증 (@Valid 활용) 스프링부트에서 프로젝트를 진행하면서, 타임리프를 사용하고 있다. 타임리프는 템플릿 엔진 중 하나로, Spring Boot 로 프로젝트를 진행하는 경우, 프론트엔드에서 JSP가 아닌, 타임리프를 사용한 html이 권장되기 때문이다. 회원가입 기능을 구현하며, 타임리프에서 validation check 를 할 필요가 생겼고, 해당 포스팅을 작성하며 타임리프 유효성 검증에 대한 내용을 공부&기록해두었다. 🚩 학습 목표 타임리프를 사용한 유효성 검증 (Validation check) 방법 학습 실전 연습 ✅ 타임리프(Thymeleaf) 소개 📌 타임리프란? Thymeleaf란 HTML, XML, JavaScript, CSS 및 일반 .. 2023. 12. 5.
[Thymeleaf] 타임리프 문법 총정리 : 속성/표현식/조건문/반복문 [Thymeleaf] 타임리프 문법 총정리 : 속성/표현식/조건문/반복문 스프링부트에서 프로젝트를 진행하면서, 타임리프를 사용하게될 일이 점차 늘고있다. 따라서, 타임리프의 속성, 표현식, 조건문, 반복문 등 전반적인 문법들을 공부&정리해두기로했다. 더욱 자세한 내용은 타임리프 공식문서를 참고하길 바란다. 🚩 학습 목표 타임리프의 문법에 대한 이해와 사용법 정리 및 연습. ✅ Thymeleaf 속성 1. 일반적 속성 (General Attributes) HTML, XML, JavaScript, CSS 에서 사용가능한 일반적인 속성으로 , 타임리프가 해석하지 않음, ex) id, class, title, style, src, href 등 2. 타임리프-특수 속성 (Thymeleaf-specific Attr.. 2023. 12. 5.
[트러블 슈팅] data.sql 작동 안되는 오류 해결 (더미 데이터 추가 안되는 오류 해결) [트러블 슈팅] data.sql 작동 안되는 오류 해결 (더미 데이터 추가 안되는 오류 해결) ✅ 문제 상황 실제로 article 테이블에 데이터가 추가되는 지 확인하기위해, resources 디렉토리 하위에 위치한 data.sql에 3개의 더미데이터를 추가하는 쿼리문을 파일에 작성하였으나, 아래와 같이 테이블만 생성되고 데이터는 추가되지않은 문제가 발생했다. 문제를 해결하기위해, "data.sql not working", "data.sql 작동 오류" 등의 키워드로 구글에 검색을 했고, 원인과 해결책을 찾아 여러번의 시도 끝에 오류를 성공적으로 해결할 수 있었다. ✅ 문제 해결 과정, 원인, 해결책 📌 1st 트러블 슈팅 구글링을 통해 찾은 문제의 원인과 해결책은 이러했다. Hibernate and d.. 2023. 11. 25.
OAuth 란? : 개념/주요 용어/승인 방식 4가지 ✅ OAuth 란? : 다양한 플랫폼 환경에서 인증/권한 부여를 위한 개방형 표준 프로토콜 (제 3의 서비스에 계정 관리를 맡기는 방식) - OAuth를 사용하면 인증서버에서 발급받은 토큰을 사용해, 리소스 서버에 리소스 오너의 정보를 요청/응답 받아 사용 가능. ex) 네이버 로그인, 구글 로그인 ✅ OAuth 용어 정리 용어 설명 리소스 오너 (resoucre owner) 리소스 소유자. 자신의 정보를 사용하도록 인증 서버에 허가하는 주체. → 서비스를 이용하는 사용자. 리소스 서버 (resource server) 정보가 저장되어 있는 서버. 리소스 오너의 정보를 저장./보호하는 주체 → 네이버, 구글, 페이스북 등. 인증 서버 (authorization server) 권한 서버. 인증/인가를 수행하.. 2023. 9. 22.
인증 방식 종류 총정리 : 쿠키 vs 세션 vs 토큰(JWT) 인증 방식 종류 총정리 : 쿠키 vs 세션 vs 토큰(JWT) ✅ 인증 방식 종류 3가지 : 서버가 클라이언트 인증하는 대표적인 방식 3가지가 있음. 1) 쿠키(Cookie) 기반 인증 2) 세션(Session) 기반 인증 3) 토큰(Token) 기반 인증 ✅ 인증 방식 사용 이유 : 왜 쿠키, 세션, 토큰을 사용하는가? : HTTP의 2가지 주요한 특징인 '무상태성', '비연결성'을 보완하기위해 사용. 요청 처리 후, 연결을 끊어버리기 때문에 상태정보/통신상태가 남아있지 않아, 클라이언트 식별 불가능. → 모든 요청이 이전 요청과 독립적으로 다뤄진다. → 로그인을 하더라도 이전 요청이 끝나고 새로운 요청이 들어오면, 서버는 누구인지 알지 못하기 때문에 계속 로그인해야함 (요청이 들어올때마다 계속해서 누.. 2023. 9. 9.
서블릿(Servelt)이란? : HttpServletRequest, HttpServletResponse, 서블릿 컨테이너, 동작 과정 ✅서블릿(Servelt)이란? - Java를 사용해 동적 웹페이지를 생성하는 서버측 프로그램 - 서블릿은 WAS가 웹브라우저로부터 요청을 받으면, 해당 요청 수행 후 결과를 웹브라우저에게 전달함. (ex. 로그인 시, 클라이언트가 입력한 아이디/비번을 확인 후, 결과를 응답 ) - 서블릿을 구현하기 위해선, HttpServlet 이라는 추상 클래스를 상속 받아야한다. - 서블릿을 만들어도 서블릿은 스스로 작동하지 못함 → 따라서 서블릿 관리자(서블릿 컨테이너)가 필요함. 📌서블릿 컨테이너 (서블릿 관리자) - 서블릿 클래스의 규칙에 맞게 서블릿을 담고 관리해주는 컨테이너 (서블릿이 배포된 컨테이너) - 서블릿의 생명주기(생성/실행/소멸)를 관리하며, 서블릿 대신 웹서버와 데이터를 주고 받음. - 웹 기술.. 2023. 9. 6.
스프링 시큐리티 : UserDetails, UserDetailsService 클래스 (+ 오버라이딩 예시) ✅ UserDetails 클래스 Spring Security 에서 사용자의 인증 정보를 담아두는 인터페이스. - Spring Security 에서 해당 객체를 통해 인증정보를 가져오므로 필수 오버라이드 메서드 8개가 있음. - UserDetails 클래스를 상속 받아 인증 객체로 사용. 📌 필수 오버라이드 메서드 메서드 반환 타입 설명 특징 getAuthorities() Collection 2023. 9. 4.