728x90
반응형

Programming/PHP 9

[Codeigniter 3.x] 쿼리 로그 남기기 #2

앞에서 남긴 로그를 보면 포멧팅 되지 않은 상태로 출력된다. 이렇게 출력된 로그는 짧은 쿼리는 상관없겠지만 복잡한 쿼리를 확인하기에는 다소 무리가 있다. 비교적 간단한 쿼리이지만 쿼리를 작성할 때 로그를 출력할 것을 생각하고 작성하지 않는다면 복잡한 쿼리는 보기 어려울 것이다. 위의 이미지의 쿼리는 쿼리를 실제로 작성한 쿼리이기 때문에 그나마 들여쓰기라도 했지만 ORM을 통해서 생성되는 쿼리는 더 복잡하게 출력된다. 그래서 쿼리 로그를 남길 때 일정 부분 포멧팅해줄 필요가 있다. 물론 필요한 부분의 쿼리를 복사해서 인터넷에서 포멧팅해주는 사이트에서 해줄 수 있을 것이다. 하지만 쿼리를 한 번에 알아보고 싶다는 필요가 있다. 포멧팅을 하면 로그의 용량은 증가할 것이지만 용량을 포기하고 로그를 한 번에 보고..

Programming/PHP 2023.01.29

[Codeigniter 3.x] 쿼리 로그 남기기 #1

개발을 하다가보면 로그의 중요성은 아무리 말로 설명해도 부족하기만 하다. 몸소 체험하고 왜 로그가 중요한지 절실하기 느껴봐야 어떤 로그를 어떻게 남겨야 하는지 느낄 수 있게 된다. 웹 개발에서 있어서 Query에 관련된 로그는 필수적이라고 볼 수 있을 것이다. 어떤 쿼리를 던졌고 해당 쿼리를 처리하는데 걸린 시간이 얼마인지 알 수 있다면 사이트 혹은 프로그램이 느려지는 구간을 찾는데 많은 도움을 받을 수 있게 된다. 해당 글에서는 Codeigniter 3.x 버전에서 쿼리를 남기는 코드를 남겨보고자 한다. 기본적으로 Codeigniter 3.x 버전의 디렉토리 구조를 파악하고 있다는 전제로 하고 설명을 시작한다. 우선 /application/config/hooks.php 파일을 열어서 다음에 코드를 입력..

Programming/PHP 2023.01.27

웹개발 준비 3 - Codeigniter 가공 : 로그 남기기 수정

Codeigniter에서는 사용로그를 남길 수 있다. 로그 수준에는 Error, Debug, Info, All 이렇게 모두 4가지를 지원한다. 한 가지 아쉬운 것이 있다면 원하는 로그를 선택적으로 남길 수 없다는 것이다. 예를 들어서 Debug 메시지를 안찍고 Info 메시지만 찍고 싶을 수 있지만 이렇게 하는 것이 불가능하다. Codeigniter는 로그 수준을 Error부터 All까지 1~4로 매핑시킨다. 그리고 설정한 로그 수준보다 낮은 Log를 기록하도록 작성되어 있다. 하지만 Codeigniter가 로딩될 때 각 Core들은 모두 Debug 메시지를 찍기 때문에 내가 원하는 메시지를 확인하기가 어렵다. 그래서 Codeigniter에서 제공하는 Log 함수를 수정하여서 원하는 수준만 로그를 남길 ..

Programming/PHP 2014.12.19

웹개발 준비 2 - Codeigniter 설치 및 설정

앞에서 nginx와 php를 설정하였다. 이제 php를 통해서 개발을 진행하기 위해서 codeigniter라는 프레임워크를 설치하도록 하겠다. 1. Codeigniter 설치 사실 설치라고 거창하게 부를 것도 없이 홈페이지에서 다운받아서 원하는 디렉토리에 압축만 풀면 된다. Codeigniter 홈페이지에서 최신 버전의 Codeigniter를 다운받아서 압축을 해제한다. 다운받은 파일의 압축을 풀어보면 아래와 같이 디렉토리가 존재한다. system 디렉토리는 Codeigniter가 작동하는 핵심 파일들이 들어있기 때문에 수정할 일이 거의 없다. 실제로 모든 코딩은 application 디렉토리에서 이루어진다. 이 디렉토리 레벨을 그대로 복사해서 웹 루트에 붙여놓으면 된다. ci 와 같은 디렉토리를 만들고..

Programming/PHP 2014.11.20

웹개발 준비 1 - nginx + php 설정하기

최근 몇 년간 가장 즐겨 사용하는 구성은 다음과 같다. OS: ubuntu web engine: nginx Language : php Framework: Codeigniter Css: bootstrap DB: mysql 이전에는 nginx 대신 apache를 사용했었는데 apache는 설정해야 하는 내용도 너무 많고 기능이 많아지면서 무거워지는 등의 단점이 눈에 띈다. 대신 nginx는 정말 간단하게 설정을 진행할 수 있으며 가볍게 사용할 수 있는 엔진이다. 그리고 이전에는 php로 웹 개발을 진행할 때 대부분 혼자 개발하는 일이 많았기 때문에 프레임워크를 사용할 일이 없었다. 프레임워크를 익힐 시간에 한줄이라도 더 코딩하자는 주의였기 때문이다. 그러다가 Codeigniter를 접하고 사용하기 시작하면서..

Programming/PHP 2014.11.19

codeigniter 2.2.0 암호화

최신 버전인 codeigniter 2.2.0을 설치해서 설정 중 오류가 발생하였다. 이전 버전을 잘 사용하고 있기 때문에 그 설정 그대로 가져다가 사용하려고 하였더니 "the encrypt library requires the mcrypt extension." 이런 에러가 출력된다. 뭐지 하고 찾아봤더니만 codeigniter 2.2.0부터는 php-mcrypt extension을 사용하는 것으로 보인다. Ubuntu 기준으로 apt-get install php5-mcryupt를 설치하면 이런 에러가 사라진다. 기술을 계속 진화하는구나~!!

Programming/PHP 2014.11.07

wkhtmltopdf

php를 이용해서 웹 사이트의 특정 페이지를 pdf로 변환해야하는 작업을 진행중이다. 구지 php를 사용할 필요는 없지만 사이트 개발 언어로 php를 사용하였기 때문에 php를 이용해서 라이브러리를 찾아보았다. 여러 가지 라이브러리들(tcpdf, pdflib, dompdf 등)을 사용하였지만 만족할 만한 퀄리티의 라이브러리를 찾기 힘들었다. 그러던 중 wkhtmltopdf라는 라이브러리를 찾았다. 라이브러리라기 보다 프로그램을 찾았다고 해야할거 같다. 사이트는 여기 https://code.google.com/p/wkhtmltopdf/ 여기서 여러가지를 패키지를 다운받아서 사용하다가 보니 ubuntu에서 심지어 apt-get으로 설치할 수 있다!!! 기록을 위해서 포스팅 1. apt-get install ..

Programming/PHP 2013.04.15

PHP에서 세션 공유하기

처음에 쓴 글은 그냥 세션을 공유하기 위해서 세션을 디비에 저장하는 것이고 이번에는 세션을 공유하기 위한 내용이다... 세션을 하위 도메인에서 공유하는 것을 생각보다 의외로 쉽다.. session_set_cookie_params (0,"/",".aaa.com"); ini_set('session.cookie_domain', '.aaa.com'); session_start(); 위와 같이 하면 된다. 호스트에서 가장 메인이 되는 도메인을 aaa.com일 때 위에서 session_set_cookie_params의 마지막 인자와 ini_set의 마지막 인자에 .aaa.com을 넣으면 된다. 이렇게 하면 aaa.com에 있는 서브 도메인에 대해서는 모두 세션을 공유하게 되는 것이다. session_set_cook..

Programming/PHP 2008.11.24

PHP를 이용하여 Session을 DB에 저장하기

Session은 일반적으로 파일에 저장되도록 되어있다. 하지만 경우에 따라서 Session을 DB에 저장하여 각 도메인별로 Session을 공유하여야 하는 경우가 있다. 파일의 특성상 서버가 다를 경우에는 Session을 공유할 수 없다. 따라서 Session을 공유하기 위해서 DB를 사용하여 Session을 저장하므로 여러 도메인에서 Session을 공유할 수 있도록 한다. 구글에서 'php session db'로 검색하면 여러 사이트가 나온다. 그 중에서 하나를 골라서 코드를 가져와서 간단하게 끝날 수 있을 것이라고 생각했다. 하지만 코드에서 버그가 있어서 한참 헤맨 결과 해결할 수 있었다. 다행히 생각보다 쉽게 문제를 해결할 수 있었다. Site With The Lamp 위는 참고 사이트이다. 여기..

Programming/PHP 2008.10.23
728x90
반응형