{{htmlmetatags>
metatag-description=(심플웍스, SimpleWorks)
metatag-og:description=(심플웍스, SimpleWorks)
}}
====== SimpleWorks ======
**심플 이즈 베스트**\\ \\
완벽한 설계란 더 추가할게 없을 때가 아니라, 더 뺄 것이 없을 때 이루어진다.
**사연 없는 코드는 없다.**\\ \\
모든 코드에는 사연이 있습니다.\\ 사연 없는 코드는 쓰레기입니다.
===== 디렉터리 구성 =====
==== Dynamic Web Project ====
@startmindmap
* htdocs
** resources
*** example
*** simpleworks
**** com
***** css
******_ reset.css
***** font
****** nanum
****** noto
***** img
****** btn
****** ico
**** lib
**** src
*****_ util.js
*****_ util.json
****_ initializer.js
****_ README.md
** WEB-INF
*** lib
*** src
**** simpleworks
***** util
******_ util.json
*****_ Initializer.java
*****_ README.md
*** tld
**** simpleworks
***** util
@endmindmap
==== Maven/Gradle Project ====
@startmindmap
* src
** main
*** java
**** simpleworks
***** util
******_ util.json
*****_ Initializer.java
*****_ README.md
*** resources
*** webapp
**** resources
***** example
***** simpleworks
****** com
******* css
********_ reset.css
******* font
******** nanum
******** noto
******* img
******** btn
******** ico
****** lib
****** src
*******_ util.js
*******_ util.json
******_ initializer.js
******_ README.md
**** WEB-INF
***** lib
***** tld
****** simpleworks
******* util
@endmindmap
===== 네이밍 규칙 =====
==== 공통 ====
^ 구분 ^ 규칙 ^ 비고 ^
| 접두사 | get | 값을 가져올 때 |
| ::: | set | 값을 설정할 때 |
| ::: | is | 일치 여부 |
| ::: | contains | 값 포함 여부 |
| ::: | has | 속성/상태 포함 여부 |
| ::: | to | 변환 |
| ::: | compare | 비교 |
| ::: | enc | 인코딩 |
| ::: | dec | 디코딩 |
| ::: | read | 읽기 |
| ::: | write | 쓰기 |
| ::: | init | (설정값) 초기화 |
| ::: | reset | (데이터) 초기화 |
| 접미사 | Add | 더하기/빼기 |
| ::: | Diff | 차이 |
| ::: | Disable | 비활성화 |
| ::: | Enable | 활성화 |
| 전치사 | To | 변환 |
| 반복문 | i | 1 Depth |
| ::: | c | 2 Depth |
| ::: | n | 3 Depth |
==== Java ====
^ 구분 ^ 규칙 ^ 비고 ^
| 접두사 | CONST_ | 상수 |
| ::: | sel | SELECT |
| ::: | ins | INSERT |
| ::: | upd | UPDATE |
| ::: | del | DELETE |
* 파스칼 표기법
* 클래스
* 카멜 표기법
* 메소드
* 스네이크 표기법
* 변수
* 어퍼 스네이크 표기법
* 상수
==== JavaScript ====
^ 구분 ^ 규칙 ^ 비고 ^
| 접두사 | CONST_ | 상수 |
| ::: | config_ | 설정 변수 |
| ::: | global_ | 전역 변수 |
| ::: | $ | DOM 요소 참조 변수 |
| ::: | _ | 내부 전용 변수 |
| ::: | fn | 함수 |
* 파스칼 표기법
* 클래스
* 카멜 표기법
* 메소드/함수
* 스네이크 표기법
* 변수
* 어퍼 스네이크 표기법
* 상수
==== CSS ====
* 케밥 표기법
* id
* class
* data-*
==== Database ====
^ 구분 ^ 규칙 ^ 비고 ^
| 접두사 | jd_ | 기본 테이블 |
| ::: | ex_ | 예시 테이블 |
| ::: | tn_ | 테이블 |
| ::: | vn_ | 뷰 |
| ::: | fn_ | 함수 |
| ::: | idx_ | 인덱스 |
| ::: | trg_ | 트리거 |
| ::: | proc_ | 프로시저 |
* 스네이크 표기법
* 테이블/컬럼
* 뷰
* 함수
* 인덱스
* 트리거
* 프로시저
* 길이 제한
* 최대 30바이트
==== 그 외 ====
^ 구분 ^ 규칙 ^ 비고 ^
| 페이징 | total_count | 전체 카운트 |
| ::: | total_page | 전체 페이지 |
| ::: | now_page | 현재 페이지 |
| ::: | first_page | 처음 페이지 |
| ::: | last_page | 마지막 페이지 |
| ::: | list_size | 리스트 사이즈 |
| ::: | block_size | 블록 사이즈 |
| ::: | block_begin_page | (블록) 시작 페이지 |
| ::: | block_end_page | (블록) 종료 페이지 |
| ::: | block_prev_page | (블록) 이전 페이지 |
| ::: | block_next_page | (블록) 다음 페이지 |
| 허용/차단 | allow_list | 얼라우 리스트 |
| ::: | deny_list | 디나이 리스트 |
| ::: | white_list | 화이트 리스트 |
| ::: | black_list | 블랙 리스트 |
===== 코딩 규칙 =====
==== 공통 ====
* 들여쓰기
* 탭 문자
* 크기 4칸
* 줄 끝 공백 제거
==== 구문 ====
==== JavaScript ====
* jQuery
* 선언자 $jq
==== CSS ====
* z-index
* 10 단위로 사용
* 최상위 9999 사용 ((최대 유횻값 2147483647))
==== Javadoc/JSDoc ====
/**
* 설명
*
* 여러줄 작성
*
*
* @param
* @return
*/
==== Task Tags ====
* TODO: 할 일
* 예시) TODO: 기능 개선/추가 필요
* FIXME: 수정이 필요한 부분
* 예시) FIXME: 오류 수정 필요
* NOTE: 설명
* 예시) NOTE: Legacy Code
* XXX ((미사용))
* BUG ((미사용))
===== API 규칙 =====
==== 상태 코드 ====
^ 코드 ^ 비고 ^
| 200 | 성공 |
| 403 | 권한 없음 |
| 404 | 데이터 없음 |
==== Response Body ====
^ Name ^ Type ^ Description ^ Required ^
| status | String | success: 성공\\ error: 오류\\ fail: 실패 | O |
| message | String | error message | |
| code | String | error code | |
| result | JSON | |
{
"status": "success",
"result": {
"data" : [
{
"key": "value"
}
],
"paging": {
"total_count": 20,
"total_page": 2,
"now_page": 1,
"list_size": 10,
"block_size": 10
}
}
}
{
"status": "success",
"result": {
"data" : [
{
"key": "value"
}
]
}
}
{
"status": "error",
"message": "error message",
"code": "error code"
}
{
"status": "fail"
}
==== REST API ====
FIXME
===== 보안 규칙 =====
==== 데이터베이스 계정 ====
* DBA 계정
* DDL ((TRUNCATE 포함))
* DML
* DQL
* 사용자 계정
* DML
* DQL
==== 암호화 ====
^ 구분 ^ 위치 ^ 문자열 ^ 솔트값 ^
| 단방향 | 데이터 | 비밀번호 해시값 | 기본키 |
| ::: | 파라미터 | 비밀번호 (해시 후 전송) | |
| 양방향 | 데이터 | 개인정보 | 설정값 |
| ::: | 파라미터 | 기본키 | 세션 ID |
* 데이터베이스 연결 정보
===== 버전 관리 =====
==== Git Flow ====
* master
* develop
* release
* release/1.0.0 ((Semantic Versionin: https://semver.org/lang/ko/))
==== .gitignore ====
# Windows
**/[Tt]humbs.db
**/[Dd]esktop.ini
# Mac
**/.DS_Store
# Eclipse
/.externalToolBuilders
/.settings
.classpath
.project
# IntelliJ & Android Studio
**/.idea/
# Visual Studio Code
**/.vscode/
# Build
/bin
/build
/target
/javadoc
**/WEB-INF/classes/
==== Release Notes ====
* 최초 배포 ((x.0.0 배포 시))
* 기능 추가 및 안정화
* 업데이트 내역
* 기능 개선 및 안정화
* 업데이트 내역
* 버그 픽스 및 안정화
* 업데이트 내역
* 보안 패치 및 안정화
* 업데이트 내역
===== 개발 환경 =====
==== IDE ====
* Eclipse
==== WAS ====
* Tomcat 9.0.x
==== DBMS ====
* MySQL 8.0.1 이상
* MariaDB 10.2.2 이상
* MSSQL 2008 이상
* Oracle 9i 이상
* Tibero 6 이상
* PostgreSQL 11.0 이상
==== etc. ====
* OpenJDK 1.8.0.161 이상
* HTML5
* JavaScript
* ECMAScript 2015 (ES6)
* jQuery 3.7.x
* jQuery UI 1.14.x
===== 기본 스키마 =====
==== 테이블 =====
* 로그인 ((로그인 시도 횟수 정책))
* 권한 관리
* 코드 관리
* 시스템 코드 ((수정 불가))
* 사용자 코드
* 로그 관리
* 로그인 성공/실패
* 시스템 예외/오류
* 첨부 파일
==== 함수 =====
* fn_null_to_zero
* fn_day_of_week
{{tag>"심플웍스" "SimpleWorks"}}