개발 한 스푼 28

Slack Incoming Webhook

두고두고볼 슬랙 웹훅 정리  Slack Incoming Webhook 2가지 방법Slack Incoming Webhook(인커밍웹훅) 설정에는 2가지 방법이 있습니다. 앱 생성(추천), 앱 추가(비추) 를 각각 알아봅니다.velog.io  Webhook URL 웹훅 URL : https://hooks.slack.com/services/~생성 방식 2가지앱 생성https://api.slack.com/ 에서 앱 생성Collaborators 공용계정 추가 (웹훅 만든 사용자가 퇴사할 경우 웹훅 URL 비활성화 방지)Incoming Webhooks 선택 > On > Add New Webhook to Workspace앱 추가 (퇴사자 방지 불가)추가할 채널에서 Incoming Webhooks 설치Add to Sl..

개발 한 스푼 2024.05.31

Mysql 숫자함수 (ABS, CEILING, FLOOR, ROUND, TRUNCATE)

ABS (절대값) : SELECT ABS(123) FROM DUAL -- 123 SELECT ABS(-10) FROM DUAL -- 10 ROUND (반올림) SELECT ROUND(1234.56789) FROM DUAL -- 1235 SELECT ROUND(1234.56789 ,1) FROM DUAL -- 1234.6 SELECT ROUND(1234.56789 ,4) FROM DUAL -- 1234.5679 SELECT ROUND(1234.56789 ,-1) FROM DUAL -- 1230 SELECT ROUND(1234.56789 ,-2) FROM DUAL -- 1200 CEILING (올림) SELECT CEILING(12.34) FROM DUAL -- 13 SELECT CEILING(12.99 ,..

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

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

개발 한 스푼 2023.11.30

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..

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

[MySQL] YEAR_MONTH() 현재 연도, 월 알아내기

MySQL 날짜함수, 시간함수 EXTRACT() - 날짜에서 년, 월, 일, 시간등을 추출 EXTRACT(unit FROM date) 의 형태 The EXTRACT() function uses the same kinds of unit specifiers as DATE_ADD() or DATE_SUB(), but extracts parts from the date rather than performing date arithmetic. YEAR_MONTH from date SELECT CONCAT(YEAR(NOW()), MONTH(NOW()));-- 20237 SELECT EXTRACT(YEAR_MONTH FROM NOW());-- 202307 ref https://learnsql.com/cookbook/h..

LIKE% 위치에 따른 인덱스 사용 여부

일하면서 쿼리를 짜다 = 검색을 LIKE로 바꾸니 그렇게 바꾸면 "어드민페이지는 검색어를 모두 넣어 제대로 검색하는게 맞고, 또한 검색시 인덱스 타기도 어렵다"는 말을 들었다. 인덱스는 잘 모르니까 찾아보니 아래 티스토리글이 매우 유익하게 설명하고 있었다. MySQL LIKE % 위치에 따른 인덱스 사용 여부 서론 Table 내 어떠한 칼럼에 index를 설정하여 Like 문을 통해 검색하는 경우 INDEX 설정을 하였어도 % 위치에 따라 INDEX 가 정상적으로 작동하는 경우가 있지만 반대로 잘못 사용한 경우 Full Scan 이 발 k3068.tistory.com MySQL에서 문자열 검색시 왜 'AB%' 를 제외한 나머지 방식(%AB, %AB%)은 인덱스를 타지 않을까? 데이터베이스 인덱스의 자료구..