본문 바로가기

IT라이프47

MySQL 퍼포먼스 향상 (1) 아키텍처 1. MySQL 의 아키텍처 우선 MySQL 의 아키텍처 면에서 퍼포먼스를 생각해보자. MySQL 은 논리적 3 계층으로 구성되어짐. - 접속관리 및 시큐리티 : 유저 1 명당 1개의 스레드가 작성되어지며, 항상 캐쉬처리 된다. - 최적화 및 실행 : 쿼리실행, 캐쉬, 함수, 프로시져, 트리거, 인덱스 등의 동작 - 스토리지 엔진 : Row Lock 데이터베이스 락 - MySQL 스레드에서 각 유저에 대한 처리를 동시적으로 처리하기 때문에, 동기화 전략이 필요하다. Lock기법을 통해 각 스레드가 쿼리순서를 동기화 시킨다. - 공유락은 트랜잭션에 읽기 허용. 배타락과는 충돌한다. 다른 트랜잭션은 공유락에 걸린 열을 읽기 O - 배타락은 트랙잭션에 갱신과 삭제를 허용. 공유락, 배타락 모두 충돌한다. 다른.. 2015. 6. 20.
PHP 리팩토링(2) 리팩토링(2) 1. 여러겹의 조건문을 감시절로 전환 function PayAmount() {$num = DB::getRate(); $result = '';if (_isDead) {$result = $num / 100;} else {if (is_Seperated) {$result = $num * 0.1:} else {if (is_Retired) {$result = $num * 0.3:} else {$result = $num * 0.5;}}} return $result;} 예를 들어 이런 메서드가 있다면, 우선 계산식들을 모두 메서드로 전환 function deadAmount($num){return $num / 100;} function seperatedAmount($num){return $num * 0.1.. 2015. 6. 4.
PHP 리팩토링(1) 리팩토링 (1) 고객측에서 리팩토링 의뢰가 들어왔다. 기존 누군가가 짜논 코드를 효율좋게 고치라는 미션이다. 본격적으로 시작하기 앞서 몇가지 필요하다고 생각하는 기법들을 찾아서 참고하려고 하려고 한다. 기법은 마틴 파울러의 리팩토링을 근간으로 하려고 한다. 1. 마법숫자를 상수로 전환 클래스 밖에서 사용할 때 define("LOCAL", "1");define("DEV", "2");define("REAL", "3"); 클래스 안에서 선언할 때 class MyClass {const MIN_VALUE = 0.0; } 2. 절차코드를 객체로 전환각 레코드타입을 읽기 / 쓰기 메소드만 있는 덤 데이터 객체로 변경모든 절차코드를 하나의 클래스에 넣기메소드를 static 로 . 싱글턴 활용 3. 메서드 추출 기법 사.. 2015. 6. 4.
Laravel 5 루트 설정 AWS 에 아파치2.4 를 돌리고 있는데, 거기다가 laravel 5 를 배치했다. 하지만 허거덩, 찾을 수 없는 경로 에러가 나면서 안되는 것이었다. 좀 찾아본 결과. http://127.0.0.1/laravel/public/index.php/home 이런식으로 index.php 를 넣어야 그 담부터 처리를 하고 있었다. 뭐...당연한 프레임워크의 사양일 수도 있는데,index.php 다음으로 라우트를 처리하는 것은 꼴베기 싫기 때문에 sudo vi /etc/httpd/conf/httpd.conf 를 조금 손보기로 했다. 132 # 133 # Possible values for the Options directive are "None", "All", 134 # or any combination of: .. 2015. 5. 30.
반응형