소스 파일명 : code_rule.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
(2019.3.12, 차재복, Cha Jae Bok, cjbword@gmail.com)

[S/W 개발/개선에 따른 상세 코딩 규칙 정리중 ...]

ㅁ 폴더 구분
  ㅇ /test/ : 현재 개선중인 모든 소스 파일 (개방)
  ㅇ /word/ : 구 버전 정보통신기술용어해설 (미개방,향후폐기예정)

ㅁ /test/ 하위 폴더별 용도
  ㅇ base_utils : 공통 유틸리티 
  ㅇ coding : 코딩 목록 구축
  ㅇ ex_run : 모듈 구현 항목
  ㅇ example : 구현 목록화
  ㅇ items : 분류 관리 (향후폐기예정 => yoyak으로 대체)
  ㅇ knowledge : 지식 관리 시험 버전 (향후폐기예정)
  ㅇ login : 로그인 관리 구현
  ㅇ open_src : 소스 개방
  ㅇ reform : 개선중 (특정검색,재구성,코딩이란? 등)
  ㅇ search : 정보통신용어해설 검색
  ㅇ view : 정보통신용어해설 보기
  ㅇ yoyak : 분류요약관리

ㅁ 세션 변수화
  ㅇ user_name
  ㅇ user_type : 사용자 레벨 구분 (4단계)
    - ('일반사용자 0' or '테스트편집자 1' or '정식편집자 2' or '종합관리자 3')
  ㅇ db_name : 주로, 'test'

ㅁ 변수명 규칙
  ㅇ 구별/식별 : no, id, ...
  ㅇ 순서 : seq, sub_seq, ...
  ㅇ 카운트 : i, j, cnt, ...

ㅁ 화면 구성
  ㅇ top section : 상단
  ㅇ body section : 본문
  ㅇ footer section : 하단

ㅁ 텍스트 문자열 관리
  ㅇ 줄바꿈 구분자 (10개)
    - 경우 1 : ( □ ○ ◇ - * ▣ ⊙ ◆ . .. )
    - 경우 2 : ( ㅁ ㅇ - * ~ . .. )

  ㅇ 텍스트 파일별 부분문자열 교체
    - db 테이블 구조 (5개 칼럼)
      * dict_no int(11) : 기술용어해설 no
      * word varchar(80) : 기술용어해설 용어명
      * link_no int(11) : 텍스트 파일 내 링크 번호
      * target varchar(20) : 파일명
      * type char(1) : 링크 타입
        ~ l : word link, i : image link, m : math link, t : table link
    - str 파일 또는 문자열
      * 추출 부분 문자열 구분자 : \^XXX^\ (XXX : 3자리 숫자 이내, 1~999)

    - 단어 인식 
      * (직전 가능 구분자) : `(space)` `[` `]` `(` `)` `/` `.` `:` `;` `,`
      * (직후 가능 구분자) : `(space)` `[` `]` `(` `)` `/` `.` `:` `;` `,`
      * (직후 불가 구분자) : 한글 (정규표현식 : /[\xA1-\xFE][\xA1-\xFE]/)

ㅁ 주석 기재 원칙
  ㅇ 우선, 소스 자체가 명확하게 의도를 드러나게 하고, 단락별 적정 주석 기재
  ㅇ 소스 코드 자체를 코딩 학습 자료화 도모 등

ㅁ html table ↔ db table
  ㅇ html table 
    - (array) [id, parent, title, depth, rspan, cspan]
  ㅇ db table
    - id int(11)
    - parent int(11)
    - title varchar(80)
    - depth int(2)
    - sub_seq int(11)
    - path2node varchar(100)
    - merged text
    - translated text

ㅁ MathJax
  ㅇ inlineMath : {#  #}
  ㅇ displayMath  : [#  #]

ㅁ reform 텍스트 파일 보이기 테이블 : code, manual
  ㅇ code 테이블 : 코드 테이블
  ㅇ manual 테이블 : 메뉴얼 테이블

□ 코드 테이블 (테이블명 : code, 칼럼수 : ?개) 
  ㅇ no int(11) : 코드 no (유일 번호)
  ㅇ date datetime : 수정 일시
  ㅇ id int(11) : 그룹(모듈) id
  ㅇ id_name varchar(50) : 그룹(모듈) 이름
  ㅇ code text : 코드 내용
  ㅇ type varchar(20) : 자연언어, Pseudocode, PHP, C, Java, Javascript, Python, 참고사항, 웹실행
  ㅇ run varchar(30) : (실행 대상 파일 url)