반응형

처음 thymeleaf를 사용해서 프로젝트를 작업하면서 정리해봤다. 생각나는게 있으면 추가해야지!

 

Thymeleaf data 속성 사용법(1개)
th:attr="data-userid=${변수명}"
Thymeleaf data 속성 사용법(2개 이상)
th:attr="data-userid=${변수명}, data-usernm=${변수명}"

콤마로 연결!

참고로 대문자를 사용하면(data-userId 혹은 userNm)

$(obj).data(”userId”)로 값을 가져오지 못하므로 소문자사용함.

 

Thymeleaf class추가하기 : classappend
th:classappend="${조건} ? '참인경우append할 클래스명':''"

 

Thymeleaf select option selected(예시 : 검색)
<select th:field="${searchData.searchType}">
	<option th:value="title" th:selected="${searchData.searchType} == 'title'">
	...
</select>

 

Thymeleaf radio checked
<input type="radio" name="gender" value="f" th:checked="${gender eq 'f'}">여성
<input type="radio" name="gender" value="m" th:checked="${gender eq 'm'}">남성

 

Thymeleaf checkbox checked
<input type="checkbox" th:checked="${xxxYn} eq 'Y'" name="xxxYn" /> 

 

Thymeleaf List(예시 : resultList)형태 foreach
<tr th:each="resultRow,idx : ${resultList}">
	<th th:text="${idx.count}"></th>
	<td th:text="${resultRow.title}"></td>
</tr>

 

Thymeleaf Map(예시 : resultMap)형태 foreach
<ul class="tree-group" th:each="entry, ii: ${reulstMap}">
	<li th:text="${entry.key}"></li> <!-- key 출력 -->
	<li th:text="${entry.value}"></li> <!-- value 출력 -->
</ul>

 

Thymeleaf onclick 변수 사용방법
th:onclick="'fn_paging('+${pagination.startPageNum}+');'"

 

Thymeleaf split(예시 : / 으로 잘라서 0번째 값 가져오기)
th:text="${#strings.arraySplit(변수, '/')[0]}"

 

Thymeleaf java LocalDateTime을 원하는 날짜형식으로 변환
<td th:text="${#temporals.format(regDate, 'yyyy-MM-dd HH:mm:ss')}"></td>
반응형
반응형

 

인텔리제이에서 Local Changes 기능은 유용하다.

 

위 이미지와 같이 git이나 svn에 연동한 경우 로컬소스 파일이 생성 및 수정 된 부분이 생기면 Changes목록에 나타난다.

 

Local Changes 항목이 활성화 되지 않은  경우 활성화 하는 방법은 아래와 같다.

 

File > Settings... 클릭

 

Version Control > Commit > Use non-modal commit interface 체크박스 해제 후 Apply > OK

 

적용하면 intellij Local Changes 탭이 활성화된다.

반응형
반응형

뭘 잘못눌렀는지 노션이 영어로 바뀌어 버렸다.

 

슬래쉬를[/]치고 명령어를 써서 사용하는게 많은데, 영어로 바뀌어버리니 마우스로 직접클릭하는 귀찮음..

 

노션 영어로 된 상태에서 한국어로 바뀌도록 설정을 해본다.

 

우선  데스크탑 어플리케이션에 로그인 한 후 좌측 상단부분에 Settings & members를 클릭한다

 

 

그다음 좌측에서 Language & region을 선택하고 Language에서 한국어로 선택하면

 

 

아래처럼 한국어로 변경할꺼냐는 알림창이 뜬다. Update버튼을 누르면 

 

 

한국어로 변경이 된다.

 

반응형
반응형

Ctrl + D : 현재 커서 위치한 코드라인을 아래로 복사

 

Ctrl + Y : 현재 커서 위치한 코드라인 삭제

 

Alt + 방향키 : 파일탭 이동

 

Shift + Shift : 모든 파일 검색(Class, js, xml 등 Database console창까지도)

 

Ctrl + Shift + F : 검색한 문자열로 파일찾기

 

Shift + F6 : 이름변경

 

Alt + 1(숫자) : Project Explorer창 열기 / 닫기

 

디버깅

  • F8 : 다음 줄 이동
  • F7 : 안으로 이동
  • Shift + F8 : 호출된 곳으로 이동(F7로 들어온 위치로 빠져나가기)
반응형
반응형

기능이 제대로 동작하지 않아 console로그를 찍어 개발자도구로 살펴보았다.

 

이상하게도 error 코드는 200인데, SyntaxError가 나오고 있었다.

 

에러내용이 아래와 같이

 

 Unexpected number in JSON at position 9473

 

ajax통신 리턴값으로 json데이터 받아올때의 문제인듯 해서 json받은 데이터도 console로 찍어보았다.

 

아니.. 가져오는 데이터가 너무 많아서 보기가 힘들어 어떻게해야하나 쓸데없는 고민 후 

 

json 파싱해주는 사이트를 구글링해서 들어가서 console에 찍었던 json결과를 파싱 사이트에 복붙했다.

 

파싱결과를 보니... 아래와같이 name key의 value가................ 알수없는 값으로 들어가 있었다...

 

 

한글이나  영어가 들어와있을 value에 왠 유니코드? 왠 중괄호?

 

아무래도 insert당시에 잘못된 문자조합으로 json형식의 문자열이 insert된것같다(글쎄?)

 

해당 db 데이터를 살펴보니 삭제해도된다고 판단하여 삭제하니 관련 오류가 사라졌다.

 

" Unexpected number in JSON at position 숫자 "  

해당 오류가 난다면, json파싱 사이트에서 파싱결과를 확인해보자. 

json형식에 맞지 않는 데이터가 들어가있으면, 데이터를 살펴볼필요가있다. 

 

json파싱 사이트 링크 (내가 썼던건 프리버전이 끝난건지 현재 연결이 안되서 구글링으로 찾은 사이트 첨부)

 

반응형
반응형
<button type="button" onclick="fn_download()">파일 다운로드</button>
<form id="downForm" method="post" action="파일주소"></form>

 

파일 다운로드 버튼 클릭시 현재 날짜와 기준 날짜를 비교하여 다운로드 여부를 alert창으로 띄운다.

 

<script type="text/javascript">
function fn_download(){
	var now_date = new Date(); // 현재 날짜
	var sel_date = new Date(2022, 1, 1);  // 비교 대상 날짜  

   
	if(now_date >= sel_date){
		$("#downForm").submit();
	}else{
		alert("해당 파일은 2월 1일부터 다운로드 가능합니다");
	}
}
</script>

 

주의할 것은 2월인데 1로 한 이유는 0부터 시작하기 때문

반응형
반응형

1.2.17에서 2.17.1 버전으로 변경중인데

 

이번에도 역시 오류가 남


org.apache.commons.logging.LogConfigurationException: User-specified log class 'org.apache.commons.logging.impl.Log4JLogger' cannot be found or is not useable. at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementat

 

 

<dependency>
	<groupId>org.apache.logging.log4j</groupId>
	<artifactId>log4j-jcl</artifactId>
	<version>2.17.1</version>
</dependency>

 

 

반응형
반응형

 

정의
여러 서버에 요청을 분산시키는 TCP 및 HTTP 기반 애플리케이션을 위한 고가용성 로드 밸런서 및 프록시 서버를 제공하는 무료 오픈소스 소프트웨어이다.
로드밸런싱 (Load Balancing) 이란?

부하 분산을 위해서 가상 ip를 통해 여러 대의 서버에 접속을 분배하는 기능
서버는 클라이언트의 요청이 많아지게되면 서버에는 부하가 걸리게 된다. 이를 해결하기 위한 방법은 크게 두가지가 있다.
1. Scale-up : 서버 사양을 높임
2. Scale-out : 부하를 여러 대의 서버에 분산함

즉, HAProxy는 Scale-out을 위해 로드밸런싱을 해주는 소프트웨어이다.

 

 

구성

 

https://1995-dev.tistory.com/99

L4 Switch, L7 Switch가 제공하는 로드 밸런싱 기능을 제공.
HAProxy는 오픈 소스로 소프트웨어 로드밸런싱을 기능을 제공.
HAProxy 설정 추가를 통해 Scale-Out 도 가능.
HAProxy VRRP (Virtual Router Redundancy Protocol) 지원.
이중화(M / S) Master 장애 시 Slave가 Master VIP (Virtual IP)를 가져와 Master로 승격됨.
반응형
동작

https://1995-dev.tistory.com/99

1. 최초 접근 시 서버에 요청 전달
2. 응답 시 쿠키(Cookie)에 서버 정보 추가 후 반환
3. 재 요청 시 Proxy에서 쿠키 정보 확인 후 최초 요청 서버로 전달
4. 다시 접근 시 쿠키를 추가할 필요 없이 서버에 전달 (클라이언트에 쿠키 정보가 계속 존재하여 재사용)

 

출처
  1. https://leffept.tistory.com/309
  2. https://en.wikipedia.org/wiki/HAProxy
  3. https://1995-dev.tistory.com/99
반응형

+ Recent posts