본문 바로가기
반응형

분류 전체보기116

[Mybatis] Mybatis 파라미터 ${}(Literal)과 #{}(bind)의 차이점 Mybatis 환경에서 XML 파일에 SQL문을 작성할 때, 변수를 처리하는 방식에는 Literal 방식과 Bind 방식이 있다. 보통은 SQL Injection 이슈로 인해 Binding 방식인 #{}을 권장하지만 필요한 경우 Literal 방식인 ${}이 필요한 경우도 있는데, 보안 측면에서 권장하는 방식이 아니므로 이 부분을 고려하여 사용해야 한다. ${parameter} 파라미터 바로 출력 해당 컬럼의 자료형에 맞추어 파라미터 자료형이 변경 SQL 인젝션 공격을 예방할 수 없어 보안 측면에서 권장하지 않음 (사용자 입력 파라미터 전달 시 사용 X) 테이블이나 컬럼명을 파라미터로 전달 시 사용하거나 파라미터를 문자열로 List로 가공한 후 전달 시 사용 하드 파싱이라고 하며 DB는 바뀌는 파라메터에.. 2024. 3. 30.
[JAVA] Lombok 활용하기(Annotation을 활용한 Getter, Setter 처리) Java 언어를 이용해 개발을 하다 보면 기계적으로 작성해야 하는 코드들(Getter, Setter, ToString 등)이 상당히 많은데, 그런 코드들을 자동화하여 코드 다이어트를 해주는 Java 필수 라이브러리가 Lombok이다. 설명 Lombok이란? 어노테이션 기반으로 코드를 자동완성 해주는 라이브러리 Getter, Setter, Equlas, ToString 등과 다양한 방면의 코드를 자동완성 해준다 Lombok 장점 어노테이션 기반의 코드 자동 생성을 통한 생산성 향상 반복되는 코드 다이어트를 통한 가독성 및 유지보수성 향상 Getter, Setter 외에 빌더 패턴이나 로그 생성 등 다양한 방면으로 활용 가능 Lombok Annotation 종류 Annotation 설명 @Getter @Se.. 2024. 3. 30.
[LINUX] find 명령어 (파일명, 내용 검색 활용) find는 리눅스 파일 시스템에서 파일을 검색하는 데 사용되는 명령어이다. 많이 쓰이는 명령어 중의 하나이므로 숙지해두면 유용하다. 기본문법 find [옵션] [경로] [표현식] 옵션 옵션 설명 -H 심볼릭 링크를 따라가지 않으나, Command Line Argument를 처리할 땐 예외. -P 심볼릭 링크를 따라가지 않고, 심볼릭 링크 자체 정보 사용. -L 심볼릭 링크에 연결된 파일 정보 사용. -D 디버그 메시지 출력. [옵션] [설명] help 디버깅 옵션을 설명. exec -exec, -execdir, -ok, -okdir 관련 진단 정보를 표시. opt 최적화와 관련된 진단 정보 표시. rates 각 속성의 성공한 빈도를 나타냅니다. tree 표현식 트리를 표시. search 디렉토리 트리를 .. 2024. 3. 30.
[LINUX] chmod 명령어 (접근권한 부여 / 읽기, 쓰기, 실행) chmod는 다른 사용자에게 접근 권한을 부여할때 사용되는 명령어이다. 리눅스 파일 시스템에서 파일을 생성시 파일을 생성한 사용자가 파일에 대한 제어를 할수 있는데, 서비스를 운영하다 보면 다른 사용자에게 접근, 읽기, 쓰기 같은 권한을 주어야 할 경우가 있다. 소유자, 그룹, 익명사용자에게 각각 별도로 지정이 가능하며, 권한을 지정시 숫자, 알파벳기호, 특수문자를 통해 설정한다. 기본 문법 chmod [옵션] [--옵션] [모드] [파일] chmod [옵션] [--옵션] [8진수 모드] [파일] 명령어 옵션 옵션 설명 -c, --changes 올바르게 변경된 파일들만 -v 옵션을 적용하여 자세히 보여준다. -f, --silent, --quite 가능한 한 불필요한 메시지를 보여주지 않고 간략하게 보여준.. 2024. 3. 30.
[LINUX] chown 명령어 (소유자, 소유자그룹 변경) Change와 Owner의 앞글자를 조합한 명령어로 파일의 소유권과 그룹을 변경하는 명령어 기본 문법 소유자(소유자그룹)는 반드시 입력, 소유자그룹은 선택사항 chown [옵션] 소유자[:소유자그룹] [파일 및 디렉토리] 소유자(소유자그룹) 변경 예시 ### 소유자 변경 root@server # chown root apple root@server # ls -l total 4 -rw-r--r-- 1 root usergroup 11597 Mar 10 13:26 apple ----------------------------------------------------------------- ### 소유자그룹 지정 시 앞에 . 을 붙여 소유자 그룹만 변경 root@server # chown .root apple .. 2024. 3. 30.
[LINUX] crontab 명령어 (리눅스 크론탭 스케줄러) 매일 혹은 정기적으로 실행해야 하는 예약작업과 같은 일을 해 주는 명령어 특징 윈도우의 스케줄러와 비슷하다. cron은 간단한 텍스트 파일에 할 일들을 기록하는데, 관리자인가 아닌가에 따라서 기록할 곳이 달라진다. 관리자 권한 있을 경우 : /etc/crontab 파일 편집 관리자 권한 없을 경우 : 실행할 주체를 명시하지 않음 (crontab -e 명령어를 실행해서 파일 편집) 옵션 옵션 설명 -l 예약된 작업리스트 조회 -e 예약된 작업리스트 수정 -r 예약된 작업리스트 삭제 -u 사용자명 루트관리자는 해당 사용자 crontab 파일을 보거나 삭제, 편집 가능 주기설정 ### 요일에서 0과 7은 일요일, 1부터 월요일이고 6이 토요일 * * * * * 분(0-59) 시간(0-23) 일(1-31) 월(.. 2024. 3. 30.
[ORACLE] RANK, DENSE_RANK, ROW_NUMBER 함수 (중복여부, 생략여부) RANK(), DENSE_RANK(), ROW_NUMBER() 모두 윈도우 함수 내에 있는 순위 함수이다. 기본적으로 세 함수 모두 순위를 구하는 함수이지만, 약간의 특징적 차이가 있으므로 알아보자. 간단 요약 함수명 설 명 RANK() 여러 행의 값이 같은 경우라면 같은 순위를 부여 공동 순위를 부여하고 그 다음 나오는 행에는 같은 순위가 나왔던 숫자만큼 건너 뛰고 순위를 부여 DENSE_RANK() 여러 행의 값이 같은 경우라면 같은 순위를 부여 공동 순위를 부여하고 그 다음 나오는 행에는 순위를 건너뛰지 않고 이어서 순위를 부여 ROW_NUMBER() 각 행에 순위를 부여할 때 동점인 경우가 있어도 이를 무시하고 연속적인 순위를 부여 RANK() 순위 함수 중에서도 일반적으로 가장 많이 사용하는 함.. 2024. 3. 30.
[ORACLE] PIVOT, UNPIVOT 함수 (행을 열로, 열을 행으로 변환) 데이터를 조작하다 보면 행을 열로 변환해야 하는 일이 발생합니다. 이때 PIVOT과 DECODE 두가지 방법이 존재한다. PIVOT/UNPIVOT 함수는 ORACLE 11g부터 제공되며, 이전 버전에서는 DECODE 함수로 작업을 해야 한다. 이번에는 PIVOT에 대하여 알아보자. PVOT : 행을 열로 변환 UNPIVOT : 열을 행으로 변환 PIVOT / UNPIVOT 개념 PIVOT의 사전적 의미는 회전축이라는 뜻을 가지고 있다. 즉 회전축을 기준으로 데이터를 돌려 행을 열로 열을 행으로 바꾸는 것입니다. ORACLE에서의 PIVOT 엑셀에서의 PIVOT 기능과 동일하다. 아래 그림은 테이블을 피봇했을 때의 예시이며, DEPTNO를 기준으로 JOB의 행이 열로 변경되고 SAL의 평균이 집계된걸 확인.. 2024. 3. 26.
[ORACLE] 계층형 쿼리( START WITH ... CONNECT BY / LEVEL 활용 ) 한 테이블에 담겨 있는 여러 레코드들이 서로 상하 관계(부모, 자식) 관계를 이루며 존재할 때, 이 관계에 따라 레코드를 hierarchical(상하위) 한 구조로 가져올 때 사용되는 SQL을 의미한다. ※ Oracle10g 이상부터 CONNECT BY 절에서 제공한다. 구문 및 설명 구문 설명 LEVEL - 현재 테이블에는 존재하지 않는 컬럼 - 오라클의 모든 SQL에서 사용할수 있는 것으로 해당 데이터가 몇 번째 단계이냐를 의미함 START WITH - 어디부터 시작할 것인지를 정함 ( 최상위 레코드 ) CONNECT BY PRIOR - 계층 구조에서 각 행의 연결 관계를 설정 - EMP 테이블에서 EMPNO, MGR 같은 PRIOR - 어디부터 시작할 것인지를 정해 준다. START WITH 계층 .. 2024. 3. 26.
[ORACLE] SIGN 함수 (양수,음수 구분하기) 설명 SIGN 함수는 양수인지 음수인지, 아니면 0인지를 구분하여 NUMBER의 부호를 반환합니다. 임의의 숫자 데이터 유형 또는 NUMBER로 암묵적으로 변환될 수 있는 임의의 숫자 데이터 유형을 인수로 사용하고 NUMBER를 반환합니다. 문법 SIGN(NUMBER) 특징 Number Type Return Value 양수 1 0 0 음수 -1 예시 SELECT SIGN(-15) "Sign" FROM DUAL; Sign ---------- -1 2024. 3. 26.
[ORACLE] GREATEST, LEAST 함수 (하나의 행에서 최대값, 최소값 구하기) 흔히들 알고 있는 MAX, MIN 함수는 하나의 컬럼의 값(열 단위, COLUMN) 중에서 최대값, 최솟값을 구하는 함수이다.마찬가지로 이번에 알아볼 GREATEST, LEAST 라는 함수도 최대값, 최소값을 구하는 함수이다.다만, 하나의 행(열거 리스트)에서 여러 컬럼의 값(행 단위, ROW)을 비교한다는 점에서 차이가 있다. MAX(COLUMN) : 대상 컬럼에서의 최대값 (열 단위, COLUMN)MIN(COLUMN) : 대상 컬럼에서의 최소값 (열 단위, COLUMN)GREATEST(expr1, expr2, ... ) : 대상 행(열거 리스트)에서의 최대값 (행 단위, ROW)LEAST(expr1, expr2, ... ) : 대상 행(열거 리스트)에서의 최소값 (행 단위, ROW)GREATEST/L.. 2024. 3. 26.
[ORACLE] LISTAGG 집계함수 (여러 행을 하나의 값으로 합치기) 오라클에서 여러 행의 컬럼 값을 하나로 합쳐주는 기능을 지원하는 함수는 버전별로 상이하다.XMLAGG : 오라클 9i 이하  WM_CONCAT : 오라클 10g ~ 11g R1 LISTAGG : 오라클 11g R2 ~ ( DISTINCT 를 사용한 중복제거 불가 / 정규식 함수 사용 )LISTAGG : 오라클 19g ~  ( DISTINCT 를 사용한 중복제거 가능 ) LISTAGG( ) 함수는 그룹 함수이기 때문에 GROUP BY 또는 PARTITION BY 절과 함께 사용해야 한다. 구문 예시LISTAGG([합칠 컬럼명], [구분자]) WITHIN GROUP(ORDER BY [정렬 컬럼명])  PARTITION BY 절을 사용하여 컬럼 합치기SELECT ename , job , LIST.. 2024. 3. 24.
반응형