인프런 커뮤니티 질문&답변

생각하는자님의 프로필 이미지
생각하는자

작성한 질문수

김영한의 실전 자바 - 중급 1편

예외 처리가 필요한 이유1 - 시작

네트워크 ex0 코드를 이렇게 개선하는게 옳은 방법인가요?

해결된 질문

작성

·

74

·

수정됨

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요.

켈리어몬트님 꺼 답변을 해주고 나서, 저의 글을 보면서,

어? 라는 의문이 들었고, address을 불변 으로 변경해 보자라는 생각이 들어서, 변경해 보았습니다

근데 만들다 보니 Data 불변으로 바꾸고 싶다는 생각이 들고, 하다 보니 , 네트워크 서비스 클래스를 수정 하게 되던 데요.

네트워크 서비스에 클래스에 객체를 생성 하는게, 옳은 방법인가요?

수정

withMessage가 setter로 되있어서, new Data(@@)으로 변경

수정2

이름 이상해서 사진 변경(어제 바꾼건데, 귀찮아서 지금 올림.)

추가1

MainV0은 똑같습니다.

 추가2

불변에 반환 값 꼭 넣으시길 바랍니다.. 변하는지 확인 할려고, 확인 했다가 고생함..

Data , Address

NetworkClientV0 , NetworkServiceV0

image.png

 

답변 부탁 드립니다.

답변 2

1

안녕하세요. 생각하는자님, 공식 서포터즈 David입니다.

올려주신대로 작성하셔도 무방하지만, 생성된 주소가 변경될 수 있는 여지(예: setter)가 없다면 불변을 고려하지 않아도 될 것 같습니다.

감사합니다.

David님 가르쳐 주시어서 감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 생각하는자님.

질문에서 네트워크 서비스 클래스와 객체 생성에 대해 고민하신 것 같습니다. 불변 객체 사용과 네트워크 서비스 클래스의 설계에 대한 질문을 포함하고 있습니다.

관련 질문과 답변을 기반으로 몇 가지 링크를 추천드리겠습니다:

  1. 챕터 2 - 불변 객체 - 예제에서 나온 코드들이 실무에서 자주 사용하는지?

    • 이 질문에서는 불변 객체의 실무 사용 빈도와 예제가 논의됩니다. 불변 객체의 사용으로 인한 데이터 무결성 유지 및 안정성을 높이는 방법에 대해 설명하고 있습니다. 질문자께서 주소(Address) 클래스를 불변으로 변경하는 것에 대해 충분히 이해할 수 있을 것입니다.
  2. 불변객체에 대하여 질문있습니다.

    • 이 질문에서는 불변 객체의 정의와 실무에서의 구현 방법에 대해 다룹니다. 특정 클래스가 불변 객체인지 여부를 판단하는 기준과 함께, 실무에서 더 가독성 좋은 코드를 작성하는 방법을 설명합니다.
  3. 불변 객체 코드 리뷰 좀요.

    • 이 질문에서는 불변 객체를 활용한 코드 리뷰를 요청하고, 기존 코드의 개선점에 대한 피드백을 받았습니다. 특히 변수 명명법과 가독성을 높이는 방법이 언급되었습니다.
  4. String 이 불변객체라고 하셨는데 궁금한게 있습니다.

    • 이 질문에서는 String 불변 객체의 동작 방식에 대한 설명이 나옵니다. Java String 객체가 변경될 때 새로운 메모리 주소가 어떻게 할당되는지에 대해 명확하게 설명합니다.

질문에 대한 구체적인 답변을 제공하면:
네트워크 서비스 클래스(NetworkService)와 객체 생성이 옳은 방법인지에 대한 궁금증이 있으신데, 불변 객체를 사용하면 NetworkService 클래스의 설계가 보다 명확하고 안전해질 수 있습니다. 객체를 불변으로 유지함으로써 여러 스레드에서 안전하게 접근할 수 있습니다. 불변 객체는 생성 시 초기화된 값을 변경하지 않기 때문에, 네트워크 클래스가 올바른 상태를 유지하도록 보장할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

생각하는자님의 프로필 이미지
생각하는자

작성한 질문수

질문하기