MINU Framework v3 - Developer Guide Help

개발 표준 및 규칙

코딩 컨벤션

  • 네이밍 규칙

    • 클래스: PascalCase

    • 메서드/변수: camelCase

  • 코드 포맷팅

    • 들여쓰기: 4칸

    • 최대 줄 길이: 120자

JAVA 코딩 컨벤션

1. 패키지 네이밍

  • 모든 패키지명은 소문자로 작성

  • 패키지명은 의미있는 약어 사용 가능 (예: sys, hrm, wfw 등)

  • 도메인별 패키지는 기능을 대표하는 명사 사용

2. 클래스 네이밍

2.1 기본 규칙

  • UpperCamelCase 사용

  • 명사로 시작

  • 의미있는 이름 사용

2.2 레이어별 접미사

- Entity: 접미사 없음 (예: CommonCode) - VO: VO 접미사 (예: CommonCodeVO) - Service: Service 접미사 (예: CommonCodeService) - ServiceImpl: ServiceImpl 접미사 - Repository: Repo 접미사 (예: CommonCodeRepo) - Controller: Controller 접미사 (예: CommonCodeController)

3. 필드 네이밍

3.1 기본 규칙

  • lowerCamelCase 사용

  • 의미있는 이름 사용

  • 약어 사용 시 일관성 유지

3.2 특수 필드 네이밍

// 상수 private static final String BASE_PACKAGE = "io.minu.damda"; // Boolean 타입 private String useYn; // Y/N 값 사용 private boolean isActive; // is 접두사 사용 // 날짜/시간 private LocalDateTime createdAt; // ~At 접미사 private LocalDate startDate; // ~Date 접미사

4. 메소드 네이밍

4.1 기본 규칙

  • lowerCamelCase 사용

  • 의미있는 이름 사용

4.2 용도별 접두사

// 조회 findById() findAll() findOne() // 생성 save() // 수정 update() // 삭제 delete()

5. 코드 포맷팅

5.1 들여쓰기

  • 4칸 공백 사용

  • 탭 문자 사용 금지

5.2 중괄호

// 올바른 예 if (condition) { statement; } // 잘못된 예 if (condition) { statement; }

5.3 공백

  • 연산자 전후 공백 추가

  • 콤마 뒤 공백 추가

  • 메소드 파라미터 콤마 뒤 공백 추가

JS 코딩컨벤션

파일 구조

1.1 파일 네이밍

  • 소문자와 하이픈(-)을 사용하여 작성

  • 페이지/기능을 대표하는 의미있는 이름 사용

  • 예: sys0101.js, hrm0101.js

1.2 파일 구조

// 상수 선언 const apiUrl = '/api/sys'; // DOM Ready 이벤트 $(document).ready(() => { // 초기화 함수 호출 initView(); initGrid(); // 이벤트 바인딩 bindEvents(); }); // 함수 구현 const initView = () => { // 구현 };

변수 네이밍

2.1 기본 규칙

  • camelCase 사용

  • 의미있는 이름 사용

  • jQuery 객체는 $ 접두사 사용

2.2 네이밍 예시

// 상수 const API_URL = '/api'; const MAX_COUNT = 100; // 변수 let userGrid; let isActive = true; // jQuery 객체 let $userForm = $('#userForm'); let $userGrid = $('#userGrid');

3. 함수 네이밍

3.1 기본 규칙

  • camelCase 사용

  • 동사로 시작

  • 기능을 명확히 표현

3.2 용도별 접두사

// 초기화 initGrid() initView() initialize() // 이벤트 핸들러 onClick() onChange() // 데이터 조회/처리 findAll()

4. 코드 포맷팅

4.1 들여쓰기

  • 2칸 공백 사용

  • 탭 문자 사용 금지

4.2 중괄호

// 올바른 예 if (condition) { statement; } // 잘못된 예 if (condition) { statement; }

4.3 공백

  • 연산자 전후 공백 추가

  • 콤마 뒤 공백 추가

  • 함수 파라미터 콤마 뒤 공백 추가

5. ES6+ 문법 사용

5.1 화살표 함수

// 권장 const func = () => { // 구현 }; // 지양 function func() { // 구현 }

6. jQuery 사용

6.1 선택자

// ID 선택자 const $elementId = $('#elementId');

6.2 이벤트 바인딩

// 권장 $('#btn').on('click', evt => { // 구현 }); // 지양 $('#btn').click(function() { // 구현 });

7. 기타 함수

7.1 Grid

// 그리드 초기화 Grid.init($grid, options, params); // 그리드 업데이트 Grid.update({ grid: grid, params: params });
// 검색바 초기화 SearchBar.init($grid, searchBarId, searchBtnId); // 이벤트 바인딩 SearchBar.onChange($grid, searchBarId, type, fields);

8. Intellij 설정

8.1 funcion chain에 indent를 앞쪽으로 정렬하기 위한 설정

Untitled.png
  • Settings > Editor > Code Style > JavaScirpt > Tabs and Indents > indent chained method 체크 해제

    Untitled 1.png

8.2 Empty arrow function 개행 안되도록 하기 위한 설정

  • Settings > Editor > Code Style > JavaScirpt > Wrapping and Braces > Keep when reformatting > 체크 On Untitled 2.png

    Untitled 3.png

보안 가이드라인

  • 인증/인가

    • Spring Security 설정

    • JWT 토큰 활용

  • 보안 취약점

    • SQL 인젝션 방지

    • XSS 대응

성능 최적화

  • 쿼리 최적화

    • 인덱스 활용

    • N+1 문제 해결

  • 캐시 활용

    • Spring Cache

    • Redis 활용

Last modified: 17 March 2025