본문 바로가기

분류 전체보기166

[DB] 대용량 DB를 처리하기 위한 고민 파티셔닝(Partitioning) 매일 10만건 정도 로그가 쌓이는 대용량 테이블의 경우 최소 수백만개 행의 데이터가 조회되기 때문에 성능개선이 필수적이다. (특히 트랜잭션이 몰리는 시간에는 성능저하가 심해져서 로딩 시간이 너무 길어진다.) 이 글은 성능개선을 위한 DB 파티셔닝(Partitioning)에 대한 글이지만 이외에도 성능개선을 위한 방법은 다양하다. 몇 가지 예를 들자면 아래와 같다. ① 쿼리 최적화 모든 열을 선택하는 대신 필요한 열만 검색하고 WHERE 절을 사용하여 적절히 결과를 필터링해야 한다. 굳이 전체 데이터를 조회할 필요가 없다면 MySQL의 LIMIT이나 ORACLE의 rownum을 활용해서 검색할 행 수를 제한하는 것도 효과적이다. (LIMIT도 효과적으로 쓰는 방법이 있는데 나중에 설명하고자 한다.) ② i.. 2023. 4. 1.
[git] AWS EC2 서버 GitHub 세팅 GitHub를 AWS EC2에 세팅하는 과정에 대해 기록을 남긴다. Step1: SSH 키 쌍 생성 먼저 EC2 인스턴스에 연결하기 위해 SSH 키 쌍을 생성해야 한다. 다음 단계를 따라 SSH 키 쌍을 생성한다. # ssh 키 생성을 위해 ssh 폴더로 이동$ cd ~/.ssh# ssh-keygen 명령을 입력$ ssh-keygen -t rsa -b 4096 -C test@github.com(본인 계정 이메일)* SSH 키 쌍 생성 명령어를 치면 몇 가지 프롬프트가 뜨는데 모두 Eneter를 눌러 넘어가도 되고 프롬프트에 따라 안전한 암호 구문을 설정해도 된다. 이후 id_rsa.pub(공개 키) 및 id_rsa(개인 키) 두 개의 파일이 생성된다.  Step2: GitHub 계정에 SSH 키 추가 이.. 2023. 3. 14.
[Apache] http to https 리다이렉트 설정 아파치(Apache) 웹 서버에서 HTTP 요청을 HTTPS로 리디렉션하는 설정에 대한 설명이다. ① SSL 활성화 당연히 SSL이 서버에 활성화되어 있는지 확인해야한다. 서버에 SSL 인증서를 설치하고, 아파치(Apache)에서 SSL 모듈을 활성화 시킨다. ② 가상 호스트(Virtual Host) 구성 파일 편집 HTTP 요청을 HTTPS로 리디렉션할 도메인의 가상 호스트 구성 파일을 편집한다. 이 파일은 보통 '/etc/apache2/sites-available/your-domain.conf' 에 위치한다. ③ 다음 내용을 가상 호스트 구성 파일에 추가 ServerName your-domain.com Redirect permanent / https://your-domain.com/ ServerNam.. 2023. 3. 9.
[HTML] form button 동작 안함 해결(attribute 차이) HTML에서는 대표적으로 과 요소를 사용하여 웹 페이지에 버튼을 만들 수 있다. 예를들어 아래처럼 간단한 form 태그를 작성할 수 있다. 아래와 같은 검색창에서 돋보기 버튼을 눌러도 form은 전송되지 않는다. "submit" 과 "button" 속성 간 클릭시 작동 방식 다르기 때문이다. 1. 이 속성은 클릭시 폼을 제출하는 버튼을 생성된다. 사용자가 type="submit"을 갖는 버튼을 클릭하면, 브라우저는 서버로 폼 데이터를 전송한다. 이 유형의 버튼은 보통 사용자가 입력한 내용을 제출할 수 있도록 폼에서 사용된다. 2. 이 속성은 클릭시 폼을 제출하지 않는 버튼이 생성된다. 대신, JavaScript 함수 또는 기타 클라이언트 측 작업을 트리거 하는데 사용한다. 이 유형은 웹 페이지의 상호 작.. 2023. 3. 2.
[Apahce] URL 확장자 .php/.jsp 숨기기 Apache 서버를 통해 php 웹사이트 구축 시 보안상 확장자를 숨기는 것 이 좋다. 추후 설정을 위해 명령어를 적어둔다. 1. apache2.conf 수정 $ cd /etc/apache2 $ vi apache2.conf​ 2. 파일 설정 변경 Options FollowSymLinks MultiViews AddType application/x-httpd-php .php .jsp Require all granted AllowOverride FileInfo 3. apache 서비스 재시작 $ sudo service apache2 restart 2023. 3. 2.
[Linux] 크론 Cron PHP 스케줄링 (Ubuntu 기준) Linux에선 크론(Cron)을 통해 스케줄링 작업을 실시하는데 이를 활용하면 주기적으로 PHP 페이지를 실행시킬 수 있다. 우선 스케줄링 시간 설정을 위해 Timezone 확인 후 기준이 되는 시간을 맞춰준다. ※ Timezone 변경 1. 현재 Timezone 확인 $ date​ 2. 시스템 Timezone 위치 확인 $ ls -al /etc/localtime​ 3. Timezone 변경 $ ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime​ ※ Cron 설치 (Ubuntu 기준) 1. cron 설치 $ sudo apt update -y $ sudo apt install -y cron 2. cron 시작 $ sudo service cron start 3. .. 2023. 1. 13.