Thymeleaf, Null 구분하기 NULL 구분하는 방법 Thymeleaf를 사용하면서, Login 여부를 판독하기 위해 사용하는 session의 존재 유무. 혹은 request값의 존재 유무를 파악하기 위해 값을 불렀지만 null이 발생되어 error 문구가 나오는 문제가 발생되었다. 이 문제가 나타나는 이유는 Thymeleaf에서 호출 시, 값을 찾을 수 없기에 나타나는 증상이다. 보통 Thymeleaf는 request값이 null인지, 아닌지 구분을 해주는 경우가 있다. 따라서 if문을 통해 null구분이 가능하지만 애석하게도 값을 부르는 것 조차 null이 발생되어 위와 같은 문제를 발생되고, 위 문제를 통해 아래의 Thymeleaf의 기능이 동작이 되지 않는 증상이 발생되기도 한다. TEXT..
SpringBoot, Interceptor 사용하기 Interceptor Interceptor은 BackEnd, Server부분에서 알아두면 좋은 기술이다. 각 회사마다 지켜주는 사람이 있듯이, Server에 접근할 때 권한 여부를 판독하는 기능 중 하나가 Interceptor이다. 대표적으로 사용예시는 로그인 여부, 권한 체크 등이 있다. Controller의 Error를 미리 잡아주며, 유효성 검사에도 도움이 된다. 이 기능의 활용이 login check여부이다. 반드시 사용할 필요는 없지만, 객체지향 프로그램(OOP)의 장점을 아주 잘 활용한 예시라고 생각되며 중복된 코드를 최소화시킬 수 있어서 애용하는 기능 중 하나이다. 사용하기 위해서는 org.springframework.boot sprin..
ㅇㅇ layout 소개 2022.03.23 - [Web/Thymeleaf] - [Thymeleaf] template 기능 - replace [Thymeleaf] template 기능 - replace Thymeleaf, template 기능 사용하기 template 사용하기 HTML에서 흔히 사용하는 이 방식은 header, section, nav, footer, main 등 다양하게 나뉜다. 이는 각 part마다의 기능을 나누는 것을 목적으로 두지만 각.. mollangpiu.tistory.com 이전 글은 공통된 부분을 불러오는 방법이라면, 이번에는 main, content 등 다양한 명칭으로 불리는 변하는 부분에 대해 불러오는 기능을 작성하였다. nz.net.ultraq.thymeleaf thyme..
Thymeleaf, template 기능 사용하기 template 사용하기 HTML에서 흔히 사용하는 이 방식은 header, section, nav, footer, main 등 다양하게 나뉜다. 이는 각 part마다의 기능을 나누는 것을 목적으로 두지만 각 기능이 나뉜 만큼 각 사이트마다 중복되는 영역이 존재하여 template, layout 등 다양한 용어로 페이지를 쪼개어서 유지보수를 쉽게 하기 위함이 가장 뚜렷하다. th:fragment - 영역 저장하기 ============== Top ========== 쉽게 설명하기 위해서 해당 페이지를 불러온다면, 정상적인 html을 볼 수가 있다. 그러나 th:fragment는 html 중에서, 가져가고 싶은 영역만 따로 지정할 수가 있다. th:repl..
SpringBoot, API 방식으로 File Upload 하기 파일 업로드 설정 #MultiPart spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB spring.servlet.multipart.location=D:\\const/test SpringBoot를 사용한다면 위와 같은 코드를 활용하면 된다. 필요에 따라서 추가해도 되고, 삭제해도 된다. max-file-size : 전송되는 개별 파일 크기 제한 max-request-size : 서버에 전송되는 파일의 크기 제한 location : 저장위치 기본 설정 값 (경로에 폴더가 없을 경우 폴더가 새로 생성된다) 파일 업로드하기 @PostM..
SpringBoot, API 활용하기 API 란? Application Programming Interface의 약자로 응용프로그램에서 사용할 수 있도록 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 Back-End에서 다루며, Server와 DB의 연결을 수행하기 위해 존재한다. 또한 사용자들에게 공개되는 WEB 하고 다르게, API는 WEB에서 별도의 프로젝트로 구성되어 있어서 보안성이 높은편에 속한다. 그리고 요즘 트랜드인 비동기방식을 활용하기 위해서도 WEB에서도 API 방식을 활용하기도 한다. API 사용 방법 @GetMapping("/test123") @ResponseBody public void Test_Service() { logger.info("가나다1..
SpringBoot, Test JUnit 생성하기 Test 만들기 Test를 하기 위해서는 기존에 작업했던 main이 아닌, 아래의 test를 이용해야 한다. Test는 실행과 상관없이, 해당 메서드가 실행되는 여부를 판단한다. 본 내용에는 문제가 생기지 않으며, 상황에 맞는 테스트를 수행하기 위해 적합한 장소이다. 인텔리제이는 ctrl + shift + T를 눌러서 수행한다. JUnit 생성시 기존 Code에 있는 method를 가져올지 여부를 판단한다. OK를 누르면 똑같이 파일을 가져온다. 아무 것도 없는 빈 깡통이 넘어왔다. 해당 내용은 본 main글에서 필요한 부분을 갖다 붙이면 된다. @Test라는 명칭이 붙었으므로, @Test로만 사용할 수 있게 도와준다. 해당 부분을 클릭하면, 원하는 부분..
SpringBoot, MyBatis 연동하기 준비된 것 PC에 설치된 DB와 개발환경 정도가 필요하다. 개인적으로 MariaDB가 친숙하므로 MariaDB를 사용하도록 했다. org.mariadb.jdbc mariadb-java-client 2.7.4 org.mybatis.spring.boot mybatis-spring-boot-starter 2.2.2 설치 후 Maven을 통해 lib가 설치된 것을 반드시 확인해야 한다. 자동으로 설치되면 좋겠지만, 등록만 하고 설치가 안돼서 되지 않는 경우가 발생하기도 한다. 기본 설정 #MyBatis 설정 mybatis.type-aliases-package=com.union.construction_api.Domain #SQL 문법 있는 위치. mybatis.mapp..
thymeleaf, for 사용하기 1 - for문 설명하기에 앞 서. for문의 설명을 쉽게 하기 위해서 해당 페이지는 배열의 도움을 받았다. 내용물은 한글, 영어, 숫자 순으로 '가나다', 'abc', '123' 3개가 저장되어 있다. 2 - each 사용 방법 each(for) 설명 Stage 01 thymeleaf를 사용하기 위해서는 Java의 forEach개념을 알아야 사용할 수 있다. 어렵다면 어렵고, 쉽다면 쉬운 forEach의 개념을 알고 있다면 쉽게 사용할 수 있다. th:each="사용 할 별칭 : ${배열 값} thymeleaf의 구성은 이렇게 되어있다. for문의 괄호 대신 태그를 사용하며, index대신 별칭을 사용한다. 준비된 배열에는 '가나다', 'abc', '123'이 있었으..
thymeleaf, if - else 사용하기 1 - if 사용하기 if문 이용하기 value의 값은 5다. value가 5보다 크다 언어의 기본, if문이다. th:if를 통해 실행되며, ${} 괄호 안에서 조건값을 적는 것이 특징이다. if문의 조건이 true일 경우, 태그가 실행된다. if문의 조건이 false일 경우, 태그는 실행되지 않는다. 여기까지는 다른 언어와 비슷하지만, else의 경우 특이한 경우가 있었다. 2 - if ~ else 실행하기 if문 이용하기 value의 값은 10이다. value가 5보다 크다 value가 5보다 작다 02 if test 03 if test 02 출력 될까? 02 unless unless는 not과 동일한가? if와 다르게 else는 unless로 표현이 ..
thymeleaf, with 사용하기 with 사용하기 with는 변수의 선언이다. String name = '몰랑피우' 처럼 thymeleaf에서 사용할 변수를 임의로 생성할 수 있다. with의 사용 방법은 크게 2 가지 방법이 있다. 1) 기존 html 태그 안에 넣기. 2) th:block 태그를 생성하여 넣기. 이를 이렇게 나누는 이유는 with의 특이한 성질 때문이다. html에서 혹은 하위 태그에는 가 존재하는 것을 알 수 있다. 그리고 with는 자신의 하위 태그에만 선언된 변수를 사용할 수 있는 조건이 붙는다. 아래의 코드를 통해 예시를 들도록 하였다. with 설명 Stage 01 Stage 02 Stage 03 - Stage 01 - th:block을 통해 with를 선언하였다. te..
Thymeleaf, Value 사용하기 Value 사용하기 Java에서 값 가져오기 나타나지 않는다. 1) th:text=${변수명}을 통해서, 몰랑피우의 값이 표현되는 것을 확인할 수 있다. 2-1) th:text가 선언된 태그는 기존의 html 문법으로 표시되지 않으므로 주의해야 한다. 2-2) value 외의 값은 + 을 통해서 추가할 수 있다. 여기서 주의할 점은 큰 따옴표와 작은 따옴표의 구분이다. 3) input box같은 경우에는, th:value를 통해서 값을 넣을 수가 있다. 4) th가 선언되는 곳에는 태그를 따지지 않는다. 만약, html이 제대로 표현이 되지 않는다면, th가 선언된 태그가 제대로 닫혀있는지를 반드시 확인해야 한다. 제대로 닫히지 않는다면, 2번의 주의사항이 발생되어..
Thymeleaf 사용하기 Thymeleaf 사용방법 thymeleaf의 기초 사용 방법이다. html의 기본 태그에서 를 부르면 된다. 이렇게 선언 된 html에서는 th라는 태그로 thymeleaf를 호출할 수 있게 도와준다. Java에서 값 가져오기 기본 코드를 보다시피, 웹 개발자의 길을 걷는다면 누구나 한 번쯤은 접했을 가장 기본적인 HTML 문구이다. 이는 SpringBoot에서 사용하는 대표적인 방식 중 하나이며, 당연히 이는 라이브러리이다. 사용하기 위해서는 반드시 라이브러리를 불러와야 한다. 2022.02.23 - [Computer/기타] - [SpringBoot] Spring Boot 생성하기 [SpringBoot] Spring Boot 생성하기 Spring Boot 생성하기 Sprin..
SpringBoot 시작하기 Spring Boot 입문 Spring Boot의 시작은 매우 간단하다. main => resources 파일 안의 static의 index.html을 만들면 끝이다. Spring Boot의 시작과 함께 주소창에 localhost:포트 입력하게 되면 다음과 같이 화면이 출력된다. Spring은 실행 시, 제일 먼저 index부터 찾는다. 마찬가지로 Spring Boot 또한 index를 찾는다. 만약, index가 없을 경우, templates안의 index를 찾고, 그러고도 없다면 error를 발생시킨다. Java 부분 이용하기 Java 부분은 더욱 간단하다. Class명 위의 @Controller를 입력한다. MVC 패턴의 Controller이다. Servlet의 어노테..
SpringBoot 기본 라이브러리 라이브러리 Spring Boot의 라이브러리는 좌측의 build.gradle에 들어있다. Maven으로 말하자면 porm.xml 같은 녀석이다. 이곳에 들어있는 라이브러리는 약 3개 정도가 존재한다. 그러나 이들이 가지고 있는 라이브러리는 스크롤이 생길 정도로 엄청난 수를 자랑한다. 이는 Spring의 의존성 주입과 비슷한 형태로 해당 라이브러리를 사용하기 위해 다른 라이브러리를 불러온 현상이라고 할 수 있다. 맨 처음 불러온 Spring - boot - starter - web을 사용하기 위해 우리는 Java에서 배웠던 의존성 주입을 사용해야만 했다. 이 의존성 주입이 된 객체는 다른 객체를 다시 끌고 오고, 그 객체가 다른 객체를 끌고 오는 방식을 사용하다 보니 고..