ejyoo's 개발 노트

[개발 관련 메모][MyBatis 기준으로 작성함] 본문

개발 환경 구성

[개발 관련 메모][MyBatis 기준으로 작성함]

ejyoovV 2021. 5. 19. 14:55

참고

디스코드

 

 

Class, Class Instance 명명규칙

MenuDAO -> menuDAO

MenuService -> menuService

MenuVO -> menu

 

Method 이름 규칙

DAO -> 어떤 쿼리를 위한 DAO 메서드인가? [select, insert, update, delete]

Service -> 어떤 정보를 가져오기 위한 Service 메서드인가? [get, insert, register, modify, remove]

 

DB 구성 시 규칙

1. 상세 설명 표기할 것

 

SQL Query 작성 규칙

1. 쿼리는 대문자로 기술

2. SELECT 문 작성 시 '*'를 쓰지 않고 필요한 컬럼을 모두 작성

3. SELECT 문 작성 시 출력 할 컬럼의 Alias를 카멜 표기법으로 작성

4. INSERT, UPDATE, DELETE, SELECT ALL (Dynamic Query) [List, VO] , SELECT ONE 쿼리 기본으로 구성할 것 (총 6개)

5. SELECT 내 WHERE 조건 포함하는 경우 쿼리 ID에 무엇을 위한 SELECT 문인지 기술

<select id="selectMemberById" parameterType="str" resultType="member">
	SELECT 
		USER_NO userNo
		,USER_ID userId
		,USER_PW userPw
		,USER_PHONE userPhone
		,USER_EMAIL userEmail
	FROM MEMBER 
    WHERE USER_ID = #{userId}
</select>

 

VO 작성 시 규칙

1. VO는 DB와 동일하게 구성(DB 컬럼 복사하여 작성)

2. DB 컬럼에 '_'가 존재하는 경우 VO는 카멜표기법으로 작성 (추후 쿼리 구성 시 Alias 필수)

https://textedit.tools/camelcase

 

Text to camelCase Online Tool

Text to camelCase Online Conterter Convert your text to camel case: Simple TEXT_here => simpleTextHere Transform all your text characters to camel case. Camel Case also known as camel caps or more formally as medial capitals. Just paste your text to the to

textedit.tools

 

단위 테스트 규칙

1. Conntection 연결 단위테스트 수행

2. 작성한 모든 쿼리에 대해 단위테스트 수행

3. DAO 에서 쿼리를 호출한 결과 단위테스트 수행

4. Service에서 MockDAO를 만들어 쿼리를 호출하지 않고 임시 데이터 세팅 후 Service에서 호출하여 DAO 결과 단위테스트 수행

 

예외 처리

1. 예외처리는 한 기능당 발생할 수 있는 경우의 수를 따져서 미리 정할 것.

2. DAO 에서는 DB 처리만. 발생하는 SQLException 은 throws 설정. (필요 시 Exception을 throw)

  - Service에서 발생하는 각 Exception에 대한 예외처리 수행할 것임.

4. Service는 모든 예외에 대해 출력한다.

5. Handler에서 모든 예외를 throw한다. (FrontServlet에서 예외발생 시 500에러 처리)

6. FrontServlet이 Exception을 catch하여 에러코드를 생성한다.

  - 에러 코드 발생 시 tomcat은 예외 코드를 확인한 뒤 에러페이지를 출력한다.

 

로그 규칙

1. log4j 사용할 것.

2. Sysout.out 대신 사용할 것.

3. 예외처리 메시지는 Handler에서만 사용할 것(DAO,Service 는 발생 예외 위치 찍은 뒤 throw)

private static final Logger EXCEPTION_LOGGER = Logger.getLogger(MemberDAOImpl.class);
private static final Logger INFO_LOGGER = Logger.getLogger(MemberDAOImpl.class);

 

 

착수단계 준비 사항

1. 메뉴 나올 시 URI에 대한 정의 되어있어야 함.

2. 버튼 하나하나에 대한 이벤트를 정의할 수 있어야 함.