☕️ 클린 코드; 네이밍(Clean Code; Naming)

 

Overview

프로그래밍을 처음 배울 땐 풀고자하는 문제에 많이 집중했던 것 같습니다. 그러나 협업을 하게 되면서 Clean Code의 중요성을 많이 느끼고 있습니다.

이름(Name)은 어디에나 있습니다. 우리가 사용하는 Function, Class, File, Component, Package 등은 모두 이름을 가지고 있습니다. 그 이름을 짓는 작업을 Naming(명명)이라 합니다.

Naming은 중요하고도 일상적인 작업입니다. 모든 구성원들이 이해하기 좋고 적용하기 쉬운 규칙을 만들어 프로젝트에 활용해야 합니다.

그 규칙은 코드를 작성한 의도와 목적을 분명히 나타낼 수 있어야 합니다. 막힘없이 술술 읽혀지는 코드가 될 수 있도록 말입니다. 잘 읽혀지는 코드는 이해하는 시간을 최소화하여 개발 속도 향상에 기여합니다.

Case Style

PascalCasing

파스칼 케이스는 합성어를 구성하는 각 단어의 첫 글자를 대문자로 표기하는 방식입니다.

public class JavaNamingConvensions { ... }

camelCasing

카멜 케이스는 합성어를 구성하는 첫번째 단어의 첫 글자를 소문자로 표기하고, 이후 이어지는 단어들에 대해서는 첫 글자를 대문자로 표기합니다.

public String toUpperCase() { ... }

snake_casing

스네이크 케이스는 합성어를 구성하는 각 단어를 _(Underscores)로 구분합니다는

// java.lang.Integer
public static int MAX_VALUE = 2147483646;

Naming Convensions in Java

Construct Convention Examples
Class PascalCase MyClass, Department
Interface PascalCase Serializable, Runnable
Method camelCase toString(), toUpperCase()
Variable camelCase numList, strList
Package snake_case(all lower case) java.lang, java.util
Constant SNAKE_CASE(ALL UPPER CASE) MAX_VALUE, MIN_VALUE

Method prefix

  • create: 새로운 객체를 생성한 뒤 반환하는 메소드에 사용합니다.
  • find: 데이터를 조회하는 메소드에 사용합니다.
  • get/set: 멤버 변수에 접근하는 메소드에 사용합니다 (자바빈 규약).
  • init: 초기값 설정 및 내부 검증을 실행하는 메소드에 사용합니다.
  • is/has/can: boolean 타입을 반환하며 확인용 메소드에 사용합니다.
  • load: 어떤 값을 불러와 객체에 내장하거나 카운팅하는 메소드에 사용합니다.
  • register: 자바빈 규약에 따라 복잡한 연산이 불가능한 set 접두어를 대신하여 사용합니다.
  • to: 해당 객체를 다른 형태의 객체로 변환하는 메소드에 사용합니다.

Method prepositions

  • A-By-B: B를 기준으로 A를 하겠다는 메소드에 사용합니다.
  • A-With-B: B와 함께 A를 하겠다는 메소드에 사용합니다.



References
https://www.educative.io
https://www.geeksforgeeks.org