소스 파일명 : files.txt
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
(2018.4.20, 차재복, Cha Jae Bok, cjbword@gmail.com)  

[파일 구성] ================================================================

ㅁ (소스 환경/구성/설명/보기) ---------------------------------------------------

  ㅇ /test/ [소스설명]
    - 소스 파일 설명 및 웹페이지로 보여주기
       . notice.txt : 운용 환경 및 개발 방향
       . files.txt  : 소스 파일명 및 보기
       . notice.php : 텍스트 파일을 웹페이지로 보기
          .. 기능 구성 : html 선언, html 헤더부 선언 (utf-8 셋팅, mobile 체킹 및 적응, styling), 전달 파라미터(파일명) 처리,
	               해당 파일 내용 입수, file list 배열로부터 해당 파일의 최종수정일 등을 삽입, 입수된 파일 내용 출력,
                       저작권 알림, 소스 개방 알림, 접속통계 처리
          .. PHP 함수 : date(), empty(), file_get_contents(), foreach(), htmlspecialchars(), is_numeric(),
	               isset(), realpath(), str_replace(), substr()
	  .. PHP 전역 변수 : $_GET[]
       . view_src.php : 소스 파일을 웹페이지로 보기
    - 소스 폴더 및 파일 리스트
       . dir_files.php : 모든 폴더 및 파일 명칭 리스트화 (PHP 배열 활용)
          .. 주요 스크립트 파일이 이 배열 내용을 참조함


ㅁ (구현 모듈 목혹화) ------------------------------------------------------

  ㅇ /test/example : 구현 모듈 마다 실제 소스 구성/설명/보기 등은 수행시 상단에 보여줌
    - example.php : 메인 스크립트 파일
       . 기능 구성 : 세션 설정, db 접속, html 선언, utf-8 캐릭터셋 선언, 모바일 셋팅, styling, javascript/jQuery,
                   전달 변수 처리, 상단 타이틀 출력, db에 의한 목록 구현 (heirarchy 형태로 보기), 저작권 알림, 소스 개방 알림,
		   접속통계 처리
       . PHP 함수 : empty(), is_numeric(), isset(), session_start(), substr()
       . PHP 전역 변수 : $_SESSION[], $_REQUEST[]
    - ex_array.php
    - ex_preface.php
    - example.js
    - example_ajax.php
    - example_tbl_chk.php : db 테이블 관련 처리 
    - example_update.php
    - example_utils.php
    - example_tbl_utils.php

    - 데이터베이스 (example_tbl_chk.php에서 생성 등 db 테이블 관련 처리 sql 있음)  
       . db 테이블 명 : example
       . 테이블 구조 : id int(11), parent int(11), sub_seq int(11), name varchar(40), file varchar(20), desc varchar(100)
       . 계층 구조 상 노드 표현 : parent (부모), sub_seq (순서화된 자식)
       . 데이터 접근 방식 : 재귀적 방식


ㅁ (공통 기능 모음) --------------------------------------------------------

  ㅇ /test/base_utils [공통기능]
     - 재귀적 검색 mysql 루틴 
        . getpath_v2_proc.sql
        . MySQL은 재귀적 기능의 함수를 지원 안하므로, 이를 가능케하는 procedure 루틴 
     - 소스 개방 안내문
        . open.php
     - 통계 처리 루틴
        . stat_utils.php : 
     - 수식 표현 자바스크립트 라이브러리
        . mathjax_config.php
     - 테스트편집자로 로그인/로그아웃 (PHP session 기능 활용)
        . editor_login.php
        . editor_login_ok.php
        . editor_logout.php
     - 웹페이지 초기 설정 
        . config.php : db 접속, html head
        . db_conn.php : db 접속 만
        . html_head.php : html head 만
	. mobile.php : 모바일 여부에 따른 셋팅


ㅁ (정보통신기술용어해설 개선) -------------------------------------------------

  ㅇ /test/items [분류관리]
     - items.php : 메인 파일
        . PHP 함수 : empty(), is_numeric(), isset(), session_start(), str_replace(), strlen(), substr(),
	. PHP 전역 변수 : REQUEST[], $_SESSION[]
     - items.css : 메인 스타일
        . CSS : font-size, padding-left, padding-right
     - items_jq.js 
        . jQuery 메소드 : ajax(), alert(), attr(), closest(), confirm(), css(), data(), find(), hide(),
	                 indexOf(), keydown(), nextAll(), on(), prev(), preventDefault(), prop(), push(),
			 show(), siblings(), splice(), submit(), text(), toggle(), val()
     - items_ajax_page.php : Ajax 호출시 수행됨
        . PHP 함수 : empty(), is_numeric(), isset(), session_start(), substr()
	. PHP 전역 변수 : REQUEST[]
     - items_display.php : 분류 항목/용어해설 항목들을 navigation menu 형태로 보여주기
        . PHP 함수 : array(), foreach(), function_exists(), strpos(), str_repeat()
     - items_table.php : 화면 구조의 테이블 형태 구현
     - items_table.css : 화면 구조 테이블 스타일
     - items_srch_display.php : 항목명 검색 및 그 결과를 보여주기
     - items_update.php : 업데이트 요청 수행 (db 처리)
     - items_utils.php : 공통 기능 모음

  ㅇ /test/search [용어검색]
     - srch.php : 검색 메인 파일
     - srch.css : 검색 스타일
     - srch_page_utils.php : 페이지 정보
     - srch_utils.php : 검색 관련 루틴 모음

  ㅇ /test/view [해설보기]
     - view.php : 메인 파일
     - view.css
     - view_anti_hack.php
     - view_body_text.php
     - view_contents.css
     - view_contents.js
     - view_contents_ajax.php
     - view_contents_db_qry.php
     - view_contents_display.php
     - root node에서 leaf node까지의 path 보여주기
        . view_path.css
        . view_path.php
        . view_path_jq.js
     - 분류 요약 보여주기 
        . view_summary.css
        . view_summary.php
     - view_top_section.php
     - view_top.css
     - view_utils.php
     - view_word.php

  ㅇ /test/yoyak [분류요약]
    - yoyak.php : 메인 파일
    - yoyak_contents.css : 메인 스타일
    - yoyak_contents.js : 자바스크립트(제이쿼리)
       . 1) ▷ 클릭시, 페이지 기반으로, 해당 id에 대한 하부 항목들을 보여줌 (ajax 호출, yoyak_contents_ajax.php)
       . 2) ▷,▽ 클릭시, 조건에 따라 해당 하위 항목들을 펼치기/숨기기
       . 3) .edit_ajax 클릭하면, 편집모드로 바꿈
       . 4) .submit 클릭하면, update ajax (yoyak_update_ajax.php) 호출
    - yoyak_contents_ajax.php : Ajax
    - yoyak_contents_db_qry.php
    - yoyak_contents_display.php
       . PHP functions : foreach(), mysqli_fetch_assoc(), mysqli_num_rows(), mysqli_query(), strpos(), str_repeat(), ...
    - yoyak_detail_items_display.php
    - yoyak_update_ajax.php : 항목요약 편집 submit에 따른 서버 처리 반환


ㅁ (간이지식관리 개발) ------------------------------------------------------

  ㅇ /test/knowledge [간이지식관리]
    - knowhow.php : 메인 파일
    - km_db_conn.php : db 접속
    - ajax 호출시 실행 및 그 결과 리턴 
       . ajax_content.php
       . ajax_page.php
       . ajax_sub_display.php
    - css_code.css
    - km_db_qry.php : db 쿼리 실행
    - 테스트편집자로 로그인/로그아웃 (PHP session 기능 활용)
       . km_editor_login.php, km_editor_login_ok.php, km_editor_logout.php
    - getpriority_proc.sql
    - 항목 관리 버튼 구현
       . item_button.php : 항목 관리 버튼
       . item_button.css : 항목 관리 버튼 스타일
       . item_button.js : 항목 관리 버튼용 제이쿼리
    - item_update.php : 항목 내용 업데이트
    - jq_editor.js
    - jq_user.js
    - km_jq_contents.js
    - km.php
    - km_top.php : 상단 헤더부
    - km_parm_chk.php : 전달 파라미터 점검
    - search.php
    - stat_function.php
    - stat_page.sql
    - user_function.php


[DB 구성] ================================================================

ㅁ (단편지식관리 DB 테이블)
  ㅇ 테이블 명 : km
  ㅇ 테이블 구조 
    - id int(11) auto_increment, parent int(11), chap int(11), time datetime, title varchar(80), abbr mediumtext
  ㅇ 계층 구조 상 노드 표현 : parent (부모), chap (순서화된 자식)
  ㅇ 데이터 접근 방식 : 재귀적 방식