Technique
-
move_uploaded_fileTechnique/PHP 2016. 4. 11. 10:51
move_uploaded_file (PHP 4 >= 4.0.3, PHP 5, PHP 7) 업로드된 파일을 새로운 위치에 이동시킴 bool move_uploaded_file ( string $filename , string $destination ) 이 함수는 filename에 지정된 파일이 ( php의 http post 업로드 구성에 의해 업로드되었단 의미)유효한 업로드 파일인지 아닌지를 확인한다. 그 파일이 유효한 경우, destination에 지정한 파일명에 이동된다. 이러한 확인은 업로드 된 파일에 관하여 아무거나 다 되는 경우에는 그 내용을 유저, 또는 같은 시스템상의 다른 유저에게 조차 악용될 가능성이 있기 때문에 주의해야합니다. 파라메터 filename 업로드 한 파일의 파일명 destinat..
-
MySQL InnoDB storageTechnique/RDBMS 2016. 4. 10. 21:50
InnoDB 스토리지 엔진MySQL에서 사용할 수 있는 스토리지 엔진 중에서 거의 유일하게 레코드 기반의 잠금을 제공하고 있으며, 때문에 높은 동시성 처리가 가능하고 또한 안정적이며 성능이 뛰어나다. InnoDB스토리지 엔진의 특징 프라이머리 키에 의한 클러스터링InnoDB의 모든 테이블은 기본적으로 프라이머리 키를 기준으로 클러스터링되어 저장된다. 즉, 프라이머리 키 값의 순서대로 디스크에 저장된다는 뜻이며, 이로 인해 프라이머리 키에 의한 레인지 스캔은 상당히 빨리 처리될 수 있다. 결과적으로 쿼리의 실행 계획에서 프라이머리 키는 기본적으로 다른 보조 인덱스에 비해 비중이 높게 설정( 쿼리의 실행 계획에서 다른 보조 인덱스보다 프라이머리 키가 선택될 학률이 높음 )된다. 오라클 DBMS의 IOT( I..
-
MySQL 쿼리 캐시Technique/RDBMS 2016. 4. 10. 19:35
쿼리 캐시( Query Cache ) 는 타 DBMS에는 없는 MySQL의 독특한 기능 중 하나로서 적절히 설정만 해두면 상당한 성능 향상 효과를 얻을 수 있다. 여러 가지 복잡한 처리 절차왜 꽤 큰 비용을 들여 실행된 결과를 쿼리 캐시에 담아 두고, 동일한 쿼리 요청이 왔을 때 간단하게 쿼리 캐시에서 찾아서 바로 결과를 내려 줄 수 있기 때문에 기대 이상의 효과를 거둘 수 있다.하지만 항상 그렇 듯이 이 쿼리 캐시에도 장단점이 있으므로 적절한 조율이 중요하다. 쿼리 캐시는 단어의 이미와는 달리 SQL 문장을 캐시하는 것이 아니라 쿼리의 결과를 메모리애 캐시해두는 기능이다. 쿼리 캐시의 구조는 간단한 키와 값의 쌍으로 관리되는 맵( map )과 같은 데이터 구조로 구현돼 있다. 여기서 키를 구성하는 요소..
-
MySQL 쿼리 실행 구조Technique/RDBMS 2016. 4. 10. 18:21
- 파서파서는 사용자 요청으로 들어온 쿼리 문장을 토큰( MySQL이 인식할 수 있는 최소 단위의 어휘나 기호) 으로 분리해 트리 형태의 구조로 만들어 내는 작업을 의미한다. 쿼리 문장의 기본 문법 오류는 이 과정에서 발견되며 사용자에게 오류 메시지를 전달하게 된다. - 전처리기파서 과정에서 만들어진 파서 트리를 기반으로 쿼리 문장에 구조적인 문제점이 있는지 확인한다. 각 토큰을 테이블 이름이나 칼럼 이름 또는 내장 함수와 같은 개체를 매핑해 해당 객체의 존재 여부와 객체의 접근권한 등을 확인하는 과정을 이 단계에서 수행한다. 실제 존재하지 않거나 권한상 사용할 수 없는 개체의 토큰은 이 단계에서 걸러진다. - 옵티마이저옵티마이저란 사용자의 요청으로 들어온 쿼리 문장을 저렴한 비용으로 가장 빠르게 처리할..
-
InnoDB와 MyISAM 스토리지 엔진 비교Technique/RDBMS 2016. 4. 10. 17:47
MyISAM 스토리지 엔진이 인덱스를 위한 키 캐시를 가지고 있지만 데이터 자체는 운영체제의 캐시에 읜존하는 반면 InnoDB스토리지 엔진은 자ㅔ적인 버퍼 풀을 가지고 좀 더 업무 특성에 맞는 캐싱이나 버퍼링을 수행한다레코드 수준의 잠금 관리로 인해 동시성도 MyISAM을 훨씬 능가한다. 그나마 MyISAM의 전문 검색 기능이 myISAM을 선택할 이유를 만들어 주기도 하겠지만 사실 검색 기능 또한 제약이 심하다. 이미 전문 검색을 위해서는 스핑크스나 트리톤 같은 다른 서드파티 소프트웨어를 많이 사용하는 편이다. 혹시나 아직도 MyISAM이 빠를 것이라고 생각하는 사용자가 있다면 직접 테스트해볼 것을 권장한다. 읽기 방법 성능 비교 프라이머리 키( 데이터 파일 읽기 포함 ) InnoDB가 6-9% 정도 ..
-
file_get_contentsTechnique/PHP 2016. 4. 8. 12:01
string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = 0 [, int $maxlen ]]]] ) 이 함수는 file()과 닮아 있지만, offset으로 지정한 장소에서 부터 시작해 maxlen 바이트 까지만 파일 내용을 문자열로 읽어들이는 점이 다릅니다. 실패한 경우 file_get_contens()와 FALSE를 반환합니다. file_get_contents()는 파일의 내용을 문자열로 읽는 방법으로서 바람직합니다. 혹시 OS가 서포트하고 있다면 퍼포먼스 상향을 위하여 메모리 맵핑 기술이 사용됩니다. 주의 : 공백과 같은 특수한 문자를 가지고 있는 UR..
-
[ jQuery ] select box actionsTechnique/Javascript 2016. 4. 6. 11:17
맨날 이거 뭐엿지 저거 뭐엿지 하면서 검색하다가 그냥 다모아 봤다... 1. jQuery로 선택된 값 읽기 $("#selectBox option:selected").val();$("select[name=name]").val(); 2. jQuery로 선택된 내용 읽기 $("#selectBox option:selected").text(); 3. 선택된 위치 var index = $("#test option").index($("#test option:selected")); 4. Add options to the end of a select $("#selectBox").append("Apples");$("#selectBox").append("After Apples"); 5. Add options to the s..
-
[ 잡담 ] 궁극의 아키텍처와 최적의 아키텍처Technique/Infrastructure 2016. 4. 4. 22:35
' 이 아키텍처 누가 설계한 거야! '' 1주일만 기다려 주세요 진정한 아키텍처를 보여 드리겠습니다 '이런 대화는 시스템 설계 현장에서 자주 볼 수 있는 광경이다.과연 ' 어떤 시스템이든지 요건은 거의 비슷하다 그러면 하나의 만능 아키텍처를 가지고 모든 프로젝트에 적용할 수는 없을까? ''궁극의, 최적의 아키텍처 하나만 있다면 굳이 설계를 하지 않아도 괜찮지 않을까? '라는 생각을 하게 될 것이다.그러나 대답은 NO 이다. 왜냐하면 아키텍처나 설계 요소에는 반드시 장점과 단점이 공존한다. 장점만 있다면 가장 좋은 것을 취하면 되지만 단점은 가장 영향력이 적은 것으로 선택하는 것이 어렵기 때문에 반드시 취사선택 상황이 발생한다. 그중에서도 가장 제약이 많은 것이 시스템 도입 비용이다. 예를 들어 100만명..