반응형

1. 파일 이동

mv {파일명} {디렉토리}

해당 파일을 디렉토리로 이동

ex.

mv test /home/dir

아래와 같이 여러 개의 파일명을 띄어쓰기로 구분해 적으면 여러개 이동 가능

mv {파일명1} {파일명2} ... {파일명n} {디렉토리}

2. 파일 이름 변경

mv {기존 파일명} {변경할 파일명}

기존 파일명을 변경할 파일명으로 변경

ex.

mv file1 file2

3. 디렉토리 이름 변경

mv {기존 디렉토리명} {변경할 디렉토리명}

기존 디렉토리명을 변경할 디렉토리명으로 변경

ex.

mv dir/ dir2/

반응형
반응형

개발을 하다보면 웹서버 취약점 때문에 서버 설정을 바꿔줘야 하는 경우가 많다.

웹 모의해킹에서 불필요한 메서드 항목에서 걸린 TRACE 메소드 차단 방법이다.

해당 경우에는 httpd.conf 파일에 한 줄만 추가해 주면 된다.

 

TraceEnable Off

 

 

반응형
반응형

개발을 하다보면 통계 기능을 구현할 때가 있는데 그때 유용하게 쓸 수 있는 ROLLUP 을 정리해 보았다.

롤업을 사용하면 통계 낸 결과의 소계를 쉽게 구할 수 있다.

 

* Mysql(MariaDB)

SELECT

COL1, SUM(COL2)

FROM TEST_TABLE

GROUP BY COL1 WITH ROLLUP;

* ORACLE

SELECT

COL1, SUM(COL2)

FROM TEST_TABLE

GROUP BY ROLLUP(COL1);

 

아래는 활용예시이다.

 

위와 같은 테스트 테이블을 만들었다.

 

먼저 이름(NAME)으로 그룹핑해서 평균 급여(SALARY)를 구해보았다.

 

SELECT NAME, ROUND(AVG(SALARY)) FROM TEST_TABLE GROUP BY NAME;

위의 쿼리를 실행하면 다음과 같은 결과를 볼 수 있다.

여기에 롤업을 추가해서 실행해 보았다.

SELECT NAME, ROUND(AVG(SALARY)) FROM TEST_TABLE GROUP BY NAME WITH ROLLUP;

 

앞서 실행한 결과에 전체의 평균이 추가로 출력된다.

하지만 이는 전체 결과값의 평균이라 한번 더 감싸서 구하면 평균의 평균을 구할 수 있다.

 

SELECT

        NAME,

        ROUND(AVG(AVG_SALARY))

    FROM

    (SELECT

        NAME,

        ROUND(AVG(SALARY)) AVG_SALARY

    FROM TEST_TABLE A

    GROUP BY NAME) B

GROUP BY NAME WITH ROLLUP;

 

위의 쿼리를 실행한 결과 값이다.

 

평균뿐만 아니라 합계, 최대, 최소 등의 값으로 활용할 수 있다.

비슷하게 오라클에는 CUBE 도 있으니 찾아보는 것을 추천한다.

 

반응형
반응형

postgreSql 에서 오라클의 NVL 과 동일하게 사용할 수 있는 함수이다.

 

COALESCE(A, B)

를 사용하면 A가 널이 아닐 경우 A를, A가 널일 경우 B를 반환한다.

 

반응형
반응형

java 에서 구분자로 구분해서 문자열을 분리해서 가져오는 split() 처럼

SUBSTRING_INDEX 를 이용하면 mariaDB 에서도 split 같은 기능을 활용할 수 있다.

SUBSTRING_INDEX(컬럼명, 구분자, 인덱스)

 

인덱스에 양수를 넣으면 앞에서부터 몇 번째인지 지정할 수 있고

반대로 음수를 넣으면 뒤에서부터 몇 번째 자리를 가져올지 지정해 줄 수 있다.

ex.

PHONE 이라는 컬럼에 010-0001-1234 라는 데이터가 들어있다고 가정하자

SELECT

SUBSTRING_INDEX(PHONE, '-', 1) PHONE1,

SUBSTRING_INDEX(PHONE, '-', 2) PHONE2,

SUBSTRING_INDEX(PHONE, '-', 3) PHONE3,

SUBSTRING_INDEX(PHONE, '-', -1) PHONE4,

SUBSTRING_INDEX(PHONE, '-', -2) PHONE5,

SUBSTRING_INDEX(PHONE, '-', -3) PHONE6

FROM TEST_TABLE;

실행하면

010 0001 1234 1234 0001 010

라는 결과를 얻을 수 있다.

 

반응형
반응형

화면에 숫자 뿌려줄 때 보통 화면단에서 처리하긴 하지만

쿼리에서 콤마 찍는 함수가 필요해서 찾아보았다.

세자리 콤마 외에도 소수점까지 제어 가능하다.

 

FORMAT(컬럼명, 소수점 이하 자릿수)

 

SELECT

    amount,

    FORMAT(amount, 2),

    ​FORMAT(amount, 0)

FROM

(SELECT '123123123.333' amount FROM dual) A;

위의 쿼리를 돌려보면 아래처럼 결과를 얻을 수 있다.

 

반응형
반응형

마이에스큐엘은 오라클이랑 달리 텍스트로 날짜 차이가 잘 구해지지 않는다.

함수를 이용해서 날짜 차이를 구하는 방법이다.

 

 

1. DATEDIFF(date1, date2)

 

함수명을 보면 알겠지만 두 날짜 간의 일 차이를 가져오는 함수이다.

날짜1, 날짜2 사이의 일수를 구할 수 있다.

날짜1 - 날짜2 의 값을 반환한다.

 

ex. 

SELECT DATEDIFF('2022-10-17', '2022-09-01') FROM DUAL;

-> 46

 

 

2. TIMESTAMPDIFF(unit, date1, date2)

=> TIMESTAMPDIFF(단위, 날짜1, 날짜2)

 

TIMESTAMPDIFF 함수는 일 외에도 연, 분기, 월, 주, 일, 시, 분, 초 단위로 차이를 구할 수 있는 함수이다.

이것도 역시나 날짜1과 날짜2의 차이를 구한다.

날짜2 - 날짜1을 가져오고 지정한 단위로 계산해서 보여준다.

 

  • 단위
YEAR
QUARTER 분기
MONTH
WEEK
DAY
HOUR
MINUTE
SECOND

 

ex.

SELECT TIMESTAMPDIFF(DAY, '2022-10-17', '2022-09-01') FROM DUAL

-> -46

SELECT TIMESTAMPDIFF(QUARTER, '2021-10-17', '2022-09-01') FROM DUAL

-> 3

반응형
반응형

하이차트를 이용해 차트를 그릴 때 x축 값이 너무 길거나 많을 때 각도가 기울어지면서 차트 영역이 작아지는 현상이 있는데

이럴 때 라벨을 생략해주면 차트가 작아지는 것을 방지할 수 있다.

라벨에 step 값을 지정하여 생략하는 법을 정리해 보았다.

 

샘플로 그려본 차트이다.

x축 값으로 100개를 설정해 두었는데 이미 너무 많고 길기 때문에 자동으로 생략이 되긴하였다.

그래도 여전히 값이 기울어져 차트 영역이 작아지기 때문에 step 값을 설정해 주겠다.

 

<script src="https://code.highcharts.com/highcharts.js"></script>
<div id="container">차트영역</div>
<script>
Highcharts.chart('container', {

    title: {
        text: 'x축 라벨 생략하기'
    },

    yAxis: {
        title: {
            text: 'y 값'
        }
    },

    xAxis: {
        categories : [
          10000001, 10000002, 10000003, 10000004, 10000005, 10000006, 10000007, 10000008, 10000009, 10000010,
          10000011, 10000012, 10000013, 10000014, 10000015, 10000016, 10000017, 10000018, 10000019, 10000020,
          10000021, 10000022, 10000023, 10000024, 10000025, 10000026, 10000027, 10000028, 10000029, 10000030,
          10000031, 10000032, 10000033, 10000034, 10000035, 10000036, 10000037, 10000038, 10000039, 10000040,
          10000041, 10000042, 10000043, 10000044, 10000045, 10000046, 10000047, 10000048, 10000049, 10000050,
          10000051, 10000052, 10000053, 10000054, 10000055, 10000056, 10000057, 10000058, 10000059, 10000060,
          10000061, 10000062, 10000063, 10000064, 10000065, 10000066, 10000067, 10000068, 10000069, 10000070,
          10000071, 10000072, 10000073, 10000074, 10000075, 10000076, 10000077, 10000078, 10000079, 10000080,
          10000081, 10000082, 10000083, 10000084, 10000085, 10000086, 10000087, 10000088, 10000089, 10000090,
          10000091, 10000092, 10000093, 10000094, 10000095, 10000096, 10000097, 10000098, 10000099, 10000100
        ],
        labels : {
           step : 12 // 단계 설정
        }
    },

    series: [{
        name: '테스트',
        data: [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 
        	   20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
               10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 
        	   20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
               10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 
        	   20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
               10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 
        	   20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
               10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 
        	   20, 19, 18, 17, 16, 15, 14, 13, 12, 11]
    }]
});
</script>

 

기본 차트 소스에

labels : {step : 12 } // 단계 설정

이부분을 추가해 준 소스이다.

 

위의 소스를 실행하면 다음과 같이 x축 라벨이 생략되어 나오는 것을 볼 수 있다.

 

위의 소스에서 step 값을 12로 지정해 주었기 때문에 열두개 간격으로 라벨이 표시되는 것을 볼 수 있다.

간격을 더 넓히고 싶으면 step 값을 더 크게 지정해 주면 된다.

 

하지만 step 값을 너무 작게 설정하면 이렇게 x축 값이 겹쳐서 노출되기 때문에 테스트를 진행하면서 적절한 값을 설정해 주면 된다.

 

보통 개발할 때는 DB에서 불러온 값을 자동으로 넣어 주는 경우가 많기 때문에 이럴 경우에는

 

(전체 데이터 길이) ÷ (차트에 나타낼 x축 라벨 개수)

 

값을 스텝 값에 지정해 사용하면 된다.

반응형

+ Recent posts