| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 미니정리
- 프런트엔드
- 코드테스트
- 프로그래머스
- 프론트엔드
- 오라클
- 서버
- 스프링
- 데이터베이스
- jsp
- node.js
- JavaScript
- MySQL
- 백엔드
- BACK-END
- SQL
- 자바
- 알고리즘
- oracle
- 스프링부트
- 정리
- 쿼리
- java
- 코드 테스트
- spring
- jpa
- 디자인 패턴
- 자바스크립트
- web
- Next.js
- Today
- Total
목록Spring (36)
참치코더의 꿈 메모장
- 쿼리dsl은 jpql로 작성되던 복잡하고 지저분한 쿼리를 자바코드 방식으로 손쉽게 작성할 수 있도록 도와주는 라이브러리다.- 아래는 해당 Querydsl을 초기 설정하기 위한 방법이다. 1. querydsl 라이브러리를 build.gradle에 삽입한다. // QueryDSLimplementation("com.querydsl:querydsl-jpa:5.1.0:jakarta")annotationProcessor("com.querydsl:querydsl-apt:5.1.0:jakarta")annotationProcessor("jakarta.annotation:jakarta.annotation-api")annotationProcessor("jakarta.persistence:jakarta.persistenc..
1. 메시지(Message) - 스프링에서 말하는 메시지는 화면, 로그, 에러 메시지 등에 사용되는 문자열을 코드에서 분리한 것이다.- 문자열을 코드에 하드코딩 하지 않고, properties 파일에 모아 관리하는 개념이다. 사용하는 이유 - 다국어 지원 (국제화)- 메시지 수정 시 코드를 재배포 할 필요가 없다. 그냥 수정이 간편하다(properties 만 수정하면 다 수정된다.)- Validation, Exception 메시지를 공통 관리할 수 있다. 2. MessageSource - MessageSource는 메시지를 읽어오는 인터페이스이다.- 일반 스프링 이라면 ResourceBundleMessageSource를 기본적으로 빈으로 등록해서 사용해야 하지만 - 스프링부트를 사용한다면 MessageS..
라디오 버튼 - 여러 값 중 하나만 선택된다.- name이 같아야 하나만 선택된다.- 타임리프에서는 th:field를 사용하면 바인딩 및 checked가 자동 처리된다.123456789101112131415161718192021// Enum을 사용한 라디오 버튼 // Enum public Enum Gender { MALE, FEMALE} // Controller model.addAttribute("genders", Gender.values()); // HTML form th:object="${member}"> div th:each="gender : ${genders}"> input type="radio" th:field="*{gender}" /* 이 입력값..
단일 체크박스 (Boolean 값) - 하나의 체크박스- true / false 값을 서버로 전달- 약관 동의, 활성화 여부 같은 경우에 사용- html만 사용했을때 체크 값을 누르면 true값을 back단에 전송하지만 체크 하지 않으면 값이 아예 전송되지 않는다.- Thymeleaf는 이 문제를 해결하기 위해 hidden input을 자동 생성한다.12345678910111213141516171819202122232425262728// DTO 예시 @Getter @Setterpublic class UserForm { private boolean agree;} // Thymeleaf form th:action="@{/submit}" th:object="${userForm}" method="pos..
Thymeleaf 폼이란 - Thymeleaf 폼은 HTML form 태그를 Spring MVC의 객체(Model)과 직접 바인딩하기 위한 기능이다.- 입력값을 DTO(Form 객체)에 자동으로 매핑하고, 검증 결과 및 에러 메시지까지 쉽게 처리할 수 있다. 핵심 키워드 - th:object- th:field- @ModelAttribute 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263// Form 객체 (DTO) 예제 public class MemberForm { private String name; private Integer a..
타임리프 블록 (th:block) - HTML 태그를 만들지 않고 타임리프 로직만 묶기 위해 사용하는 가상 태그- 렌더링 결과 HTML에는 전혀 남지 않음12345678910th:block th:if="${user != null}"> p th:text="{user.username}">이름/p> p th:text="{user.age}">나이/p>/th:block> th:block th:each="user : ${users}"> li th:text="${user.username}">이름/li>/th:block> // ul>이나 ol> 구조 안에서 자주 씀cs - th:block은 HTML 구조를 깨지 않고 타임리프 로직을 묶는 용도 자바스크립트 인라인 (th:inline = "javascr..
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061연산 - 타임리프는 ${}안에서 자바 표현식처럼 연산할 수 있다. - 산술연산 p th:text="${10 + 5}">/p>p th:text="${price * 2}"> - 비교연산 p th:text="${age >= 20}">/p> - 논리연산 p th:text="${isLogin and isAdmin}">/p>p th:text="${isLogin or isGuest}">/p>p th:text="${!isLogin}">/p> 속성 값 설정(th:*) - 텍스트 설정 p th:text="${username..
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647@Controller@RequestMapping("/basic")public class BasicController { @GetMapping("text-basic") public String textBasic(Model model){ model.addAttribute("data", "Hello Spring!"); return "basic/text-basic"; } @GetMapping("text-unescaped") public String textUnescaped(Model model){ ..