전체 글 114

JSTL과 템플릿리터럴, text interpolation 충돌

text interpolation이 충돌하는 경우 jsp의 EL 표현식(${ ... }) 과 자바스크립트의 템플릿리터럴 문법(${ ... })이 우연히 똑같아서 발생하는 문제 해결방법 서버 컨트롤러에서 jsp에 넘겨준 값인 JSTL를, 자바스크립트 ES6부터 쓰이는 템플릿리터럴(``백틱)과 같이 사용하려면 바깥쪽 ${...} 안에 자바스크립트에서 해석할 코드를 집어넣어야한다. ${ ${...} } 바깥쪽 ${...} 은 서버에서 처리하고, 안쪽 ${...}는 자바스크립트가 처리하게 된다. 배운점 JSTL jsp 엔진은 java단에서 넣어준 데이터를 출력한다 jsp의 EL 처리과정 page, request, session, context 에서 "변수명"이 붙은 값을 찾음 null이면 아무것도 출력하지 않고..

개발 한 스푼 2023.11.30

[JAVA] 반복문에서 배열요소 삭제

무한댓글 구현 + 삭제여부 확인하며 새로 알게된 개념 메모 참고) 아래 에서 이어지는 게시물입니다 계층형 쿼리 공지사항 게시판에 댓글 기능을 도입한다고 한다. 댓글-대댓글로 2 depth인 줄 알았으나, 대대댓글 3 depth가 될 수도 있고 아닐수도 있고 변경가능성 농후..하므로 일단 3 depth 기준으로 조회 쿼리를 idleday.tistory.com 목표 지난번엔 대댓글 정렬까지 구현했다. 이제 삭제된 댓글들 중 삭제되지않은(살아있는) 후손대댓글이 하나라도 있는 경우 목록에서 살려둘거고, 자신도 삭제됐고 후손들도 싸그리 삭제되어있는 경우 목록에서 제외하려고 한다. 살아있는 후손이 있는지는 댓글 전체목록을 돌면서 찾는 즉시 리스트에서 삭제하려고 한다. 즉, 반복문 순회 중 ArrayList 요소를 ..

Language/JAVA 2023.11.02

GROUP BY 쿼리 개선하기

집계쿼리에 조인할 테이블이 많은 경우 먼저 집계한 다음에 조인하자! 기존 SELECT A.prodType, A.ctgryCd1, A.ctgryCd2, A.ctgryCd3 , B.code_nm AS prodTypeNm , (SELECT ctgryNm FROM t_info WHERE ctgryId = A.ctgryCd1 AND useYn = 'Y') AS ctgryNm1 , (SELECT ctgryNm FROM t_info WHERE ctgryId = A.ctgryCd2 AND useYn = 'Y') AS ctgryNm2 , (SELECT ctgryNm FROM t_info WHERE ctgryId = A.ctgryCd3 AND useYn = 'Y') AS ctgryNm3 , COUNT(A.seqNo) AS..

[중기청 전세대출 후기] 2023 중소기업 청년 전세대출

중기청이란? 주택도시기금 주택도시기금 소개, 주택구입(내집마련디딤돌 등), 전세자금, 월세대출, 국민주택채권, 주택청약, 신혼부부대출 nhuf.molit.go.kr 중기청 순서 집 탐색 및 가계약 은행 전세대출 가심사 집 계약 계약일 정하기 이체한도 높여놓기 (OTP 1등급인가) 계약일 전 집한번더 방문해 하자살피기(세입자에게 불편한점,수리필요한점 여쭤보기) 임대차계약 특약 걸기 - 중기청 불가시 계약금반환 - 집수리가 필요한 부분(가계약해놨으니 깐깐해도됨) 임대차 계약(대리인 계약시 잔금일에 위임장,인감증명서 확인 확정일자 받기 온라인등기소: 확정일자 신청 부동산거래관리시스템: 전세계약신고 신청 더보기 📌임차인을 위한 전세계약서 특약사항 문구 본계약은 임차인의 전세자금대출 실행과 전세보증보험가입을 전제..

카테고리 없음 2023.10.06

[JSTL] c:forEach 역순

c:forEach에 직접 value값을 입력하는 방식으로만 줄창나게 써오다가 이제 반복문으로 순서도 넣어보기로 했다. 그 과정에서 구글링을 통해 c:set 을 처음 배웠다. 가장 중요한 지식은 서버사이드렌더링 방식인 jsp을 쓸 때 각 데이터들의 동작 순서를 익힌 것! JAVA → jstl → HTML → javaScript 저 순서대로 뿌려지기에 jstl 데이터는 javascript에 할당할 수 있지만, javascript 데이터는 jstl에 할당할 수 없는것 원하는 목표상태는 현재 연도부터 2022년까지 역순으로 셀렉트박스 옵션에 나열되는 것이다. (2023,.. 2022) 아래처럼 하면 항상 올해,작년 이렇게 두 해만 나온다. 심히 단순한 코드다. 좀더 오래오래 써먹을 만한 유지보수성 높은 방식으로..

Language/JAVA 2023.09.25

you do not have the SUPER privilege (Error Code: 1419)

문제 mysql 함수생성시 위 메시지 발생 원인 MySQL 전역변수 log_bin_trust_function_creators 속성 이 속성은 MySQL이 stored function과 trigger 생성에 제약을 강제할 수 있는 기능을 가진 속성으로 OFF로 설정시 CREATE ROUTINE 권한이 있어도 trigger 나 procedure 생성을 할 수 없다. log_bin_trust_function_creators 값은 default가 OFF 해당 속성 enable시 MySQL 입장에서 function에 대한 안정성 체크를 하지 않게 된다. 데이터베이스 서버가 마스터와 슬레이브 두대를 사용할 경우, (현재 회사 DB서버 백업설정이 이와 같다) 마스터 데이터 변경시 바이너리 로그를 사용하여 데이터를 복..

NOW()와 SYSDATE()의 차이

SELECT NOW(); SELECT SYSDATE(); 쿼리가 길어질 경우, 출력 되는 시간이 고정되느냐 변하느냐에 따른 차이가 있습니다. NOW 는 쿼리가 처음 시작되는 시간이 고정되지만 SYSDATE 는 연산할 때 마다 시간이 변합니다. 예를 들어, 한 번에 실행하는 쿼리가 몇 백줄이고, 중간중간에 현재 날짜와 시간을 조회하다고 가정하겠습니다. 그 긴 쿼리( 쿼리 단위 )가 실행 될 때를 기준으로 날짜와 시간을 사용할때는 NOW를 사용하고, 중간중간 날짜를 조회할 때를 기준으로 각각 날짜와 시간을 사용할때는 SYSDATE를 사용합니다. Ref) https://victorydntmd.tistory.com/143

계층형 쿼리

공지사항 게시판에 댓글 기능을 도입한다고 한다. 댓글-대댓글로 2 depth인 줄 알았으나, 대대댓글 3 depth가 될 수도 있고 아닐수도 있고 변경가능성 농후..하므로 일단 3 depth 기준으로 조회 쿼리를 짜기로 했다. 댓글-대댓글 구조의 테이블 설계는 SQLD 공부할 때 접했던 계층형 쿼리(start with, prior 등) 기능으로 간단하지 않을까했다. 주로 많이 사용하는 기능 WITH RECURSIVE 구문 CONNECT BY (Oracle) 재귀형 함수 짜기 더보기 MySQL 계층형 쿼리 구현하기 [SQL] 계층형 쿼리(댓글) START WITH / CONNECT BY PRIOR Mysql 로 oracle connect by 기능. 계층쿼리 with recursive 재귀쿼리 예시 Hie..

크롬 mixed-content 보안 이슈

mixed-content https 사이트에서 ajax로 http 사이트에 request를 요청해서 발생 https인 홈페이지에 외부 경로의 파일을 http로 불러와서 생기는 오류 해결방법 html파일 헤더에 추가 외부 경로들(jQuery 스크립트, 이미지 등)을 모두 https 또는 //로 변경 배운점 외부리소스 주소는 운영기준으로! 참고) https://cheershennah.tistory.com/m/158 크롬 브라우저 보안성 향상 업데이트 이슈(Mixed content) Chrome 은 보안성 향상 및 https로 전환을 유도하기 위해 혼합 콘텐츠 차단에 대한 일정을 발표하였다. 크롬 단계별 보안차단 업데이트 내용 Mixed content(혼합 콘텐츠)란 ? 최초 HTML이 안전한 HTTPS 연결..

개발 한 스푼 2023.08.09