본문 바로가기
반응형

분류 전체보기106

[JAVA] 자바 로깅 비교 (Logger, Log4j, SLF4J, Logback, Log4j2) 로그(log)는 소프트웨어의 이벤트를 기록하는 것으로써, 소프트웨어의 동작상태를 파악하고 문제가 발생했을 때 이 동작 파악을 통해서 소프트웨어의 문제를 찾아내고 해결하기 위해 디자인 되었다. 즉, 소프트웨어의 디버깅이나 모니터링을 위하여 정보를 기록하는 곳에 사용되는데 기존의 Debugger나 println에 비해 로그는 다음과 같은 장점이 있다. 상활별 Level을 지정하여 Level별 메세지를 선택가능 응용 프로그램의 실행에 대한 흐름과 에러 확인 가능 프레임워크를 이용하여 간단하고 쉬운 사용환경 조성 가능 모듈 별로 유연하게 메세지 출력 가능 자유로운 출력 위치 및 다양한 출력 형식 지원 Java에서는 이러한 로그에 대해 여러 프레임워크가 존재한다. 로깅 프레임워크에는 slf4j, log4j,l l.. 2024. 3. 30.
[LINUX] mkdir 명령어(디렉토리 생성, 체크) chmod는 디렉토리를 생성할 때 사용하는 명령어입니다. (make directory의 약자) 기본 문법 mkdir [옵션][생성 할 디렉토리] 명령어 옵션 옵션 설명 -m , --mode 디렉토리를 생성할 때 권한을 설정합니다. (defualt : 755) -p , --parents 상위 경로도 함께 생성합니다. -v, --verbose 디렉토리를 생성하고 생성된 디렉토리에 대한 메시지를 출력합니다. -Z, --context selinux security context 설정 예시 - 퍼미션(권한) 설정 # directory 디렉토리 생성 및 퍼미션 설정 $ mkdir -m 755 directory drwxr-xr-x 2 leevisual leevisual 4096 12월 7 13:47 directory.. 2024. 3. 30.
[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.
반응형