코딩 컨벤션 (coding convention) 이란?
특정 프로그래밍 언어로 코드를 작성할 때 따르는 스타일 가이드 또는 규칙 세트이다. 이는 변수명, 메서드명, 클래스명의 네이밍 규칙, 들여쓰기, 주석 작성 방법, 파일 구조, 코드 정렬 방식 등 프로그램의 가독성, 유지보수성, 일관성을 향상시키기 위한 방법론을 포함한다.
코딩 컨벤션 정의
- 정적 파일 (CSS, XML, JS)
- 규칙: 소문자 사용, 단어 간 구분은 스네이크 케이스(_)로 한다.
- 예시: style_sheet.css, config_file.xml, main_script.js
- JSP 파일
- 규칙: 카멜 케이스(CamelCase)를 사용하여 첫 글자는 소문자로 시작한다.
- 예시: home.jsp, accountPage.jsp
- 자바 파일 (클래스)
- 규칙: 파스칼 케이스(PascalCase)를 사용하여 각 단어의 첫 글자는 대문자로 시작한다.
- 예시: HomeController.java, AccountService.java
- HTML id, name 속성
- 규칙: 카멜 케이스를 사용하여 첫 글자는 소문자로 시작한다.
- 예시: <input id="userName" name="userName"/>
- CSS 클래스
- 규칙: 소문자 사용, 단어 간 구분은 하이픈(-)(-)**``**으로 합니다. 외부 라이브러리와의 충돌 방지를 위해 접두사를 사용하는 것을 권장한다.
- 예시: .btn--primary, .nav--item
- URL 주소 설계
- 규칙: 모두 소문자 사용, 단어 간 구분은 하이픈(-)**``**으로 한다.
- 예시: /user-profile, /get-account-details
- 데이터베이스 테이블
- 규칙: 소문자 사용, 단어 간 구분은 스네이크 케이스로 한다.
- 예시: user_account, transaction_history
- 함수명 (서비스 레이어)
- 규칙: 카멜 케이스를 사용하여 첫 글자는 소문자로 시작합니다. 함수가 수행하는 동작과 객체를 명확하게 표현한다.
- 예시: saveAccountDetails(Account account), findUserById(Long id)
💡 서비스 레이어
서비스 레이어에서의 메서드 네이밍은 코드의 가독성과 유지보수성에 큰 영향을 미친다. 명확하고 일관된 네이밍 컨벤션을 사용함으로써, 코드를 더 쉽게 이해하고, 다른 개발자들이 코드와 상호 작용할 때 발생할 수 있는 혼란을 최소화할 수 있다. 아래는 서비스 레이어에서 널리 사용되는 네이밍 컨벤션 규칙이다.
CRUD 연산
Create: 새로운 엔티티를 생성하는 메서드는 create로 시작한다.
예: createUser(User user)
Read: 엔티티를 조회하는 메서드는 read, find, get 등으로 시작할 수 있다. 단순 조회뿐만 아니라 조건에 따른 검색을 포함한다.
예: readUser(Long id), findUserByUsername(String username), getUserDetails(Long userId)
Update: 엔티티를 수정하는 메서드는 update로 시작한다.
예: updateUser(User user) Delete: 엔티티를 삭제하는 메서드는 delete로 시작한다.
예: deleteUser(Long id)
조회 연산
findBy: 특정 조건을 만족하는 엔티티를 찾을 때 사용한다.
예: findByUsername(String username)
findAllBy: 주어진 조건을 만족하는 모든 엔티티를 찾을 때 사용한다.
예: findAllByStatus(String status) countBy: 특정 조건을 만족하는 엔티티의 수를 계산할 때 사용한다.
예: countByStatus(String status)
명확한 도메인 객체 처리 표현
메서드 이름은 처리하는 특정 도메인 객체를 명확하게 나타내야 한다. 이는 메서드의 목적이나 수행하는 작업을 직관적으로 이해할 수 있게 해준다.
예: getOrderListByUserId(Long userId), updateUserProfilePicture(User user, Image picture)
구글 코딩 컨벤션 사례 살펴 보기
728x90
'Spring boot > Bank App 만들기(deployment)' 카테고리의 다른 글
Bank App 만들기 ( deployment ) - 화면 구현1 ( 템플릿 가져오기 ) (0) | 2024.08.07 |
---|---|
Bank App 만들기 ( deployment ) - 모델링( Modeling ) (0) | 2024.08.07 |
Bank App 만들기 ( deployment ) - 패키지 설정 (0) | 2024.08.05 |
Bank App 만들기 ( deployment ) - 디자인 시안 확인 (0) | 2024.08.05 |
Bank App 만들기 ( deployment ) - yml 파일 설정하기 (0) | 2024.08.05 |