본문 바로가기

Java

[java] java 코딩 컨벤션, 적절한 코딩 스타일

패키지 이름은 소문자로 구성

[package-lowercase]

패키지 이름은 소문자를 사용하여 작성한다. 단어별 구문을 위해 언더스코어(_)나 대문자를 섞지 않는다.

나쁜 예
package com.navercorp.apiGateway

package com.navercorp.api_gateway
좋은 예
package com.navercorp.apigateway

 

자바에서 상수인 것들

자바 상수는 private static final

 

DB 관련 상수

  • 파스칼 케이스에서, 중간에 _ 붙여서 하기
  • 예시) DB_URL

 

SQL 예약어는 상수로

- select,where 이런 건 대문자로 쓰기

- 테이블 명 바꿀 때, as 붙이지 않기

 

 

코딩 스타일 

  • 인터페이스는 public 자체를 안붙인다(인터페이스라는 것 자체가 다른 사람들이 사용해가도록 만들어놓은 것이기 때문)

 

  • 스프링에서 service interface, serviceImpl 으로 만들 필요가 없다(실제로 하나의 인터페이스에 2개의 구현체를 만들지를 않는다!)

 

  • sql 예약어는 상수 취급
    • select,where 이런 건 대문자로 쓰기
    • 테이블 명 바꿀 때, as 붙이지 않기

 

  • 매직 넘버(매직 리터럴. 정수가 '숫자'의 값을 가진게 아니라 '의미'를 가지고 있는 경우)는, 상수로 선언해두고 사용하기
  • if-else문은 if & return , return 으로 해결할 수 있으면 해결하기(if-else가 사람이 한번 더 생각하게 만드므로 조금 복잡함)
// 1. 매직넘버
private static final int All_CATEGORY = 0;

// 2. if-else
// 원래 코드
// 전달할 displayInfo 선언
List<DisplayInfo> displayInfos;
if (categoryId == All_CATEGORY) {
    displayInfos = displayInfoDao.selectAll();
} else {
    displayInfos = displayInfoDao.selectAllByCategoryId(categoryId);
}
return displayInfos;

// 수정 코드
if (categoryId == All_CATEGORY) {
    return displayInfoDao.selectAll();
}
return displayInfoDao.selectAllByCategoryId(categoryId);

 

  • 어떤 값을 리턴 받은 후, 함수의 리턴값으로 주는 경우에는 그 두 문장 합치기
// 원래 코드
List<Promotion> promotions = promotionDao.selectAll();
return promotions;

// 고친 것
return promotionDao.selectAll();

 

[컨트롤러, 서비스, dao 등의 메서드]

  • controller : 명사 + s 로 리턴받기
  • service : 명사 + List 로 리턴받기\

-okky의 댓글 발췌-

위에 더미님께서 좋은 자료 올려주셨네요 

몇가지 규칙이나 저만의 느낌?을 말하자면

메소드는 동사로 시작 클래스는 명사 인터페이스는 명사, 형용사 이정도 입니다.

위에서 컨트롤러 핸들러메소드로 쓰신 listBoard는 직접 쓰진 않는다 해도 원래의 컨벤션에 맞지는 않죠

 

저는 DAO에서는 select, insert같이 쿼리의 시작구문을 쓰구요 나머지 서비스나 컨트롤러 단에서는 get, add, register, remove, modify, change등의 유의어를 사용합니다.

'Java' 카테고리의 다른 글

[JAVA] [JSP] JSP 간단 정리  (0) 2022.09.16
HttpServletRequest 객체, HttpServletResponse 객체  (0) 2022.09.16
[Java] try-with-resource  (0) 2022.09.06
[Java] .bin 파일에 들어있는 것  (0) 2022.09.06
자바 프로그램 컴파일 및 실행  (0) 2022.09.05