[강의 정리] - 컨벤션 교정 - {Java/Spring 주니어 개발자를 위한 오답노트}

[강의 정리] - 컨벤션 교정 - {Java/Spring 주니어 개발자를 위한 오답노트}

해당 글은 김우근 강사님의 "Java/Spring 주니어 개발자를 위한 오답노트"를 수강한 내용을 바탕으로 정리한 글입니다!

!!강의 링크!!

컨벤션이란?

Convetion은 사전상 관습을 의미한다. 즉, 코딩에서 컨벤션은 문맥상 코드를 작성할 때 지켜야하는 관례나 관습을 통칭한다. 컨벤션을 지킴으로써 읽고, 관리하기 쉬운 코드를 작성할 수 있게 된다. 이는 개발자들의 협업을 용이하게 하고, 유지 보수를 쉽게 한다.

Java 표기법

자바의 표기법은 아래와 같다.

  • 변수 이름 : camelCase

  • 함수 이름 : camelCase

  • 클래스 이름 : PascalCase

  • 패키지 이름 : alllowercase

  • 상수 : UPPER_SNAKE_CASE

변수의 타입의 약어로 변수명을 시작하는 표기법을 헝가리안 표기법이라 하는데, 이는 과거 IDE가 좋지 않은 시절의 산물임으로 사용하지 않는다.

변수명 작명 규칙

줄여 쓰지 않기

줄여 썼을 때, 다른 의미의 단어임에도 축약어가 같은 경우가 존재한다. 그럴 경우, 변수명만을 보고 해당 객체가 어떤 동작을 할 지 알 수가 없다.

ex) webSocket -> ws , webServer -> ws

단, Identifier -> Id , application -> app 과 같이 관례상 굳어져 축약어를 사용해도 무관한 경우가 존재한다.

축약어에 대한 관례

코딩이 아닌 글을 쓸 때, 축약어는 모든 글자를 대문자로 쓰는 것이 관례다. 그러나 코딩에서 축약어를 모두 대문자로 쓰게 되면 상수와 구분이 어려워지고, 축약어로 변수명을 시작할 경우 첫글자를 소문자로 해야한다는 규칙과 충돌한다. 따라서, 축약어도 일반 명사로 보고 같은 규칙을 적용한다.

Util이라는 이름 작명 지양하기

Util이 붙게되면 모든 static 메소드가 모인다. static이 모였다고 해서 반드시 Util인 것이 아니다. 의미에 맞는 이름을 선정해야 한다. (이 부분은 경험이 부족하여 머리로는 이해하였으나, 감각적으로는 이해되지 않았다.)

get vs find

get -> return type이 T인 경우

find -> return typd이 Optional<T>인 경우

get 남발하지 않기

get은 객체가 가지고 있는 필드값을 그대로 가져올 때만 사용한다. 추가적인 연산을 하고 가져온다면 get이 아닌 적절한 변수명을 짓도록 하자.

롬복 getter setter 지양하기

getter는 캡슐화를 저해하고 (private로 숨겨둔 필드가 모두 드러난다.) setter는 객체를 불변하지 않게 한다.

start end 값 설정하기

메소드의 파라미터로 시작값과 끝값을 받는다면, 시작값은 자신을 포함하고 끝값은 자신을 포함하지 않는다.

 

강의중 몰랐던 단어 간단히 집고 가기!

일급 컬렉션

일급 컬렉션 -> Collection을 Wrapping 하면서 그 외의 다른 멤버 변수가 없는 상태

<ex>

public class Cars {
    private List<Car> carList;

    public Cars(List<car> carList) {
        this.carList = carList;
    }
}

일급 컬렉션을 사용하면 얻는 이점

  1. 비지니스에 종속적인 자료구조

  2. Collection의 불변성을 보장

  3. 상태와 행위를 한 곳에서 관리

  4. 이름이 있는 컬렉션

댓글을 작성해보세요.