Spring Boot Validation
·
Spring/어노테이션
🏁 학습할 내용설치 방법어노테이션 종류주의 사항⬇️ 설치implementation("org.springframework.boot:spring-boot-starter-validation") 2️⃣ 어노테이션 종류 ✅ 문자열(String) 관련 어노테이션설명예시@NotBlanknull, 빈 문자열, 공백만 있는 문자열 ❌" " → 실패@NotEmptynull ❌, 길이 0 ❌ (공백은 허용)"" → 실패@NotNullnull만 ❌null → 실패@Size(min, max)문자열 길이 범위 제한@Size(min=2, max=10)@Pattern(regexp)정규식 패턴 검사이메일, 전화번호 등@Email이메일 형식 검사test@email.com 🔢 숫자(Number) 관련 어노테이션 설명 예시 @Not..
템플릿 상속하기
·
Spring/튜토리얼
1️⃣ 상속하는(부모) 템플릿여기서 중요할 점은 2개다.부모 html 파일 이름, 여기서는 layout.html 태그안에 있는 layout:fragment의 키값이다. 여기서는 content 2️⃣ 상속받는(자식) 템플릿html 태그, layout:decorate="~{상속받을 html파일}"을 넣어준다.위 th:block 태그의 layout:fragment 값과 실제 본문을 연결해준다. 번호 제목 작성 일시 ..
template에 css 적용하기 with 부트스트랩
·
Spring/튜토리얼
👋 들어가기 전 뜬금 없지만, 요즘 이메일 내용들이 날이 갈수록 화려해지고 있다.. 이제 제목, 본문, 파일정도의 내용으로는 만족할 수 없다.그래서 이 구현과정이 매우 궁금했고, 찾아보니 스프링의 타임리프 템플릿 엔진을 통해 해당 기능을 구현할 수 있다고한다. 템플릿을 쓴다는건 당연히 html+css 조합을 사용한다는 것이므로, template에 css를 적용하는 법을 이번 포스팅에서 간단히 알아보자. 문법 내용은 많이 다루지 않을 예정... 요즘 AI가 훨씬 잘 알려준다.🗂️ css 파일 선언 위치 및 연결스프링에서는 resources/static 디렉토리 안에 선언한다. 🎨 부트스트랩 연결하기💡 부트스트랩이란?웹사이트를 쉽고 빠르게 만들 수 있게 도와주는 오픈소스 프런트엔트 프레임워크Twit..
RequestParam
·
Spring/어노테이션
🧩 역할 🚀 특징 데이터 매핑: 요청 파라미터 명과 메서드 변수 명을 연결자동 형변환: String으로 들어오는 파라미터를 int, boolean 등 선언한 타입에 맞춰 자동으로 변환필수 여부 체크: 특정 파라미터가 없으면 에러를 발생시키거나 기본값을 설정할 수 있다. 📌 사용법value: 가져올 파라미터 이름 명시required: 필수 여부defaultValue: 값이 들어오지 않았을 때 기본 값 @PostMapping("/create/{id}") fun createAnswer( model: Model, @PathVariable("id") id: Int, @RequestParam(value = "content", required = true, d..
Request 어노테이션
·
Spring/어노테이션
🧩역할 어떤 URL 요청이, 어떤 HTTP 메서드로 ,어떤 컨틀로러의 메서드에서 실행될 지를 결정 🚀 특징클래스 / 메서드 모두 사용 가능다양한 조건 기반 매핑 지원URLHTTP 메서드쿼리 파라미터헤더...🔹종류 0️⃣ 범용 @RequestMapping가장 기본모든 HTTP Method 지원단지, 설정이 많아 가독성이 떨어짐HTTP Method용 권장URL 프리픽스 할떄, 컨트롤러에 붙혀 사용할 때가 많음 1️⃣HTTP Method 전용HTTP Method어노테이션으미GET@GetMapping조회POST@PostMapping생성PUT@PutMapping전체 수정PATCH@PatchMapping부분 수정DELETE@DeleteMapping삭제 출처
@ResponseStatus
·
Spring/어노테이션
🧩 역할반환할 HTTP 상태코드를 지정하는 어노테이션🚀 특징상태코드뿐만 아니라 메시지도 첨부할 수 있다.기본 200임예외 클래스에 붙혀서, 실패 상태코드를 세분화 할 수 잇음@PostMapping("/users")@ResponseStatus(HttpStatus.CREATED)public void createUser() { // 사용자 생성}@ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "entity not found")final class DataNotFoundedException(message: String): RuntimeException(message) { private val serialVersionUID: Long = 1L}