1. 개발 표준 정의서 - wooncloud/RecruitSystem GitHub Wiki
프로젝트 수행 과정에서 표준화된 개발 방법을 제정하기 위해, 개발 표준 가이드를 제시하여 프로그래밍 개발 및 품질의 일관성을 유지한다.
코딩 규칙을 정의하여 개발에 적용하여 코드의 가독성과 재사용성을 증가시키고, 개발 기간을 단축시켜 비용절감 효과를 얻을 수 있도록 한다.
관리자 측면에서 코드 유지보수를 용이하게 하고, 사용자 측면에서 일관된 기능과 사용성을 제공한다.
- 개발 환경
- Eclipse IDE for Enterprise Java Developers 2020-12-R Version
- Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
- Apache Tomcat 8.5(web module 3.1)
- java jdk Amazon Corretto 11
- 버전관리 계획
- 형상관리는 git을 이용하여 단위 개발 및 version 관리하며 서버는 github 서버를 이용한다.
- 형상관리 서버의 관리 및 작업 내용 반영은 최종 개발 책임자가 작업한다.
- 데이터베이스 접근 계획
- 모든 개발자는 하나의 데이터베이스 운영 서버를 공유하여 사용한다.
- 데이터베이스의 접근은 WAS의 자체 Database Pooling 모듈을 사용하며, DB 리소스는 독립 적으로 획득할 수 없다.
- Pascal Case
- 본 프로젝트에서 클래스명, 파일명, Web 파일명에 이 규칙을 사용한다.
- Camel Case
- 본 프로젝트에서 JAVA, JS 의 메서드명, 변수명, HTML의 id 속성에 이 규칙을 사용한다.
- Upper Case
- 본 프로젝트에서 static Class, Constants(상수)에 이 규칙을 사용한다.
- 본 프로젝트 데이터베이스에 모두 이 규칙을 사용한다.
- Kebab Case
-
- 하이픈으로 단어를 연결하는 표기법이다.
- 예) header-container-div, section-center
- 본 프로젝트에서 HTML, CSS의 class 속성에 이 표기법을 사용함.
-
패키지 명은 3자리 이상으로 정의한다.
- com.sng.gdrs
- com.sng.gdrs.dto
- com.sng.gdrs.comm
- com.sng.gdrs.model
- 컨트롤러 파일 정의
- dto 파일 정의
- 공통, 유틸 파일 정의
- dao 파일 정의
- 인터페이스는 식별자 앞에 I를 붙인다.
- Ex) IMemberDao, IBoardService
- DTO는 식별자 접미어로 Dto를 붙인다.
- Ex) MemberDto, BoardDto
- DAO는 식별자 접미어로 Dao를 붙인다.
- Ex) MemberDao, BoardDao
- 테이블
- 필드
- 제약조건
- PK는 테이블명 + "_PK"를 붙인다.
ANSWERBOARD_PK
- FK는 테이블명 + "_FK"를 붙이고, 그 순서에 따라 뒤에 번호를 매긴다.
CAREER_FK1
,CAREER_FK2
- PK는 테이블명 + "_PK"를 붙인다.
- 시퀀스
- "테이블명_컬럼명_SEQ" 방식을 사용함.
MEMBER_IDX_SEQ
- 파일은 사용되는 기능명으로 명명한다.
- 예약어를 사용하지 않는다.
CSS 명명법은 BEM 방식과 OOCSS 방식을 혼용하면서 사용함.
-
BEM
- 개발, 디버깅, 유지보수를 위하여 가능한 한 명확하게 네이밍하는 것이 목표
- 소문자, 숫자만을 조합
- 조합은 하이픈(-)으로 연결하여 작명
- 모든것이 클래스이고 중첩된 것은 없다.
- 블록(block)
- 형태(red, big)가 아닌 목적(menu, button)에맞게 결정해야 한다. (header,menu,search-form...)
- 환경에 영향을 받지 않아야한다.(여백, 위치 설정x)
- 태그, id선택자로 사용하면 안된다.
-
OOCSS(Object Oriented CSS) 객체지향 CSS
-
구조와 모양으로 분리
-
반복적인 것은 별도로 분리
-
콘테이너와 콘텐츠의 분리(의존적인 스타일 사용x) .title -> h2, h2.title
-
네이밍
- 가능한 짧고 간결하게 작성
- 동작과 형태가 예상 가능하도록 명확히 작성
- 형태보다는 목적의 의미를 작성
- 구체적이지 않고 일반적으로 사용가능 하도록 작성
<!-- 기존 방법 --> <a class="facebook_btn">Facebook</a> <a class="twitter_btn">Twitter</a> <!-- OOCSS 방법 --> <a class="btn facebook">Facebook</a> <a class="btn twitter">Twitter</a>
-
- AdminController : 관리자가 보는 페이지(Applicant Confirmation)
- ApplyController : 지원하기(Apply), 지원결과보기(Apply results)
- ErrorController : 에러페이지
- RecruitController : 채용공고 관련 페이지 (Recruitment Announcement)
- UserController : 회원 관리 페이지 (User Management)
- admin : 관리자가 보는 페이지(Applicant Confirmation)
- apply : 지원하기(Apply), 지원결과보기(Apply results)
- error : 에러페이지
- recruit : 채용공고 관련 페이지 (Recruitment Announcement)
- user : 회원 관리 페이지 (User Management)
- admin.css : 관리자가 보는 페이지(Applicant Confirmation)
- apply.css : 지원하기(Apply), 지원결과보기(Apply results)
- error.css : 에러페이지
- recruit.css : 채용공고 관련 페이지 (Recruitment Announcement)
- user.css : 회원 관리 페이지 (User Management)
- admin.js : 관리자가 보는 페이지(Applicant Confirmation)
- apply.js : 지원하기(Apply), 지원결과보기(Apply results)
- error.js : 에러페이지
- recruit.js : 채용공고 관련 페이지 (Recruitment Announcement)
- user.js : 회원 관리 페이지 (User Management)
- 모두 같은 패키지 안에 포함.
- CSS Style Tag는 Header 태그 안에 있어야 하며, Title Tag 위에 정의한다.
- 자바스크립트 Script 태그 중 src로 파일을 불러오는 Linked 방식은 Header 안에 정의하며, title tag 위에 정의한다.
- 자바스크립트 Script 태그 중 html 태그에 작성하는 embeded 방식은 최하단