나름대로 1990년대초부터 컴퓨터를 접해서 애들 사이에서 컴퓨터좀 한다는 소리도 들었고 2000년도 초에는 학교 떠나기전에 학교에서 자바 수업도 조금 들었다. 그러나 학교 떠나고나서는 홀로 배우는 스스로의 시간을 지내게 되어 PHP를 다루기 시작해서 기술에 눈을 뜬다. 자바는 2008년쯤 피드리더 만들려고 넷빈즈 프레임워크 배울때 집중을 해서 배웠는데 넷빈즈가 이클립스 프레임워크보다 희소해서 해설서를 접하기 어려워서 자바 기초 정도만 단련하는 선에서 그쳤다. (피드리더로 UI 만들고 거기에 피드 주소 입력받아서 표시하는 기능을 만들었는데 자바 실행 옵션이 바뀐건지, JVM이 업데이트되서 그런지, 내 PC 문제인지 몇년후 소스코드를 시험해보니 스택오버플로우가 나게 변했더라… 뭔말인지 알지 (?))
2019년부터 안드로이드 앱 개발에 관심을 두고 안드로이드 해설서와 게임 개발 해설서를 보는데 이게 2014년부터 있던 뇌 활성화 패턴 변화로 인해 1년 반을 허송세월. 다시 재개하고 있다.
공부가 진행되니 몰아서 해야 한다. 지금은 내 선에서 안되면 작동하는 코드를 참고해서 하는지라 속도가 조금 빨라진다. 전에도 소스포지 같은 사이트가 있었으니 같은 체제인데 요즘은 깃헙도 쓴다.
요즘 문헌탐구를 재개했다.
PHP로는 CMS도 만들어서 운용했다. 구현한 기술은 (1) XML로 글 저장 기능 (2) XML 파싱후 이중루프 돌려서 이중배열에 저장된 데이터를 가공후 표시 (3) 간이 검색 기능 (4) 페이지네이션 기능 등인데 그당시는 객체지향보다는 절차형을 주로 해놔서 객체지향은 그냥 작동할만큼만 해놨다. 그래도 저 기능들 구현하려면 필요한 개념들은 상당히 공부를 해야 될 정도.
엉망진창이 된 인지 기능에도 불구하고 그냥 진행중이다.
일단 문헌을 보는데 입력이 되면 되는데 전보다 효율이 확 줄었다.
PHP 다루던 시절에 작성한 코드. 머리만으로 모든 것을 해결한 예시다. 물론 이정도 코드는 개발자들도 할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class Postsmodel extends Model { function __construct() { parent::Model(); $this->load->helpers('variables'); } public function count_posts() { $count_result = 1; $handle = opendir($this->config->item('contents_dir')); while ($filename = readdir($handle)) { if ($filename != '.' && $filename != '..') { $count_result++; } } closedir($handle); return $count_result; } public function cat_count_posts($category) { $count_result = 1; $handle = opendir($this->config->item('contents_dir')); while ($filename = readdir($handle)) { if ($filename != '.' && $filename != '..') { $fn = explode("_", $filename); if ($fn[0] == $category) { $count_result++; } } } closedir($handle); return $count_result; } public function list_titles() { $i = 0; $post_result = array(); $handle = opendir($this->config->item('contents_dir')); while ($filename = readdir($handle)) { if ($filename != '.' && $filename != '..') { $xml = simplexml_load_file($this->config->item('contents_dir') . $filename); $posts_result[$i]['title'] = stripslashes($xml->content->title); $fn = explode("_", $filename); $posts_result[$i]['category'] = $fn[0]; $fn2 = explode(".", $fn[1]); $posts_result[$i]['filename'] = $fn[0] . '_' . $fn2[0]; $posts_result[$i]['pubdate'] = date("Y/m/d H:i:s", (int)$xml->content->pubdate); $posts_result[$i]['timestamp'] = (int)$xml->content->pubdate; $i++; } } closedir($handle); return $posts_result; } public function cat_list_titles($category) { $i = 0; $post_result = array(); $handle = opendir($this->config->item('contents_dir')); while ($filename = readdir($handle)) { if ($filename != '.' && $filename != '..') { $fn = explode("_", $filename); if ($fn[0] == $category) { $xml = simplexml_load_file($this->config->item('contents_dir') . $fn[0] . '_' . $fn[1]); $posts_result[$i]['title'] = stripslashes($xml->content->title); $posts_result[$i]['category'] = $fn[0]; $fn2 = explode(".", $fn[1]); $posts_result[$i]['filename'] = $fn[0] . '_' . $fn2[0]; $posts_result[$i]['pubdate'] = date("Y/m/d H:i:s", (int)$xml->content->pubdate); $posts_result[$i]['timestamp'] = (int)$xml->content->pubdate; $i++; } } } closedir($handle); return $posts_result; } public function list_posts() { $i = 0; $post_result = array(); $handle = opendir($this->config->item('contents_dir')); while ($filename = readdir($handle)) { if ($filename != '.' && $filename != '..') { $xml = simplexml_load_file($this->config->item('contents_dir') . $filename); $posts_result[$i]['title'] = stripslashes($xml->content->title); $posts_result[$i]['description'] = stripslashes($xml->content->description); $posts_result[$i]['pubdate'] = date("Y/m/d H:i:s", (int)$xml->content->pubdate); $posts_result[$i]['timestamp'] = (int)$xml->content->pubdate; $fn = explode("_", $filename); $posts_result[$i]['category_prefix'] = $fn[0]; $fn2 = explode(".", $fn[1]); $posts_result[$i]['filename'] = $fn[0] . '_' . $fn2[0]; $posts_result[$i]['author'] = stripslashes($xml->content->author); $i++; } } closedir($handle); return $posts_result; } } ?> |