이번주 백엔드 업무 중 Entity 생성을 하던 도중 오류가 발생하여 고민하다 차장님께 여쭤봤다.
그런데...자료형을 선언하는 과정에서 Boolean 의 B 를 대문자로 선언해야 했는데 b 인 소문자로 작성하여 오류가 난 것이였다.

사실 fastapi 를 계속 개발하던 나에겐 bool 선언을 많이 사용해서 익숙하게 소문자로 작성한 것 같다..ㅎ

그럼 둘의 차이점은 뭔가하고 차장님께 여쭤봤다.

잘못 선언한 코드 내용

@Entity
public class Warehouse {
	@Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    ...
    
    private boolean isUsed = True;
}

제대로 선언한 코드 내용

@Entity
public class Warehouse {
	@Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    ...
    
    private Boolean isUsed = True;

boolean vs Boolean

그럼 둘의 차이점은 무엇일까?

차이점

boolean

  • 기본 타입
  • null 이 들어갈 수 없다.
  • 메모리에 직접 값을 사용한다.

Boolean

  • 클래스
  • null 사용 가능
  • 메모리 주소를 가지고 있다.

메모리 주소 상세설명

boolean 은 메모리 값을 직접 사용한다고 설명했다.
즉, True 또는 False 값을 직접 들고있다는 소리인데 boolean 의 메모리 주소가 10001 이라고 가정하면
10001 의 값이 True(1) 또는 False(0) 라는 것이다.

ex) boolean 메모리

10001
1

Boolean 은 메모리 주소를 가지고 있다고 설명했다.
즉, True 또는 False 값을 가지고 있는 메모리를 참조한다는 뜻이다.
위의 boolean 의 주소 값은 10001 이니 그 값을 가지고 있다.

ex) Boolean 메모리 - 101010

101010
10001
  • 이렇게 되면 boolean 은 True 또는 False 의 값을 직접적으로 가지고 있는 것이며,
    Boolean 은 True 또는 False 의 값을 가지고 있는 메모리를 참조하고 있는 형태가 되는 것이다.
profile
Junior Backend Developer

0개의 댓글

Powered by GraphCDN, the GraphQL CDN