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
페이징 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 (블록) 다음 페이지

Java

구분 규칙 비고
접두사 CONST_ 상수
sel SELECT
ins INSERT
upd UPDATE
del DELETE

JavaScript

구분 규칙 비고
접두사 CONST_ 상수
config_ 설정 변수
global_ 전역 변수
$ DOM 요소 참조 변수
_ 내부 전용 변수
fn 함수

CSS

Database

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

코딩 규칙

공통

구문

<!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" defer></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

.editorconfig

root = true

[*]
charset = utf-8
indent_style = tab
indent_size = 4
tab_width = 4
trim_trailing_whitespace = true
insert_final_newline = true
end_of_line = lf

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 Branch

Commit Message

type 비고
FIXME FIXME

.gitignore

# Windows
**/[Tt]humbs.db
**/[Dd]esktop.ini

# Mac
**/.DS_Store

# Eclipse
/.externalToolBuilders
/.settings
.classpath
.factorypath
.project

# IntelliJ & Android Studio
**/.idea/

# Visual Studio Code
**/.vscode/

# Build
/bin
/build
/target
/javadoc
**/WEB-INF/classes/

Release Notes

개발 환경

IDE

WAS

DBMS

etc.

기본 스키마

테이블

함수

함수명 매개변수 리턴 비고
fn_null_to_zero val 변환할 값 8) 0 null → 0
fn_masking val 변환할 값
opt 옵션
- nm
- id
- email
- phone
- rrn
- brn
- crn
- ip 9)
마스킹된 값 FIXME
fn_day_of_week dt 날짜
fmt 포맷
- kor 10)
- kor_short 11)
- eng 12)
- eng_short 13)
- num 14)
요일 요일
1)
최대 유횻값 2147483647
2)
TRUNCATE 포함
3)
Semantic Versionin: https://semver.org/lang/ko/
4)
x.0.0 배포 시
5)
17, 21 이상 별도 프로젝트
6)
로그인 시도 횟수 정책
7)
수정 불가
8)
숫자형 컬럼
9)
v4, v6
10)
일요일, 월요일, 화요일, 수요일, 목요일, 금요일, 토요일
11)
일, 월, 화, 수, 목, 금, 토
12)
Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
13)
Sun, Mon, Tue, Wed, Thu, Fri, Sat
14)
1, 2, 3, 4, 5, 6, 7