inflearn logo
강의

講義

知識共有

本当!コトリンとスプリングブートで図書館アプリケーションを開発する(Javaプロジェクトリファクタリング)

13強。ドメイン階層をKotlinに変更する - UserLoanHistory.java、User.java

자바 Private 관련 문의

306

kimminji05111192

投稿した質問数 4

1

자바에서 아래 코드가

private Integer age;

코틀린으로 변환하면

val age: Int?, // 나이는 null일 수 있지만 불변

이라고 하셨는데, 자바에서 private이 불변인가요 ? 클래스 내에서 수정할 수 있다고 알고 있는데 불변인건가요?

spring java spring-boot kotlin refactoring

回答 1

1

lannstark

안녕하세요, kimminji0511님!!! 아이고~~ 너무너무 좋은 포인트 질문 남겨주셔서 감사합니다!!! 🙇🙇

우선 저도 강의에서 어떻게 이야기했는지 확인해보니

"나이는 null이지만 (User.java 로직을 살펴보고) 불변이니까~ val age..." 라고 했더라고요!!!

 

결론부터 말씀드리면, kimminji0511님께서 짚어주신것처럼 private Integer age 를 Kotlin으로 그대로 옮긴다면, var age: Int? 가 맞습니다!!

private final 이 아니고 그냥 private 이기 때문에 원칙적으로 age 는 변경될 수 있고 이를 Kotlin으로 그냥 옮기면 값을 수정할 수 있는 var 이 되어야 하죠!

 

다만 조금 더 설명드려보자면, 제가 의도한 내용은 이랬습니다! 🥺

  1. ageprivate Integer age 로 값을 바꿀 수는 있으나

  2. User 의 로직상 실제로 age 가 바뀌는 로직은 존재하지 않는다.

  3. 때문에 '비즈니스적으로' age 는 불변이고,

  4. 가급적 필드를 만들 때에 가변(var) 보다는 불변(val)으로 만드는게 좋으니 (우선 val로 만들고 꼭 필요한 경우에 var로 여는게 좋으니)

  5. val age: Int? 로 옮기면 좋겠다!

하지만 이런 설명이 부족했던 점은 분명 맞습니다.

 

kimminji0511님 덕분에 다른 분들도 부족했던 연결고리를 더 채워나가실 수 있을 것 같습니다!! 🙏🙏

좋은 포인트 짚어주셔서 정말 감사드립니다!!

 

혹시나 다른 부분도 궁금하신 점 생기시면 언제든지 편하게 질문 남겨주세요!!

새해복 많이 받으세요! 감사합니다!!! 🙇🙇

 

안녕하세요 혹시 프론트 코드 제공받을 수 있을까요?

0

67

2

실행이 안되네요

0

65

2

프론트 영역 보는법

0

51

2

companion object

0

75

2

Custom 레프직토리 형식

0

56

2

Querydsl 도입

0

67

2

fetch join DISTINCT 중복제거

1

82

2

표준 예외와 커스텀 예외 사용 전략 질문

0

85

3

이 질문이 왜 없는지 이해가 안 되지만 문제 인식 및 해결 방법 남깁니다.

1

177

2

테스트를 위한 코드

1

105

2

프로젝트 실행 에러

0

150

2

PDF 문서에 오타가 있어서 알려드립니다.

1

102

1

enum질문

1

86

1

테스트 후 AfterEach 함수에서 나오는 쿼리

0

136

2

테스트 fixture

1

210

2

./gradlew test 실행시 인식할수 없다고 뜹니다.

0

140

1

test 코드 실행시 경고가 발생합니다.

0

140

1

13강 User Kotlin 변환중

2

169

3

'추가 - 코프링과 플러그인' 강의 7:46 allopen 관련 질문

2

174

1

-

0

141

2

4:28 build.gradle 수정 시 kotlin-reflect관련 implementation 추가 해야할까요?

0

310

3

junit import 불가

0

269

3

테스트 코드와 관련하여 질문이 있습니다.

1

216

1

hibernate가 select를 두번 하는 이유

0

237

1