사용자 도구

사이트 도구


사이드바

잡개발자:심플웍스:simpleworks

문서의 이전 판입니다!


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

  • 케밥 표기법
    • 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칸
  • 줄 끝 공백 제거

구문

<!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

  • jQuery
    • 선언자 $jq

CSS

  • z-index
    • 10 단위로 사용
    • 최상위 9999 사용 1)

Javadoc/JSDoc

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

Task Tags

  • TODO: 할 일
    • 예시) TODO: 기능 개선/추가 필요
  • FIXME: 수정이 필요한 부분
    • 예시) FIXME: 오류 수정 필요
  • NOTE: 설명
    • 예시) NOTE: Legacy Code
  • XXX 2)
  • BUG 3)

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 4)
    • DML
    • DQL
  • 사용자 계정
    • DML
    • DQL

암호화

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

버전 관리

Git Flow

  • master
  • develop
  • release
    • release/1.0.0 5)

.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

  • 최초 배포 6)
  • 기능 추가 및 안정화
    • 업데이트 내역
  • 기능 개선 및 안정화
    • 업데이트 내역
  • 버그 픽스 및 안정화
    • 업데이트 내역
  • 보안 패치 및 안정화
    • 업데이트 내역

개발 환경

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

기본 스키마

테이블

  • 로그인
  • 권한 관리
  • 코드 관리
    • 시스템 코드 7)
    • 사용자 코드
  • 첨부 파일
  • 로그인 성공/실패 로그
  • 시스템 예외/오류 로그

함수

  • fn_null_to_zero
  • fn_day_of_week
1)
최대 유횻값 2147483647
2) , 3)
미사용
4)
TRUNCATE 포함
5)
Semantic Versionin: https://semver.org/lang/ko/
6)
x.0.0 배포 시
7)
수정 불가