분류 전체보기 (49) 썸네일형 리스트형 table의 head 버튼을 클릭하여 정렬하기 테이블에 있는 row 데이터들을 컬럼별 정렬하기 위해 오름차순, 내림차순 버튼이 각 컬럼의 th에 위치할 때 동작 코드이다. function sortTable(columnIndex, direction) { const tbody = document.getElementById('myTable'); const rows = Array.from(tbody.querySelectorAll("tr")); // 행 정렬 rows.sort((a, b) => { const aValue = getCellValue(a.cells[columnIndex]); const bValue = getCellValue(b.cells[columnIndex]); if (direction == 'asc') { return aValue.locale.. JAR 와 WAR에 대하여 프로젝트마다 환경에 맞게 사용하고는 있지만 JAR와 WAR에 대한 명확한 개념이 머리속에 자리잡을 수 있도록 정리해보려고 한다. 두 가지 모두 자바 프로그램을 배포하기 위한 주요 패키지 형식이다. 1. JAR java 클래스, 리소스 파일, 라이브러리 등을 포함한다. 주로 독립 java 어플리케이션 혹은 라이브러리를 패키징할 때 사용된다. 명령줄에서 'java -jar' 명령을 통해 실행할 수 있다. 2. WAR servlet, JSP, html, css, js 등의 웹 관련 파일과 설정 파일을 포함한다. 주로 웹 애플리케이션을 패키징할 때 사용된다. 웹 애플리케이션 서버(tomcat, wildFly 등) WAS에 배포되어 실행된다. 웹 애플리케이션과 관련된 특정 폴더 구조를 갖고 있다. WEB-INF .. template might not exist or might not be accessible by any of the configured Template Resolvers template might not exist or might not be accessible by any of the configured Template Resolvers 템플릿 파일을 못찾거나 접근할 수 없을 때 발생하는 에러이다. 다른 controller에서는 잘 동작하는데 특정 controller에서 발생하길래 이유를 찾아보았다. 해결방법은 @Controller를 @RestController로 변경 혹은 메소드에 @ResponseBody 를 추가한다. 이유는 @Controller일 경우 return 값을 view에 매칭하려고 하기 때문이다. @RestController는 HTTP ResponseBody 가 생성되는 방식과 유사하다. thymeleaf 사용법 (thymeleaf layout 으로 기본 골격 만들기) spring boot 에 친화적이라 하여 thymeleaf 를 사용했던 경험을 정리해보고자 한다. thymeleaf 란? 서버사이드렌더링 방식의 템플릿 엔진 중의 하나로 JSP 역시 동일한 SSR 방식이다. 서버사이드렌더링은 클라이언트에서 요청 시 서버에서 사용자에게 표출할 페이지를 완전히 구성하여 전체 페이지를 렌더링하는 것을 뜻하며 페이지를 이동할 때마다 요청이 이루어진다. thymeleaf 의 가장 큰 특징은 순수 HTML로 유지되는 Natural Template 이라는 점이다. JSP의 경우 전용 문법이 있기 때문에 화면을 보기 위해서 서버가 필요하지만 thymeleaf 는 HTML 형태로 되어 있어 서버의 도움 없이도 프로토 타입의 화면을 볼 수 있다. 웹 브라우저가 th 태그 같은 속성은 무시.. UTF-8 BOM error (illegal character: '\ufeff') maven 프로젝트를 빌드 하는데 몇 개의 파일에서 illegal character: '\ufeff' 에러가 떴다. 이유는 해당 파일의 인코딩 형식이 UTF-8 with BOM 으로 되어있었기 때문이다. 텍스트 편집기로 실행해보면 확인 가능한데 아마 소스 코드를 Araxis Merge 프로그램으로 수정 작업하면서 변경이 된 것 같다. BOM은 바이트 순서 표시(Byte Order Mark)의 약자로 유니코드 문자를 문서의 가장 앞에 추가하여 텍스트를 읽는 프로그램에 정보를 전달한다. 하지만 BOM이 없어도 UTF-8 인코딩 방식을 자동으로 알아낼 수 있다고 한다. 인코딩 방식을 UTF-8로 바꿔서 저장하면 해결이 되는데이클립스나 NPP, ultraEdit 로 해보니 안된다. 그래서 메모장에 옮기고 다른 .. [PostgreSQL] 설치 및 실행 (windows) 데이터 조회 테스트를 위해 간단히 로컬에 설치 및 실행을 진행해보았다. 1. download 페이지에서 package 다운로드 https://www.postgresql.org/download/ PostgreSQL: Downloads www.postgresql.org 사용하는 운영체제에 맞게 선택해준다. 이번에는 windows이므로 세번째를 클릭한다. Download the installer 를 클릭한다. 버전 확인 후 다운로드 아이콘을 클릭하면 실행 파일이 다운로드 되고 파일을 실행하여 기본 설정대로 진행 후 설치를 완료한다. 2. pgAdmin 실행 기본 설정을 위해 함께 설치된 pgAdmin을 실행한다. 다중 DB 연결을 위한 dataSource 설정(AbstractRoutingDataSource) properties 파일에 저장한 각 부서의 DB 접속 정보를 가지고 필요에 따라 접속할 수 있는 구성이 필요했다. 처음에는 구글링해봤을 때 각 DB별로 SqlSessionFactory와 SqlSessionTemplate을 @Bean 생성하여 우선 적용하는 DB에 @Primary 어노테이션을 붙여주는 방식이 가장 많이 나와서 활용해보려고 했으나 이렇게 하면 DB마다 config class와 mapper를 모두 작성해주어야 하는데 나의 경우는 접속 DB 목록이 최소 30개였기 때문에 이런 구조는 매우 비효율적이었다. 그리고 @Primary로 사용하는 master DB가 있고 그 외 slave DB가 존재하는 게 아니라 여러 개의 DB 중 사용자의 선택에 따라 동적으로 접속하는 것이었기 때문에 본질적으로 다.. 동적으로 생성한 table arccordion (+체크박스 핸들링) 테이블의 상위 row 항목을 클릭했을 때 하위 row 항목이 펼쳐졌다 접혔다 하는 기능을 구현해보았다. 더불어 체크박스도 각 항목별로 전체 체크 및 전체 체크 해제도 필요해서 추가해주었다. head1 sub1-1 sub1-2 head2 sub2-1 html 테이블을 작성해준다. 예시를 위해 직접 row를 명시했지만 ajax로 동적 추가를 해주는 테이블에도 적용할 수 있도록 class명을 사용하였다. 상위 row의 class명을 headRow로 주고 하위 row의 class명을 subRow로 주었다. $(function() { $('.subRow').hide(); }); // 체크박스 핸들링 function checkHeadCheckbox(checkbox) { var isChecked = $(checkbo.. 이전 1 2 3 4 5 6 7 다음