SimpleWorks

심플 이즈 베스트

완벽한 설계란 더 추가할게 없을 때가 아니라, 더 뺄 것이 없을 때 이루어진다.
사연 없는 코드는 없다.

모든 코드에는 사연이 있습니다.
사연 없는 코드는 쓰레기입니다.

디렉터리 구성

Dynamic Web Project

htdocsresourcesexamplesimpleworkscomcssreset.cssfontnanumnotoimgbtnicolibsrcutil.jsutil.jsoninitializer.jsREADME.mdWEB-INFlibsrcsimpleworksutilutil.jsonInitializer.javaREADME.mdtldsimpleworksutil

Maven/Gradle Project

srcmainjavasimpleworksutilutil.jsonInitializer.javaREADME.mdresourceswebappresourcesexamplesimpleworkscomcssreset.cssfontnanumnotoimgbtnicolibsrcutil.jsutil.jsoninitializer.jsREADME.mdWEB-INFlibtldsimpleworksutil

네이밍 규칙

공통

구분 규칙 비고
접두사 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

Database

구분 규칙 비고
접두사 jd_ 기본 테이블
ex_ 예시 테이블
tn_ 테이블
vn_
fn_ 함수
idx_ 인덱스
trg_ 트리거
proc_ 프로시저

그 외

구분 규칙 비고
페이징 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 블랙 리스트

코딩 규칙

공통

구문

<!DOCTYPE html>
<html lang="ko">
<head>
	<title></title>
	<meta charset="UTF-8">
	<meta http-equiv="Expires" content="-1">
	<meta http-equiv="Pragma" content="no-cache">
	<meta http-equiv="Cache-Control" content="no-cache">
	<script src="*.js"></script>
	<link rel="stylesheet" href="*.css">
	<style>
		/*
			CSS
		*/
	</style>
</head>

<body>
	<script>
		/*
			JavaScript
		*/
	</script>
</body>
</html>

JavaScript

CSS

Javadoc/JSDoc

/**
 * 설명
 * <pre>
 * 여러줄 작성
 * </pre>
 *
 * @param
 * @return
 */

Task Tags

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

보안 규칙

데이터베이스 계정

암호화

구분 위치 문자열 솔트값
단방향 데이터 비밀번호 해시값 기본키
파라미터 비밀번호 (해시 후 전송)
양방향 데이터 개인정보 설정값
파라미터 기본키 세션 ID

버전 관리

Git Flow

.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

개발 환경

IDE

WAS

DBMS

etc.

기본 스키마

테이블

함수

1)
최대 유횻값 2147483647
2) , 3)
미사용
4)
TRUNCATE 포함
5)
Semantic Versionin: https://semver.org/lang/ko/
6)
x.0.0 배포 시
7)
로그인 시도 횟수 정책
8)
수정 불가