skip navigation

공통

  • - 주석은 모든 코드에 상세히 기술하는 것을 원칙으로 한다.

  • - 소스 코드는 불가피한 내용을 제외하고 원칙적으로 중복을 금지한다. (50 line 소스 중복 코드 금지)

  • - 소스 코드에서 사용하는 모든 단어는 용어사전의 내용을 기준으로 한다.

  • - 개발 및 테스트를 수행함에 있어 기능과 성능은 물론 보안에도 각별한 주의를 기울인다.

  • - File Encoding은 UTF-8을 기본으로 한다. 단, File의 크기가 특정 크기 이상으로 되는 경우 jsp가 정상적으로 동작하지 않는 등의 경우에 대해서는 예외적으로 euc-kr을 사용한다.

Java

01. 파일구조

Java Source 파일 구조
  • 1. Package Statements

  • 2. Import Statements
    - 사용되는 모든 클래스의 package 명을 기술 (* 사용금지)

  • 3. Class/ Interface Comments (JavaDoc)

  • 4. Class/ Interface Declaration

  • 5. Class/ Interface Comments (Logic) : 선택사항

  • 6. Class Variables Comments (JavaDoc)

  • 7. Class Variables
    - 상수 선언 (public -> protected -> default -> private)
    - static 변수 선언 (public -> protected -> default -> private
    - non-static 변수 선언 (public -> protected -> default -> private)

  • 8. Constructors & Methods Comments (JavaDoc)

  • 9. Constructors & Methods

Java Source 파일 구조 예

02. 선언

한 라인에 포함된 선언의 개수(Number Per Line)
한 라인에 포함된 선언의 개수 예, 규칙
규칙
String▨name▨=▨"";
int▨age▨=▨23;
type과 identifier 사이는 스페이스 1칸으로 설정
int age, nai = 23; 한 line에 2개 이상의 선언은 피함
int age, nai[] = 23; 동일한 line에 다른 type들을 두지 않음
초기화(Initialization)
초기화 예, 규칙
규칙
List list = new LinkedList();
List list = getList();
지역 변수는 선언된 곳에서 초기화를 기본으로 함, 할당 연산자의 왼편에만 오는 경우는 상관 없음
배치(Placement)
배치 예, 규칙
규칙
public void  doMethod() throws Exception {
    int int1 = 0; // beginning of method block

    ...
    if (condition) {
        int int2 = 0; // beginning of if block
        ...
    }
}
  • - 변수는 block의 시작 부분에 선언하는 것이 좋음

  • - loop의 index로 사용될 때는 예외

  • - 상위 block에서 선언된 지역 변수를 하위 block 내에서 선언 불가음

클래스와 인터페이스 선언(class and Interface Declarations)
클래스와 인터페이스 선언 예, 규칙
규칙
public▨class▨PooImpl▨extends▨Object▨{
}
public▨class▨PooImpl▨implements▨Poo▨{
}

public▨interface▨Poo▨{
}
  • - class / Interface 선언 규칙

public class Poo {

    /** POO_VAR :  */
    private static final String POO_VAR = "var";

    /** staticVar :  */
    public static String staticVar = "";

    /**
        * Poo Constructor
        */
    public Poo() {}

    /**
        * doSomething method
        * @param name
        */
    public void doSomething(String name) {
        Date date = new Date();
    }
}
  • - 시작 중괄호 ‘{’는 선언문과 같은 line의 끝에 선언

  • - 마감 중괄호 ‘}’는 새로운 line에 ‘{’가 포함된 문장의 시작과 같은 level에 맞추어 들여 씀

  • - 공백 바디 (blank body 또는 null statement) 일 경우에는 시작 중괄호 ‘{’바로 다음 위치에 선언 할 수 있음

03. 문장

단순문장(Simple Statements)
단순문장 예, 규칙
규칙
String▨name▨=▨"";
age++;
한 line에 한 문장만 포함
복합문장(Compound Statements)
  • - ‘{ statements }’와 같이 중괄호를 이용하여 여러 개의 문장을 포함하고 있는 문장을 말한다.

복합문장 예, 규칙
규칙
if (condition1) {
▨▨▨▨if (condition2) {
▨▨▨▨▨▨▨▨// Statements
▨▨▨▨}
}
  • - 복합문장 구조에서 inner문장은 outer 문장보다 한 레벨 들여쓰기

  • - 시작 중괄호 ‘{’는 선언문과 같은 line의 끝에 선언

  • - 마감 중괄호 ‘}’는 새로운 line에 ‘{’가 포함된 문장의 시작과 같은 level에 맞추어 들여 씀.

if (condition) {
    age++;
}
  • - if-else/for 문과 같은 제어 구조의 부분으로 사용될 때에는 하나의 문을 포함하고 있더라도 반드시 ‘{’ 와 ‘}’로 묶음

Import 문장(Import Statements)
Import 문장 예, 규칙
규칙
import com.vinylc.ClassName1;
import com.vinylc.ClassName2;
  • - 클래스 별로 import설정

return 문장(Return Statements)
return 문장 예, 규칙
규칙
return;
return▨list.size();
return▨((age▨>▨0)▨?▨age▨:▨0);
  • - 괄호 ‘(’, ‘)’를 사용하지 않는 것을 원칙

  • - return 값을 명확하게 하기 위한 경우에는 괄호 ‘(’, ‘)’를 사용

if 문장(If Statements)
if 문장 예, 규칙
규칙
if (condition1) {
▨▨▨▨// Statements
}

if▨(condition1)▨{
▨▨▨▨// Statements
}▨else▨(condition2)▨{
▨▨▨▨// Statements
}

if▨(condition1)▨{
▨▨▨▨// Statements
}▨else▨if▨(condition2)▨{
▨▨▨▨// Statements
}▨else▨{
▨▨▨▨// Statements
}
  • - 항상 괄호 ‘(’, ‘)’를 사용

  • - 시장 중괄호는 if문 다음 line에 위치

  • - 마감 중괄호‘{’는 시작 중괄호‘}’에 맞추어 들여쓰기

for 문장(For Statements)
for 문장 예, 규칙
규칙
for▨(initialization;▨condition;▨update)▨{
    // Statements
}
  • - loop 변수는 for문의 괄호(initialization) 안에서 선언되어야 함

while 문장(While Statements)
while 문장 예, 규칙
규칙
while▨(condition)▨{
▨▨▨▨// Statements
}
  • - while 문은 다음과 같이 사용

do-while 문장(Do-While Statements)
do-while 문장 예, 규칙
규칙
do▨{
▨▨▨▨// Statements
}▨while▨(condition);
  • - do-while 문은 다음과 같이 사용

switch 문장(Switch Statements)
do-while 문장 예, 규칙
규칙
switch▨(key)▨{
▨▨▨▨case▨value1:
▨▨▨▨▨▨▨▨// Statements
▨▨▨▨▨▨▨▨break;
▨
▨▨▨▨case value2:
▨▨▨▨▨▨▨▨// Statements
▨▨▨▨▨▨▨▨break;
▨
▨▨▨▨default:
▨▨▨▨▨▨▨▨// Statements
▨▨▨▨▨▨▨▨break;
}
  • - switch 문은 다음과 같이 사용

try-catch 문장(Try-Catch Statements)
try-catch 문장 예, 규칙
규칙
try▨{
▨▨▨▨// Statements
}▨catch▨(Exception e) {
▨▨▨▨// Statements
}▨finally▨{
▨▨▨▨// Statements
}
  • - try-catch 문은 다음과 같이 사용

JavaScript

01. 선언

한 라인에 포함된 선언의 개수(Number Per Line)
한 라인에 포함된 선언의 개수 예, 규칙
규칙
var▨age▨=▨0;
  • - type과 identifier 사이는 스페이스 1칸으로 설정

var age, nai = 0;
  • - 한 line에 2개 이상의 선언은 피한다.

var age, nai[] = 23;
  • - 동일한 line에 다른 type들을 두지 않는다.

초기화(Initialization)
초기화 예, 규칙
규칙
var▨age▨=▨0;
  • - 변수가 선언된 곳에서 초기화함을 원칙

var result;
function sumAge(age1, age2) {
    // Statements
    result = (age1 + age2);
    // Statements
}
  • - 변수의 초기 값이 종속적일 경우, 다른 곳에서 초기화 가능

배치(Placement)
배치 예, 규칙
규칙
function doFunction() {
    var int1 = 0; // beginning of function block
        ...
        if (condition) {
            var int2 = 0; // beginning of if block
            ...
    }
}
  • - 변수는 block의 시작 부분에 선언하는 것이 좋습니다.

  • - loop의 index로 사용될 때는 예외

  • - 상위 block에서 선언된 지역 변수를 하위 block 내에서 선언 불가

함수(Function)
함수 예, 규칙
규칙
function▨doFunction()▨{
    // Statements
}
  • - function 선언 규칙

  • - 시작 중괄호 ‘{’는 선언문과 같은 line의 끝에 선언

  • - 마감 중괄호 ‘}’는 새로운 line에 ‘{’가 포함된 문장의 시작과 같은 level에 맞추어 들여 씀

function▨doFunction()▨{}
  • - 공백 바디 (blank body 또는 null statement) 일 경우에는 시작 중괄호 ‘{’바로 다음 위치에 선언 할 수 있음

02. 문장

단순문장(Simple Statements)
단순문장 예, 규칙
규칙
var age = 0;
age++;
  • - 한 line에 한 문장만 포함

복합문장(Compound Statements)
  • - ‘{ statements }’와 같이 중괄호를 이용하여 여러 개의 문장을 포함하고 있는 문장을 말합니다

단순문장 예, 규칙
규칙
if (condition1) {
▨▨▨▨if (condition2) {
▨▨▨▨▨▨▨▨// Statements
▨▨▨▨}
}
  • - 복합문장 구조에서 inner문장은 outer 문장보다 한 레벨 들여쓰기

  • - 시작 중괄호 ‘{’는 선언문과 같은 line의 끝에 선언

  • - 마감 중괄호 ‘}’는 새로운 line에 ‘{’가 포함된 문장의 시작과 같은 level에 맞추어 들여 씀

if (condition) {
    age++;
}
  • - if-else/for 문과 같은 제어 구조의 부분으로 사용될 때에는 하나의 문을 포함하고 있더라도 반드시 ‘{’ 와 ‘}’로 묶음

return 문장(Return Statements)
return 문장 예, 규칙
규칙
return;
return true;
return (size ? size : defualtsize);
  • - 괄호 ‘(’, ‘)’를 사용하지 않는 것을 원칙

  • - return 값을 명확하게 하기 위한 경우에는 괄호 ‘(’, ‘)’를 사용

if 문장(If Statements)
if 문장 예, 규칙
규칙
if (condition1) {
▨▨▨▨// Statements
}

if▨(condition1)▨{
▨▨▨▨// Statements
}▨else▨(condition2)▨{
▨▨▨▨// Statements
}

if▨(condition1)▨{
▨▨▨▨// Statements
}▨else▨if▨(condition2)▨{
▨▨▨▨// Statements
}▨else▨{
▨▨▨▨// Statements
}
  • - 항상 괄호 ‘(’, ‘)’를 사용

  • - 시장 중괄호는 if문 다음 line에 위치

  • - 마감 중괄호‘{’는 시작 중괄호‘}’에 맞추어 들여쓰기

for 문장(For Statements)
for 문장 예, 규칙
규칙
for▨(initialization;▨condition;▨update)▨{
    // Statements
}
  • - loop 변수는 for문의 괄호(initialization) 안에서 선언되어야 함

for-in 문장(For-In Statements)
for-in 문장 예, 규칙
규칙
for (iterable_element▨in▨iterable) {

}
  • - for-in 문은 다음과 같이 사용

while 문장(While Statements)
for-in 문장 예, 규칙
규칙
while▨(condition)▨{
▨▨▨▨// Statements
}
  • - while 문은 다음과 같이 사용

do-while 문장(Do-While Statements)
do-while 문장 예, 규칙
규칙
do▨{
▨▨▨▨// Statements
}▨while▨(condition);
  • - do-while 문은 다음과 같이 사용

switch 문장(Switch Statements)
switch 문장 예, 규칙
규칙
switch▨(key)▨{
▨▨▨▨case▨value1:
▨▨▨▨▨▨▨▨// Statements
▨▨▨▨▨▨▨▨break;
▨
▨▨▨▨case value2:
▨▨▨▨▨▨▨▨// Statements
▨▨▨▨▨▨▨▨break;
▨
▨▨▨▨default:
▨▨▨▨▨▨▨▨// Statements
▨▨▨▨▨▨▨▨break;
}
  • - switch 문은 다음과 같이 사용

try-catch 문장 (Try-Catch Statements)
try-catch 문장 예, 규칙
규칙
try▨{
▨▨▨▨// Statements
}▨catch▨(e) {
▨▨▨▨// Statements
}
  • - try-catch 문은 다음과 같이 사용

JSP/HTML

  • - jsp 내에서 jsp include는 원칙적으로 사용하지 않는다.
    단, 공통 jsp파일(예, top, bottom 등)을 include 하는 경우에는 허용한다.

  • - 다른 jsp에서 include하는 jsp는 공통 jsp(단위시스템 공통 com경로에 있는jsp)로 한정한다.

  • - 기본 스크립트 사용을 지양하며, JSTL tag library를 사용하도록 한다.

  • - 스타일은 css를 사용한다.

  • - 폼을 서버로 전송할 경우 get방식은 사용하지 않고, post방식을 사용한다.

  • - 해당 jsp file에서만 사용하는 java script를 제외하고는 java script 소스를 jsp에 작성하지 않는다. (별도의 js파일에 java script를 작성하여 다른 jsp file과 공유하여 소스 중복을 최소화 하기 위함)

  • - 웹화면은 웹표준 및 접근성 지침을 준수하도록 한다.)

SQL

  • - SELECT, FROM, WHERE, AND, OR, NOW, NULL 등 키워드, 함수등은 대문자로 통일한다.

  • - 테이블 명이나 컬럼명 등은 소문자로 통일한다.

  • - WHERE절의 AND는 줄바꿈 처리한다.

  • - 필드는 하나씩 줄바꿈 처리하며 콤마 띄어쓰기로 사용한다.

SQL 예, 규칙
규칙
SELECT /*▨ProgramID=selectSample▨*/
▨▨▨▨idx
▨▨▨▨,▨user_id
▨▨▨▨,▨pwd
FROM
▨▨▨▨member
WHERE
▨▨▨▨user_id=’haha23h’
▨▨▨▨AND idx=’18’
  • - select 문은 다음과 같이 사용

INSERT /*▨ProgramID=insertSample▨*/
INTO
▨▨▨▨member▨(
▨▨▨▨▨▨▨▨idx
▨▨▨▨▨▨▨▨,▨user_id
▨▨▨▨▨▨▨▨,▨pwd
▨▨▨▨)
VALUES(
▨▨▨▨▨▨▨▨#{idx}#
▨▨▨▨▨▨▨▨,▨#{user_id}#
▨▨▨▨▨▨▨▨,▨#{pwd}#
)
  • - insert 문은 다음과 같이 사용