본문 바로가기

컴퓨터

Codeigniter hook로 권한 체크하기 application\config\hooks.php 파일에 아래 내용을 작성하면 된다. 여기서 사용하는 방법은 익명 함수를 사용하는 방법이므로 PHP 버전이 5.3 이상이 되어야 한다. $hook['post_controller_constructor'][] = function() { $CI =& get_instance(); isset($CI->session) OR $CI->load->library('session'); $CI->load->helper('url'); $CI->session->has_userdata('name') OR $CI->session->set_userdata('name', 'guest'); $username = $CI->session->userdata('name'); if($userna..
자바스크립트로 새창 열기 자바스크립트로 새창을 여는 함수는 window.open();함수이다. 이 함수에 자신이 열고 싶은 url을 넣어주면 작동하는 것을 확인할 수 있다. 이 기능을 응용하여 a 태그를 이용해 링크를 이동시키고 로그를 기록하는 방법은 아래의 소스코드와 같다. 링크 여기서 openWindow함수의 내용에 로그를 기록하는 부분을 추가하면 잘 작동한다. 참고로 a 태그를 사용할 때 onclicked 부분의 마지막에 return false;를 넣어주는 것이 좋은데, 왜냐하면 그 경우에는 href에 써져있는 링크가 작동을 하지 않게 해주기 때문이다. 물론 이 방법 말고도 로그를 기록하는 위치로 url을 걸고, 로그를 기록한 이후에 redirect 시키는 방법도 존재한다. 이 경우에는 referrer가 남게 되므로 어디에..
Vmware player로 Linux 설치하기 (2) 원래는 어제 작성을 하려 했으나 다운로드 받은 ISO 파일이 깨져 있었고, 그래서 새로 다운로드를 받으려고 했으나 계속 전부 다운로드가 되기 전에 다운로드가 끊겨서 포기하고 오늘 다시 시도를 했더니 한 번에 다운로드가 성공했다.... 아무래도 용량이 4GB 정도가 되다보니 다운로드가 중간에 끊기는 현상이 발생하는 것 같았다. 물론 토렌트로 받는 방법도 있긴 했지만 아무래도 하드를 갉아먹지 않을까하는 불안감에 그냥 다운로드를 받는 방식으로 진행했다. 이미지 파일이 깨졌는지 확인하는 가장 간단한 방법은 그 이미지 파일을 실행시키는 것이다. Windows 8.1 이후 버전에 대해서 추가적인 프로그램 없이 ISO파일을 클릭해서 마운트시킬 수 있는 기능이 추가되었다. (Windows 7에서는 확인을 해보지 않아서..
Vmware player로 Linux 설치하기 (1) 여러 운영 체제를 사용하는 방법에는 몇 가지가 있다. 첫 번째 방법은 가장 돈이 많을 때 사용할 수 있는 방법으로 사용하고 싶은 운영체제의 개수만큼 컴퓨터를 구매해서 사용하는 방법이다. 이 방법은 돈이 많이 들긴 하지만, 성능을 보장하고 어렵지 않다. 그렇기 때문에 집에서 놀고 있는 컴퓨터가 있다면 거기에 사용하고 싶은 운영체제를 설치하는 방법이 있다. 두 번째 방법은 파티션을 해서 사용하는 방법이다. 이 방법도 원래 컴퓨터의 성능을 보장한다는 장점이 있지만 파티션을 나누는 과정과 같은 귀찮은 과정이 있기 때문에, 귀찮음을 감수하더라도 돈이 없지만 성능을 최대로 뽑아내고 싶은 사람은 이 방법을 이용하는 것이 좋다. 마지막 방법은 가상머신을 사용하는 방법이다. 이 방법은 원래 컴퓨터의 성능을 100% 낼 ..
MP3 File header 및 ID3 tag 내용 ID3 TAG 분석파일의 뒤에서부터 읽는 것이 더 빠르다!Windows에서 값을 인식하기 위해서는 euc-kr로 디코딩을 해야 한다.Header3"TAG"title30"30 characters of the title"artist30"30 characters of the artist name"album30"30 characters of the album name"year4A four-digit yearacomment28 or 30The commentzero-byte1If a track number is stored, this byte contains a binary 0.track1The number of the track on the album, or 0.genre1Index in a list of gen..
도서 바코드 사진 인식 프로그램 앞선 내용에서 바코드 사진을 인식해서 바이너리 데이터로 변환하는 과정을 거쳤다. 그래서 이번 내용에서는 Python으로 작성한 바코드 사진 인식 프로그램 소스코드를 소개하려고 한다. 인식 방법에 대한 간단한 알고리즘의 설명은 이미 앞선 강의에서 살펴보았으니 이 포스팅에서는 직접 제작한 소스코드만 첨부하도록 하겠다. Python에서 이미지를 관리하는 module이 기본적으로는 제공하지 않기 때문에, PIL 모듈을 설치해서 사용하였다. PIL 모듈을 설치하는 방법은 pip를 이용해서 간단하게 설치할 수 있으므로 따로 설명은 하지 않도록 하겠다. 여기서의 경우 도서 바코드 사진이 있는 링크의 주소를 입력하면 해당하는 이미지에서 바코드의 바이너리 데이터 정보를 리턴해주는 형태로 구현하였다. 만약 이미지로 사용하..
도서 바코드 인식기 프로그램 제작 (3) 앞선 포스팅에서 도서 바코드의 바이너리 데이터를 우리가 알아볼 수 있는 데이터인 ISBN으로 변환하는 알고리즘을 Java를 이용해서 구현해보았다. 그래서 이번에는 사진으로 찍은 바코드를 인식해서 바이너리 데이터로 변환하는 알고리즘을 짜보도록 하겠다.영상처리를 하는데 가장 자주 쓰이는 오픈 소스인 OpenCV를 이용해서 짜볼까 하다가 아직 이것을 다루는 방법을 잘 몰라서 일단은 Python으로 대충 구현을 하였다. 핵심 알고리즘의 부분은 다음과 같다. 도서 바코드를 보았을 때, 기준이 되는 선이 총 6개가 존재한다. 이 기준선은 다른 선에 비해서 아래쪽으로 좀 더 삐져 나와있는 것을 확인할 수 있다. 그래서 이것을 이용해서 기준선의 두께를 기준으로 빈 공간은 0을 표현하고 검은 색은 1을 표현한다고 했으므..
무료 SSL 서버 LetsEncrypt 설치 및 설정 SSL 서버는 암호화된 통신을 제공해주기 때문에 패킷을 캡처하더라도 암호화 된 데이터가 전송되는 것이기 때문에 중간에 패킷을 가로채더라도 알아볼 수 없다. 이러한 SSL 서버의 인증서를 받기 위해서는 매우 비싼 가격을 지불해야 한다. 물론 잘 찾아보면 무료 SSL 인증서를 제공해주는 서비스를 찾을 수도 있지만(startSSL), 1년 마다 갱신을 해야 하는 것과 같은 약간의 불편함이 있다. 이번에 소개할 서비스는 LetsEncrypt로 작년 9월 달이었나? 그 때쯤부터 서비스의 준비를 시작하였다.https://letsencrypt.org/이 사이트에 들어가서 보면 이 프로젝트를 후원해주는 많은 단체들을 볼 수도 있고, 설정 방법에 대한 문서도 제공해주고 있다. 아직 직접 운영하고 있는 서버와 도메인이 없..