묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
수동 빈 등록, 자동 빈 등록 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 스프링 핵심 원리를 공부하다가 수동 빈 등록 및 자동 빈 등록에 대해서 이해가 부족해서다음 글을 통해서 정리해보았는데 제가 정리한 내용이 맞는 지 아직도 확신이 안 서가지구이렇게 질문 글을 남겨봅니다.. https://velog.io/@simhyunmin/%EB%B9%88-%EB%93%B1%EB%A1%9D-%EB%B0%8F-%EC%9D%98%EC%A1%B4-%EA%B4%80%EA%B3%84-%EC%84%A4%EC%A0%95-%EC%88%98%EB%8F%99-vs-%EC%9E%90%EB%8F%99-%EB%AD%90%EA%B0%80-%EB%8D%94-%EB%82%98%EC%9D%84%EA%B9%8C 참고하시고 제 글이 맞는 지 피드백 해주실 수 있을까요..
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
맥북에서 ._Var8.java와 같이 ._*파일이 계속 생겨 오류가 생깁니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)아니오.2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]여기에 질문 내용을 남겨주세요. 실습중 맥북에서 ._Var8.java와 같이 ._*파일이 계속 생겨 오류가 생깁니다. 맥북 M1입니다.혹시 해결하는 법도 알 수 있을까요..?
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
채팅서버가 2개일때 서버간 socketManager 공유방법
안녕하세요.해당 강의에서는 채팅 서버가 하나지만만약 채팅서버를 2개 운영한다고 가정했을때 (A.jar, B.jar)배포를 위해 A jar 를 내리고 다시 올릴때 서버가 내려가기전 A jar 의 socket 객체정보를 B jar 로 보내려면 어떤 방법을 사용해야할까요? socket 을 직렬화해서 보내려고 했는데 socket 은 제가 만든 클래스가 아니다보니 Serializable 를 상속받지못해 불가능할것같은데.. 실무에서는 채팅 이중화서버운영 무중단 배포를 어떤식으로 하는지 궁금합니다 ㅠㅠ .. 강의보다 심화된 내용이지만 해당 부분에 대한 지식을 쌓기가 힘들어서 글을 작성하게 되었습니다. 감사합니다.
-
미해결김영한의 실전 자바 - 기본편
static2.ex 첫번째 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.Car 클래스 안에 this.carName안에 왜 굳이 carName을 할당했는지 잘 이해가 가지 않습니다. private String carName가 사용되지 않아서 변수 선언도 불필요하다고 생각됩니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
openJDK 23 설치
OpenJDK 21이 없어서 Temurin을 다운 받았는데, 위의 메시지가 뜹니다. 강의 수강에는 딱히 문제가 되지 않나요?
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
타입캐스팅 궁금한점 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 코틀린을 처음 접해봤습니다. 질문이 이상하더라도 양해를 구하며 상세히 알려주시면 정말 감사하겠습니다.fun printAgeIfPerson(obf:Any?){val person = obj as? Person......}여기서 질문 드립니다.앞에서 변수 선언을 할 때 val,var을 배웠는데, 매개변수를 선언하는 부분에서 obf:Any? 대신에 val obj:Any?로는 안 쓰나요? 앞에서 모든 변수에는 var/val 을 붙여서 선언한다고 하셨어서요. obj는 매개변수에서 선언된 변수 아닌가요?2.위 코드에서 obj as? Person 의 값이 결과값 또는 null로 나온다고 하셨는데, 그렇게 되면 lvalue인 val person에도 null이 들어갈 여지가 있으므로 val person? 나 val person:Person?으로 선언이 되어야 하는 것 아닌가요?자바와 다른 점이 많아서 헷갈립니다.
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
SessionManagerV6에서 동시성 컬렉션 사용
public class SessionManagerV6 { private List<SessionV6> sessions = new CopyOnWriteArrayList<>(); public void add(SessionV6 session) { sessions.add(session); } public void remove(SessionV6 session) { sessions.remove(session); } public void closeAll() { for (SessionV6 session : sessions) { session.close(); } sessions.clear(); } }session들을 담는 List로, ArrayList 대신에 동시성 컬렉션인 CopyOnWriteArrayList을 사용하고, 각 메소드에서 synchronized 키워드를 제거하는 방식도 유효한가요?만약 유효하다면, 기존 방식(synchronized )과 새 방식(동시성 컬렉션) 중 어느 방식을 언제 사용하는 것이 적절한가요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
코드 순서 문의
코드 순서에 궁금한 점이 있어 질문드립니다 !class HamBurger { String name; public HamBurger(String name) { this.name = name; } public HamBurger() { this("햄버거"); } }이렇게 작성되는 코드와class HamBurger { String name; public HamBurger() { this("햄버거"); } public HamBurger(String name) { this.name = name; } }이렇게 작성되는 코드가 구동에 있어 차이가 발생하는지 궁금합니다 ! 코드는 위에서부터 순서대로 진행된다고 알고 있어서 첫 번째 방법의 코드가 더 맞는 방법이 아닌지 생각이 되는데, 선생님께서는 두 번째 방법으로 작성하셔서 차이점 설명 부탁드리겠습니다 ..! 추가적으로,// 햄버거 메소드 String[] ingredient = {"양상추", "패티", "피클"}; public void cook() { System.out.println(this.name + "를 만듭니다."); System.out.println("빵 사이에 들어가는 재료는?"); for (int i = 0; i < ingredient.length; i++) { if (i == 0) { System.out.println("> " + ingredient[i]); } else { System.out.println("+ " + ingredient[i]); } // 치즈버거 메소드 public void cook() { super.cook(); System.out.println("+ 치즈"); } // 새우버거 메소드 public void cook() { super.cook(); System.out.println("+ 새우"); }퀴즈를 이렇게 풀어서 정답과 동일하게 출력은 되었는데, 혹여나 풀이 방법에 틀린 점이 있거나 개선할 점이 있는지 피드백 부탁드립니다 :)
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
return 사용이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요여기서 if문에만 return을 사용한 이유는 조건을 만족할 경우 아래까지 내려가지 않고 메서드를 끝내 성능향상을 위함인가요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
클래스 메소드
안녕하세요 ! 인스턴스 변수 및 메소드 / 클래스 변수 및 메소드 내용 공부 중 이해가 쉽게 되지 않는 부분이 있어 질문드립니다 ! 인스턴스 변수 : 객체마다 다르게 설정이 필요한 변수 (수업 내용 중 블랙박스 이름, 용량, 색상 등) 클래스 변수 : 선언하는 클래스 내 모든 객체가 동일하게 설정된 값 (수업 내용 중 블랙박스 자동 신고 기능) 인스턴스 메소드객체마다 별도로 입력 받을 파라미터가 있고, 그에 따라 다른 결괏값 출력이 필요한 경우 사용 (수업 내용 중 블랙박스 내 영상 종류 별 저장된 수)반환값의 자료형이 void 인 경우 출력값이 필요(System.out.println) / 반환값의 자료형이 void 가 아닐 경우 반환값이 필요(return)반환값의자료형 메소드명(파라미터) { 출력값 }클래스 메소드별도로 입력 받을 파라미터가 필요 없고, 선언하는 클래스 내 객체 전체에 동일한 결괏값 출력이 필요한 경우 사용 (수업 내용 중 블랙박스 서비스 센터 연결)클래스 변수 및 메소드는 객체 단위가 아닌 클래스 단위로 불러오는 것을 권장static 반환값의자료형 메소드명() { 출력값 }이렇게 이해했는데 .. 제가 이해한 내용이 맞는지, 잘못 이해한 부분이 있거나 추가적으로 알아야 할 부분이 있다면 피드백 부탁드립니다 !그리고 추가적으로 궁금한 점이 있습니다. 수업 내용을 보면, 다른 클래스에서 변수 혹은 메소드를 가져 올 경우 public 이 없어도 가져올 수 있는 것으로 보입니다. private 설정만 하지 않는다면 굳이 public 이 없더라도 다른 클래스에서 가져오는 것이 상관 없는 것인지 궁금합니다 :)
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
Quiz_05 관련 질문드립니다 !
public class _Quiz_05 { public static void main(String[] args) { int size[] = new int[10]; for (int i = 0; i < size.length; i++) { size[i] = 250 + (5 * i); System.out.println("사이즈 " + size[i] + " (재고있음)"); } } }위 코드가 제가 작성한 코드이고, 아래가 선생님께서 작성하신 코드입니다.public class _Quiz_05_해설 { public static void main(String[] args) { int[] sizeArray = new int[10]; for (int i = 0; i < sizeArray.length; i++) { sizeArray[i] = 250 + (5 * i); } for (int size : sizeArray) { System.out.println("사이즈 " + size + " (재고 있음)"); } } }배열에 값을 입력해주는 반복문과 배열을 출력하는 반복문을 따로 설정하신 점에 대해 궁금한 점이 있습니다.수업 내용에 대한 복습과 활용의 다양성을 보여주기 위한 것인지, 실제 활용이나 실무에 있어 효율성이나 활용도가 더 높은 것인지 궁금합니다 !
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
문자열 비교 강좌에서 문자열 선언 방법 간에 hashCode() 값 관련한 질문입니다.
해당 강좌에서 String str1 = "java"로 선언한 객체와 String str2 = new String("java")로 선언한 객체는,다른 메모리 공간에 저장된다고 말씀하셨는데요.hashCode()로 확인한 결과 동일한 값이 출력되어 문의드립니다.String str1 = "java"; String str2 = "java"; String str3 = new String("java"); String str4 = new String("java");위 코드처럼 선언한 후 hashCode()로 출력하면 str1 ~ str4까지 동일한 값이 출력됩니다.System.out.println("str1 : str2 -> " + str1.hashCode() + " : " + str2.hashCode()); System.out.println("str3 : str4 -> " + str3.hashCode() + " : " + str4.hashCode()); 헌데 동일성 확인을 하면 str1과 str2 는 true 이고,str3과 str4는 false가 출력되고요.물론 str1과 str3도 false가 출력됩니다.이걸 어떻게 해석해야 하는지 문의 드립니다.
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
close() 메서드 사용 여부 질문 드립니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네[질문 내용]설명해주신 예제를 보니 메모리 스트림이나 콘솔 스트림에는 close()를 사용하지 않네요.ByteArrayStream나 PrintStream 같은 경우에는 메모리를 대상으로 하는 스트림이라 GC 대상이 되어서 따로 close() 메서드를 호출하지 않아도 되는 건가요?
-
해결됨오브젝트 - 기초편
할인 조건의 구현에 대해
안녕하세요. 좋은 강의 해주셔서 감사합니다. 덕분에 많이 배우고 있습니다.SequenceCondition과 PeriodCondition 객체 구현(5-1)에 대해 궁금한 점이 있습니다. SequenceConditionpublic class SequenceCondition implements DiscountCondition { private int sequence; @Override public boolean isSatisfiedBy(Screening screening) { return screening.isSequence(sequence); } }PeriodConditionpublic class PeriodCondition implements DiscountCondition { private DayOfWeek dayOfWeek; private LocalTime startTime, endTime; public boolean isSatisfiedBy(Screening screening) { return screening.getStartTime() .getDayOfWeek().equals(dayOfWeek) && startTime.compareTo(screening.getStartTime().toLocalTime()) <= 0 && endTime.compareTo(screening.getStartTime() .toLocalTime()) >= 0; } }PeriodCondition의 isSatisfiedBy는 Screening이 알고 있는 정보에 대한 응답을 기반으로 스스로 할인 조건을 판단하고 있다고 느껴졌습니다.반면에 SequenceCondition의 isSatisfiedBy는 Screening에게 isSequence메시지를 전송함으로써 결과적으로 '할인 조건의 만족 여부를 Screening이 판단하고 있는게 아닌가?'라는 생각이 들었습니다.저는 Screening은 상영 회차(sequence)에 대한 정보를 알고 있고 이에 대답할 수 있기 때문에 Screening에게 상영 회차를 묻고 이를 바탕으로 SequenceCondition이 스스로 할인 조건을 판단하는 형태를 생각했는데요.제가 생각한 SequenceConditionpublic class SequenceCondition implements DiscountCondition { private int sequence; @Override public boolean isSatisfiedBy(Screening screening) { return sequence == screening.getSequence(); } }이렇게 설계하니 또 Screening의 getSequence가 협력의 문맥을 고려하지 못한 채 만들어진거 같다는 느낌을 받았습니다.이와 관련해 기존의 코드는 할인 조건의 여부를 SequenceCondition이 아닌 Screening이 판단하고 있다고 느껴지는데 이게 맞는건지, Screening의 isSequence는 어떤 요청에 의해 생성된 것인지, 그 외 여기에 대한 영호님의 생각과 의견이 궁금합니다!
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
studentCount 대신에
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 강사님께서 for 문에서 i < studentCount; 를 사용하셨는데, studentCount 대신에 scores.length를 사용해도 같은 답이 나옵니다.마찬가지로 j < 3; 에서 3 대신에 scores[i].length 나 subjects.length를 사용해도 같은 답이 나옵니다. 혹시 코드가 똑같이 실행되더라도 studentCount 를 사용하시는 이유가 있는건가요? 어떤 것을 사용해야 가장 좋은지를 어떻게 판단할 수 있는지 알려주시면 감사하겠습니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
강의 본문은 어디서 확인할 수 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]어떤 걸로 강의하시는지는 모르겠는데 강의하시는 자료 화면을 같이 띄워 놓고 수강하고 싶어서요. 혹시 어느 사이트에 들어가야 확인 할 수 있나요?
-
해결됨김영한의 실전 자바 - 중급 1편
Ex1RefMainV1 질문
[질문 내용]안녕하세요, 영상에서 영한님이 "메서드를 전달"하라고 하시기에 다음과 같이 풀어봤는데, 영한님 풀이와는 접근 방법이 조금 다른 것 같아 문의드립니다.제가 봤을 때는 영한님 풀이의 경우 "메서드를 전달"한다는 느낌보다는 "메서드를 구현해놓은 인스턴스를 전달"한다는 느낌으로 받아들여져서 질문드립니다.다음과 같이 풀이해도 익명 클래스의 목적에 부합하는 풀이일까요?추가로 강의록에 "그런데 지금까지 학습한 내용으로는 메서드를 전달할 수 있는 방법이 없다."라고 언급되었는데 이는 결국 "(아직 학습하지 않았지만) 메서드를 전달할 수 있는 방법이 존재한다."라고 해석되고, 이에 해당하는 방법이 아래 풀이와 같은 방법인지 궁금합니다. // my solution-2 package nested.anonymous.ex; import nested.local.Process; import java.util.Random; public class Ex1RefMainSOL2 { public void process(Process process) { System.out.println("프로그램 시작"); process.run(); System.out.println("프로그램 종료"); } public static void main(String[] args) { Ex1RefMainSOL2 main = new Ex1RefMainSOL2(); main.process(new Process() { int randomValue = new Random().nextInt(6) + 1; @Override public void run() { System.out.println("주사위 = " + randomValue); } }); main.process(new Process() { @Override public void run() { for (int i = 1; i <= 3; i++) { System.out.println("i = " + i); } } }); } }
-
미해결김영한의 실전 자바 - 기본편
value라는 필드가 없어도 value값이 출력되네요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용](자바 기본 - NullPointerException강의 입니다)제목 그대로 NullMain3.java파일에서 System.out.println("bigData.data.value=" + bigData.data.value);코드를 보면요. value라는 필드가 없는데 0이 출력되는 이유가 궁금합니다!
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
영한님 질문이 있습니다(자바 관련 질문 아님 - 다음 행보에 대해서)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 어제인가 그저께인가, 이 생각이 계속 떠나지 않아서 글을 쓰게 되었습니다. 말 그대로 영한 님의 개발 커리에 대해, 다음 행보가 궁금해져서 질문을 드립니다. 1. 자바 강의 및 DB강의를 끝나고 다음 강의로는 무엇을 하실 건가요? 아니면 다시 실무로 가실 건인지?2. 자바 강의를 끝나고 DB를 하신다는 기억이 있는데, DB 강의 때에, 어떤 종류의 sql을 이용할 생각 인가요? 답변 부탁 드립니다.
-
해결됨오브젝트 - 기초편
generic 패키지 money 클래스 관련 질문
최근 전체적인 강의를 한번 돌려본 후 간단한 프로젝트 과제를 구현하는 과정에서 배운 내용을 최대한 적용해보려 노력하며 복습을 하고 있습니다. 복습 중 행동을 정의한 후 객체를 선택하라 를 적용하는 과정에서 궁금증이 생겼습니다. 해당 강의와 소스코드에서는 generic 패키지에 Money 클래스를 제공해주고 있습니다.Money 클래스가 있는 generic 패키지는 보통 어떤 특성을 가지는 클래스들을 모아놓는지 궁금합니다. Money 클래스와 같은 역할을 하는 객체들 또한 행동을 정의한 후 객체를 선택하라 의 원칙에 의해 행동을 정의 한 후 필드를 결정하는 것인지 궁금합니다. Money 같은 성격의 클래스는 어떤 서비스를 설계하기 전 전 미리 작성한 후 서비스 설계를 해야하나요? Money 는 새 불변 객체를 만들어 리턴해주는 방식으로 사용하던데 Screening 등의 클래스에서는 불변 객체를 사용하지 않는 이유가 있는지, 있다면 특정 클래스를 불변 객체로 설계하는 기준이 있는지 궁급합니다.