전체 글 (495) 썸네일형 리스트형 Day 33 (Php + Oracle) 사용자 인증 암호는 문자열을 다른 사용자가 알아보지 못하게 치환 하는 방식이다. 암호를 복호화 할때 사용 하는 표를 난수표라고 한다. 해시코드도 문자열을 다른 사용자가 알아보지 못하게 치환 하는 방식으로 복호화가 불가능하다. 해시코드를 일방향 함수라고도 한다. 입력의 길이는 무제한이지만 출력의 길이는 일정하다. 이는 보안상 매우 위험한데 입력한 길이에 상관없이 출력이 일정하기 때문에 추측이 가능하고 우연히 같은 해시코드가 사용될 가능성이 있다. 하지만 발생 빈도수는 낮다. 이는 위협이 있는데 위험은 낮다고 할수있다. 해시코드 생성함수는 모든 랭귀지에 있지만 자신이 사용하는 프로그램만 사용해야 한다. php에서 상태정보가 없다. 따라서 다른 페이지로 이동시 상태유지가 되지 않는다. 이를 해결하기 위해서는 .. Day 32 (Oracle) 데이터 딕셔너리 및 동적 성능 뷰 사용 이번 챕터에서는 뷰와 테이블을 테이블로 생각하겠다. 즉, 뷰와 테이블은 실제로 데이터가 저장되는 것에 대한 차이를 갖는데 이번 챕터에서만 둘다 저장된 데이터로 간주한다는 것이다. 데이터베이스와 함께 생성되는 객체가 있다. 이 객체는 물리적인 저장공간을 차지하고 있어 object라고 한다. segment또한 일종의 object이다. 이러한 객체에는 데이터딕셔너리, 성능테이블, PL/SQL패키지, 데이터베이스이벤트트리거가 있다. 데이터 딕셔너리 와 동적 성능 뷰는 메타데이터라고 하는데 데이터 딕셔너리는 데이터베이스의 객체에 대한 정보를 저장한다. 동적 성능 뷰는 Dynamic Performence Truble-shooting Table이라고 하며 perfomence t.. Day 32(Php + Oracle) 2차원 배열로 패치 oci_fetch_array는 행마다 null값이 나올때까지 패치를 진행하고 한행씩 열의 값을 대입하는 열고정 행변환 방식으로 진행된다. oci_fetch_all은 2차원 배열자체로 데이터를 가져와서 한번에 모든 데이터를 패치한다. 넣는 데이터의 열의 값이 한행씩 들어가서 행고정 열변환 방식으로 진행이된다. oci_fetch_all과 oci_fetch_array의 차이는 oci_fetch_all의 경우 데이터를 배열로 한번에 불러와서 원하는 데이터를 조작이 가능하지만 한번에 모든 데이터를 읽어오기때문에 리소스 차지 비율이 크다. 그리고 데이터를 미리 불러오고 출력하는 형식이기 때문에 리소스를 해지를 보다 빠르게 선언할 수 있으며 나올 행의 갯수를 미리 파악할수있어 가독성이 높다. 반면.. Day 31 (Oracle) 파라미터파일은 지정된 디렉토리에 지정된 이름으로 저장되어 있다. 과거에는 pfile만 있었는데 클러스터기능이 추가되면서 spfile이 생겨났다. pfile은 텍스트로 이루어져 있고 spfile은 바이너리코드로 이루어져있다. 실습에서는 spfile만 사용할것이다. spfilSID.ora파일이라고 적어놓은 것은 실습과정중에서 단일 DB를 사용하기 때문에 SID라고 적은 것이다. 엄밀히 말하면 spfileDB이름.ora로 사용해야 한다. SID는 인스턴스이름이기 때문이다. SQL실습중 바이너리파일을 수정한 방법은 'ALTER SESSION SET'명령어를 사용하여 'nls_data_format'이라는 파라미터 값을 변경했다. 만약 pfile이나 spfile이 손상되거나 지워졌을때 복구는 p파일과 sp파일을 이.. Day 31 (php + DB) 접속식별자를 통해 접속을 시도 하게되면 결과만 알수있다. 그후 SQL문 생성한다. 이때 INSERT나 CREATE는 시도하고 성공했는지 실패했는지만 나오고 결과는 출력되지 않는다. SELECT는 결과를 출력해야 한다. 하지만 echo는 literal이나 특정 변수만 출력이 가능하다. 하지만 DB는 출력 형태가 리소스형태 이기때문에 바로 출력이 불가능하여 echo로 출력이 가능하도록 패치 라는 변환 과정을 진행한다. mysql은 성능차이가 거의 없지만 array와 all은 성능차이가 있다. 시간복잡도와 자원복잡도(메모리 사용량)은 반비례하는데 이것은 옵티마이다. 옵티마는 가장 적합한 상태이다. array는 처리속도가 all보다는 느리지만 메모리영역 사용량이 적고 all은 처리속도가 array보다 빠르지만 .. Day 30 ( php + Oracle) php를 이용한 DB접속 DB에 접속하기 전에 ID, PW, tns이름은 알고있어야 한다. 실습에서는 Oracle만 사용할 것이기 때문에 MySQL연동은 하지 않는다. DB접속, SQL생성, SQL 구문 파싱, SQL 구문 실행은 소스가 Oracle이든 MySQL이든 DB구축시 동일하다. 오라클 클라이언트 sqlplus php/php@oracle php $conn=oci_connect("php", "php", "oracle"); SQL문을 실행하기전에 1.SQL문의 오타확인, 2. 테이블이나 컬럼이 있는지 확인, 3. 실행계획수립의 과정을 수행하는 파싱과정을 실행한다. 그 후 실행계획에 따라 SQL문을 수행한다. 결과 패치와 접속종료는 DB마다 다를 수 있다. SQL문중 SELECT문이라면 검색된 결과가.. Day 30 (php) function 함수명 ( 매개변수, ...) { 실행구문 ; [return 반환값]; } 수학에서 함수는 y=f(x)의 형태인데 f(x)를 실행한 값이 y로 리턴된다는 의미로 해석이 가능하다. 매개변수 : 함수에서 사용할 변수로 지역함수이다. 프로시져라면 반환 값이 없으므로 리턴을 적지 않아도 된다. 실습 1 입력한 값까지의 합을 구하는 함수를 정의하고 호출하는 프로그램을 작성해라. 더보기 실습 2 위치를 변환하는 함수를 이용해서 전역변수와 지역변수의 차이를 확인하는 프로그램을 작성해라. 더보기 값에 의한 호출, 참조에 의한 호출 값에 의한 호출(call by value)은 지역변수와 전역변수는 완전히 별개의 변수로 간주한다. 참조에 의한 호출(call by reference)은 지역변수와 전역변수는 .. 보안 영역 구성을 위한 로컬 라우터 구현(수정) 보안 영역 구성을 위한 로컬 라우터 구현 초판 : 기존 파일 몇가지 수정 최종 수정 파일 이전 1 ··· 52 53 54 55 56 57 58 ··· 62 다음