본문 바로가기

컴퓨터/기타

캐싱을 하는 이유 캐싱은 동일한 요청이 여러 번 들어 왔을 때 매 요청마다 계산을 한 다음에 보여주는 것이 아닌 기존에 한 번 계산했었던 내용을 저장해서 해당 내용을 보여주는 것이다. 그렇기 때문에 웹서버의 부하를 줄일 수 있는 기술이라고 할 수 있다. 아래는 캐싱을 하지 않았을 경우에 사용자 - 웹서버 - DB 사이에서 사용자에게 요청이 들어왔을 때의 실행 과정이다. 사용자가 웹서버에 요청을 보내면(1), 웹서버는 해당 요청을 읽고 DB에 필요한 내용을 질의한다(2). 그리고 DB는 해당 질의 내용에 대한 응답을 웹서버에 보내주고(3), 웹서버는 해당 내용을 가공해서 사용자에게 출력을 해준다(4). 사용자가 간단한 내용만 질의한다면 캐싱을 하는데 있어서 의미가 없지만 DB 쿼리 내용이 복잡하거나 사이트 파싱과 같은 시간..
Project 2.0 카카오톡 자동 응답봇 만들기[4] 저번 시간에는 정적인 응답을 보여주는 방법에 대해서 살펴보았습니다. 이번 시간에는 이러한 정적인 응답을 어떻게 하면 동적인 응답으로 바꾸어서 보여줄 수 있는지에 대해서 살펴보도록 하겠습니다. 동적인 응답의 대표적인 예로 주사위 기능을 추가해보도록 합시다. 먼저 이전에 정적인 응답을 만들 때처럼 로그인을 하고, 버튼 추가하기 링크를 클릭합니다. 그리고 아래와 같이 폼의 내용을 채웁니다. 일단 이렇게 하면 '주사위'에 대한 기능이 추가가 되었지만 카카오톡 상에서는 이 기능을 아직 사용할 수 없습니다. 왜냐하면 우리는 '주사위'에 해당하는 keyboard를 생성하지 않았기 때문이지요. 간단하게 Default keyboard에 '주사위'를 추가하도록 합시다. 이전 강의대로 따라오셨다면, keyboard.conf..
Project 2.0 카카오톡 자동 응답봇 만들기[3] 저번 시간에는 서버에 세팅을 하고 카카오톡 서버와 연결시키는 과정에 대해서 살펴보았습니다. 아직 서버 세팅이 되지 않으신 분은 이전 글을 참조해서 세팅을 하시기 바랍니다. 이번 시간에는 저번 시간에 만들어 놓은 Keyboard 버튼에 따른 응답을 만들어보도록 하겠습니다. 일단 앞 시간에 BASE_URL로 설정해 놓은 주소로 접속하시면 아래와 같은 로그인 화면을 보실 수 있습니다. 여기에서 이전 시간에 입력한 ID와 비밀번호를 입력해서 로그인을 하시면 됩니다. 로그인이 성공했다면 아래와 같이 관리자 페이지를 볼 수 있습니다. 그리고 로그인이 실패했다면 에러가 뜨면서 다시 로그인을 하라는 창이 뜹니다. 만약 계정 정보를 잊어버리신 경우에는 admin.config.php 파일을 열어보시면 ID와 비밀번호에 대..
Project 2.0 카카오톡 자동 응답봇 만들기[2] 이번에 살펴볼 내용은 카카오톡 자동 응답 서비스를 구현하기 위한 서버 구축을 하려고 합니다. 일단 아직 카카오톡 플러스 친구에 가입하지 않은 경우에는 http://humit.tistory.com/249를 참조해서 가입을 하시기 바랍니다. 이번 내용에서의 준비물은 SFTP 패키지가 설치된 Sublime Text 3, 카카오톡 봇 제작기(https://github.com/humit0/kakao_auto_reply/archive/master.zip에서 받으시면 됩니다.), 카카오톡 플러스 친구 계정이 필요합니다. 물론 Sublime Text 3가 없는 경우에는 아무 텍스트 에디터나 사용해도 상관이 없으며, FTP 프로그램으로 업로드를 하시면 되기 때문에 크게 신경쓰지 않으셔도 됩니다. 다만 앞으로의 강좌를 위..
Project 2.0 카카오톡 자동 응답봇 만들기[1] 이번에 살펴볼 내용은 카카오톡 플러스 친구에 가입하는 과정에 대해서 살펴보려고 합니다. 준비물은 카카오톡 계정과 그것과 연동된 전화번호만 있으면 됩니다. 먼저 옐로아이디의 메인 URL인 https://yellowid.kakao.com/login로 접속합니다. 그리고 아래 사진과 같이 "옐로아이디 만들기"를 클릭하세요. 그러면 아래와 같은 가입 화면을 볼 수 있습니다. 여기에서 내용을 읽어보시고 스크롤을 내리셔서 "카카오 계정 로그인"을 누르시면 됩니다. 그러면 아래와 같이 카카오 계정으로 로그인을 하라고 하는 화면을 보실 수 있습니다. PC 카톡에서 접속하는 것처럼 이메일 주소와 비밀번호를 입력하시면 됩니다. 그러면 바로 옐로 아이디 이용약관에 대한 설명이 나옵니다. 아마 대부분의 사람이 저 많은 내용을..
Project 2.0 카카오톡 자동 응답봇 만들기[0] 카카오톡에서 올해 5월 달부터 플러스 친구 자동응답 API를 제공해주고 있습니다. 모바일 카카오톡에서만 작동하는 것으로 보이며 버튼을 클릭하면 해당하는 응답을 보여주는 형태로 동작을 합니다. 즉 이 기능을 잘만 이용한다면 카카오톡을 이용해서 주문을 할 수 있는 서비스나 혹은 오늘 날씨나 혹은 실시간 검색어를 알려주는 봇을 만들 수 있습니다. 자동응답 API에 대한 설명은 https://github.com/plusfriend/auto_reply에서 보실 수 있습니다. 그리고 이 API를 기반으로 해서 PHP와 Apache가 설치되어 있는 서버에서 쉽게 이 API를 이용할 수 있도록 하기 위해서 프로그램을 제작했습니다. 소스코드는 https://github.com/humit0/kakao_auto_reply에..
도서 바코드 인식기 프로그램 제작 (3) 앞선 포스팅에서 도서 바코드의 바이너리 데이터를 우리가 알아볼 수 있는 데이터인 ISBN으로 변환하는 알고리즘을 Java를 이용해서 구현해보았다. 그래서 이번에는 사진으로 찍은 바코드를 인식해서 바이너리 데이터로 변환하는 알고리즘을 짜보도록 하겠다.영상처리를 하는데 가장 자주 쓰이는 오픈 소스인 OpenCV를 이용해서 짜볼까 하다가 아직 이것을 다루는 방법을 잘 몰라서 일단은 Python으로 대충 구현을 하였다. 핵심 알고리즘의 부분은 다음과 같다. 도서 바코드를 보았을 때, 기준이 되는 선이 총 6개가 존재한다. 이 기준선은 다른 선에 비해서 아래쪽으로 좀 더 삐져 나와있는 것을 확인할 수 있다. 그래서 이것을 이용해서 기준선의 두께를 기준으로 빈 공간은 0을 표현하고 검은 색은 1을 표현한다고 했으므..
도서 바코드 인식기 프로그램 제작 (2) 앞서서 도서 바코드가 어떤 식으로 인코딩이 되어 있는지를 살펴보았다. 이번에는 앞선 내용을 통해서 도서 바코드를 디코딩해서 우리가 원하는 정보를 가져오는 방법에 대해서 살펴보도록 하겠다. 도서 바코드의 경우에는 첫 시작이 9이기 때문에 따로 이 숫자를 인식을 해줄 필요는 없었다. 만약 도서의 첫 시작 번호를 몰랐다면 숫자를 인식할 필요가 있는데, 그 이유는 도서 바코드에 사용하는 EAN-13이 맨 앞자리에 따라서 인코딩 방법이 달라지기 때문이다. (아무리 생각을 해보더라도 왜 앞자리에 따라서 인코딩 방법을 다르게 했는지 이해가 가지 않는다.... 그냥 바코드에 줄을 더 추가해서 맨 앞자리를 표현을 해주면 될텐데 말이다.) 처음에는 C++로 구현을 하려고 했으나, 그냥 구현하는 것이 약간 귀찮아서 그냥 J..