inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Trong thực tế! Phát triển ứng dụng quản lý thư viện với Kotlin và Spring Boot (tái cấu trúc dự án Java)

Bài học 13. Thay đổi hệ thống phân cấp miền thành Kotlin - UserLoanHistory.java, User.java

자바 Private 관련 문의

307

kimminji05111192

4 câu hỏi đã được viết

1

자바에서 아래 코드가

private Integer age;

코틀린으로 변환하면

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

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

spring java spring-boot kotlin refactoring

Câu trả lời 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

68

2

실행이 안되네요

0

66

2

프론트 영역 보는법

0

51

2

companion object

0

78

2

Custom 레프직토리 형식

0

57

2

Querydsl 도입

0

67

2

fetch join DISTINCT 중복제거

1

83

2

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

0

86

3

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

1

177

2

테스트를 위한 코드

1

105

2

프로젝트 실행 에러

0

151

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

312

3

junit import 불가

0

271

3

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

1

218

1

hibernate가 select를 두번 하는 이유

0

240

1