1. 필수 패키지 설치sudo yum install epel-releasesudo yum install gcc make pcre2-devel libxml2-devel git autoconf automake libtool빌드 및 의존성 해결을 위한 패키지 설치2. ModSecurity 소스 다운로드 및 빌드cd /usr/local/srcgit clone --depth 1 -b v2.9.7 https://github.com/SpiderLabs/ModSecuritycd ModSecuritygit submodule initgit submodule update./autogen.sh./configure --with-apxs=시스템내Apache경로/bin/apxsmakesudo make install경로 및 버전은 ..
먼저 Docker 설치를 위해서는 root 계정이 필수다. 미리 준비하자.root로 로그인했다면 앞에 sudo 명령어는 빼고 날리자. 시스템 업데이트: 먼저 시스템 패키지를 업데이트한다.sudo yum update -y 필요한 패키지 설치: Docker를 설치하기 전에 필요한 패키지를 설치한다.sudo yum install -y yum-utils device-mapper-persistent-data lvm2 Docker 저장소 추가: Docker 패키지를 설치하기 위해 Docker의 공식 저장소를 추가한다.sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo Docker 설치: Docker를 설치..
서비스로 빌드될 수 있게 service라는 파일을 systemctl에 등록해주면 된다.startup.sh를 사용하지 않고, tomcat.service로 재부팅을 진행해보자.데몬으로 실행되어 훨씬 안정적이다. 먼저, tomcat.service 파일을 생성해준다.vi /etc/systemd/system/tomcat.service tomcat.service 파일 예시다.한글로 된 부분을 전부 각자 상황에 맞게 작성해주면 된다.[Unit]Description=Apache Tomcat Web Application ContainerAfter=network.target[Service]Type=forkingUser=유저Group=그룹Environment=JAVA_HOME=자바홈Environment=CATALINA_PI..
문제 상황 맡고 있는 시스템 상 타 시스템과 연동 방식이 다양하다.그중에 가장 흔히 쓰는 api 방식 연동 중, 갑자기 잘 되던 기능이 저렇게 됐다.그래서 해당 시스템 담당자에 문의해서 같이 확인을 해보니, 최근에 SSL 인증서를 변경하셨다고 한다.그리고 관련해서 받았던 문의에 대해 실마리를 주셨다. 하여, 그 내용을 지피티와 함께(?) 분석을 해보니클라이언트 단 (나의 시스템)의 자바 키스토어에 타 시스템의 인증서를 신뢰할 수 있도록 해당 시스템의 인증서를 등록해줘야 한다고 한다.기존 다른 url들은 아마 이전 개발자분들이 먼저 자바 키스토어에 인증서를 등록해두셨어서 정상적으로 작동했던 것 같다. 자바 키 스토어에 타 시스템 ssl인증서 등록하는 법이제 나의 자바 키스토어에 타 시스템 인증서를 등록하는..
먼저, 둘의 공통점은 비교 기능에 대한 것이라는 점이다. 둘의 차이를 한마디로 정의하자면, 기본 기준(Comparable)과 추가 기준(Comparator)의 차이다. 서브웨이 메뉴판으로 예시를 들어보자. 기본적으로 사장님이 별도로 정하지 않는다면(귀차니즘) 가나다 순 정렬이 본사의 정책이라고 가정하자.기본 정책 적용 방법 : 객체에 Comparable 인터페이스 구현.public class Sandwich implements Comparable { private String name; private int rank; public Sandwich(String name, int rank) { this.name = name; this.rank = rank; } ..
Object Class란?모든 클래스의 최상위 부모 클래스이다.Java에서 만들 수 있는 모든 클래스는 Object 클래스를 기본으로 상속받고 있다. Object Class의 장점1. 공통 기능 제공 - 모든 객체에 필요한 기능을 미리 구현해 두었다. - 이로 인해 서로 다른 메소드의 이름으로 정의할 수 없게 제한을 둘 수 있다. - toString(), equals(), getClass() 정도 가 있다.2. 다형성의 기본 구현 - Object 클래스는 모든 클래스를 다 담을 수 있기 때문에 어떤 클래스든 Object 클래스로 받을 수 있다. Object Class로 할당했을 때의 단점1. 다운캐스팅을 통해 없는 메소드를 호출할 가능성이 있다.
코딩테스트 준비를 여유있게 게임한다 생각하고 천천히 진행하기로 했다.원래는 벼락치기로 공부하는 스타일이지만 공고가 언제 날지는 모르는거니까 일단 기초 체력을 향상해보기로 결심했다.알고리즘을 풀다보면 결국 비슷한 코드를 활용할 일이 많다.내 개발은 결국 자바 기반이라 자바로 코딩테스트를 준비하기로 했다.(원래 파이썬으로 했었는데 결국 나한테 도움이 안되더라. 금방 까먹고.) 내용은 공부하면서 꾸준히 추가하기로 한다. StringString str = "Hello World!"// String에서 char 하나만 가져오기 (index)char c = str.charAt(0);// index check -> 없으면 -1 반환int idx = str.indexOf(c);// String 대소문자 구분 없이 비교..
내가 받은 DB 테이블에 매일 아침 특정 시간마다 데이터가 주입되고 있다.그런데 관련 히스토리가 남아있는게 없다.어떤 USER가 정확히 몇시에 어떤 메타정보들을 가지고 주입해주고 있는지 추적하는 트리거를 짜기로 한다. 다음은 예시 코드들이다.순서대로 상황에 맞게 만들어주면 된다.운영 서버일 경우 반드시 AUTO COMMIT을 꺼두고 시작하자. 1. 먼저 로그가 기록될 테이블을 생성한다.CREATE TABLE audit_log ( audit_id NUMBER PRIMARY KEY, user_name VARCHAR2(30), os_user VARCHAR2(30), host VARCHAR2(50), ip_address VARCHAR2(50), operation VARCHAR2(..