반응형

전체 글 393

(network) SYN Flooding 공격이란? 대응 방법은?

(network) SYN Flooding 공격이란? 대응 방법은?리눅스 관련 공부 중 DoS, DDoS 공격의 일종인 'SYN Flooding Attack'에 대한 개념을 접하게 되었는데요.흥미 있는 내용이라 SYN Flooding 공격이란 무엇인지, 또 대응 방법은 무엇인지에 대해 정리해 보게 되었습니다. /*DoS(Denial of Service, 서비스 거부) 공격은 시스템 또는 네트워크의 구조적인 취약점을 이용하거나 대량의 트래픽을 통해 타겟 시스템이 정상적인 서비스를 하지 못하도록 마비시키는 악의적인 시도를 말합니다. DDoS(Distributed Denial of Service, 분산 서비스 거부) 공격은 DoS 공격의 업그레이드된 형태로, DoS 공격이 단일 장치에서 단일 타겟(1:1)에 대..

IT Info 2024.11.05

Logback PatternLayout을 통한 로그 마스킹 처리 방법

Logback PatternLayout을 통한 로그 마스킹 처리 방법(LayoutWrappingEncoder, PatternLayoutEncoder) '개인정보의 암호화' 등 관련된 법령에 따라 비밀번호, 주민등록번호 등은 저장 시에 반드시 암호화하여 저장해야 합니다.그리고 만약 시스템에서 요청 파라미터에 대한 로그를 남기고 있을 경우 암호화 처리 전의 비밀번호, 주민등록번호 등이 로그 파일에 남을 수 있다는 점 또한 주의해야 하는데요. 해당 포스팅에서는 logback 로깅 라이브러리 사용 시 PatternLayout 클래스를 통한 로그 마스킹 처리 방법에 대해 알아보고, 더불어 Encoder, LayoutWrappingEncoder, PatternLayoutEncoder 등에 대한 개념에 대해서도 정리..

Programming/Spring 2024.11.02

이클립스 Tomcat 서버 설정하는 방법

이클립스 Tomcat 서버 설정하는 방법Eclipse를 통해 spring 기반 웹 애플리케이션을 개발하는 경우 대표적으로 'Apache Tomcat'과 같은 웹 애플리케이션 서버를 추가하여 애플리케이션을 실행시켜야 하는데요.해당 포스팅에서는 '이클립스에서 Tomcat 서버를 설정하는 방법'에 대해서 살펴보겠습니다.(설정을 희망하는 tomcat은 미리 설치되어 있어야 하며, 아래 과정은 java11 + tomcat-8.5.97 버전을 기준으로 작업한 내용입니다.) 1. Servers 탭 열기이클립스에서 서버를 추가하기 위해서는 먼저 'Window' -> 'Show View' -> 'Servers' 경로를 통해 Servers 탭을 열어줍니다.만약 Servers 탭이 없다면 Other... 탭을 열고 아래 이..

Programming/Web 2024.10.28

javascript 유효성 검사 함수 test(), exec(), match() 비교 정리

자바스크립트 유효성 검사 함수 test(), exec(), match() 비교 정리 사용자로부터 들어오는 데이터에 대한 유효성 검사는 백엔드뿐만 아니라 프론트엔드에서도 필요한 과정인데요.비록 개발자 도구를 통해 값을 변조할 수는 있지만 사용자에게 빠른 응답을 줄 수 있고, 서버에 요청 부담을 줄일 수 있으며, UI/UX 측면에서의 활용성도 있기 때문입니다. 해당 포스팅에서는 javascript 단에서 데이터의 유효성 검사를 할 때 사용하는 test(), exec(), match() 함수에 대해 비교 정리해 보았습니다./* 위 함수 외에도 필요에 따라 matchAll(), replace(), replaceAll(), split() 등의 함수가 사용될 수 있습니다. */ javascript 정규 표현식 생성..

서브쿼리 종류와 개념 정리(스칼라 서브쿼리, 인라인 뷰, 일반 서브쿼리)

서브쿼리 종류와 개념 정리(스칼라 서브쿼리, 인라인 뷰, 일반 서브쿼리) 서브쿼리와 조인에 대해 공부하던 중 서브쿼리가 사용되는 위치 및 유형에 따라 각각 다른 명칭을 가지고 있다는 것을 알게 되었는데요.해당 포스팅에서는 서브쿼리의 유형인 '스칼라 서브쿼리(Scalar subquery)', '인라인 뷰(Inline view)', '일반 서브쿼리' 등 각각의 개념 및 예시를 정리하여 보았습니다. ***내용을 정리하는 과정에서 중첩 서브쿼리에 대한 개념이 좀 애매하다고 느꼈는데요.우선 내부적으로 서브쿼리가 사용되는 SQL 구문 자체를 '중첩 질의(Nested query)'라고 하며, '중첩 서브쿼리(Nested subquery)'는 말 그대로 서브쿼리 안에 서브쿼리가 중첩된 구조를 말한다고 판단하였습니다.때..

Programming/Oracle 2024.10.20

동일한 테이블을 여러 번 조인하는 방법과 서브쿼리를 사용하는 방법의 차이

동일한 테이블을 여러 번 조인하는 방법과 서브쿼리를 사용하는 방법의 차이(서브 쿼리가 느린 이유) 해당 포스팅은 동일한 테이블을 여러 번 조인하는 쿼리를 보면서 다른 방법은 없는지? 성능적 이슈는 없는지? 하는 의문에서 시작하였으며, 조인을 사용하는 방식과 서브쿼리를 사용하는 방식 각각의 이론적* 장단점을 정리해 본 내용입니다. /*실무에서의 쿼리는 대부분 아래 예시의 쿼리보다 복잡할 뿐만 아니라 다양한 케이스가 존재할 수 있으며, 데이터 양이나 인덱스 등의 변수로 인해서도 쿼리의 성능이 다르게 나올 수 있기 때문에 어떤 것이 정답이다 라고는 할 수 없습니다.때문에 아래 내용은 이론에 기초한 장단점이며, 이론을 참고하되 성능적 부분은 실제 사용되는 쿼리의 실행 계획 등을 통해 확인할 필요가 있습니다.*/..

Zero Width Space란? ZWSP 때문에 발생한 문제 (동일한 문자열이 다르다고 판별될 때)

동일하게 보이는 문자열이 다르다고 판단되는 경우 Zero Width Space가 원인일 수도 'Zero Width Space(ZWSP)'란 단어 그대로 '폭이 없는 공백'을 뜻하는데요.해당 포스팅에서는 zero width space로 인해 발생한 문제를 해결하는 과정에서 해당 개념과 더불어 whitespace characters에 대한 개념 및 정규식을 통한 whitespace character 제거 방법에 대해서도 정리하였습니다. Zero Width Space 발견 시스템 로직을 통해 중복된 값이 들어가지 않도록 처리한 문자열 컬럼이 있었는데요.관련된 데이터 쪽 문제가 있어 확인하던 중 해당 컬럼에 다음과 같이 중복된(사실은 중복이 아니라 동일한 것처럼 보이는) 값이 들어가 있는 것을 볼 수 있었습니다..

IT Info 2024.09.28

eclipse 이클립스 자주 사용되는 단축키 정리

eclipse 자주 사용되는 단축키 정리 최근 이클립스 환경에서 주로 작업을 하게 되면서 업무 효율성을 위해 자주 사용되는 단축키를 정리하였습니다.Eclipse에 설정된 단축키는 'Preferences' -> 'General' -> 'Keys'를 통해 확인 및 변경이 가능합니다. 1. 프로젝트 내에서 파일명 검색첫 번째는 프로젝트 내에서 특정 파일을 검색할 때 사용되는 단축키입니다.파일명을 알고 있다면 굳이 Project Explorer 영역에서 마우스로 해당 파일을 찾을 필요 없이 검색을 통해 파일을 열 수 있습니다.windows 환경에서는 'Ctrl + Shift + R' 단축키가 사용되고 mac 환경에서는 'Command + Shift + R' 단축키가 사용됩니다.   2. 세로 편집 모드(열 편집..

IT Info 2024.09.18

LISTAGG 함수 사용 방법 및 예시(여러 행의 값을 하나의 문자열로 결합할 때)

Oracle 여러 행의 값을 하나의 문자열로 결합할 때 사용하는 LISTAGG 함수 사용 방법 및 예시 해당 포스팅은 'LISTAGG' 함수의 사용 방법 및 예시에 대해 정리한 내용입니다. LISTAGG 함수는 오라클 데이터베이스에서 그룹별 여러 행의 데이터를 구분자로 연결하여 하나의 문자열로 표현할 때 유용하게 사용되며, 때문에 대부분의 경우 'GROUP BY' 또는 'PARTITION BY' 절과 함께 사용됩니다.(Oracle 10g ~ Oracle 11g R1 버전에서는 여러 행의 값을 하나의 문자열로 결합할 때 'WM_CONCAT' 함수를 사용하였으나, 11g R2 버전부터는 WM_CONCAT 대신 'LISTAGG' 함수가 공식적으로 도입되었습니다.) * 아래 예시는 Oracle 19c 버전에서 ..

Programming/Oracle 2024.09.15

(network) 서브넷 마스크 개념 정리 및 문제 풀이

서브넷 마스크(+ 서브넷팅) 개념 정리 및 문제 풀이해당 포스팅은 네트워크 영역에서 헷갈릴 수 있는 부분인 '서브넷 마스크'에 대한 개념적 이해를 돕기 위해 정리한 내용입니다.서브넷 마스크 문제는 정보처리기사, 리눅스 마스터 등 자격증 시험에도 출제되는 개념이기 때문에 한번 잘 이해해 두면 도움이 될 것이라고 생각합니다.(아래 내용은 IPv4 주소 체계 및 IP 주소 클래스에 대한 기본적인 이해가 우선적으로 필요합니다.) 1. IP 주소의 '네트워크 영역'과 '호스트 영역' 네트워크 영역IP 주소는 '네트워크 영역'과 '호스트 영역'으로 나눠서 볼 수 있는데요.'네트워크 영역'의 경우 IP 주소 앞부분에 위치하며, 특정 네트워크를 식별하는 데 사용됩니다.네트워크 영역은 동일한 네트워크에 있는 모든 장치들..

맥북 유니코드(UTF-8) 텍스트 인코딩이 적용되지 않습니다. 해결 방법

문서를 열 수 없습니다. 유니코드(UTF-8) 텍스트 인코딩이 적용되지 않습니다. 문제 해결 방법 해당 포스팅은 macOS 환경에서 텍스트 파일을 열 때 다음과 같이 '문서를 열 수 없습니다. 유니코드(UTF-8) 텍스트 인코딩이 적용되지 않습니다.' 문제가 발생하였을 때의 해결 방안에 대해 정리한 내용입니다. 먼저 텍스트 파일을 열 때 이러한 문제가 발생하는 이유는 열고자 하는 텍스트 파일의 인코딩 설정이 macOS의 기본 인코딩 설정인 'UTF-8'과 다르기 때문에 발생하는 것인데요.(특히 한글 인코딩 방식인 'EUC-KR' 또는 'CP949'로 저장된 텍스트 파일을 맥 환경에서 열 때 발생할 수 있습니다.) 이러한 인코딩 문제를 해결할 수 있는 방법으로는 아래와 같은 방법이 있으며, 자세한 내용은 ..

Programming/MacOS 2024.08.29

(spring project) log4j2 로그 파일 분리하기

spring 프로젝트 log4j2 로그 파일 분리하기 해당 포스팅은 log4j2를 사용하는 스프링 프로젝트에서 특정 용도의 로그에 대한 로그 파일을 별도로 분리하는 방법을 정리한 내용입니다.혹시나 log4j2가 아니라 logback을 쓰시더라도 java 코드단의 적용 방식은 같기 때문에 로그 설정 xml 파일의 작성 방법만 logback에 맞춰서 적용하시면 됩니다. 1. 로그 파일을 분리하려는 이유먼저 로그 파일의 분리를 고려하게 된 가장 큰 이유는 결국 잘 관리된 로그를 통해 서비스 유지보수 및 운영을 더 효율적으로 하기 위함인데요. 기본적으로 서비스의 전체 로그는 RollingFile의 'TimeBasedTriggeringPolicy' 및 'SizeBasedTriggeringPolicy'를 통해 날짜..

Programming/Spring 2024.08.25

(linux) /etc/profile ~/.bash_profile /etc/bashrc ~/.bashrc 환경 파일 내용 정리

(Linux) /etc/profile ~/.bash_profile /etc/bashrc ~/.bashrc 환경 파일 내용 정리   해당 포스팅은 리눅스를 공부하는 과정에서 '/etc/profile', '~/.bash_profile', '/etc/bashrc', '~/.bashrc' 각 환경 설정 파일의 역할과 차이점, 어떤 순서로 동작하는지에 대해 정리한 내용입니다.(아래 내용은 bash shell이 사용된다는 가정하에 내용으로 다른 쉘을 사용하는 경우 적용되는 파일 명이 조금씩 다를 수 있습니다.) 각 파일의 역할과 세부적인 내용* 내용 중 등장하는 로그인 쉘(login shell)과 비로그인 쉘(non-login shell)에 대해서는 아래에 추가로 정리해 놓았으니 아래 내용을 먼저 보고 해당 내용을..

Programming/Linux 2024.08.21

리눅스 vim(vi) 편집기 문자열 치환 명령어 정리

linux vim(vi) 편집기 문자열 치환 명령어 정리 linux vim(및 vi) 편집기에서는 문자열 치환이 필요한 경우 다음과 같은 형식의 명령어를 사용하여 문자열을 치환할 수 있는데요.아래 내용을 통해 해당 명령어를 사용하는 여러 옵션 및 예시들을 살펴보겠습니다.(문자열 치환은 편집기의 ex 모드에서 진행됩니다.)  1. 기본 치환 명령어#기본 형식: s/검색할문자열/바꿀문자열/#현재 커서 라인에서 첫 번째로 발견되는 'hello' 문자열을 'world'로 치환: s/hello/world/ 기본적인 치환 명령어는 's/검색할문자열/바꿀문자열/' 형식이며, 해당 명령어는 현재 커서가 위치한 라인에서 첫 번째로 일치하는 '검색할문자열'을 '바꿀문자열'으로 치환합니다.  2. 현재 라인에 대해 일치하는..

Programming/Linux 2024.08.18

CLOB, BLOB 데이터 타입과 mybatis에서 CLOB, BLOB 사용 방법

CLOB, BLOB 데이터 타입과 mybatis에서 CLOB, BLOB insert 및 select 사용 방법 LOB(Large Object)LOB은 단어 뜻처럼 대용량의 객체(데이터)를 저장하기 위한 데이터 타입들을 지칭하는 용어입니다.LOB은 텍스트 문서나 이미지, 오디오, 동영상 파일과 같은 데이터베이스 테이블에 저장되는 일반적인 데이터 타입보다 훨씬 큰 데이터를 관리할 때 사용되며, 주로 'CLOB(Character Large Object)'과 'BLOB(Binary Large Object)' 두 가지 유형으로 나뉩니다. Oracle 관점에서 VARCHAR2가 최대 4000byte까지 지원하기 때문에 4000byte 이상의 데이터 저장에는 CLOB 또는 BLOB이 사용됩니다.또한 LONG 타입의 ..

Programming/Oracle 2024.08.15
반응형