개요 스프링 부트(Spring Boot) 환경에서 타임리프(Thymeleaf)를 사용해 뷰 화면을 구성하는 방법 및 사용할 수 있는 속성 관련 문법을 기록한다. 타임리프(Thymeleaf)란 💡 Thymeleaf 는 웹( 서블릿 기반) 환경과 웹이 아닌 환경 모두에서 작동할 수 있는 Java XML / XHTML / HTML5 템플릿 엔진 입니다 . MVC 기반 웹 애플리케이션 의 뷰 계층에서 XHTML/HTML5를 제공하는 데 더 적합 하지만 오프라인 환경에서도 모든 XML 파일을 처리할 수 있습니다. 이는 완전한 Spring Framework 통합을 제공합니다. 웹 애플리케이션에서 Thymeleaf는 JSP( JavaServer Pages ) 를 완전히 대체하는 것을 목표로 하며 브라우저에서 직접 열..
개요 이전에 연습용으로 작업해두었던 게시판 사이트를 살리고 조금 수정하려고한다. cafe24에 호스팅했두었었지만 현재는 기간이 만료되었다. 우선 로컬 환경에 Maria DB를 구성한다. Maria DB msi 다운로드 사진1과 같이 MariaDB 접속이 계속 실패하여 확인해보았더니 설치가 되어있지 않았다. 따라서 우선 로컬 환경에 MariaDB를 설치하려고 한다. https://mariadb.org/ MariaDB Foundation - MariaDB.org … Continue reading "MariaDB Foundation" mariadb.org 단순하게 다운로드를 하려면 위 링크에서 Download를 클릭하여 다운로드 페이지로 들어가서, 버전을 선택후 다운로드 받으면 된다. 하지만 어떤게 Stabl..
개요Worker thread가 되어줄 script를 작성한다.Worker를 생성하고 통신해줄 Class를 작성하고, 각종 리스너를 설정한다.Worker에 맞춰서 IPC및 DB 쿼리문 호출 로직을 수정한다.Worker를 통한 검색 로직기존에는 Renderer 단에서 검색을 요청할 시, Main에서 바로 Sqlite DB의 쿼리문을 호출 해 결과를 보냈다. Worker를 추가하게 되면 Main에서 DB 대신 Worker로 검색 결과를 요청하게 된다.Worker는 RcpIPC 인스턴스가 Main에서 생성될 때 함께 생성되고 대기 중에 있다.Worker는 RcpSqliteDB 인스턴스를 생성한다.Renderer 단에서 검색 요청 시, Main은 요청을 바로 Worker thread로 전달한다.Worker는 생성..
개요 웹 워커(Worker)로 멀티스레딩(Multithreading)을 구현할 준비를 한다. 웹 워커는 워커 스레드(Worker thread)를 따로 만들어 메인 프로세스와 별도로 검색을 처리할 예정이다. Electron의 멀티스레딩 현재까지 구현한 것만으로도 레시피 검색 속도 및 성능은 나쁘지 않았다. 하지만 이는 레시피의 수, DB 사이즈가 작기 때문에 큰 문제를 일으키지 않는다고 볼 수 있다. 더 많은 수의 레코드 및 데이터를 다루게 된다면 단일로 돌아가는 Electron의 main process는 부하를 견디지 못할 수 있다. main에서 Sqlite DB 검색 결과를 처리할 때 까지 일렉트론 앱은 다른 작업 수행(창 위치 옮기기, 최소화, 최대화 등)을 하려 하면 ‘응답없음’ 현상을 보일 것이 ..
개요 일렉트론의 기본 타이틀바를 제거하고, 최대화(Maximize), 최소화(minimize), 닫기(close) 기능만 있는 타이틀바를 새로 추가한다. Modal Window 재사용 이슈 모달 창에 데이터 표시는 잘되지만, 모달 창을 닫은 후 다시 열려고 하면 에러가 발생한다. Error decompressing a compressed file: TypeError: Object has been destroyed at viewRcpDetail (D:\\vscode workspace\\recipe.electron\\.webpack\\main\\index.js:13610:39) at D:\\vscode workspace\\recipe.electron\\.webpack\\main\\index.js:13411:..
개요 레시피 상세보기 기능과 이를 표시할 모달 창(Modal Window)을 구현한다. DB 내에 저장된 레시피 압축 파일 Buffer를 임시 파일로 작성하고, 해당 파일을 압축 해제하여 모달 창에 이미지와 텍스트 파일을 표시한다. 검색 기능 및 결과 화면 정의 검색어를 입력하고, 컬럼을 선택해 제출하면 검색 결과 목록을 표시한다. 레시피는 한 페이지에 10개 표시하며, 페이지 버튼 또한 10개씩 표시하고 하단 부에 위치시킨다. 검색 결과 목록의 각 레시피는 이미지, title, ingredients, 다운로드 버튼, 상세 보기 버튼을 포함한다. (id, instrunctions 제외) ingredients 컬럼 값의 개수(배열 크기)가 3개 이상일 때는 값 목록을 접고 펼치도록 한다. (추가) 검색 결..