Code Convention, @Column

bw1611·2023년 3월 20일
0

SpringBoot

목록 보기
2/6

Code convention

Code convention 이란?

  • 작성한 코드를 다른 사람들도 쉽게 이해할 수 있게 가독성 있는 코드를 작성하는 법에 대한 규칙

Code convention을 사용하는 이유

  • 소프트웨어의 유지보수를 직접 개발한 개발자가 담당하는 경우가 적음
  • 소프트웨어를 개발하는 일련의 모든 과정에 들어가는 비용 중 80%가 유지보수이다.
  • 다른 개발자가 소스코드를 봤을 때 빠른 시간에 완벽히 이해할 수 있도록 코드의 가독성을 높이기 위해

Code Convention 예시

1, 이름 (naming 전략)

1-1, 클래스/인터페이스 이름에 대문자 카멜표기법 적용

  • 클래스 이름은 단어의 첫 글자를 대문자로 시작하는 대문자 카멜표기법(Upper camel case)을 사용한다. 파스칼표기법(Pascal case)으로도 불린다.

나쁜 예)

public class reservation

public class Accesstoken

좋은 예)

public class Reservation

public class AccessToken

1-2, 테스트 클래스는 'Test’로 끝남

  • JUnit 등으로 작성한 테스트 코드를 담은 클래스는 'Test’을 마지막에 붙인다.

나쁜 예)

public class Watcher {
}

나쁜 예)

좋은 예)

public class WatcherTest {
}

좋은 예

public class WatcherTest {

1-3, 패키지 이름은 소문자로 구성

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

나쁜 예)

package com.navercorp.apiGateway

package com.navercorp.api_gateway

좋은 예)

package com.navercorp.apigateway

2, 선언 (Declarations)

2-1, static import에만 와일드 카드 허용

  • 클래스를 import할때는 와일드카드(*) 없이 모든 클래스명을 다 쓴다. static import에서는 와일드카드를 허용한다.

나쁜 예)

import java.util.*;

좋은 예)

import java.util.List;
import java.util.ArrayList;
  • 참고하면 좋은 코드 컨벤션 자료

https://naver.github.io/hackday-conventions-java/#list-uppercase-abbr

@Column


@Column 어노테이션의 역활

  • @Column은 객체 필드를 테이블의 컬럼에 매핑시켜주는 어노테이션 역활을 합니다. 자주쓰는 어노테이션을 정리하였습니다.
속성기능기본 값
name필드와 매핑할 테이블의 컬럼 이름을 지정한다.객체의 필드 이름
nullable ( DDL )DDL 생성 시 null 값의 허용 여부를 설정한다. false로 설정하면 not null 제약조건이 붙는다.true
unique ( DDL )@Table의 uniqueConstraints와 같으나 한 컬럼에 간단히 유니크 제약조건을 걸 때 사용한다.false
columnDefinition (DDL)데이터베이스 컬럼 정보를 직접 줄 수 있다.자바 필드의 타입과, 데이터베이스 방언 설정 정보를 사용해 적절히 생성
length (DDL)문자 길이 제약조건, String 타입에만 사용한다.255
precision, scale (DDL)BigDecimal 타입(혹은 BigInteger)에서 사용한다. precision은 소수점을 포함한 전체 자리수를, scale은 소수의 자리수다.precision = 0, scale = 0
@Column(name = "Member_Name")
    private String name;
  • 생성된 query

@Column(columnDefinition = "varchar (100) default 'EMPTY'")
private String data;
  • 생성된 query

@Column(unique = true)
private String username;
  • 생성된 Table

@Column(length = 100)
private String username;
  • 생성된 query

profile
Java BackEnd Developer

0개의 댓글