전체 글 233

mounted, beforeUnmount, unmounted

emitter 중복 등록 해결 mounted() { this.emitter.on('event', function (param) { that.receiveEvent(param); }); }, beforeUnmount() { this.emitter.off('event'); }, unmounted() { // } 만약 아래와 같이 하나는 v-show고 하나는 v-if일 때 두 컴포넌트에서 같은 이벤트 리스너를 사용하고 v-if컴포넌트에 위와 같이 작성하면 v-show인 컴포넌트에서는 다시 마운트 되지 않아서 이벤트 리스너 등록이 안된다. 둘다 v-if/v-show 통일하여 사용해야함. v-if를 사용하는 이유 Bcomponent의 mount함수 내부에 Acomponent에서의 선택에 따라 변하는 데이터에 따른..

Frontend/vue3 2023.08.24

vue3 window 이벤트 등록

store안에 있을 경우 actions안에 unload함수를 정의하고 unload되기전에 무조건 실행되는 함수안에서 unload함수를 호출하여 window.onunload이벤트를 등록해준다. actions: { unload() { window.onunload = function (event) { event.preventDefault(); //info 초기화 등 }; }, onload() { this.unload(); } } 일반 컴포넌트 일때는 mount에서 this.unload를 호출하고 methods에 unload함수를 두면된다.

Frontend/vue3 2023.08.24

agGrid edit 에러

- 문제 agGrid에서 columnDefs를 아래와 같을 때 "VALUE" 필트의 editable 속성은 true인데 edit이 되지 않는 문제가 발생했습니다. let columnDefs = [ { "field": "NAME", "headerName": "NAME", "width": 200, "sortable": true, "filter": true, "flex": 1, "minWidth": 100, "resizable": true, "editable": false, "cellEditor": "", "cellEditorParams": "", "valueFormatter": "", "pinned": null, "cellStyle": "", "rowDrag": "", "colId": "NAME", "row..

gridLib/agGrid 2023.08.21

[spring security] 1. 의존성 추가, 기본 로그인 페이지

스프링 시큐리티는 인증 (Authentication) ,권한(Authorize) 부여 및 보호 기능을 제공하는 프레임워크다. 인증(Authentication) , 인가(Authorization) 인증: 해당 사용자가 본인이 맞는지를 확인하는 절차. 인가: 인증된 사용자가 요청된 자원에 접근가능한가를 결정하는 절차 1. 의존성 추가 build.gradle 2. 기본 로그인 페이지 지정하지 않으면 기본 아이디는 user이고 비밀번호는 스프링부트를 실행할 때 마다 자동으로 생성되어 터미널에 나온다. 3. name, password 지정 application.properties에 아래와 같이 username, password를 지정할 수 있다. spring.security.user.name = 1234 spri..

Backend/spring 2023.08.20

spring boot 개발환경 설정(spring initializr)

프로젝트 기본 구조를 생성할 때 spring initializr를 이용한다. 1. Extension 설치 2. Command Palette에 Spring Initialzr을 입력 *ctrl + shift + p 를 누르고면 Command Palette가 나옵니다. 저는 gradle 프로젝트를 생성했습니다!! 위의 명령어 입력후 아래 기본 정보를 순서대로 선택하게 되어있는데 프로젝트 언어 말고는 전부 그냥 엔터쳤습니다. dependency도 뭐가 필요한지 잘 몰라서 lombok만 미리 추가했습니다. 스프링 부트 버전 프로젝트 언어 (JAVA선택) 그룹 ID Artifact ID 패키지 타입 자바버전 Dependency 3. 기본 구조 생성 완료 Artifact ID는 demo라는 폴더명 이였네요ㅎㅎ

Backend/spring 2023.08.18

vscoed, git 연동 (repository copy, 복사 해오기)

1. git download *command가 뜨지 않으면 아래링크에서 git을 다운로드 해야한다. https://git-scm.com/download/win Git - Downloading Package Download for Windows Click here to download the latest (2.41.0) 32-bit version of Git for Windows. This is the most recent maintained build. It was released about 1 month ago, on 2023-07-13. Other Git for Windows downloads Standalone Installer 32-bit Git f git-scm.com 2. gitLens 설치 ..

tool/git 2023.08.18

JAVA에서 html 다루기 (Jsoup)

JAVA에서 html을 String 데이터로 들고 있는데 특정 요소에 속성을 추가하는게 필요했습니다. 라이브러리 종류 3가지 방법(Jsoup, javax.swing.text.html3, HTML Template Engine)에 대해 알아보았는데 아래에 각 라이브러리의 사용 사례와 특징을 설명하겠습니다. 선택 시 프로젝트의 요구사항과 개발 환경을 고려하여 결정하시면 됩니다. 1. Jsoup: HTML을 파싱하고 조작하는 작업에 우수한 성능을 제공하는 라이브러리입니다. 주로 웹 스크래핑, HTML 파싱, 수정, 정보 추출 등에 사용됩니다. 특히 복잡한 HTML 문서를 다루는 데 편리하며, 간단한 DOM 조작과 선택이 필요한 경우에도 유용합니다. import org.jsoup.Jsoup; import org...

Backend/JAVA 2023.08.16

[MariaDB] RECURSIVE 계층 메뉴 구성

- 목적 MENU 테이블에 저장되어 있는 메뉴를 MENULEVEL과 PARENTMENUID를 이용하여 순서대로 들고온다. - 문제 현재 4단계 계층만 표현 -> 단계제약을 없애고 싶음. MENUID와 PARENTMENUID가 같을 때 무한루프 CONCAT이 잘림 WITH RECURSIVE CTE AS ( SELECT PROJECTID, MENUID, MENUTYPE, PARENTMENUID, MENULEVEL, POSITION, POSITION AS X FROM MENU WHERE PARENTMENUID = 'root' AND PROJECTID = #{projectId} UNION ALL SELECT B.PROJECTID, B.MENUID, B.PARENTMENUID, B.MENULEVEL, B.POSI..

SQL/RDBMS 2023.08.14

agGrid data 추가, 가져오기

api 가져오기 그리드가 생성 될 때 배열에 저장해뒀다가 사용 onGridReady: function (api) { this.agGrids = [] this.agGrids.push({key: api}); } onGridReady: function (api) { this.agGrids = {} this.agGrids.[key] = api; } set Data api.setRowData([]); get Data //한 줄 api.getRowNode(id); //모두 getAllRows(api); getAllRows(api) { let rowData = []; api.forEachNode(node => rowData.push(node.data)); return rowData; } //선택된 것 api.getS..

gridLib/agGrid 2023.08.14

[JAVA] 백준 8911 거북이

문제 상근이는 2차원 평면 위에서 움직일 수 있는 거북이 로봇을 하나 가지고 있다. 거북이 로봇에게 내릴 수 있는 명령은 다음과 같이 네가지가 있다. F: 한 눈금 앞으로 B: 한 눈금 뒤로 L: 왼쪽으로 90도 회전 R: 오른쪽으로 90도 회전 L과 R명령을 내렸을 때, 로봇은 이동하지 않고, 방향만 바꾼다. 명령을 나열한 것을 거북이 로봇의 컨트롤 프로그램이라고 한다. 상근이는 자신의 컨트롤 프로그램으로 거북이가 이동한 영역을 계산해보려고 한다. 거북이는 항상 x축과 y축에 평행한 방향으로만 이동한다. 거북이가 지나간 영역을 모두 포함할 수 있는 가장 작은 직사각형의 넓이를 구하는 프로그램을 작성하시오. 단, 직사각형의 모든 변은 x축이나 y축에 평행이어야 한다. 아래 그림에서 거북이는 가장 처음에 ..