본문 바로가기
반응형

서버71

[Server] 트랜잭션이란? 대규모 Database를 운영하는 은행계열이나 금융 쪽에서는 트랜잭션이라는 명칭이 심심하지 않게 등장합니다. 또한 DB관리자들이 Mysql의 InnoDB를 사용하는 가장 큰 이유도 이 트랜잭션 이라는 것 때문인데 도대체 무엇인지에 대해 알아보겠습니다. 트랜잭션은 현대의 웹 보안에 있어서 매우 중요한 역할을 차지하며 DB와 JAVA 언어가 데이터를 주고받는 과정에 원자성을 부여하는 수단을 의미합니다. 위의 의미만 가지고는 처음 이 개념을 접하는 사람에게는 잘 이해가 되지 않습니다. 자 그럼 좀더 자세하게 개념에 대해 이해해보겠습니다. 과거에 트랜잭션은 소수의 웹 개발자들끼리 공유하는 기술이었습니다. 굉장히 고급 기술이고 손이 많이 가는 작업이라 트랜잭션이 일반화되지 않았을 때는 비슷한 기술인 프러시저를 더.. 2022. 1. 7.
[Linux] Makefile이란? 리눅스에서 컴파일을 실행한다면 make 명령어를 통해 컴파일을 실행하는 경우가 많습니다. make란 Makefile이 있는 디렉터리에서 make만 입력하면 컴파일이 진행됩니다. 이 make 명령어는 파일 관리 유틸리티로써 이러한 명령어에 의한 처리가 가능하게 해 줍니다. 그럼 make파일의 정의에 대해 먼저 보겠습니다. 파일 간의 종속관계를 파악해서 Makefile(기술 파일)에 적힌 순서대로 컴파일러에 명령을 전달하여 Shell명령이 순차적으로 실행될 수 있게 합니다. 이러한 make 파일을 쓰는 이유가 무엇일까요? make 파일을 사용함으로써 얻을 수 있는 장점은 다음과 같습니다. 1. 각 파일에 대한 반복적 명령의 자동화로 인한 시간 절약합니다. 2. 프로그램의 종속 구조를 빠르게 파악할 수 있습니.. 2022. 1. 7.
Mysql backup 서버에서 DB를 사용하는 시스템의 경우 관리자는 데이터 손실을 대비하기 위해 주기적인 DB 백업과정이 필요합니다. Mysql Workbench나 기타 툴을 사용하여서 export시키는 간편한 방법도 있지만 리눅스 쉘에서 직접 backup 실행 파일을 만들고 crontab에 의해 자동적으로 일정하게 백업하는 시스템을 구축하는 방법에 대해 알아보겠습니다. 먼저 백업을 위한 crontab에 등록할 파일을 먼저 만들어서 내용을 다음과 같이 작성합니다. now=$(date +"%Y%m%d") /usr/bin/mysqldump -u root "test" > /data/mysql_backup/mysql_back_data/mysql_backup_$now.sql 여기서 파일의 확장자명은 sh로 만들어줍니다. backup.. 2022. 1. 6.
[Server] 로드 밸런싱이란? 로드 밸런싱이란 서버를 구축하고 관리하다 보면 한 번쯤 마주하게 되는 작은 규모의 서버에서는 볼일이 없겠지만 사용자수가 많고 트래픽이 많은 중대형의 서버에서는 꼭 알아야 하는 개념입니다. 로드밸런싱은 컴퓨터 네트워크 기술로 중앙처리장치와 같은 컴퓨터 자원에게 작업을 분산하는 것을 의미합니다. 여기서 중요한 핵심이 바로 작업을 분산한다입니다. 자 그럼 이러한 작업을 분산하는 로드밸런싱이라는 것이 어떻게 사용되는지 어떤 개념인지에 대해 자세히 알아보도록 하겠습니다. 1. 트래픽 분산의 개념 단일 서버를 먼저 생각해보면 다음 그림은 서버와 DB의 1차적 구조입니다. 먼저도 이야기했듯이 소규모의 서버에서는 위와 같은 구조가 특별히 문제 될 것이 없습니다. 하지만 트래픽이 엄청나게 많이 발생하는 서버라고 한다면 .. 2022. 1. 3.
Mysql PHP 한글 깨짐 해결 PHP를 통해 Mysql에 Query문을 실행할 때 한글이 깨져서 입력되는 현상이 발생하여 그 해결방법에 대해 알아보고자 합니다. 해결방법 첫 번째는 DB Connection을 하는 각 페이지마다 인코딩을 강제로 설정하는 방법입니다. PHP에서 DB를 연결한 직후 다음 쿼리를 실행시켜줍니다. set names utf8; 해당 방법으로 한글이 여전히 깨진다면 다음 쿼리를 실행시켜줍니다. set session character_set_connection = utf8; set session character_set_results = utf8; set session character_set_client = utf8; 두 번째 해결방법으로는 my.cnf를 수정하는 방법입니다. /etc/my.cnf 파일을 열어서 .. 2022. 1. 3.
[Linux] Directory file count 리눅스 상에서 디렉터리 내부에 있는 파일의 개수를 알아야 할 경우가 있습니다. 예를 들어 Socket 프로그램을 동작중인 서버에서 파일 디스 크립트(FD)의 개수를 파악해 실질적으로 연결되어 있는 소켓의 정보를 알고자 할 때 많이 사용됩니다. 먼저 test라는 Socket Application이 동작중이고 PID가 29283이라고 가정하면 cd /proc/29283/fd 라는 폴더 안에 FD개수가 실질적인 소켓 연결 숫자입니다. ls 명령을 통해 확인해보면 현재 연결된 FD정보가 파일로 저장되어 있습니다. 하지만 숫자가 순서대로 되어있는것도 아니고 뒤죽박죽인 상황에서 하나하나 세기에는 너무 비효율적이면서 시간낭비입니다. 리눅스에서는 wc라는 명령어를 통해 간단하게 파일 개수를 counting 할 수 있습.. 2021. 12. 28.
반응형